web-dev-qa-db-ja.com

さまざまなディストリビューションのパッケージに関するGPGチェック

さまざまなLinuxディストリビューションがgpgを使用して検証することは問題ありません。 httpでダウンロードされた新しいパッケージ。しかし、パッケージを保持しているサーバーがハッキングされた場合はどうなりますか? OK、新しいgpgキーが必要ですが、新しいgpgキーが有効なgpgキーであることをどのように保証しますか?新しいgpgキーがクライアントにダウンロードされるまで、有効なgpgキーはありません。そのため、[新しいgpgキーを含む]パッケージがgpgキーで「検証」されないウィンドウがあります。新しいgpgキーを「信頼できる」/安全な方法でクライアントに提供する方法はありますか?

2
LanceBaynes

パッケージを保持しているサーバーのみが侵害され、秘密署名鍵が侵害されていない場合、行うことはあまりありません。古いキーは引き続き有効であり、攻撃者によって変更されたパッケージはそのように検出されます。あなたの質問は、署名鍵が危険にさらされた場合にどうなるかということだと思います。

古いキーの有効期限が切れていない限り、人々は古いパッケージをダウンロードし続け、キーが危険にさらされていることに幸いにも気づきません。理想的には、パッケージ管理ツールは、キーが取り消されていないことを確認する必要があります(apt、yum、および友人がそれを行うかどうかはわかりません)。ただし、侵害に対応するための最初のステップは、古いキーで署名されたパッケージの配布を停止し、新しいキーで署名されたパッケージの配布を開始することです。したがって、悪意を持って変更されたパッケージは、更新される前にミラーにのみ残ります。

新しいキーで署名されたパッケージの受信を開始すると、パッケージが署名されていないことを通知するエラーメッセージが表示されます。これにより、何が起こっているのかを調べて新しいキーを取得しようとするように促されることを願っています。

侵害は、セキュリティメーリングリストやさまざまな業界ニュースチャネルでも発表されます。したがって、これらに従うと、通知が届きます。もちろん、これらにも注意する必要があります。攻撃者がリストサーバーまたは開発者のアカウントを侵害し、実際には自分の秘密鍵用の新しい公開鍵を使用して偽の鍵侵害警告を送信する可能性があります。

新しいキーを配布するための特効薬はありません。そもそもキーを配布するには、より正確には新しいキーの信頼を確立するために、信頼できるチャネルが必要です。これは、古いキーへの信頼を確立するのとまったく同じくらい困難です。 (言い換えると、ほとんどの人はHTTP Webサイトまたは署名されていないCDイメージから取得します。)Webサイト(およびサイトの証明書を作成したCA、および使用しているブラウザとその信頼できるベース!)は危険にさらされていません。または、鍵を持っている人を知っていて信頼している場合は、その人にそれを求めることができます。


上記では、パッケージが配布署名キーで直接署名される単純なモデルを想定して、大まかな意味で「パッケージ」を使用していることに注意してください。実際、一部のディストリビューション(APTを使用するすべてのディストリビューションなど)では、署名されるのはパッケージの暗号化チェックサムのリストを含むファイルであり、インストーラーがパッケージに期待されるチェックサムがあることを確認する2段階のプロセスがあります。リストに期待される署名があること。原則は同じです。キーを侵害した攻撃者は、悪意のあるパッケージと、侵害されたキーで署名された悪意のあるパッケージのチェックサムを含むリストファイルの両方を挿入します。解決するには、リストファイルとパッケージの両方を復元する必要があります。

新しい「信頼できる」キーを与える標準的なプロセスは、古いキーで署名されたパッケージを使用することです。古いキーを信頼する(そしてGPGを信頼する)場合、新しいキーは古いキーで署名されたパッケージで配布されます。これで、新しいものを使い始めることができます。

各パッケージの署名が正しいかどうかがチェックされるため、パッケージは安全でないサーバーに保持される可能性があります。

問題が発生するのは、パッケージの秘密鍵が危険にさらされている場合のみです。つまりすべてのパッケージに署名するマスターキー。 ( Debian SecureAptbuntu SecureAptFedora )。それが一度起こるとしたら、それは本当に醜いでしょう。

0
shellholic