« 私がiPad/iPhoneなどのアップル製品を使わない理由 | トップページ | リスクセパレータ環境づくり(2):個人単位 シミュレート編 »

2014年7月26日 (土)

そのファイルは本物か?〔MD5 / SHA〕〜ごまかせないハッシュ値〜

【MD5ってなんやねん?】

ネットからファイルをダウンロードするときなど、ファイル名付近に「ランダムなよくわからない長い文字列」がセットで載せられていることがある。

Url_03_r

Url_07_r

Md5_k3b_r

大概がこのランダムな文字列の頭に「MD5」や「MD5SUM」などのよくわからん用語が付いていると思う。

これらの文字列は、MD5の「ハッシュ値」と呼ばれ、ただのランダムな文字列ではない。ある計算結果によって導きだされた16進数になっている。

使いようによっては非常に役に立つものなのだが、意味を知らなければ、せっかくハッシュ値が公開されていても全くの無用の産物だったりする。
 
 
 
【ハッシュ値とは?】 

結論から言うと、「電子データ、ファイル、ドキュメント、数字などの文字列の羅列から『ある計算手続き』によって導きだされる値のこと」だ。

そして、この「計算手続き」によって得られるハッシュ値の特徴として、同一のデータ(ファイル)からは同一のハッシュ値が導きだされる

02_hash

 

ちなみに先に述べたMD5というのは、この「ある計算手続き」の「計算方式(アルゴリズム)の1つ」のことで、他にも、「SHA-1」「SHA256」などの「SHA系」などがある。

Url_00_deb_r
  
これら、ハッシュ値。
実はさまざまな所で、非常に重要な役割を担っている。

 

 

【どのようなことに使われるか?】
 
仮に元のデータ(ファイル)が「1bitでも違う」と「全く違うハッシュ値」になるため、

・ファイルの破損チェック
・電子署名

等に利用される。

性質上、ファイルの同一性の確認ができるため、「ファイルの改竄」「ニセモノ」や「騙り」等のチェックにも利用される。(※2)

ただし、オリジナルファイルのハッシュ値がわかればのことだが。

「オリジナルファイルのハッシュ値」と「手元にあるファイルのハッシュ値」を比較して、ハッシュ値が同一であれば、元のオリジナルファイルと全く同一である。逆にハッシュ値が違えば、ファイルはオリジナルと同一では無い。
 
 
【ハッシュ値の調べ方】
さて、このハッシュ値。
ユーザ自身が直接チェックすることも可能だ。

Linuxの場合は大概が標準状態でチェックできる。
コマンド打ちになりますけどね。

11_sum_r2

あるファイルのハッシュ値を調べるには、以下のコマンドを利用すれば調べられる。
 
md5ハッシュ値を調べたい場合は

$ md5sum ファイル名

sha1ハッシュ値を調べたい場合は

$ sha1sum ファイル名

とすれば良い。

Windowsの場合は、MSが「FCIV」というチェックツールを配布している。
「可用性とは、ファイル チェックサム整合性検証ユーティリティの説明」
  http://support.microsoft.com/kb/841290/ja

しかし、vectorなどで配布されている「FastHash」などのフリーツールの方がずっと使いやすい。こちらの方がお薦めだ。

気になる方はぜひ確認してみてほしい。

12_sum

001__4

 

※1
2014年現在、MD5やSHAはまだ有効だが、将来的には使えなくなる可能性はある。その時には違うハッシュ関数が出てくるだろうけれども。
 
 
※2
「ハッシュ値でウイルス感染をどうやって調べるの?」みたいな話をどこかで見かけたのだけれども、ハッシュ値でウイルス感染したかどうかは調べることは不可能だ。

ハッシュ値の比較でわかることは、そのデータ(ファイル)が「同一か、同一でないか」だけであって、同一で無い理由が、「ファイルの破損」なのか「ウイルス感染によるもの」なのか「改竄されたもの」なのかはわからない。
しかし、ハッシュ値が同一であれば、「ファイルの破損」や「ウイルス感染」、「改竄」等は無い、ということがわかるため、各チェックによく利用される。

 

※ 作成したDVD・BD ディスクの直接のハッシュチェック関連の話は
BD関係のあれこれメモ with linux
に少し載せてます。(Linux only)

 

 

〔関連ページ〕
 ・それは誰が保証するか?〔GnuPG(GPG)/電子署名〕〜ごまかせない署名〜  
 
 
 
 
 

 

 

 

« 私がiPad/iPhoneなどのアップル製品を使わない理由 | トップページ | リスクセパレータ環境づくり(2):個人単位 シミュレート編 »

Linux」カテゴリの記事

Windows」カテゴリの記事

セキュリティ」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 私がiPad/iPhoneなどのアップル製品を使わない理由 | トップページ | リスクセパレータ環境づくり(2):個人単位 シミュレート編 »

2020年3月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ