SHA-2 Code Signing questions

4

Em primeiro lugar, esta é minha primeira experiência com a Assinatura de código .

Comprei assinatura de código padrão da Certum por 3 anos.

SHA-2 :

Secured by the SHA-2 function

Eles são todos Executáveis do Windows normais; para usuários finais, portáteis e instaladores.

Perguntas:

  1. Tendo em mente que o certificado foi emitido 10. 10. 2016, ou seja, após 1. 1. 2016, isso de alguma forma influencia como a assinatura se comportará? Eu pergunto isso em nome da leitura sobre a depreciação de SHA-1 , por exemplo:

    January 1 2016 - Microsoft products, including Internet Explorer and Chrome, will cease to trust SHA-1 Code Signing certificates (Source)

  2. Devo também marcar o timestamp? Por que isso é bom? Há alguma desvantagem de timestamping? Eu encontrei isso, o que não esclarece as coisas:

    Timestamping should be used if the signature is supposed to be used (to proof authenticity of the document author or data originator) in long term, i.e. longer than one or several days. (Source)

  3. Supondo que eu descarte o suporte para XP e Vista, a assinatura de código SHA-2 funcionará corretamente no Windows 7 ? Eu li no DigiCert que SHA-2 Assinatura de código no Windows 7 é parcial:

    Detailed OS Compatibility: Windows 7 Partial (Source)

  4. Há uma grande confusão em torno da assinatura cruzada SHA-2 (SHA-256 em particular) e SHA-1 . Supondo que, como eu disse, não suportarei mais o WinXP e o Vista, preciso disso?

por Vlastimil 27.11.2016 / 08:52

1 resposta

7

Bearing in mind the certificate has been issued 10. 10. 2016, i.e. after 1. 1. 2016, does this somehow influence how the signature will behave? I ask this on behalf of reading about deprecation of SHA-1, e.g.:

Não, não vai.

Should I also timestamp? What is this good for? Are there any disadvantages of timestamping?

Os timestamps são uma prova por terceiros de que a assinatura foi feita de fato em um horário específico, e não foi meramente o resultado de você retroceder o relógio do seu computador.

Assim, o principal uso dos timestamps é provar que a assinatura foi feita antes do certificado expirar - ou, mais importante, antes de ser revogada.

Por exemplo, se a chave de assinatura privada de alguém vazar e eles revogarem seu certificado, isso normalmente significaria que todas assinaturas feitas com ele (passado e futuro) se tornam inválidas. No entanto, as assinaturas que foram timestamped podem permanecer válidas porque é conhecido que elas foram feitas antes da revogação.

A reprovação SHA-1 no Authenticode do Windows também parece usar o registro de data e hora para que os programas antigos assinados usando SHA-1 continuem sendo exibidos como assinados corretamente, e ainda permitindo que ninguém após o cutoff -data "novas assinaturas.

Como existem alguns e-mails gratuitos & autoridades públicas de timestamp, não há razão para não.

Supposing I would drop support for XP and Vista, will SHA-2 code signature work properly on Windows 7?

There is a havoc around cross-signing SHA-2 (SHA-256 in particular) and SHA-1. Supposing as I said I will no longer support WinXP and Vista, do I need this?

Em primeiro lugar, observe que o SHA-1 / SHA-2 está envolvido em vários lugares - ele é usado separadamente quando a CA emissora assina seu certificado, e quando você assina o executável real (e mesmo quando a autoridade de carimbo de data / hora contrata a assinatura ). Em outras palavras, há uma cadeia de assinaturas e cada uma delas tem seu próprio hash.

Também é possível que assinaturas em certificados sejam validadas por código diferente de assinaturas em executáveis, e pode-se suportar SHA-2 enquanto o outro ainda não suporta.

Portanto, a situação real é que o Windows XP SP3 suporta totalmente os certificados assinados usando o SHA-2, ele simplesmente não suporta executáveis assinados usando o SHA-2. Isso é mencionado em KB 968730 , também esta postagem do TechNet .

No entanto, no Authenticode, é possível adicionar várias assinaturas ao mesmo executável (também conhecido como assinatura dupla ou assinatura aninhada), para que você possa ter uma assinatura baseada em SHA-1 para sistemas mais antigos e Um baseado em SHA-2 para os mais novos.

Com osslsigncode , você pode primeiro criar uma assinatura SHA-1 com -h sha1 e executá-la novamente com -nest -h sha256 para adicionar uma assinatura SHA-2. O mesmo funciona com signtool sign /as /fd sha256 /td sha256 (anexar assinatura). Por exemplo, as construções noturnas do PuTTY têm assinatura dupla e funcionam em todas as versões do Windows , apesar de usar um certificado assinado por SHA-256.

(Eu não estou contando XP SP2 e mais velho aqui, desde, bem.)

    
por 27.11.2016 / 09:23