web-dev-qa-db-ja.com

キーを手動でインポートする必要がある場合があるのはなぜですか?

AURには多くのパッケージがあり、それらをインストールしようとすると、次のようなエラーが発生します。==> ERROR: One or more PGP signatures could not be verified!

これは、gpg --recv-keys 123456789ABCDEFのようなキーをインポートすることで解決されます。 AURの議論が鍵を提供することがよくあります。

これについていくつか質問があります。

  1. これらのキーは正確に何をしますか? GPGで何が検証されており、なぜそれが必要なのですか?

  2. なぜ手動でキーをインポートする必要があるのですか?なぜ自動化できないのですか?

  3. AURコメントスレッドからやみくもにキーをインポートするのが悪い場合、キーを「検証」するためにどのような手順を実行する必要がありますか?

  4. コメントに誰も投稿する気がなく、コメントを投稿する時間がなく、メンテナが返信してくれることを期待している場合、どこでキーを見つける必要がありますか?

オンラインで検索すると、 よく知られているブログ投稿 への参照が見つかりました。何度か注意深く読んだ後でも、私はまだ上記の点を理解していないと言って悲しいです。

2
Bagalaw

これらのキーは正確に何をしますか? GPGで何が検証されており、なぜそれが必要なのですか?

キーは、ダウンロードしているソフトウェアが、攻撃者によって正常に侵入された可能性のあるリポジトリサーバーからのトロイの木馬マルウェアではなく、パッケージの作成者が意図したものであることを確認するために使用されます。または、攻撃者がダウンロード要求を本物のAURリポジトリではなく偽装したマルウェアリポジトリにリダイレクトする可能性があります。 GPGによる検証では、攻撃者がソフトウェアリポジトリをマルウェア配布チャネルとして正常に使用することは非常に困難です。

なぜ手動でキーをインポートする必要があるのですか?なぜ自動化できないのですか?

特定のソフトウェアの作成者/パッケージャを信頼するかどうか、および受け取った鍵が詐欺師からではなく本物であるという目的に十分な自信があるかどうかについて、意識的に選択する必要があります。

必要な信頼と信頼のレベルは、あなたがしていることによって異なります。楽しみのためのプライベートホームシステム、ビジネスのために他の人の健康やクレジットカード情報を処理するサーバー、国家ミサイル防衛システムのための補助サポートサーバーそれぞれに多少異なる要件があるはずです。

AURコメントスレッドからやみくもにキーをインポートするのが悪い場合、キーを「検証」するためにどのような手順を実行する必要がありますか?

鍵がすでに持っている他の人によって署名されており、少なくともGPG鍵の署名に関してはその人の判断を信頼している場合は、その鍵がおそらく本物であるという証拠と見なすことができます。それ以外の場合は、複数の異なるソースからキーを取得して、結果を比較してみてください。それがあなたにとって十分に重要であるならば、あなたはあなたが正しい鍵を持っているというより強い確認を得るために開発者に電話するか会うかもしれません。

コメントに誰も投稿する気がなく、コメントを投稿する時間がなく、メンテナが返信することを期待している場合、どこでキーを見つける必要がありますか?

広く使用されることを目的としたGPG公開鍵は、SKSキーサーバーで一般的に公開されています。正しい鍵がない場合、パッケージツールは必要な鍵のkeyIDを表示できるはずであり、それを使用して検索できます。キーサーバーのキー。

SKSキーサーバーネットワークの詳細については、こちらを参照してください: https://sks-keyservers.net/

KeyIDをグーグルで検索することもできます。

3
telcoM

TL; DR-新しく拡張され自動化された「ダウンロードのmd5sumをWebサイトに投稿されたリストと照合する」

署名は、パッケージが作成されてから変更されていないことを保証する、誰がパッケージに署名したかをデジタルで確認するものです。通常、パッケージメンテナーまたはリリースマネージャー、あるいはディストリビューションコアプロジェクトメンテナンスグループの「権限」の誰かによって署名されます。本質的に、これはインストールしようとしているものに対する拡張され自動化された整合性チェックです-新しい「ファイルのリストのmd5sumハッシュを投稿しました。ダウンロードしたものをこれらと比較する必要があります」。

それが機能する方法は公開/秘密鍵です-私はパスワード(良い強力なもの)で秘密鍵を作成し、それを使って公開鍵を生成します。公開鍵を配ることができます。私はパッケージを生成して署名します。インストールすると、ABC321FFに一致する公開鍵、または署名を検証するために必要なものが何であるかが通知されます。キーをインポートすると、側のソフトウェアは、識別ハッシュが同じであること、およびハッシュが私の秘密キーによって署名されていることを確認できます。

リポジトリからシステムにソフトウェアを追加する際のセキュリティ上の懸念は、「このソフトウェアの背後にいるのは誰か-ああ、そして鍵も」です。それがディストリビューションのキーである場合(一部のリリースには独自のキーがあるか、新しいキーが取り消されて作成されている)、問題ではありません。とにかく、ディストリビューションからソフトウェアを実行しています。サードパーティのリポジトリ(UbuntuやプロジェクトPPAなど)に入ると、それぞれのキーをインポートすることになり、これが懸念事項になる可能性があることに注意してください。

あなたが知っておくべきことは、そのキーは、そのキーが署名した他のすべてのものに対してちょうど機能するようになるということです。パラノイアのレベルによっては、必要に応じてキーを追加し、パッケージのインストールが完了したら、信頼できるキーのリストからキーを削除することをお勧めします。もちろん、頻繁に更新することで、更新する作業と手順が増えます。

そして、あなたがそのキーが何か厄介なものに署名することについてその妄想的であるならば、あなたはおそらくそのリポジトリから何かを進んでインストールしようとすべきではありません。

1
ivanivan