Android 보안 암호 화:디지털 서명 과 디지털 인증서 상세 설명

Android 보안 암호 화 테마 글 인덱스
  • Android 보안 암호 화:대칭 암호 화
  • Android 보안 암호 화:비대 칭 암호 화
  • Android 보안 암호 화:메시지 요약 메시지 다이제스트
  • Android 보안 암호 화:디지털 서명 과 디지털 인증서
  • Android 보안 암호 화:Https 프로 그래 밍
  • 이상 에서 모든 내용 을 배 웠 고 대칭 암호 화,비대 칭 암호 화,메시지 요약,디지털 서명 등 지식 은 디지털 인증서 의 작업 원 리 를 이해 하기 위해 예비 지식 으로 삼 았 다.디지털 인증 서 는 암호학 에서 의 궁극 적 인 무기 로 인류 수천 년 의 역 사 를 총 결 한 지혜 의 결정 이다.디지털 인증서 의 작업 원 리 를 이해 한 후에 야 Https 협의의 안전 통신 체 제 를 이해 할 수 있다.결국 SSL 개발 과정 에서 뜻 대로 될 수 있 었 다.
    또한 대칭 암호 화 와 메시지 요약 이라는 두 가지 지식 포 인 트 는 단독으로 사용 할 수 있다.
    지식 점 직렬 연결:
    디지털 인증 서 는 위 에서 배 운 모든 지식 을 사 용 했 습 니 다.
  • 대칭 암호 화 와 비대 칭 암호 화 를 결합 하여 비밀 키 교환 을 실현 한 후에 통신 쌍방 은 이 비밀 키 를 사용 하여 대칭 암호 화 통신 을 한다.
  • 메시지 요약 과 비대 칭 암호 화 는 디지털 서명 을 실 현 했 고 루트 인증서 기 구 는 대상 인증서 에 서명 을 했 으 며 검증 할 때 루트 인증 서 는 공개 키 로 이 를 검증 했다.검사 에 성공 하면 이 인증 서 는 신뢰 를 받 는 것 입 니 다.
  • Keytool 도 구 는 인증 서 를 만 들 수 있 으 며,이후 루트 인증서 기관 에 인증 후 직접 서명 인증 서 를 사용 하고 인증서 의 RFC 형식 정보 등 을 출력 할 수 있다.
  • 디지털 서명 기술 은 신분 인증 과 데이터 완전 성 보증 을 실현 했다.
  • 암호 화 기술 은 데이터 의 기밀 성 을 확보 하고 메시지 요약 알고리즘 은 데이터 의 완전 성 을 확보 하 며 대칭 암호 화의 효율 은 데이터 처리 의 신뢰성 을 확보 하고 디지털 서명 기술 은 작업 의 부인 할 수 없 는 성 을 확보한다.
  • 상기 내용 의 학습 을 통 해 우 리 는 다음 과 같은 지식 을 습득 할 수 있어 야 한다.
  • 기초 지식:bit 비트,바이트,문자,문자 인 코딩,진 변환,io
  • 실제 개발 에서 대칭 암호 화 를 어떻게 사용 하여 문 제 를 해결 하 는 지 알 고 있다
  • 대칭 암호 화,비대 칭 암호 화,메시지 요약,디지털 서명,디지털 인증 서 는 어떤 문 제 를 해결 하기 위해 발생 하 는 지 알 고 있다
  • SSL 통신 프로 세 스 파악
  • 실제 개발 에서 Https 인 터 페 이 스 를 어떻게 요청 합 니까?
  • 디지털 서명
    1.개술
    디지털 서명 은 비대 칭 암호 화 와 디지털 요약 의 조합 응용 이다.
    2.응용 장면
    사용자 신분 검증(비밀 키 서명,공개 키 검증 을 사용 합 니 다.공개 키 로 검증 이 통과 되면 이 정 보 는 반드시 비밀 키 소지 자가 발표 한 것 입 니 다)
    데이터 의 완전 성 검사(복호화 후의 메시지 요약 으로 원문의 메시지 요약 과 비교)
    3.서명 과정
    "메 시 지 를 보 낼 때 발송 자 는 하나의 해시 함수 로 메시지 텍스트 에서 메시지 요약 을 생 성 한 다음 에 자신의 개인 키 로 이 요약 을 암호 화 합 니 다.이 암호 화 된 요약 은 메시지 의 디지털 서명 과 메시지 로 수신 자 에 게 보 냅 니 다.수신 자 는 먼저 발송 자 와 같은 해시 함수 로 받 은 원본 메시지 에서 메시지 요약 을 계산 합 니 다."이 어 발송 자의 공용 키 로 메시지 에 추 가 된 디지털 서명 을 복호화 합 니 다.이 두 요약 이 같 으 면 수신 자 는 이 디지털 서명 이 발송 자의 것 임 을 확인 할 수 있 습 니 다.
    디지털 서명 은 두 가지 효과 가 있다.하 나 는 소식 이 확실히 발송 자의 서명 에 의 해 병발 되 었 다 는 것 을 확인 할 수 있다.왜냐하면 다른 사람 이 발송 자의 서명 을 위조 할 수 없 기 때문이다.둘째,디지털 서명 은 메시지 의 완전 성 을 확인 할 수 있다.디지털 서명 의 특징 은 파일 의 특징 을 대표 하기 때문에 파일 이 바 뀌 면 디지털 요약 의 값 도 달라 집 니 다.서로 다른 파일 은 서로 다른 숫자 요약 을 얻 을 수 있 습 니 다."한 번 의 디지털 서명 은 해시 함수,발송 자의 공개 키,발송 자의 비밀 키 와 관련된다."

    4.사용 절차
    
    //  signature   ,     :MD2withRSA, MD5withRSA, or SHA1withRSA
    Signature signature = Signature.getInstance("MD5withRSA");
    //    (      )
    PrivateKey privateKey = (PrivateKey)SerializableUtil.readObject(
    "heima.privateKey");
    //         
    signature.initSign(privateKey);
    //         
    signature.update(content.getBytes());
    //    
    byte[] sign = signature.sign();
    
    //    (      )
    PublicKey publicKey = (PublicKey) SerializableUtil.readObject(
    "heima.publicKey");
    //         
    signature.initVerify(publicKey);
    //         (      )
    signature.update(content.getBytes());
    //    
    boolean verify = signature.verify(sign);
    
    5.총화
    디지털 서명 은 일반적으로 단독으로 사용 하지 않 고 기본적으로 디지털 인증서 에서 SSL 통신 프로 토 콜 을 실현 하 는 데 쓰 인 다.다음 에 배 울 디지털 인증 서 는 디지털 서명 기술 을 바탕 으로 이 루어 집 니 다.
    디지털 인증서
    1.개술
    디지털 인증 서 는 인터넷 통신 에서 통신 각 측의 신분 정 보 를 표시 하 는 일련의 숫자 로 인터넷 에서 통신 실체 신분 을 검증 하 는 방식 을 제공 했다.디지털 인증 서 는 디지털 신분증 이 아니 라 신분 인증 기구 가 디지털 신분증 에 찍 은 도장 이나 인쇄(또는 디지털 신분증 에 추 가 된 서명)이다.이 는 권위 있 는 기구 인 CA 기구 로 인증서 권한 수여(Certificate Authority)센터 라 고도 부 르 며 인터넷 에서 상대방 의 신분 을 식별 할 수 있다.
    2.응용 장면
    거래자 신분 의 확정 성,부인 할 수 없 음,수정 할 수 없 음
    응용 프로그램 에 서명 인증(예:Android apk)
    3.디지털 인증서 형식

    디지털 인증서 의 형식 은 보편적으로 X.509V 3 국제 표준 을 사용 하 는데 하나의 표준 X.509 디지털 인증 서 는 다음 과 같은 내용 을 포함한다.
  • 인증서 의 버 전 정보;
  • 인증서 의 시리 얼 번호,모든 인증서 에 유일한 인증서 시리 얼 번호 가 있 습 니 다.
  • 인증서 에 사용 되 는 서명 알고리즘;
  • 인증서 의 발행 기구 이름,명명 규칙 은 보통 X.500 형식 을 사용 합 니 다.
  • 인증서 의 유효기간,일반적인 인증 서 는 보통 UTC 시간 형식 을 사용 하 며 시간 범 위 는 1950-2049 입 니 다.
  • 인증서 소유자 의 이름,명명 규칙 은 일반적으로 X.500 형식 을 사용 합 니 다.
  • 인증서 소유자 의 공개 키;
  • 인증서 발행 자의 인증서 에 대한 서명.
  • 4.디지털 인증서 원리

    디지털 인증 서 는 보안 분야 의 궁극 적 인 무기 로 SSL 통신 프로 토 콜 의 가장 핵심 적 인 것 은 디지털 인증서 다.그 는 앞에서 언급 한 모든 지식 과 관련 되 었 다.대칭 암호 화,비대 칭 암호 화,메시지 요약,디지털 서명 등 이다.
    디지털 인증 서 는 자바 가 자체 적 으로 가지 고 있 는 KeyTool 도 구 를 통 해 생 성 될 수 있 으 며,생 성 된 디지털 인증 서 는 일반적으로 KeyStore 에 보관 된다.키 스토어 는 비밀 키 창고 라 고 할 수 있 습 니 다.
    비밀 키 창 고 는 3 가지 유형의 데 이 터 를 보관 할 수 있 습 니 다:KeyStore.PrivateKeyEntry(비대 칭 비밀 키),KeyStore.SecretKeyEntry(대칭 암호 화 된 비밀 키),KeyStore.TrustedCertificateEntry(신뢰 받 는 인증서)
    5.KeyTool 도구
    경로:jre\bin\keytool.exe

    상용 명령:
    키 쌍 생 성
    keytool -genkeypair
    keytool-genkeypair-alias lisi(뒷부분 은 인증서 에 별명 을 지정 하지 않 으 면 기본 이름 으로 my key)
    keystore 에 어떤 항목 이 있 는 지 보 세 요.
    keytool-list 또는 keytool-list-v
    keytool -exportcert -alias lisi -file lisi.cer
    인쇄 가능 한 인증서 생 성:
    keytool -exportcert -alias lisi -file lisi.cer Crfc
    디지털 인증서 파일 의 인증서 정보 보이 기:
    keytool -printcert -file lisi.cer
    lisi.cer 를 직접 두 번 누 르 고 window 시스템 내 장 된 프로그램 으로 lisi.cer 를 엽 니 다.
    6.안 드 로 이 드 키 스토어 지식
    debug 서명 경로:user.android\\debug.keystore

    debug.keystore 의 별명(alias)및 비밀번호:
    별명:androiddebugkey,비밀번호:android
    서명 명령(jdk 1.6):
    jarsigner -verbose -keystore debug.keystore -signedjar 1signed.apk 1.apk androiddebugkey
    서명 명령(jdk 1.7):
    jarsigner -verbose -keystore debug.keystore -signedjar 1signed.apk 1.apk androiddebugkey -digestalg
    SHA1 -sigalg MD5withRSA
    최적화 명령:
    zipalign -v 4 1signed.apk 1signedaligned.apk
    서명 이 성 공 했 는 지 확인 하기:
    jarsigner -verify 1signed.apk
    7.보충
    서명 인증서:
    권위 있 는 발급 기구 가 서버 나 개인 에 게 자신의 신분 을 증명 하 는 데 사용 하 는 것 은 기본 클 라 이언 트 가 모두 신뢰 합 니 다.주요 목적 은 데이터 의 완전 성과 발뺌 할 수 없 는 성 을 암호 화하 고 확보 하 는 것 이다.
    예 를 들 어 루트 인증서 기관 인 Symantec 가 바 이 두 에 게 발급 한 것 은 서명 인증서 로 신뢰 를 받는다.

    셀 프 서명 인증서:
    서버 자체 가 자신 에 게 수여 하고 자신의 신분 을 증명 하 는 데 사용 되 는 것 입 니 다.비 권위 적 인 발급 기구 에서 발표 합 니 다.기본 클 라 이언 트 는 모두 신뢰 하지 않 습 니 다.주요 목적 은 데이터 의 완전 성과 발뺌 할 수 없 는 성 을 암호 화하 고 확보 하 는 것 입 니 다.서명 인증서 와 같 습 니 다.
    예 를 들 어 중 철 그룹(SRCA)이 12306 에 게 준 증 서 는 바로 자체 서명 증서 로 자신 에 게 발급 한 것 이다.

    좋은 웹페이지 즐겨찾기