ダウンロードしたファイル(pgp、shaなど)のチェックサムを確認するにはどうすればよいですか?
How Verify Checksum Downloaded File Pgp
解決:
通常、これは、ダウンロードするファイルのチェックサムを表示する所有者側で開始されます。これは次のようになります。
md5:ba411cafee2f0f702572369da0b765e2
sha256:2e17b6c1df874c4ef3a295889ba8dd7170bc5620606be9b7c14192c1b3c567aa
使用しているオペレーティングシステムに応じて、必要なファイルをダウンロードしたら、そのハッシュを計算できます。まず、ダウンロードしたファイルのディレクトリに移動します。
ウィンドウズ
CertUtil-hashfileファイル名MD5 /
CertUtil-hashfileファイル名SHA256
Linux
md5sumファイル名/
sha256sumファイル名
マックOS
md5ファイル名/
shasum -256ファイル名
Webサイトからハッシュをチェックすることに伴う問題は、ファイルが安全にダウンロードできるかどうかを判断せず、ダウンロードしたものがバイトごとに正しいファイルであるということです。 Webサイトが侵害された場合、別のファイルのハッシュが表示される可能性があり、それが悪意のあるものになる可能性があります。
チェックサムvsハッシュvs署名
質問のタイトルにチェックサム、PGP、SHAについて言及していますが、これらはすべて異なるものです。
チェックサムとは何ですか?
チェックサムは、存在しなかったことを高い信頼度で検証するだけです。 腐敗 コピーされたファイルが元のファイルと異なる原因になります(「高」の定義が異なる場合)。一般に、チェックサムは次のことを保証するものではありません。 意図的に 変更は行われず、多くの場合、同じチェックサムを使用したままファイルを変更するのは簡単です。チェックサムの例は、CRC、Adler-32、XOR(パリティバイト)です。
暗号化ハッシュとは何ですか?
暗号化ハッシュは、単純なチェックサムに追加のプロパティを提供します(すべての暗号化ハッシュをチェックサムとして使用できますが、すべてのチェックサムが暗号化ハッシュであるとは限りません)。
暗号化ハッシュ(壊れたり弱くなったりしていない)は、衝突や原像耐性を提供します。衝突耐性とは、同じハッシュを持つ2つのファイルを作成できないことを意味し、原像耐性とは、特定のターゲットファイルと同じハッシュを持つファイルを作成できないことを意味します。
MD5とSHA1はどちらも衝突に関しては壊れていますが、原像攻撃に対しては安全です(誕生日のパラドックス衝突のため、衝突の生成ははるかに簡単です)。 SHA256は今日一般的に使用されており、両方に対して安全です。
暗号化ハッシュを使用して整合性を検証する
ハッシュを使用してファイルを検証する場合は、 しなければならない からハッシュを取得します 分ける 信頼できるソース。ファイルをダウンロードしているのと同じサイトからハッシュを取得しても、何も保証されません。攻撃者がそのサイトのファイルを変更したり、接続を傍受して変更したりできる場合は、ファイルを悪意のあるバージョンに置き換えて、一致するようにハッシュを変更するだけです。
攻撃者が正当なファイルを変更できる場合(たとえば、一見無害なバグ修正に貢献する場合)、衝突耐性のないハッシュを使用すると問題が発生する可能性があります。彼らはオリジナルに無実の変更を加えることができ、それによって悪意のあるファイルと同じハッシュが作成され、それがあなたに送信される可能性があります。
ハッシュを検証することが理にかなっている最も良い例は、ソフトウェアの信頼できるWebサイトからハッシュを取得し(もちろんHTTPSを使用)、それを使用して信頼できないミラーからダウンロードしたファイルを検証する場合です。
ファイルのハッシュを計算する方法
Linuxでは、md5sum
sha1sum、
sha256sumなどのユーティリティ。 Connor Jの回答は、Windowsの例を示しています。
署名とは何ですか?
チェックサムやハッシュとは異なり、署名には秘密が含まれます。ファイルのハッシュは誰でも計算できますが、署名は秘密を持っている人だけが計算できるため、これは重要です。
署名は非対称暗号化を使用するため、公開鍵と秘密鍵があります。秘密鍵で作成された署名は公開鍵で検証できますが、公開鍵を使用して署名を作成することはできません。このように、私が自分の鍵で何かに署名した場合、それが私であったことを確実に知ることができます。
もちろん、今の問題は、署名を検証するために正しい公開鍵を使用していることを確認する方法です。鍵の配布は難しい問題であり、場合によっては、ハッシュを使用していた場所に戻っても、別の信頼できるソースから鍵を取得する必要があります。しかし、この答えが説明しているように、あなたはそれについて心配する必要さえないかもしれません。パッケージマネージャーを介してソフトウェアをインストールする場合、または署名された実行可能ファイルを使用する場合、署名の検証は、プレインストールされた公開鍵を使用して自動的に処理される可能性があります(つまり、鍵の配布は、インストールメディアとインストールを行った人に対する暗黙の信頼によって処理されます)。
関連する質問
- ハッシュ値の代わりにGPG署名をファイル検証に使用するのはなぜですか?
- sha1sumは、ダウンロード可能なソフトウェアパッケージの署名に対して引き続き安全ですか?
- 攻撃者は、ダウンロード、ダウンロード、および公開鍵のハッシュを置き換えることができますか?