web-dev-qa-db-ja.com

プログラムの署名が期限切れになるとどうなりますか?

署名の有効期限後もプログラムをインストールできますか?または、再度署名する必要がありますか?

15
Michael S.

署名の形式によって異なります。

基本的な署名(PGPなど)は、対応する証明書の有効期限が切れたり失効したりすると有効でなくなります。これは、署名が作成されたかどうかを知る方法がないためですbefore or after expiry –署名が署名者自身のコンピューター上で作成されたため、非常に簡単にカスタム日付を設定できました。

(たとえば、署名鍵が盗まれて火曜日に取り消されたことが判明した場合、金曜日に行われた署名は無効である必要があります–しかし、誰がそれを盗んでも署名を月曜日に戻すことができます。) =

ただし、Authenticode(WindowsおよびUEFIで使用)などの一部の形式では、この問題を回避するために timestamping を使用します。ダウンロードするほとんどの.exeファイルにはタイムスタンプが付けられています。つまり、署名自体は、常に正確な時刻を含む外部のタイムスタンプサービスによって副署名されています。そのようなタイムスタンプが存在する場合、証明書wasが署名時に有効であることを知っているため、署名は永久に有効なままです。

たとえば、 ここにファイル はOffice 2003に属しており、その署名証明書はその年の後半に有効期限が切れますが、署名はVeriSignによってタイムスタンプが付けられ、引き続き有効です。

(もちろん、通常のアプリケーションに関しては、署名が有効でなかったとしても、チェックを完全にバイパスして、まったく署名されていないかのようにプログラムをインストールすることができます。タイムスタンプは、ドライバーやその他にとってより重要です署名が必須のファイル。)

19
user1686

署名の目的は、署名後にプログラムが改ざんされていないことを示すことです。マルウェアを挿入するなどして何らかの方法で変更すると、保護署名が破られます。

署名は、プログラムが安全であることを証明するためのものではなく、署名後に変更されていないことを意味します。

署名の有効期限が切れていても、開発者が秘密鍵を安全に保持している限り、署名が信頼できないことを意味するわけではないため、ファイルを変更して署名を改ざんすることはできません。開発者は自分のキーを更新しておらず、新しいキーで再署名していません。

証明書が信頼できる認証局(CA)からのものである場合、開発者のIDは発行前に検証され、詳細は証明書自体の内部に保存されます。これらの詳細は、証明書が発行された時点では正しく、現在と同じくらい信頼できます。

回答:プログラムは安全にインストールして使用でき、その署名は信頼できます(例外的によく公開されている場合を除く)。

7
harrymc