回答:
ミラーのコンテンツは、PGPキーを使用して、直接的または間接的に署名されます。Debianディストリビューションの「ルート」から始めます。
Release
は、の分離署名で署名されてRelease.gpg
おり、すべてのパッケージインデックスのハッシュ(MD5、SHA1、SHA256)とインストーラーハッシュ(InRelease
現在は2つを組み合わせたもの)を含んでいます。binary-amd64
)パッケージのハッシュ(MD5とSHA256)を含有します。ハッシュと署名はapt-get
、システムに保存されているPGP鍵(によって管理されるapt-key
)を使用するなどのツールによってチェックされます。受信システムが健全である限り、アーカイブPGPキーで(間接的に)署名されていないパッケージは、デフォルトではDebianアーカイブからインストールできません。ミラーの侵入者は、関連するPGPキーの制御も持っていないと、バイナリを置き換えることができません。
つまり、アーカイブを危険にさらすだけでは、実際にエンドユーザーのシステムを危険にさらすことはできません。また、これらのシステムがすでに信頼しているPGPキーを侵害する必要もあります。(これの当然の結果として、Debianシステムにキーを追加することは軽視するものではありません。)アーカイブのセキュリティはそれほど重要ではないので、これはある程度最初の質問に対処します。それでも、重要なシステム(署名が行われる場所)は厳密に監視および監視されており、アクセスできる人はほとんどいません。
パッケージが「実際、メンテナーがそう思っているもの」であることを保証することは、もう少し複雑です。これは、パッケージがたどるパスです。
メンテナがパッケージソースとともにバイナリをアップロードする場合、これらは(当面の間)提供されることになるファイルです。現在、バイナリのアップロードはオプションであるため、それらをスキップすることがますます一般的になり、最終的にアップロードされたバイナリはドロップされます。(Ubuntuでは常にそうでした。)他のバイナリがメンテナの期待と一致するかどうかは、builddネットワークに依存します。そのため、builddも重要なシステムであり、厳密な監視の下、人間のアクセスはほとんどありません。すべてのアーティファクトが署名されているため、ファイルの整合性を常に検証できます。最初にメンテナのキーに対して、次にbuilddsのキーに対して、最後にアーカイブのキーに対してです。
plugwashで指摘されているように、元の署名はミラーで利用できず、DDは不足しているバイナリをアップロードできます。元の署名はdebian-devel-changesアーカイブから取得できます。
要約すると、現在のシステムは完全ではありませんが、ミラーからダウンロードできるすべてのファイルのトレーサビリティを提供します。状況を改善するために多くの努力があります:再現可能なビルド(公開されたソースへのバイナリの対応の独立した検証を可能にします)、メンテナが提供するバイナリを削除します...
apt-get
これらを信頼するため、これらの事前に埋め込まれた鍵を使用してパッケージを検証しますか?
debian-archive-keyring
パッケージで出荷されます。これらのキーを使用してファイルをapt-get
検証Release
し、Release
およびPackages
ファイルに含まれているハッシュを使用してパッケージを検証します。