MD5ファイルチェックサム

MD5チェックサムでダウンロードやファイル転送後の整合性を検証する方法を解説。md5sumの使い方、改ざん防止の限界、SHA-256チェックサムを推奨する場面を学びます。

MD5

詳細な説明

MD5チェックサムはファイルの内容から計算される128ビットのハッシュ値で、ダウンロード、転送、保存中にファイルが破損していないことを検証するために使用されます。MD5チェックサムはソフトウェア配布の標準的な手法でしたが、SHA-256チェックサムへの置き換えが進んでいます。

MD5チェックサムの仕組み:

ファイル全体がバイトストリームとして読み取られ、MD5アルゴリズムで処理されて32文字の16進数文字列が生成されます。この文字列がファイルのフィンガープリントとなります。ダウンロード後、ローカルでMD5チェックサムを計算し、公開されたチェックサムと比較します。一致すればファイルは無傷です。

実際の使い方:

LinuxとmacOSではmd5sumコマンド(macOSではmd5)でファイルチェックサムを計算できます。Windowsではcertutil -hashfile filename MD5またはPowerShellのGet-FileHashが使用できます。多くのダウンロードページではダウンロードリンクの横にMD5チェックサムが表示されています。

セキュリティの限界:

MD5チェックサムは偶発的な破損のみを検出でき、意図的な改ざんには対応できません。MD5衝突の生成が容易なため、ダウンロードサーバーを制御する攻撃者は同じMD5チェックサムを持つ悪意あるファイルに置き換えることが可能です。研究者は同一のMD5ハッシュを持つ異なる実行ファイルの作成を実証しています。

現代の推奨事項:

偶発的な破損の検出(ビット反転、不完全な転送)にはMD5チェックサムで十分です。セキュリティ重視の検証にはSHA-256チェックサムを使用してください。可能であれば、ダウンロードとは異なるチャネル(GPG鍵で署名されたチェックサムなど)でチェックサムを検証してください。

ユースケース

MD5チェックサムはソフトウェアダウンロード(Linux ISO、オープンソースリリース)とともに公開され、転送中にファイルが破損していないことを検証するために使用されます。

Try It — Hash Generator

フルツールを開く