web-dev-qa-db-ja.com

apt-getはダウンロードされたファイルの整合性をどのようにチェックしますか?

暗号化がapt-getネットワークアクティビティに通常展開されない理由について読んでいます。そして、それがリポジトリから来るデータの署名をチェックすることを学びましたね?

しかし今、このチェックはどのように行われますか?本当に安全にするためにどのように行われていますか?たとえば、ファイルとキーがサーバー内にあり、暗号化されていない方法で送信された場合、それはどのように機能しますか?誰かが両方を変更する可能性があります...

ありがとう:)

1
user512585

Aptリポジトリのルートには、Releaseファイルがあります。このファイルには、さまざまなContentsRelease、およびPackagesファイルの hashes が含まれています。 Packagesファイルには、個々の.debパッケージファイルのハッシュが含まれています。ルートReleaseファイルと同じ場所にRelease.gpgファイルがあります。このファイルにはReleaseファイルの [〜#〜] gpg [〜#〜]デジタル署名 が含まれています。 、リポジトリメンテナに属する 秘密鍵 で作成。

apt-getがリポジトリのReleaseファイルをダウンロードすると、デジタル署名の検証が自動的に試行されます。署名が作成されたキーペアの公開キーがシステムに登録されていない場合は、承認するように求められます。この時点で、リポジトリメンテナまたはサードパーティに連絡して、フィンガープリントを比較することにより、公開鍵が本物であることを確認できます(または、公開鍵の本物のコピーがある場合は、apt-keyを実行する前にapt-getで追加できます)。 、リポジトリからapt-getがダウンロードしたファイルは、ReleaseまたはPackagesファイルのチェックサムと照合されます。

ReleaseファイルとPackagesファイルのハッシュは、aptの通常のデータ整合性機能です。 GPG署名の追加は、 debian 呼び出し SecureApt の一部です(詳細については、そのリンクを参照してください)。

6
rakslice