ブラウザでダウンロードファイルのSHA-256チェックサムを確認する方法
チェックサムは、ファイルの内容から計算される短い指紋のようなものです。ダウンロードしたファイルのハッシュを計算し、その結果が配布元の掲載値と一致すれば、ファイルは配布元がハッシュ化したものとバイト単位で同じです。1ビットでも違えば、指紋は完全に変わります。ファイルをハッシュ生成にドロップし、公開された値を貼り付けると、ツールがどのアルゴリズムで一致したかを表示します。
ハッシュ生成ダウンロードしたファイルは正しい?無料で使うチェックサムで確認できること
チェックサムは変更を検出するものです。途中で止まったダウンロード、不安定な回線や故障しかけたディスクで壊れたファイル、元とは異なるビルドを配信するミラーなどを見つけられます。これらのエラーは珍しくなく、ハッシュが一致すればそれらは除外できます。
ただし、配布元の信頼性を証明するものではありません。攻撃者がダウンロードページのファイルを差し替え、その横に表示されたハッシュも書き換えられるとします。両者が一致すれば、確認は通ります。チェックサムの信頼性は、ハッシュを入手した場所に依存します。意味のある確認にするには、ハッシュはファイルとは別の経路から取得すべきです。署名付きのリリース告知、GPG署名付きのチェックサムファイル、パッケージマネージャーの記録、または自分で入力したアドレスから開く配布元のサイトなどです。ファイルと同じリンクからコピーしたハッシュでは、本気で攻撃してくる相手にはほとんど効果がありません。
一致したハッシュは、プログラムの動作については何も示しません。配布元がハッシュ化したファイルを持っていることを確認するだけです。そのファイルが安全かどうかは配布元の問題であり、署名、提供元の評判、そしてプロジェクト自身の検証手順(ある場合)で判断します。
配布元がハッシュを掲載している場所
まずはダウンロードボタンの近くを確認しましょう。多くのプロジェクトは、ダウンロードページにSHA-256の値を表示しています。大規模なプロジェクトでは、SHA256SUMSなど名前の付いたファイルに、ダウンロードごとに1行ずつ記載して公開することが多く、その横に署名ファイルが置かれている場合もあります。ソフトウェアのプラットフォームによっては、ハッシュを自身のメタデータに載せています。READMEやリリースノートも、よく見られる掲載場所です。
アルゴリズム名も確認してください。SHA-256と書かれている行には、SHA-256のハッシュが必要です。これは16進数64文字です。32文字の値はMD5、40文字の値はSHA-1です。ツールもあなたも、どちらのアルゴリズムと比較しているかを把握しておく必要があります。
4つの手順でハッシュを比較する
- 公式ページからファイルを一度ダウンロードします。
- ハッシュ生成を開き、ファイルを選んでファイルをドロップします。処理が終わるまで待ちます。非常に大きいファイルは時間がかかることがあり、ブラウザがメモリに保持できる量を超える場合もあります。
- 公開されたハッシュを期待するハッシュ(任意)に貼り付けます。大文字と小文字、スペースは無視されるため、ページからコピーした大文字の値もそのまま使えます。
- 一致する値を確認します。ツールは一致したアルゴリズムを表示します。どれも一致しない場合は、ファイルを実行しないでください。もう一度ダウンロードします。2回目も一致しなければ、公開された値とファイルが食い違っているので、どちらが正しいのか配布元に問い合わせてください。
ターミナルを使う場合も、同じ確認は1つのコマンドで済みます。Linuxではファイルに対してsha256sumを実行します。macOSではshasum -a 256で同じ結果が得られます。Windows PowerShellでは、ファイルパスを指定してGet-FileHash -Algorithm SHA256を使うと値が得られます。出力は、ツールが表示するものと同じ16進数の文字列です。
ハッシュは、公開された値との照合だけに使うものではありません。ファイル破損チェックも同じ考え方でファイルが壊れているかを判定します。また、重複ファイルを検索も、ハッシュを比較してフォルダー内の同一のコピーを見つけるという同じ方法で行われます。
入力したテキストのハッシュ化
テキストモードでは、入力または貼り付けた内容をハッシュ化します。まずテキストをUTF-8のバイト列に変換します。テキストボックスは改行をLFとして保持するため、貼り付けたテキストは、どのシステムから来たものでもLF改行でハッシュ化されます。Windowsで保存されたファイルは通常、各行の末尾がCRLFになっており、そのバイト列はハッシュ値が異なります。そのため、配布元がファイルのハッシュを示している場合は、ファイルモードを使い、ファイル自体をハッシュ化してください。2つのバージョンのどこが違うかを正確に確認したい場合は、テキストを比較で変更点を並べて表示できます。
MD5とSHA-1が弱い理由
このツールがMD5とSHA-1に対応しているのは、古いダウンロードページが今でも多くこれらを掲載しているからです。破損の検出には問題ありません。偶然の変更によって、たまたまMD5やSHA-1の一致値になることは極めてまれです。
攻撃者に対しては、安全とはいえません。衝突とは、異なる2つの入力が同じハッシュになることです。現在はMD5の衝突を安価に作ることができるため、セキュリティ目的でMD5に頼るべきではありません。SHA-1の衝突は2017年に公開で実証され、ブラウザや認証局は、その後SHA-1による署名を廃止しています。配布元がMD5かSHA-1しか提供していない場合は、SHA-256か署名付きのチェックサムファイルを求めてください。誰かがファイルを意図的に改ざんするおそれがある場合は、SHA-256以上を使用してください。執筆時点では、SHA-256を実際に破る既知の攻撃はありません。どれを選ぶべきかは、アルゴリズムの解説をご覧ください。
よくある質問
一致するハッシュは、ファイルが安全であることを意味しますか。 意味するのは、そのファイルがハッシュ化された本物のファイルであるということだけです。安全かどうかは、ハッシュの入手元が信頼できるかによります。
2つの異なるファイルが同じSHA-256になることはありますか。 実際にはありません。執筆時点で、そのような組を見つける実用的な方法は知られていません。
コピーしたあとハッシュが一致しないのはなぜですか。 まずアルゴリズムを確認してください。次に、文字の欠落や余分な文字、途中で切れたコピーがないかを確認します。大文字と小文字、スペースは無視されるため、原因ではありません。
英語原文をもとに、AIの支援を受けて翻訳しています。
コメント
まだコメントはありません。最初のコメントを書いてみましょう。


