Práticas recomendadas de assinatura de código

Views: 1118
0 0
Read Time:4 Minute, 45 Second

7 Práticas recomendadas de assinatura de código Microsoft e 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 – que provavelmente significou muitas noites de codificação, muito QA 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 um desenvolvedor? É aí que a implementação de práticas recomendadas de assinatura de código pode entrar em jogo.

Seu software provavelmente não é apenas um one-off. Você está tentando construir relacionamentos com clientes – e isso começa com confiança.

Mas você já sabe disso. você sabe que precisa estar assinando seu código. Você sabe que precisa obter um certificado de assinatura de código de uma autoridade de certificado confiável (CA) como sectigo (anteriormente Comodo CA) ou DigiCert. Você sabe sobre a validação envolvida, o processo de emissão.

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

7 Práticas recomendadas de assinatura de código

Dividimos essas melhores práticas de assinatura de códigos e PowerShell em sete pontos principais:

1. Empregar uma forte segurança de chave

Sua chave de assinatura é o componente mais importante do seu certificado de assinatura de código. Guarde-o 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 hardware criptográfico usando padrões criptográficos certificados FIPS 140-2 Nível 2. Além disso, certifique-se de que o HSM criptográfico esteja protegido com uma senha gerada aleatoriamente com pelo menos 16 caracteres. É claro que as regras de senha padrão se aplicam, e as senhas devem conter uma mistura de letras, números e símbolos de maiúsculas e minúsculas.

2. Timestamp Tudo

É preciso algumas etapas extras para configurar seu dispositivo de assinatura para fazer uma chamada para um servidor de cronomp, mas são necessárias etapas extras, porque não fazê-lo tornará suas assinaturas inválidas assim que seu certificado de assinatura de código expirar. A única coisa pior para a reputação de um desenvolvedor do que um usuário sendo informado de que seu software não é confiável é um usuário sendo informado de que seu software não é confiável depois que ele já está usando. A relação acabou.

3. Entenda a diferença entre a assinatura do teste e a assinatura de lançamento

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. Na verdade, a maioria dos certificados de assinatura de teste de tempo são auto-assinados — o que é totalmente aceitável neste contexto — e se acorrentam a uma raiz diferente do que os certificados de assinatura de desenvolvimento fazem. Esta é uma salvaguarda necessária para garantir que as assinaturas de teste internas nunca sejam confundidas com assinaturas de liberação. Idealmente, você deve desenvolver uma infraestrutura de assinatura totalmente independente para o processo de assinatura do teste.

4. Autenticar o código que você assina

Isso tem a ver com o ciclo real de desenvolvimento. Antes que sua chave de assinatura de lançamento 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 ele está pronto. É melhor desenvolver todo um processo de aprovação para garantir que todas as contratações estejam bem documentadas. Isso ajuda tanto na resposta a incidentes quanto na conformidade.

5. Varredura de vírus antes de assinar

Isso realmente rola sob o último título, mas também vale a pena afirmar explicitamente. Certifique-se de que seu software está livre de vírus antes de ser assinado. Se há algo de errado com ele e ele acaba infectando os computadores ou dispositivos de seus usuários, não só você vai ter que lidar com as consequências disso – também vai fazer com que seu certificado de assinatura seja revogado e você vai ter muito dificuldade em conseguir outro por causa dos requisitos de validação.

6. Use mais de uma chave

Toda vez 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 computadores — mas ainda há risco. E se algo acontecer com essa chave e ela precisar ser revogada, ela vai invalidar outras assinaturas e outros bons códigos. Esta prática recomendada de assinatura de código é realmente apenas uma visão moderna sobre o ditado sobre não colocar todos os seus ovos em uma cesta. Use chaves diferentes para diferentes projetos e tente espalhar o risco.

7. Dicas sobre revogação

Eventualmente, todo mundo acaba tendo que revogar um certificado por uma razão ou outra. Antes de fazer isso, aqui está um conselho:

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

Tenha em mente que você é OBRIGADO a revogar o certificado se ele está comprometido ou você descobre que ele já foi usado para assinar malware.

E isso faz isso para nossas melhores práticas de assinatura de código. Se você tiver outras perguntas, sinta-se livre para deixá-las na seção de comentários abaixo.

FONTE: COMODO

POSTS RELACIONADOS