Security Tips
 

ファイルハッシュ値の計算

りょうわ あきら
2004/6/2

 ダウンロードしたファイルの整合性・非改ざん性の確認のために、あるいはシステムファイルの同一性確認などの作業に、一方向性ハッシュ関数を応用したハッシュ値が利用されることが多い。

 ハッシュ値の計算には、md5sumなどのハッシュ計算コマンドが使われる。md5sumユーティリティは、一般的なLinuxディストリビューションに含まれている。またWindows用のものは、Forensic Acquisition Utilitiesなどに含まれているものを利用することができる。

$ md5sum -b targetfile
6f9e8d46c4e5afa1ee5a881114ee3b9e *targetfile
md5sumの実行例

 同じことはopensslコマンドを使用しても実行できる。opensslコマンドでは、MD2、MD4、MD5、MDC2、RMD160(RIPEMD160)、SHAおよびSHA1の6つのハッシュアルゴリズムが使用可能である。MD5以外のハッシュ値を計算したい場合に使用するとよいだろう。opensslも一般的なLinuxディストリビューションに含まれている。また Windows版バイナリはwww.stunnel.orgなどから入手することができる。

$ openssl sha1 targetfile
SHA1(targetfile)= 9b90064097ee3290b73dde4c72f1d4291c01ffdd
opensslによるSHA1の実行例

 単体ファイルのハッシュ値計算ではなく、ディレクトリ配下のファイルを再帰的に処理したい場合には、findコマンドを併用すればよい。

$ find ./ -type f -exec md5sum -b {} \; > ../otherpath/md5sum.txt
$ find ./ -type f -exec openssl sha1 {} \; > ../otherpath/sha1sum.txt
findの実行例

 findが使えないWindows XP/2000のコマンドプロンプトで同様の処理をしたい場合には、次の例のようにforを使用すればよい。

C:\somedir> for /r %i in (*) do openssl sha1 -hex "%i" >>\otherdir\sha1sum.txt
forの実行例

 Windows向けには、米Microsoftからファイルハッシュ値計算用のツールとしてMicrosoft File Checksum Integrity Verifierが公開されている。このツールでは、MD5とSHA-1のハッシュ値計算・照合ができる。また、ディレクトリ再起処理や結果のXML形式での保存も可能である。 詳しい使用法はMicrosoftサポート技術情報を参照されたい。

KB841290: Availability and description of the File Checksum Integrity Verifier utility
http://support.microsoft.com/default.aspx?scid=kb;en-us;841290

Security Tips Index



Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間