パスワードハッシュとは
パスワードハッシュとは、パスワードを安全に保管するために固定長の暗号(ハッシュ)文です。
パスワードは漏洩したら大変ですから、サービス提供者はパスワードを暗号化して保管しています。
暗号化したパスワードを復号されてしまわないように、復号できない暗号化をします。これをハッシュ化といい、ハッシュ化した値をハッシュ値(メッセージダイジェスト、フィンガープリント)といいます。
パスワードハッシュは復号できない
パスワードハッシュは復号できなくても、困りません。
あなたがログインボタンを押した後、送られたパスワードを暗号化し、保管してある暗号化したパスワードと比べています。
暗号同士を比べているわけですね。
パスワードハッシュの衝突
ハッシュ値は固定長です。どんな長さの文字も同じ長さに圧縮されます。
そのため、衝突という別々の文字列でもハッシュ化したら同じ値になる現象が起こります。
これが多発すると、せっかく暗号化したのに他の暗号文と被ることで、他のパスワードでも認証完了するなどシステムとして不具合が起こります。
- 一方向性 ハッシュ値から元の文字列を復元しにくい性質
- 衝突困難性 衝突のしにく性質
- 第2原像計算困難性 ハッシュ値から元の文字列ではない衝突している文字列を復元しにくい性質
安全なハッシュ化をすること
ハッシュする方式はいくつかありますが、SSHA256などなるべく下記の性質が高いものを選定すると良いでしょう。
fgdumpやMetasploit’sなど、ハッシュ化されている暗号文から元の文字列が推測するツールもあるわけです。
安全なパスワード設計をしましょう。