2013-07-17 3 views
1

소프트웨어 (Dakota)를 사용하여 P10 인증서와 인증 신청자 문서를 생성했습니다. 문서에 해시 코드가 포함되어 있습니다. 이 해시 코드는 인증서 공개 키의 SHA1 해시입니다.CSR 용 HashCode

이것을 확인하려면 openssl을 사용하여 P10 인증서를 PEM 형식 인증서로 변환했습니다. 그런 다음 openssl을 사용하여이 PEM 인증서의 공개 키를 추출했습니다. 이 공용 키에 SHA1 해시 알고리즘을 적용 할 때 Dakota Software에서 자동 생성 한 해시 코드와 다른 해시 코드를 얻습니다.

뭐가 잘못 되었나요?

답변

0

여기서 두 가지 문제를 생각해 볼 수 있습니다. 첫째, PEM 형식의 공개 키입니까? 그렇다면 SHA1 해시를 취하기 전에 DER 형식으로 변환하려고 할 것입니다.

두 번째 가능한 문제는 해시가 공개 키의 해시가 아닐 수도 있다는 것입니다. 공개 키의 해시, 고유 이름, 선택적으로 인증서 속성 세트 일 수 있습니다. 이러한 구성 요소는 서명과 함께 CSR을 구성합니다.

해시가 왜 존재하는지 잘 모르겠습니다. 서명이 CSR의 일부이면 해시가 실제로 필요하지 않습니다.

+0

공용 키를 DER 형식으로 변환했으며 완전한 CSR (p10 형식과 PEM 형식 모두)에 해시를 적용하려고 시도했습니다. 모든 경우에 생성 된 해시 값이 일치하지 않습니다. – DanMatlin

+1

CSR을 만들면 고유 이름, 공개 키 및 기타 인증서 속성에 대한 해시가 있습니다. 이 해시는 서명되고 서명은 CSR의 일부로 포함됩니다. 이야기하고있는 해시가 서명과 동일한 해시 인 경우 CSR의 SHA1 해시를 가져올 수 없습니다. 16 진수 편집기에서 CSR을 열고 서명 알고리즘, 서명 및 첫 번째 ASN.1 헤더 바이트를 제거해야합니다. 그런 다음 남은 것의 SHA1 해시를 가져올 수 있으며 이는 서명이 기반으로하는 해시와 일치합니다. – gtrig