13

コード署名証明書の有効期限が切れるとどうなるかを読んでいました-スタックオーバーフローと、より確かな答えについて疑問に思いました。提供された答えは、独自の CA のセットアップに関するものでした。独自の CA を使用しても、有効期限が切れるコード証明書を処理する必要があります。

タイム スタンプ サービスを使用せずにコードに署名した場合、証明書の有効期限が切れるとコードは信頼されなくなり、セキュリティ設定によっては実行が許可されない場合があります。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"

次に、署名者証明書とタイムスタンパー証明書を表示するには、次のようにします。

Get-AuthenticodeSignature MyFile.ps1 | fl *

サブジェクト (CN、OU など)、発行者、前後の日付、および証明書とタイムスタンプ作成者の証明書の両方の拇印が表示されます。署名のステータスを示すメッセージも表示されます。

4

3 に答える 3

10

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

于 2009-05-26T22:00:51.600 に答える
-1

最終的にコードを辞任しなければならないことから逃れることはできません。独自の CA を実行する利点は、デフォルトよりも長い有効期間でコード署名証明書を発行することを選択できることです。これにより、何かを再署名するまでの待ち時間が長くなります。もちろん、欠点は、別のサービスまたはサーバー (CA) に対処する必要があることです。

于 2013-04-30T16:51:41.547 に答える