ascファイルを提供すると、予想されるソースコードをどのようにダウンロードできますか?

ascファイルを提供すると、予想されるソースコードをどのようにダウンロードできますか?

cmakeをインストールしています。cmake.orgWebサイトでは、ソースコードのダウンロードを確認するために設計された2つのファイルを提供しています。cmake-3.11.0-rc3.tar.gz

同じページにダウンロードリンクがありますcmake-3.11.0-rc3-SHA-256.txtファイルとcmake-3.11.0-rc3-SHA-256.txt.asc文書

私が理解していないものは次のとおりです。

  1. 同じソース(cmake.org)のascファイルのソースコードの整合性を保証する方法は?本サイトで提供するソースコードが漏洩した場合、攻撃者はascファイルも漏洩できないだろうか?
  2. ソースコードのダウンロードを実際に認証するために公開鍵は必要ありませんか? ascファイルが公開鍵でなければならないと思います。ただし、次のようにascファイルをインポートしようとすると

    gpg --import cmake-3.11.0-rc3-SHA-256.txt.asc
    

    「有効なOpenPGPデータが見つかりません」というエラーメッセージが表示されます。

答え1

.ascファイルの内部を見ると、次から始めるのがわかります。

 -----BEGIN PGP SIGNATURE-----

だからこれはPGPです兆候。これは、特定のPGPキーを使用して特定のコンテンツに署名することを意味します。

1) 内容

名前で判断すると、コンテンツは.txtダウンロードするソフトウェアに対応するファイルのリストであるfileであり、各ファイルには対応するハッシュ値があります。

2) 署名

これら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 信頼モデル ネットワークが行われる場所です。ここで詳しく説明するには長すぎますが、簡単に言えば、理想的には帯域外キーにアクセスでき、それを認証する方法があるか、知っている人の他のキーがあります。その人自身が別のキーを確認しました。および/またはHTTPS(信頼できる証明書とCAを使用)を介して安全で可能な場合は、DNSSECを使用して1つ以上の場所でオンラインで検索できます。

公開鍵があり、それが偽ではなく良いものであると思う場合(通常はダウンロードしようとしているツールのソフトウェア開発者に相当)、上記のコマンドはファイルが改ざんされていないことを.txt示しています。これにより、アーカイブされたすべてのファイルのハッシュが提供されるため、そのファイルをダウンロードしてハッシュアルゴリズム(ファイル名にSHA256が書き込まれます)を再実行して、ファイルに保存されている値と比較できます。

誰かがサーバーを破損し、いくつかのアーカイブを変更した場合は、あなたが言ったように、.txtこのファイルが実際に一致するかどうかを信頼できるように、新しいハッシュにファイルを変更することもできます。ただし、この第三者はPGP署名を持つ正しいファイルを生成できません.asc(この場合、gpg --verify無効な署名のエラーが発生します)。これには秘密鍵にアクセスする必要があるからです。秘密鍵ではなく、適切に保護されました。とにかくWebサーバーに保存されます。別のキーを使用して生成すると、この不明なキーは信頼できないために表示されます。

もちろん、キー自体が損傷すると、モデル全体が崩れます。

関連情報