パスワードが破られる時間が短いのに驚きです。
「小文字8文字」なら瞬時に解読されます。
「小文字15文字」でやっと6時間です。
これが「数字+大文字+小文字+記号の8文字」なら8時間かかります。
でも、これは数年前の話しです。
今回は、パスワードの解読時間について、最近の状況を見てみます。
「数字+大文字+小文字+記号の8文字」のパスワード解読時間
ハイブシステムズ(Hive Systems)は、パスワードの総当たり攻撃をされたときに解読される時間を公開しています。
「Hiveシステムパスワードテーブル」はこちら↓
Are Your Passwords in the Green?
2020年以降毎年、ハッカーがパスワードをブルートフォース(総当たり)するのにかかる時間を一覧表にしています。
冒頭の「数字+大文字+小文字+記号の8文字」なら8時間で解読されるというのは初期の話しです。
解読に使うGPUの性能によって時間が飛躍的に変わります。
最新の一覧表(2024年)では4時間です。
これは、パスワードハッシュがMD5で、攻撃者のGPUがRTX2080の場合です。
攻撃者が、より性能の高いRTX4090を使えば1時間かかりません。
もっと性能の高いA100を12基使えば12分、さらに10000基(ChatGPT)なら1秒です。
ただ、A100が数100万円するので、12基や10000基を用意するのは現実的でありません。
RTX4090なら価格が30万円台なので、単独ハッカーが用意できる価格といえます。
幸いですが、最近は安全性の高いパスワードハッシュ(bcrypt)が使われるので、攻撃者にとっては解読時間が遥かにかかります。
ちなみにパスワードハッシュがbcryptで、攻撃者のGPUがRTX4090の場合、解読に99年かかります。

「8文字の32回の反復に設定されたbcryptパスワードハッシュを解読するために必要な最大時間」
出所:Hive Systems社の2024年情報
ちなみに、パスワードハッシュがbcryptで12基のRTX4090の一覧表はこちらです。

「Hiveシステムパスワードテーブル」
出所:Hive Systems社の2024年情報
この場合、解読に7年かかります。
「数字+大文字+小文字+記号の8文字」のパスワードが推奨されるのは、こんな状況がもとになっています。
パスワード解読に関係する要素
まず、パスワード解読の要素を確認しておきます。
パスワードの構造
長さ、文字種、予測可能性
ハッシュアルゴリズム
MD5、SHA-256、bcryptなど
bcryptは計算負荷が高いため解読が困難
利用するのは、ウェブサイトの開発者やシステム管理者
ソルトを加えると、同じパスワードでも異なるハッシュ値が生成されて、攻撃の難易度が上がる
ソルトは、パスワードに一意のランダムデータを追加し、レインボーテーブル攻撃を無効化する
攻撃者の攻撃の種類
ブルートフォース攻撃
総当たりで全ての組み合わせを試す
最も一般的な攻撃手法
辞書攻撃
辞書に載っている単語やフレーズを試す
レインボーテーブル攻撃
あらかじめ計算されたハッシュ値を使用する方法
ソルトを使用すると防ぐことができる
攻撃者のリソース
GPUの性能、クラウドリソース、解読を支援するためのツールの最適化
データの保存状況
パスワードがハッシュ化されているか、平文で保存されているか、解読難易度に関わる
パスワードのハッシュ化は主にサーバー側で行われる
ユーザー側でできる対策
パスワード解読の要素を確認しましたが、このうちユーザー側が関与できるのは、パスワードの構造です。
強力なパスワードに変えることはユーザー側でできます。
また、多要素認証を使うことで最善の対策となります。
さいごに
技術の進歩によってパスワード解読の事情が変わります。
今のセキュリティが通用しなくなる恐れもあります。
常に最新の情報を知って、対策を立てる必要があります。
「Hiveシステムパスワードテーブル」を参考にしてPWを見直してはいかがでしょうか。
参考になりましたら幸いです。