
Keytool을 사용하면 다음 명령으로 키 저장소의 세부 정보를 볼 수 있습니다.
keytool -list -v -keystore <KeystoreName>
제목 키 식별자를 포함한 값 집합을 반환합니다.
SubjectKeyIdentifier [
KeyIdentifier [
0000: 60 7B 66 1A 45 0D 97 4B CA 89 50 2F 7D 04 CD 34
0010: A8 FF FC FD
]
]
이는 SHA1 키 식별자입니다. 동일한 키 저장소에 대한 SHA 256 키 식별자를 얻으려면 어떻게 해야 합니까?
답변1
그만큼제목 키 식별자(SKI 또는 SKID)는 개별 인증서의 속성(X.509 확장)입니다.
일반적으로 인증서가 서명될 때 SHA-1 해시로 계산됩니다. 해시되는 데이터는 다양할 수 있지만 일반적으로 최소한 다음을 포함합니다.제목공개키비트 문자열이며 완전한 160비트 SHA-1 값이 아닐 수도 있습니다.
해시가 생성되는 방식에 (기술적으로) 관심이 있는 유일한 것은 서명을 수행하는 시스템이거나 때로는 요청을 생성하는 시스템입니다. 요청에 추가할 수 있기 때문입니다. 그 외에는 불투명 지문이나 고유 ID로 처리됩니다. 해당 값은 특정 인증서나 발급자를 식별하기 위해서만 비교하면 됩니다(지원 및 최적화를 위해).경로 확인), 다시 계산할 필요가 없습니다.
SHA-256 해시를 올바르게 계산하려면 시스템이 해시를 계산하는 데 사용하는 필드가 정확히 무엇인지 찾아 이를 SHA-256에 대한 입력으로 사용해야 합니다. 보다RFC 5280, 특히§4.2.1.1그리고§4.2.1.2. 서명된 데이터는아마그냥 그제목공개키또는제목공개키정보바이너리 DER 형식에서는 후자가 OpenSSL 서명 인증서의 경우인 것 같습니다.
이 (만료된) RFC 초안은 주체 키 식별자에 SHA-2 해시 사용을 제안합니다. https://datatracker.ietf.org/doc/html/draft-turner-additional-methods-4kis-08
이 문제에 대한 기능 요청과 패치가 약간 있습니다.OpenSSL 버그 #2599
답변2
그것은 존재하지 않으며 실제로 존재할 필요도 없습니다. 인증서에는고유한복호화에 사용할 키를 시스템에 알려줄 수 있는 주체 키 IDentifier 속성의 식별자입니다. 해시일 필요도 없고 고유해야 합니다. 다른 키에 레이블을 지정하는 데 재사용하지 않는 한 SKID에 "Zeutheus Key #1"이라는 텍스트를 사용할 수도 있습니다.
SHA-256을 사용하여 SKID를 생성하려면 계속 진행하십시오. 인증서를 받은 후에는 새 값을 사용하는 새 인증서 요청을 생성하고 서명해야 합니다. Microsoft의 certutil.exe와 같은 일부 도구를 사용하면 인증서 요청 시 OID에 대한 특정 값을 설정할 수 있습니다. 공개 키의 SHA-256 해시를 생성한 다음 해당 값을 SKID OID에 배치할 수 있습니다. 그러나 기본값이 목적에 맞게 충분히 작동하는 SHA-1 해시를 생성하는 것이라면 이는 수행할 필요가 없는 작업입니다.