■「Hash It」はエクスプローラの右クリックメニューから、ファイルのMD5/SHA1ハッシュ値を簡単に取得できるフリーソフトである。
■ダウンロードしたファイルのハッシュ値を素早く確認し、オリジナルからファイルが改変されていないかを確認するような場合などに便利である。
|
フリーソフトやアプリケーションのアップデートファイルなどをWebサイトからダウンロードした際に、ダウンロードが正常に終了したかどうかを確認するのは、実はあまり簡単な作業ではない。ダウンロードしたファイルを実行してみたら正常にインストールプログラムが起動できず、はじめてファイルが正常にダウンロードできなかったとわかることが多い。一見正常にダウンロードできているように見えても、たとえば通信経路上で悪意のある改ざんが行われていないかを確認するのも非常に難しい。つまり、ダウンロードしたファイル(データ)の「完全性」を確認するのは、何らかのツールや証明手段を使う必要がある。
ハッシュ値が一致すればオリジナルと同じと証明
こうしたファイルの完全性を確保する有効な手段の1つがハッシュ値(あるいは単に「ハッシュ」)である。これは、ハッシュ・アルゴリズムに基づいた「ハッシュ関数」を使用してファイル(データ)のハッシュ値を計算し、そのハッシュ値を比較することで、それらのファイルが同じであることを確認するというものである。
ハッシュ関数でデータから計算して算出したハッシュ値は、通常は固定長のデータとなる。元データがたとえ一部でも異なれば、残りの大半の部分が同じでも、結果のハッシュ値はまったく違う値になる。異なるデータから算出したハッシュ値が同じ値になる可能性はあり得ないほど低く、ハッシュ値が同じになるデータならば、その内容も同じと考えてほぼ間違いない。また、結果のハッシュ値と利用しているハッシュ関数がわかっても、そこからは元となったデータを算出することはできないというデータの秘密を守れる不可逆性の特徴もある。
現在使用されている著名なハッシュ・アルゴリズムには、以下のようなものがある。
- MD5(Message Digest 5):元となるデータから128ビットのハッシュ値を生成する。広く使用されている。
- SHA-1(Secure Hash Algorithm-1):元となるデータから160ビットのハッシュ値を生成。MD5と同様に広く利用されている。
- SHA-224/SHA-256/SHA-384/SHA-512など:MD5やSHA-1に比べるとよりセキュアなハッシュ関数。今後主流になると思われる。
これまで主に利用されてきたMD5ハッシュ値(ハッシュアルゴリズム)には深刻な脆弱性が見つかっている。そのため、今後はよりセキュアなSHA-256などのアルゴリズムに置き換わっていくものと思われる。だが、現時点ではMD5やSHA-1がまだまだ広く利用されているようである。