これはオペレーティングシステムに大きく依存するので、一般的な答えはありません。
Arch Linuxでは パッケージはPGPを使って署名されています - オリジナルの作者(ソースコードのみを提供している人)ではなく、 包装業者 (誰がソースコードをプログラムにコンパイルし、そして署名されたパッケージを作成します)。
署名は、パッケージデータベース内に残りのパッケージ情報と共に保存されます。 (サードパーティ製パッケージの場合 - あなたがダウンロードしたときに .pkg.tar.xz
ファイル - 署名は1秒以内になります .pkg.tar.xz.sig
データベース自体に署名することはできますが、通常はそうではありません。
pacman
Arch Linuxでは、の鍵に対する署名を検証します。 /etc/pacman/gnupg.d
(を使用して管理 pacman-key
;署名者の鍵をまだ持っていない場合は、署名者の鍵をダウンロードするよう要求します。 キーサーバー 。中心となる「認証局」はありません - PGPはWeb of Trustアルゴリズムを使用しており、誰かの鍵の有効性は他の人がその鍵に署名した内容によって異なります。 (例えば、すべての公式開発者キーは5つの「マスターキー」によって署名され、マスターキーは「信頼できる」とマークされているため、すべての開発者キーもパッケージマネージャによって信頼されます。システム、 archlinux-keyring
パッケージ。)
PGPでは、CAが存在しないため、鍵はその所有者のみが失効させることができます。新しい署名や失効について調べるには、キーサーバーからキャッシュされたキーを定期的に更新する必要があります。 gpg --refresh-keys
あなた自身のキーリングのためにこれをします pacman-key --refresh-keys
パッケージの検証に使用されるキーリングを更新します。
Ubuntuでは 、PGPも使用されていますが、多少異なります。パッケージ自体はほとんど署名されず、パッケージデータベース内のハッシュサムに対してのみ検証されます。これは自動プロセス(「Debianアーカイブ自動署名キー」または「John Smith用のランチパッドPPA」などのキーを使用)によって署名されます。 。
署名はローカルの鍵リングに対しても検証されます( /etc/apt/trusted.gpg
、を使用して維持 apt-key
) - しかしArchとは異なり、Ubuntuパッケージマネージャは鍵の署名を無視して信頼します。 すべて そのキーリングのキー、つまり自動的にキーをダウンロードすることはなく、キーを更新する必要もありません。オフィシャルキーは、さまざまな場所にプレインストールされています。 foo-keyring
パッケージ( debian-keyring
これらのキーの1つが無効にされた場合、アップデートされたパッケージはそれを削除します。
Windowsの場合 つまり、プログラムは「Authenticode」を使って署名することができます。これは基本的にコード署名に使われるX.509です。署名と署名者自身の証明書は、プログラムの内部に埋め込まれています。 .exe
ファイル。 (X.500はかつて持っていた当初の計画にもかかわらず、PGPとは異なり、X.509には鍵サーバーがないため、証明書を添付する必要があります。) Linuxとは異なり、ほとんどのWindowsプログラムは作成者によってコンパイルされた形式で配布されているため、.exeファイルは作成者によって直接署名されています。
発行者の証明書は、信頼できる認証局のローカルデータベースに対して検証されます。 Windowsでは、あなたはそれを見ることができます certmgr.msc
- 含まれる証明書は、CAからの要求に従ってマイクロソフトによって決定されます。 (注:おそらく、Windows 7は必要なときに必要なCA証明書をダウンロードできるので、証明書マネージャーのリストは不完全な可能性があります。)
署名の検証中に、Windowsは発行者のOCSPサーバーに連絡して、証明書がまだ失効していないかどうかを確認します。 (OCSPサーバアドレスは通常、発行者の証明書の一部です。)つまり、失効は最初に証明書を発行したのと同じCAによって処理されます。 (注:デフォルトでOCSPチェックが有効になっているかどうかはわかりません。有効にするか無効にするかのオプションがあります。 コントロールパネル→インターネット→詳細設定→セキュリティ 場合によっては、マイクロソフトは既知の偽の証明書を「信頼できない」とマークし、CAリストの定期的な更新と同じ方法で配布します。に certmgr.msc
この方法でいくつかの証明書が失効したことがわかります。
一部のブラウザ(OperaやFirefoxなど)には、独自のCA証明書データベースがあります。これらはWindowsでは使用されていません。一方、Internet ExplorerとGoogle Chromeは同じWindowsデータベースを使用します。