パスワード解析の負荷を計算してみた

パスワード解析について考えてみました。
いままでもいろいろと思ったことを書いてきたのですが、20年くらい前から最近までは、辞書に載っている単語は使わないよう推奨されていました。
最近になって、辞書に載っている単語を使うアルゴリズムは実際には使われていないらしいことが公表されていました(実際には使っている可能性もある)。
辞書に使っている単語を1つしか使わなければ、精々20万語のパスワード解析で破られてしまいますが、途中を大文字にしたり、関連性のない単語を2個使ったりすると、20万の何乗もの順列が出るのでもう簡単には見破れないはずです。
では、総当り式のパスワード解析をしたらどうなるのか?
考えてみて分かったのは、たとえば、メールのアカウントのパスワードをメールサーバーに当たるまで問い合わせ続けるというのは、まず不可能です。
1個のパスワードを問い合わせるだけで応答に数秒かかったりします。
さらに、インターネットのトラフィックも負荷になるし、サーバーも問い合わせ回数の上限を設定しているでしょう。
文書をロックするために掛けたパスワードなら、こういう制限がないと考えられるので可能かもしれません。
では、総当り式で、いったいどれだけの回数を試行しなければならないのか計算してみました。

まず、文字を入力できるキーの数を数えてみると48個ありました。
これにシフトキーを押すと別の文字が出るので、全部の文字数は96となります。
1文字のパスワードは96通りなので簡単に破れるでしょう。
2文字のパスワードは96の2乗通りなので9216通りです。
これも簡単に破れるはず。
では、これを数式で表して計算してみます。
パスワードの文字数が分からない場合には、最低の文字数から順番に計算していかなければならないので、実際の文字数以下の場合も確認する必要があります。
従って、試行して当たるまでの最大回数と最小回数を計算してみました。
a0246407_06151995.png
ここで、Nは試行回数、mは文字数です。
maxは最大値、minは最小値を表します。
たとえば、15文字のパスワードを設定した場合には、14文字までを全部調べても当たらないので、15字目の1回めで当たる場合に最小回数、15字目の最後で最大回数ということになります。
これではピンとこないので、15文字のパスワードまで計算してみました。
a0246407_06150076.png
縦軸の試行回数は対数軸に変換しています。
数字だと桁が多すぎて整数値の取扱範囲を超えるので指数表示になっています。
横軸はパスワードの文字数です。
この計算だと6文字のパスワードを設定した場合に、10億回から1兆回の試行が必要となります。
これに、応答までの時間を掛けると解析時間が分かります(計算時間のうち1回分は小さいですが実際には試行回数が多いので無視するべきではないでしょうが)。
応答時間が1E-9秒とかだと、精々1000秒位で終わりますが実際はそんなに速く応答しないでしょう。
このグラフを見ると、10文字のパスワードを設定すると事実上パスワード解析は不可能に思えます。
すくなくともインターネット上で総当り式にメールサーバーに問い合わせるのは不可能と云って良いでしょう。

実際のパスワードハックは、このように直接ハックするのではなく、パスワードを保存したサーバーに攻撃を仕掛けて脆弱性を利用して管理者権限を奪取してパスワードを丸ごと盗むものと思います。
こう考えてみるとパスワードは8文字もあればハックは非現実的で、長過ぎるパスワードも思ったほどは意味ないのかもと思えてきました。
ただし、いくら長くても辞書に載っている単語1個はこの限りではありません。
多分、ハックアルゴリズムは、辞書にある単語を先にチェックすると思うので。
本当にランダムな文字の羅列だったら総当り式に解析しなければならないので、辞書を使うアルゴリズムが使えなくなり有利です。
辞書にある単語を使うのだったら、最低2個以上の関連性のない単語を使い、途中を大文字にしたり、単語のつなぎや単語の途中に数字や記号を入れたりすると辞書を使うアルゴリズムでは対応できなくなり、総当り式が必要になるので、辞書を使ったハックのアルゴリズムはギブアップするでしょう。

パスワードを管理するサービスが最低文字数を指定している場合には、最低でもその文字数+1文字にするほうが安全です(できればプラス2文字)。
たとえば8文字以上と指定されている場合には、10文字にすれば、97倍以上堅固になります。
くれぐれも間抜けなパスワードはやめましょう。

結局サーバーを乗っ取られたら終わりですが...


[PR]
トラックバックURL : https://mcap.exblog.jp/tb/238661362
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
by mcap-cr | 2018-07-28 19:10 | コンピュータ関連 | Trackback | Comments(0)

工学オーディオに取組むオカルト嫌いです。


by MCAP-CR