Ubuntu Linuxにプログラムをインストールする簡単な方法の1つは、ターミナルでコマンドを入力することですが、プログラムが信頼できるソースからのものであり、危険な場所からのものではないことをどうやって確認できますか?たとえば、ClamAVをインストールしている場合、ClamAVがwww.clamav.netまたは安全な場所にあり、悪意のあるソースからではないことをどうやって確認できますか?つまり、ハッカーはコマンドをリダイレクトして偽のサイトからソフトウェアを入手するために何かをすることができますよね?
多くの適切に設計されたシステムと同様に、Debianのパッケージシステムは多層防御を備えています。複数のレイヤーがあり、それぞれを検証できます。
システムが約束するパッケージファイルはどのように信頼するのですか?ハッシュ値が計算され、保存されている値と比較されます。
ハッシュ値が誤って他のファイルと一致しないことをどのように信頼しますか?複数のハッシュアルゴリズムが使用され、allが格納された値と一致する場合にのみ、コンテンツが実際に一致すると信頼します。
保存した値がダウンロードしたパッケージファイル用であることをどのように信頼するのですか?ハッシュ値は、アーカイブシステムによって自動的に事前計算された個別のファイル(さまざまなPackages.*
ファイル)にダウンロードされます。
ダウンロードされたPackages.*
ファイルは、システムが保証するものであるとどのように信頼しますか?各ファイルのハッシュ値は、アーカイブ全体の単一のRelease
ファイルに格納されます。
Release
ファイルがシステムによって約束されたものであることをどのように信頼しますか?暗号署名が計算され、アーカイブから個別にダウンロードされた事前計算された署名と比較されます。
アーカイブに保存されている署名が実際に期待したアーカイブのものであることをどのように信頼しますか?これは、別のURLから個別に取得できるアーカイブキーによって認定されており、オペレーティングシステムの初期設定でインストールされます。
等々。チェーンのある時点で、あなたは信頼する必要がありますsome理想的ではない証拠に基づいて、システムの一部(およびシステムに参加)。
上記のレイヤーを使用すると、証拠の低い信頼ウィンドウを小さく保つことができ、簡単に調査できます。一方向ハッシュと暗号化署名により、数学を信頼して、その後に続くものを証明することができます。
Debian wikiには APTシステムのセキュリティを確保する方法 の優れた包括的な説明があります。
もちろん、他の多くのことが誤ってまたは悪意によって失敗し、実際に何が起こっているかについての私たちの仮定に違反する可能性があります。いつものように、起こりうる攻撃に対する唯一の永続的な防御は、永遠の警戒です。
apt-getには、信頼できるgpgキーのリストがあります。 apt-get installは、通常はソフトウェアの作成者のサーバーではなく、リポジトリ(ミラー)サーバーからパッケージをダウンロードします。信頼性を確保するために、各パッケージはgpgで署名されています。パッケージは、署名が信頼できる場合にのみインストールされます。したがって、MITM攻撃の場合でも、パッケージが変更されると、署名チェックは失敗します。