図解サイバー攻撃 [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のような安全なハッシュ関数への移行が進むと思われます。

広告

広告

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

関連記事

職務分掌・職務分離とは?

職務分掌とは部署や役職ごとに必要な責任や権限を明確にして定義する事を言います。職務分掌と似たような言葉に職務分離があります。ほぼ同じ意味ですが、職務分掌は人事要素が強い一方で職務分離にはコンプライアン …

パスワードリスト攻撃 他のサービスから盗み出したIDとパスワードを利用して不正アクセス

SNSなどのウェブサービスで不正アクセスが頻繁に発生していますが、その多くはパスワードリスト攻撃による不正アクセスです。ここではパスワードリスト攻撃について解説します。 パスワードリスト攻撃 攻撃者が …

ビジネスメール詐欺(BEC)とは? 図解サイバーセキュリティ用語 

IPAが偽口座への送金を促すビジネスメール詐欺への注意喚起を行っています。ビジネスメール詐欺はBECとも言われており、BECはBusiness Email Compromiseの略です。このビジネスメ …

クリアデスクとクリアスクリーンとは?ISMSとプライバシーマークに必須

クリアデスクとは クリアデスクとは、オフィスなどの不特定多数の人がいる所ではデスクから離席する際にデスク上に業務に関する書類を放置せずにキャビネットなど鍵のかかった場所に保管する方針の事を言います。英 …

ICMP Flood攻撃、Ping Flood攻撃 図解サイバーセキュリティ用語

ICMP Flood攻撃はDoS攻撃の中のFlood系の攻撃の一種です。Ping flood攻撃とも言われます。DoS攻撃の中でも簡単な仕組みの攻撃です。どのような攻撃かと言いますと、まずあらかじめ大 …