図解サイバー攻撃 [Cyber Attack dot Net]

図解サイバー攻撃。サイバー攻撃・サイバーテロや情報漏洩などのサイバーセキュリティインシデントについて詳しくイラストで解説。

図解サイバーセキュリティ用語

ハッシュ関数、MD5とSHAとは?

投稿日:

ハッシュ関数とは、あるデータをインプットとしてそのデータを要約する16進数の数列を生成する関数の事を言います。ハッシュ関数はデータ固有の値(ハッシュ値)を生成しますので、データが違うとそのハッシュ値も違ってきます。

ハッシュの種類

ハッシュ関数として利用されるのは、MD5、SHA-1、SHA-256の3種類があります。

ハッシュ関数 長さ
MD5 128bit
SHA-1 160bit
SHA-256 224、256、384、512bit

例えば、cyber-attackという文字列(データ)をハッシュ関数で計算してみましょう。MD5でハッシュ値を計算すると、「18cfab9f83162c32cf9c2e1d5f200f7f」というハッシュ値が生成されます。SHA-256で計算すると「efde9da04abdc84b4a77a3588247fc44a852709145373cd0b2cca1d3bd07a535」というハッシュ値が生成されます。

ハッシュとは?MD5とSHA

ハッシュ値の特徴と利用手段

ハッシュ値とはハッシュ関数から生成される16進数の値の事を言います。ハッシュ値の事をフィンガープリント(finger print)やメッセージダイジェスト(message digest)を呼ぶこともあります。

ハッシュ値には元のデータを「計算」できない、という特徴があります。これを一方向性と言います。しかしながら、ハッシュ値から元のデータを「特定」する事は不可能ではありません。また、ハッシュ値にはある特定のハッシュ値を持つデータを作成する事が難しい弱衝突耐性と、同じハッシュを持つ2つ以上のデータを作成する事が難しい強衝突耐性という性質があります。

ハッシュ関数とは?MD5とSHA

ハッシュ値は以下のような目的で利用されます。

  • ハッシュ値を比較して改ざん検知
  • パスワードをハッシュ化して安全なパスワード認証
ハッシュ値を比較して改ざん検知

ハッシュ値を使えば、改ざんを検知する事が可能になります。例えば、重要なデータの改ざんを監視するとしましょう。まず、その重要なデータのハッシュ値を計算します。そして、定期的にその重要なデータのハッシュ値を計算して元のハッシュ値と比較する事で改ざんされているか否かがわかります。

ハッシュ値とは、改ざん検知に利用

攻撃者がその重要なデータのほんの1部を改ざんしたとしても、ハッシュ値は全く違ったものになりますので、改ざんの検知が可能です。一方で攻撃者はハッシュ値が全く同じ別のデータを作成して入れ替える可能性がありますが、その場合は元のデータと全く違うデータが作成さる場合が多いです。

パスワードをハッシュ化して安全なパスワード認証

ユーザがパソコンにログオンする、という事はそのパソコン(もしくは認証サーバ)にユーザのパスワード情報が保存されているという事になります。Windowsの場合はSAMという特殊なレジストリにパスワードが保存されています。Unixの場合は/etc/shadowにパスワードのハッシュ値が保存されています。それらのパスワードが平文のまま保存されていればとても危険です。またパスワードが暗号化されている場合は必ず暗号化ー復号のプロセスが発生するのでそのプロセスからパスワードを盗まれる可能性があります。

そこでパスワードをハッシュ値に変換する事で上記の問題を解決できます。万が一パソコンに保存されているパスワードのハッシュ値を盗まれても、元のパスワードの値を計算する事は非常に難しいので、パスワードを知られる事はありません。

しかしながら、ブルートフォース攻撃辞書攻撃などを利用すればハッシュ値から元のパスワードの値を特定する事が可能です(しかしブルートフォース攻撃で8桁以上のパスワードを特定するには数か月から数年の期間が必要となります)。

ハッシュ衝突

ハッシュの衝突とは同じハッシュ値を生成するデータが2つ以上存在する事を言います。つまり、データAのハッシュ値をハッシュ関数で計算したものがX、データBのハッシュ値を同じハッシュ関数で計算するとXになった場合、データAとデータBのハッシュ値は同じになってしまいます。この事をハッシュ値の衝突と言います。

ハッシュの衝突が発生する確率は非常に小さいですが、攻撃者が意図的にハッシュの衝突を試みようとする場合、ハッシュ関数によっては容易にできてしまいます。

ハッシュ関数 ハッシュ衝突
MD4 2004年に、ハッシュの衝突を意図的に作成する事が可能であることが報告され、現在では
MD5 2007年に、ある条件下で同一のMD5ハッシュ値を生成する方法が発見された。
SHA-1 2017年2月に、CWI AmsterdamとGoogleの研究チームがSHA-1のハッシュ衝突を成功させた事がアナウンスされた。

これによって、現在ではSHA-256やSHA-3のような安全なハッシュ関数への移行が進むと思われます。

広告

広告

-図解サイバーセキュリティ用語

関連記事

SSLサーバ証明書とは 図解サイバーセキュリティ用語

SSLサーバ証明書は、クライアントとサーバ間で行う暗号化通信に必要な鍵やWebサイトの所有者情報などを含む電子証明書です。SSLサーバ証明書を利用することによって、以下の2つの目的を達成します。 We …

HTTP GET Flood攻撃 (F5攻撃) 図解サイバーセキュリティ用語

HTTP GET Floodは別名F5攻撃ともいわれます。F5とはキーボードのF5の事です。インターネットブラウザを表示している時にF5を押すとどのようになるかご存知ですか?今F5を実行してみてくださ …

異常検知 シグネチャ検知とアノマリー検知 図解サイバーセキュリティ用語

マカフィーやシマンテックなどのウィルス対策ソフトやSourceFireなどのIDS/IPS製品では異常検知を行う事によって、不正なトラフィックや悪意のあるコマンドを検知しています。異常検知には主にシグ …

CISO(最高情報セキュリティ責任者)とは?

CISOとはChief Information Security Officerの略で、最高情報セキュリティ責任者の事を言います。CISOは一般的に執行役員レベルのポジションで企業の情報セキュリティに …

柳条湖事件 9月18日に中国からサイバー攻撃を受ける理由

毎年9月18日の1週間前になると、様々な機関から「9月18日前後に中国からサイバー攻撃がある可能性がありますので注意してください」という通達がありますよね。実際に9月18日に中国からのサイバー攻撃によ …