2023年の家庭用グラボでのMD5計算時間を出したので残しておく。
前提
2018年時点の計算方法と結果はこちらの記事に詳しい。本記事でもこれと同様に出した。
現在販売されている個人向けグラボの中では、RTX4090が最も計算に向いているようだ。こちらによれば秒間164.1ギガ回の計算が可能とのこと。あとはエクセルなりに流し込むだけで、各パスワードの総数を出して、それを164.1ギガで割ってやれば所要秒数が出てくる。
ここで記号は、キーボード上から単純に入力出来る「!”#$&&()-=^~\|@`[{;+:*]},<.>/?_」の31種類のことを指す。カギカッコ等の全角記号は含まず。
結果
文字長 | 数字 | 小文字 | 数+小文字 | 大小文字 | 数+大小 | 数+大小+記号 |
4 | 一瞬 | 一瞬 | 一瞬 | 一瞬 | 一瞬 | 一瞬 |
5 | 一瞬 | 一瞬 | 一瞬 | 一瞬 | 一瞬 | 0.042秒 |
6 | 一瞬 | 一瞬 | 0.013秒 | 0.12秒 | 0.35秒 | 3.9秒 |
7 | 一瞬 | 0.049秒 | 0.48秒 | 6.3秒 | 21秒 | 6.1分 |
8 | 一瞬 | 1.3秒 | 17秒 | 5.4分 | 22分 | 9.5時間 |
9 | 一瞬 | 33秒 | 10分 | 4.7時間 | 23時間 | 37日 |
10 | 一瞬 | 14分 | 6.2時間 | 10日 | 59日 | 9.4年 |
11 | 0.6秒 | 6.2時間 | 9.3日 | 1.5年 | 10年 | 870年 |
12 | 6秒 | 6.7日 | 0.9年 | 75年 | 623年 | 8万年 |
13 | 1分 | 174日 | 33年 | 3928年 | 3.8万年 | 752万年 |
14 | 10分 | 12.5年 | 1187年 | 20万年 | 240万円 | 7億年 |
15 | 100分 | 324年 | 4.3万年 | 1062万年 | 1.5億年 | |
16 | 17時間 | 8427年 | 154万年 | 5億年 | ||
17 | 7日 | 22万年 | 5536万年 | |||
18 | 70日 | 570万年 | 20億年 | |||
19 | 2年 | 1.5億年 | ||||
20 | 19年 |
解説と考察
昨日pictSQUARE/pictBLandの情報流出事件が発覚したが、これはどうも単純なMD5で保存していたらしく、上記の表をそのまま当てはめて考えることが出来る。
パスワードの原文を保存すると万が一の流出時に問題なため、一般にサービス側はパスワード本体は保存しない。A→BにはなるがB→Aは導けないような一定のルールでパスワードを変換することで、変換後の値のみを保存し、ログイン時には再変換してその値と一致するかだけを確認する。これがハッシュ化であり、MD5はハッシュ化するためのルールの1つ。
ただ、MD5は計算が簡単過ぎるという致命的な問題があり、理論上存在し得る全ての原文をMD5で変換することで、入手した変換後のハッシュ値から原文を逆算できてしまう。原文が逆算できれば、他のサービスがどんな強固なハッシュ関数を使っていても関係なく、貫通されてしまう。
これにかかる時間が上記の表で、例えばRTX4090というPCパーツを1つ使った場合、英数字8桁のパスワードなら17秒で全パターンが解析できて、流出した全員のパスワードが一気に判明することが読み取れる。これはおよそ23万円(1600ドル)で入手でき、個人でも十分に手が届く範囲のものである。
表は全パターンが出るまでの時間なので、半分の時間で見つけられてしまうことも多いし、運が悪ければ即座に見つけられることもある。また既存の単語を内包したパスワードは優先的に試されやすいため早くに発覚する。
では逆算を防ぐために何をしたら良いのか。
上記の試算はあくまで最悪の場合であり、サービス側が色々と基礎的な対策を行っておけば、8文字パスで十分な強度を得られる場合も多い。今回の事件はピクスクの技術力不足によって大幅に被害が拡大したと言って良いだろう。
そもそもMD5は、計算が早く終わりすぎることから脆弱であることが古くから知られており、例えば日本政府が公表している推奨ハッシュ関数としては2003年の時点で選外になっている。まぁ2003年で推奨されている中で最下級のSHA256という方式でも、単純に使うとMD5の8倍程度の時間しか稼げないが。
それにしても、2013年開発のピクスクで未だにMD5を、しかもソルトもなしに使っていたのは信じがたいことである。信じがたいことではあるが、このようなサービスがピクスクだけであるとは考えにくい。
他にも同様の問題を起こした事例は過去にあるし、例えばボイスロイドなどの合成音声ソフトを扱うAHS社は、少なくとも2009年から2021年にかけてパスワードを変換せずに保存していたことを確認している。問い合わせで変換するように頼んだこともあるが、長年対応されることはなかった。なお2022か23年にはパスを忘れた際のメールで原文を送ってこなくなった。
ユーザー側からこのような問題を見抜く手段はない。常に最悪を想定してパスワードを決めよう。強いて言えば、ピクスクは以前から運営姿勢の問題が度々指摘されていて、「問い合わせても応答しないがツイッターで炎上すると動く」という事例が重なっていたので、運営に疑問があるサービスは他の部分の品質も低いと見て使用しない手はありかもしれない。とはいえ良い代替先がないことも多いのだが。
できる対策は、パスワードの使用文字種と文字長を増やし、使い回しをやめることだ。
MD5の場合、数字+英小文字だけを使うのであれば最低14桁はないと解析されてしまう可能性が高い。大文字を入れれば13桁でも問題ないだろう。実際には複数のグラボを使えば上記の表より高速化出来るし、時間経過による技術発展でも1枚での所要時間が短縮される。
桁数が増えれば解析までの時間が伸び、解析される前に侵入に気づいてパス変更が間に合う可能性が高くなる。
14桁まで来たらもう20文字も30文字も大差ないので、自分にしかわからない固有名詞を含むような長い文章にしてしまうか、パスワード管理ツールに任せて自分は覚えない運用にすることを推奨する。
またいくら長くともAHSのように無変換で保存しているサービスから流出すると一発アウトなので、全てのサービスで異なるパスワードを登録する必要がある。無変換で保存するところは狙われやすいし、また一般に対策もずさんであるため流出リスクが高い。
コメント