2009-05-26 8 views
10

私はWhat happens when a code signing certificate expires - Stack Overflowを読んでいました。提供された答えは、あなた自身のCAの設定に関するものでした。自分のCAであっても、期限切れのコード証明書に対処する必要があります。1年または2年ごとに自分のコードに再署名する必要はありませんか?

タイムスタンピングサービスを使用せずにコードに署名した場合、証明書が期限切れになった後もコードは信頼されなくなり、セキュリティ設定によっては実行できなくなる可能性があります。新しい証明書ですべてのコードを再署名するか、更新された証明書で1年または2年ごとに再署名する必要があります。

信頼できる(デジタル)タイムスタンプでは、証明書自体の有効期限が切れた後でもデジタル署名を有効にすることができます。変更を加えた場合にのみ、新しい証明書でコードを再署名する必要があります。

これはすべて正しいのですか?もしそうなら、私はどのタイムスタンプサービスを使用するか、できれば実際に使用した人からの推奨が必要です。自分のCAと同様の社内ソリューションがあるかどうかを知りたいと思います。

これはPowerShellスクリプトに適用されますが、最終的に他のコードと同じ問題が発生します。

更新は:タイムスタンプ(あなたは、このためのスクリプトを作ることができる)とPSスクリプトに署名する方法のサンプル:署名者証明書とタイムスタンパー証明書を確認するために、次に

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" 

は、あなたが行うことができますこの:

それはあなたの件名(CN、OU、など)を与える
Get-AuthenticodeSignature MyFile.ps1 | fl * 

、発行者、前/後の日付、およびサムプリントあなたの証明書とタイムスタンパーの証明書の両方のために。また、署名の状態を示すメッセージも表示されます。

答えて

9

信頼できる証明書プロバイダ(Verisign、Thawte、Comodoなど)のいずれかを選択する方がよいでしょう。これにより、ユーザーがプライベートルートCAを明示的に信頼することなくソフトウェアに署名することができます。私たちはVerisignとThawteの両方を使用しました.CommodoでもGoDaddyでもタイムスタンプ付きで、証明書が失効してから数年後でもソフトウェアが無効になるという問題はありませんでした。

+3

+1:一般的な考え方:グローバルに信頼できるプロバイダを使用します。 –

+0

VerisignとThawteではタイムスタンプもありますか?タイムスタンプがなければ、一部のシステムが期限切れになっていることをクレームし、コードを実行しないでしょうか? – Bratch

+0

@Bratch:はい、タイムスタンプサーバーを使用する必要があります。私たちはそれがなくては公開しなかったので、タイムスタンプのないアプリケーションについてはコメントできません。 –

8

タイムスタンプは無料サービスです。タイムスタンプは、実際には、指定された時刻にファイルに署名したことを確認する信頼できるプロバイダです。 Verisignのタイムスタンプサービスは標準のものです。 Set-AuthenticodeSignatureのヘルプの最後の例は、Set-AuthenticodeSignatureの使用方法を示しています。

リー・ホームズ[MSFT] Windows PowerShellの開発 Microsoft Corporationの

+0

はい、そこには、例3の-TimeStampServerパラメーターがあります。今私がする必要があるのは、1つを選択して、それを内部CAで使用できるかどうかを調べることだけです。私はポール・アレクサンダーが上に示唆したことをして、外部のものを得る必要があるかもしれません。少なくとも、タイムスタンプサービスが証明書で動作することはわかっています。 – Bratch

-1

あなたは本当に最終的にコードを辞任する必要が逃れることはできません。独自のCAを実行する利点は、デフォルトよりも長寿命のコード署名証明書を発行することができるため、何かを辞める前に長時間待つことができるということです。欠点はもちろん、対処する別のサービスまたはサーバー(あなたのCA)を持つことです。

関連する問題