2014-12-29 4 views
0

:RSA-SHA512 X509Certificate2의 자격 증명을 서명하는 것이 RSA-SHA256 인 것처럼 보이는 이유는 무엇입니까? 다음 명령에서 만든 공개/개인 키 쌍 PFX 파일을 감안할 때

makecert.exe -r -n "CN=TEST" -pe -sv TEST.pvk -a sha512 -len 2048 -b 01/01/2014 -e 12/31/2075 TEST.cer 
pvk2pfx.exe -pvk TEST.pvk -spc TEST.cer -pfx TEST.pfx 

다음 C# 코드 :이의

X509Certificate2 cert = new X509Certificate2("TEST.pfx"); 
Console.WriteLine(cert.SignatureAlgorithm.FriendlyName); 

var creds = new X509SigningCredentials(cert); 
Console.WriteLine(creds.SignatureAlgorithm); 
Console.WriteLine("Key size: {0}", creds.SigningKey.KeySize/8); 

결과 : 내가 무엇

sha512RSA 
http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 
Key size: 256 

인증서가 SHA512로 생성되었을 때 SHA256이라는 서명 자격 증명이 나오는 이유는 무엇입니까? 내가 뭔가를 오해하고 있니?

+0

참고 : makecert.exe 도구는 지원되지 않으므로 지원되는 환경에서는 사용하지 않는 것이 좋습니다. – Crypt32

답변

1

오해의 소지가있는 부분은 해싱 알고리즘이 사용되는 곳입니다. 첫 번째 인증서는 인증서 을 만들 때 사용되며 인증서는입니다. 두 번째는 인증서에 속한 개인 키로 서명하는 동안 사용되는 해시 알고리즘입니다. 그 하나 SHA - 256 기본값으로 보인다.

Microsoft는 실제로 해시 알고리즘과 서명 알고리즘을 혼동합니다. PKCS # 1 v1.5 스타일 시그니처 만 사용하고 있지만 지금은 바보처럼 보일 때가 있습니다.