.debパッケージに3つのチェックサムがあります。
なぜ3つのチェックサムが必要なのですか?これらのいずれかを使用して、Debianパッケージを一意に識別できますか?
はい、これらの合計のいずれかを使用してパッケージを識別できます。
Debianの初期の頃、aptの前、Ubuntuの前、dpkgがapexパッケージマネージャーとして地球を自由に移動したとき、Debianユーザーは手動でパッケージをダウンロードし、手動でmd5sumを実行して破損していないダウンロードを確認しました。 md5sumは約20年前に古くなりました。aptの初期の反復により、新しいリポジトリシステムの一部としてダウンロードが自動的に検証されるようになったためです。
Debianはmd5sumからより安全なsha1に移行し、その後、プロジェクトのセキュリティの達人が数十年にわたってますます大きなコンピューティング能力を使用してパッケージが高度な攻撃に対して脆弱になると判断したため、はるかに安全なsha256に移行しました。
ただし、古いハッシュも生成されなかった場合、多くのレガシーパッケージ方法(debhelperなど)およびインフラストラクチャ(aliothなど)がエラーをスローしました。レガシーインフラストラクチャの整理は複雑な問題です。それはコードではありません。自分のお気に入りのツールに依存していて、本当に変更したくないワークフローを設定した人たちです。彼らはボランティアなので、説得力のある変更が現実的な選択肢になることはめったにありません。そのため、インフラストラクチャのクリーンアップには時間がかかります。ただし、このコミュニティが積極的に変更について話し合い、変更が遅い場合があることを受け入れる意欲は、おそらくDebianの大きな強みの1つであることに注意してください。
いつかmd5とsha1はなくなるでしょう。しかし、Debianはまだそこにはありません。
これは実際には質問の答えにはなりませんが、「パッケージを識別する」とは非常に多くの異なることを意味する場合があるため、それでもいくつかの追加のコンテキストが評価される場合があります。ハッシュサムは、パッケージのコンテンツが説明(.dsc)ファイルと一致することを示しています。そして、はい、これらのハッシュのいずれかで、そのコンテンツが変更されたかどうかがわかります。
パッケージが開発者を去ったので内容がまだ同じであるかどうかはそれがあなたに知らせません。誰もがパッケージを思いついて、新しい.dscファイルを生成することができます。パッケージの署名をチェックして、パッケージが本来あるべきものであり、ハッシュに一致するかどうかを確認します。
自分でパッケージに署名し、自分の署名を信頼することもできます。このようにして、パッケージを変更できます。 .changesファイルは、バイナリをソースツリーにリンクします。これは、あなた(またはディストリビューションが悪魔をビルドする)がそれらを再構築したさまざまなハードウェアプラットフォームで機能的に同等のパッケージを「識別する」のに役立ちます。しかし、プラットフォームによって、バイナリのハッシュは異なります。
ほとんどのパッケージ管理の使用例では、パッケージ名+バージョンと署名の知識で十分です。これはまた、ハッシュが提供できない「より新しい」ハーフオーダーを提供します。