Pergunta

Eu estava lendo O que acontece quando um certificado de assinatura de código expira - Stack estouro e se perguntando sobre uma resposta mais sólida. A resposta dada foi mais sobre como configurar o seu próprio CA. Mesmo com seu próprio CA você ainda vai precisar para lidar com vencimento certificados de código.

Se você assinou o código sem usar um tempo de carimbar serviço, após o certificado expirar o seu código não será mais confiável, e dependendo das definições de segurança não podem ser autorizados a executar. Você precisará assinar novamente todo o seu código com um novo certificado, ou com um certificado renovado, a cada 1 ou 2 anos.

Trusted timestamping (digital) permite a assinatura digital para ser válido mesmo depois de o próprio certificado expirou. Você precisaria de código re-assinar com o novo certificado somente se você tiver feito alterações.

Será que isso tudo som correto? Se assim for, eu preciso de recomendações sobre o serviço timestamping para uso, de preferência de alguém que realmente tem usado um. Eu também gostaria de saber se existem soluções internas, semelhante a ser seu próprio CA.

Agora isso se aplica a scripts do PowerShell, mas eu acabará por ter o mesmo problema com outro código.

Atualizar : Amostra de como assinar um script PS com um timestamp (você pode fazer um script para isso):

Set-AuthenticodeSignature -filepath "D:\Projects\A Sample\MyFile.ps1" 
  -cert gci cert:\CurrentUser\My -codesigning 
  | where -Filter {$_.FriendlyName -eq "Thawte Code Signing"}
  -IncludeChain All 
  -TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"

Então, para ver o Certificado e TimeStamper certificado do assinante, você pode fazer isso:

Get-AuthenticodeSignature MyFile.ps1 | fl *

Ela dá-lhe o assunto (CN, OU, etc.), Emissora, antes / depois datas e Impressões digitais, tanto para o seu cert e cert do TimeStamper. Você também recebe uma mensagem indicando o status da assinatura.

Foi útil?

Solução

Você é melhor fora selecionando um dos fornecedores de certificados confiáveis ??(VeriSign, Thawte, Comodo, etc.). Isso permite que você assinar o seu software sem que o usuário confiar explicitamente sua CA raiz privado Nós usamos tanto Verisign e Thawte, Comodo mesmo GoDaddy com timestamping sem quaisquer problemas com o software tornando-se mesmo anos inválidos depois que o certificado expirar.

Outras dicas

Tempo stamping é um serviço gratuito - é realmente apenas uma fornecedora confiável de verificar que você assinou o arquivo em um determinado momento. serviço timestamp da Verisign é o padrão. O último exemplo na ajuda para Set-AuthenticodeSignature demonstra como usá-lo.

Lee Holmes [MSFT] Desenvolvimento do Windows PowerShell Microsoft Corporation

Você não pode realmente escapar ter que renunciar código eventualmente. A vantagem de executar o seu próprio CA é que você pode optar por emitir os seus certificados de assinatura de código com vida útil mais longa do que o padrão, permitindo assim que você esperar mais tempo antes de ter que renunciar nada. A desvantagem é, naturalmente, ter outro serviço ou servidor (o seu CA) para lidar com eles.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top