Práticas recomendadas para assinatura de código

Views: 776
0 0
Read Time:4 Minute, 46 Second

7 práticas recomendadas de assinatura de código da Microsoft e do PowerShell que você pode implementar imediatamente

A assinatura de código é um componente crítico do desenvolvimento de software. Você passou todo esse tempo criando o software – o que provavelmente significou muitas codificações noturnas, muito controle de qualidade e uma quantidade não saudável de cafeína – você não quer ter certeza de que as pessoas confiam no seu software? E, talvez mais importante, você não quer que eles confiem em você como desenvolvedor? É aqui que a implementação das melhores práticas de assinatura de código pode entrar em jogo.

Provavelmente, seu software não é apenas um caso. Você está tentando criar relacionamentos com os clientes – e isso começa com a confiança.

Mas tu já sabes isso; você sabe que precisa assinar seu código . Você sabe que precisa obter um certificado de assinatura de código de uma autoridade de certificação confiável (CA) como Sectigo (anteriormente Comodo CA) ou DigiCert. Você conhece a validação envolvida, o processo de emissão.

Você está aqui para saber quais são as práticas recomendadas para assinar seu código. Se você usa o Windows PowerShell ou o Prompt de Comando para escrever scripts, essas práticas recomendadas para assinatura de código também se aplicam a você. Então, vamos dar uma olhada.

Dividimos essas melhores práticas gerais de assinatura de código do PowerShell e geral em sete pontos principais:

1. Empregue forte segurança de chave

Sua chave de assinatura é o componente mais importante do seu certificado de assinatura de código. Guarde com sua vida. Isso significa limitar o acesso a ele e, idealmente, armazená-lo em um módulo de segurança de hardware (HSM) e não em qualquer lugar da sua rede. Esse HSM deve ser um hardware criptográfico usando os padrões criptográficos certificados pelo FIPS 140-2 Nível 2. Além disso, verifique se o HSM criptográfico está protegido com uma senha gerada aleatoriamente com pelo menos 16 caracteres. Obviamente, aplicam-se regras de senha padrão, e as senhas devem conter uma combinação de letras maiúsculas e minúsculas, números e símbolos.

2. Timestamp Tudo

São necessárias algumas etapas extras para configurar o dispositivo de assinatura para fazer uma chamada para um servidor de carimbo de data / hora, mas são etapas extras necessárias, pois, caso contrário, as assinaturas serão invalidadas assim que o certificado de assinatura de código expirar. A única coisa pior para a reputação de um desenvolvedor do que um usuário que diz que seu software não é confiável é um usuário que diz que seu software não é confiável APÓS que ele já esteja usando. Relacionamento acabou.

3. Entenda a diferença entre assinatura de teste e liberação

Os certificados de assinatura de teste não exigem os mesmos padrões de segurança rigorosos que os certificados de assinatura de código de desenvolvimento. De fato, na maioria das vezes, os certificados de assinatura de teste são autoassinados – o que é totalmente aceitável nesse contexto – e encadeados para uma raiz diferente da dos certificados de assinatura de desenvolvimento. Essa é uma salvaguarda necessária para garantir que as assinaturas de teste interno nunca sejam confundidas com as assinaturas de liberação. Idealmente, você deve desenvolver uma infraestrutura de assinatura totalmente independente para o processo de assinatura de teste.

4. Autentique o código que você assina

Isso tem a ver com o ciclo de desenvolvimento real. Antes que sua chave de assinatura de versão chegue perto do seu software, ela precisa ser totalmente autenticada por todas as partes interessadas – o que significa que todos precisam confirmar e assinar o fato de que ela está pronta. É melhor desenvolver um processo de aprovação inteiro para garantir que todas as assinaturas sejam bem documentadas. Isso ajuda na resposta a incidentes e na conformidade.

5. Verificação de vírus antes de assinar

Isso realmente aparece no último título, mas também vale a pena declarar explicitamente. Verifique se o seu software está livre de vírus antes de ser assinado. Se houver algo de errado com isso e acabar infectando os computadores ou dispositivos dos usuários, você não só terá que lidar com as consequências disso – também fará com que o seu certificado de assinatura seja revogado e você também É MUITO difícil conseguir outro por causa dos requisitos de validação.

6. Use mais de uma chave

Sempre que você assina algo com sua chave privada , há um pequeno grau de risco. Geralmente, a matemática por trás da criptografia moderna é proibitivamente difícil para os computadores – mas ainda há riscos. E se algo acontecer com essa chave e precisar ser revogada, ela invalidará outras assinaturas e outro código válido. Essa prática recomendada de assinatura de código é realmente apenas uma abordagem moderna do ditado de não colocar todos os ovos em uma cesta. Use chaves diferentes para projetos diferentes e tente espalhar o risco.

7. Dicas para revogação

Eventualmente, todo mundo acaba tendo que revogar um certificado por um motivo ou outro. Antes de fazer isso, aqui estão alguns conselhos:

  • Quando surgir um compromisso ou outro problema, notifique imediatamente a sua CA.
  • A data de revogação afetará a validade de suas assinaturas com carimbo de data e hora. Isso significa que você pode selecionar uma data antes do dia em que o comprometimento foi descoberto.

Lembre-se de revogar o certificado se ele for comprometido ou você descobrir que ele já foi usado para assinar malware.

E isso é válido para nossas práticas recomendadas de assinatura de código. Se você tiver outras perguntas, fique à vontade para deixá-las na seção de comentários abaixo.

FONTE: COMODO

POSTS RELACIONADOS