cmake.org Webサイトからcmakeをインストールしていますが、ソースコードのダウンロード cmake-3.11.0-rc3.tar.gzを検証することを目的とした2つのファイルが提供されています。
同じページに、 cmake-3.11.0-rc3-SHA-256.txtをダウンロードするためのリンクがあります。 ファイルとcmake-3.11.0-rc3-SHA-256.txt.asc ファイル
私が理解していないのは:
- 同じソース(cmake.org)のascファイルは、どのようにしてソースコードの整合性を保証しますか?サイトが提供するソースコードが侵害された場合、攻撃者はascファイルも侵害できませんでしたか?
-
ソースコードのダウンロードを真に検証するために公開鍵は必要ありませんか?そして、ascファイルが公開鍵になるはずだと思いました。ただし、ascファイルをインポートしようとすると
gpg --import cmake-3.11.0-rc3-SHA-256.txt.asc
「有効なOpenPGPデータが見つかりません」というエラーが表示されます
承認された回答:
.asc
の内部をご覧ください ファイルの場合、次で始まることがわかります:
-----BEGIN PGP SIGNATURE-----
つまり、これはPGP署名です。 。これは、特定のPGPキーを使用してコンテンツに署名することを意味します。
1)コンテンツ
名前に基づくと、コンテンツはファイル .txt
です。 、ダウンロードするソフトウェアに対応するファイルのリストであり、各ファイルには対応するハッシュがあります。
2)署名
gpg
を起動した場合 両方のファイルで、結果は次のとおりです。
$ gpg --verify cmake-3.11.0-rc3-SHA-256.txt.asc cmake-3.11.0-rc3-SHA-256.txt
gpg: Signature made Fri Mar 9 10:29:10 2018 EST
gpg: using RSA key 2D2CEF1034921684
gpg: Can't check signature: No public key
では、すべてはどのように機能しますか?キー2D2CEF1034921684
を持っているはずです ローカルキーチェーンで。どうやってそれを手に入れますか、そしてもっと重要なことはあなたが適切なものを手に入れることを確実にすることですか? (IDだけでは不十分です)。ここで、OpenPGPのWebofTrustモデルが実行されます。ここで詳しく説明するには長すぎますが、要するに、帯域外のキーにアクセスして、それを認証する手段があります…または、自分が他のキーを認証したことがわかっている誰かの他のキーを認証する手段があります。および/または、HTTPS(信頼できる証明書とCAを使用)、理想的にはDNSSECで保護された、1つまたは複数の場所でオンラインで見つけることができます。
公開鍵を持っていて、それが適切で偽造されていないことを信頼している場合(通常、ダウンロードしようとしているツールのソフトウェア開発者に対応している場合)、上記のコマンドは.txt<を示しています。 / code> ファイルは改ざんされていません。次に、これによりすべてのアーカイブファイルのハッシュが得られるため、ダウンロードしてハッシュアルゴリズム(ファイル名に記述されているSHA256)を再実行し、ファイルに保存されている値と比較できます。
誰かがサーバーを危険にさらし、いくつかのアーカイブを変更した場合、あなたが言うように、 .txt
も変更する可能性があります。 ファイルが一致すると信じられるように、新しいハッシュを使用してファイルを作成します。
ただし、このサードパーティは適切な .asc
を生成できません。 PGP署名付きのファイル( gpg --verify
無効な署名についてエラーが発生します)。これを行うには、適切に保護され、Webサーバーに保存されていない秘密鍵にアクセスする必要があるためです。
また、別の鍵で生成された場合この不明なキーを信頼しないため、表示されます。
ただし、もちろん、キー自体が危険にさらされると、モデル全体が崩壊します。