QA@IT

SHA-1ハッシュ化されたパスワードは安全ですか?

6044 PV

LinkedInのパスワードが漏洩したというニュースを見ました。パスワードはSHA-1アルゴリズムでハッシュ化されていたそうですが、ハッシュから元のパスワードは分からないので実害はないと考えていいですか?

回答

さまざまな手口により元パスワードが解読できます
SHA-1のような暗号的ハッシュアルゴリズムの場合、ハッシュ値から元のテキスト(平文)を復元するアルゴリズムは知られていません。しかし、任意テキストからハッシュ値を求めること自体は可能なので総当たり的に平文パスワードを求めることができます。すなわち、時間との戦いです。
あらかじめパスワードのハッシュ値を総当たりで求め、コンパクトなDBにする手法が知られていて、レインボーテーブルと言われます。レインボーテーブルが使える場合、数分程度でハッシュ値から元のパスワードが分かります。SHA-1ハッシュに対応したレインボーテーブルはダウンロード可能なので、SHA-1ハッシュで保存されたパスワードは安全とは言えません。
ただし、現在のコンピュータパワーで作成できるレインボーテーブルは10文字程度までのものなので、12文字以上あるいはそれ以上に長いパスワードを付けていれば、レインボーテーブルには対抗できます。これは利用者側でとれる対策です。長いパスワードをつけることは他のパスワード攻撃手法に対しても有効なので、強く推奨します。

レインボーテーブル以外の平文パスワード復元手法としては、辞書攻撃や総当たり攻撃があります。
辞書攻撃とは、使用頻度の高いパスワードの一覧(パスワード辞書)に載っている文字列を順に試すものです。辞書に載っているパスワードであれば通常 1秒以内に元パスワードが分かります。
総当たり攻撃とは、文字通りパスワードのすべての可能性を試すものです。膨大な時間が掛かりそうにも思えますが、最近のCPUの計算パワーでは、総当たりによるパスワード復元が現実的になってきました。特に、廉価で高性能なGPUの並列計算は、パスワードハッシュに対する大きな脅威です。

総当たり攻撃に対しても、長いパスワードを設定することが効果的な防御となります。

# 運営からの依頼によりQ&Aの形式で初期コンテンツを提供しておりました。このQ&Aはその流れで書いておりますが自由意思によるものです

編集 履歴 (1)
ウォッチ

この質問への回答やコメントをメールでお知らせします。