Como identifico um carimbo de data / hora Authenticode vs. um registro de data e hora compatível com RFC 3161?

2

Ao assinar o código com o Signtool da Microsoft , há algumas opções diferentes ao especificar uma URL de timestamp, / t e / tr.

/ t pode especificar uma URL de timestamp Authenticode e / tr deve ser usado com um servidor de timestamp compatível com RFC 3161.

Existe uma maneira de analisar o timestamp em um arquivo para descobrir se / t ou / tr foi usado? Se é Authenticode ou RFC 3161?

    
por Gregordinary 11.11.2015 / 18:00

2 respostas

2

Sim. O signtool.exe da Microsoft imprimirá um resumo das assinaturas digitais em um arquivo previamente assinado, incluindo qual padrão foi usado para criar o timestamp, quando invocado com a seguinte sintaxe:

signtool verify / all / pa Nome do arquivo

Para ilustrar, sujeite um dos seus próprios arquivos ao procedimento da Symantec para aplicação de assinaturas duplas . Isso resultará em duas assinaturas digitais em seu arquivo, cada uma com um registro de data e hora correspondente. Um timestamp será aplicado usando o Authenticode e o outro com o RFC 3161.

Note that Symantec's procedure suggests verifying the result by viewing the Digital Signatures tab of the file's RMB properties . That tab provides the timestamp value (date and time), but not the timestamp standard.

Depois de concluir o procedimento, visualize o resumo das assinaturas digitais com o comando signaltool verify, conforme sugerido acima. O padrão de registro de data e hora será mostrado no campo "Timestamp". Por exemplo, aqui está o que você verá se você assinar um arquivo chamado MyDigitallySigned.dll :

C:\Users\myusername>signtool verify /all /pa MyDigitallySigned.dll
File: MyDigitallySigned.dll
Index==Algorithm==Timestamp====
========================================
0      sha1       Authenticode
1      sha256     RFC3161
    
por 24.11.2015 / 18:48
1

Detalhes da implementação estão aqui: link

Em suma, a assinatura é padronizada. A única coisa diferente entre /t e /tr deve ser o protocolo usado para obter a assinatura de registro de data e hora. Signtool faz sua própria coisa com a assinatura em ambos os casos: copia como uma contra-assinatura na mensagem PKCS # 7 que é a assinatura do authenticode.

Você pode inferir o método usado inspecionando a assinatura, se puder mapear certificados de CA para protocolos e eles forem distintos, mas não deve haver razão para isso.

    
por 11.11.2015 / 22:14