11

동일한 코드에 적용하고자하는 두 개의 코드 서명 인증서 (하나의 SHA-1, 하나의 SHA-256)가 있습니다. 나는 두 번째 명령에서 타임 스탬프 URL을 제거하면타임 스탬프가있는 이중 서명 코드는 어떻게 올바르게 나타 납니까?

Done Adding Additional Store 
SignTool Error: SignedCode::Sign returned error: 0x80070057 
     The parameter is incorrect. 
SignTool Error: An error occurred while attempting to sign: my_app_here.exe 

는, 서명이 성공적으로 완료 : 나는 SHA-256 인증을 추가하려고하지만 실패 :이 오류와 함께 실패

:: Signs with the SHA-1 certificate 
signtool sign /sha1 8f52fa9db30525dfabb35b08bd1966693a30eccf /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe 
:: Signs with the SHA-2 certificate 
signtool sign /sha1 8b0026ecbe5bf245993b26e164f02e1313579e47 /as /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe 

SHA-2 서명에는 타임 스탬프가 없습니다. (첫 번째 서명에 타임 스탬프를 삽입했는지 여부는 적용되지 않음)

여기에있는 의도는 누군가가이를 지원하는 운영 체제에있는 경우 더 강력한 인증서로 앱을 확인할 수 있도록하지만 실패하지 않도록하기위한 것입니다 더 강력한 인증서 (Vista, XP)를 지원하지 않는 운영 체제에 대한 유효성 검사.

이런 종류의 일도 가능합니까?

+0

음, 다행 나는이 내 필요에 혼자 아니라고 알고 ... – vcsjones

+0

은 대신'/ t의/TD를 SHA256/TR ...''시도해 봤어 ... 두 번째 서명은? –

답변

12

SHA-2 Authenticode 서명에는 RFC 3161 타임 스탬프 서버가 필요합니다. timestamp.verisign.com URL이 작동하지 않습니다.

시만텍/베리사인의 RFC 3161 URL은 다음과 같습니다

여전히 이전 http://timestamp.geotrust.com/tsa URL을 사용하고는 (4 월 2017) 실패하는 경우
http://sha256timestamp.ws.symantec.com/sha256/timestamp 

, 당신은 위의 하나를 업데이트해야합니다. GeoTrust는 Verisign과 마찬가지로 현재 시만텍에 속해 있습니다.

출처 :

https://knowledge.verisign.com/support/code-signing-support/index?page=content&id=SO5820

+0

"작동하지 않는 이유"에 대해 설명해 주셔서 감사합니다. 작동 시키려면 간단히'/ t http : // timestamp.verisign.com/scripts/timestamp.dll'을'/ tr http : // timestamp.geotrust.com/tsa'로 대체하십시오. –

+1

GeoTrust 서버는 여전히 타임 스탬프에 대해 SHA1 다이제스트를 사용하며 더 심각한 것은 인증서 체인이 MD5 다이제스트가있는 루트 인증서로 종료됩니다. 타임 스탬프에 대한 SHA256 다이제스트를 원한다면 http://timestamp.globalsign.com/?signature=sha2를 URL로 사용하십시오 (/ td SHA256이 지정되지 않아도 됨). –

+4

RFC 3161 타임 스탬프 URL이있는 SHA-256은 http://sha256timestamp.ws.symantec.com/sha256/timestamp입니다. –

관련 문제