パスワードクラック実験(定期的な変更は強度を上げるか?)
数字二ケタのパスワードを想定して,二つの試験を平行してみる。
前提条件:
Aの組は,パスワードを固定。250ms毎に乱数と突き合わせて,HITしたらHITカウントアップ&パスワード変更
Bの組は,パスワードを10秒毎に変更。250ms毎に乱数と突き合わせて,HITしたらHITカウントアップ&パスワード変更
パスワードの乱数総当りは250ms毎なので,10秒に40個。つまり,仮想的に三ヶ月に一度パスワード更新を行うとして,期待値で二回半まで持つ(=平均7ヶ月程度総当りに耐える)パスワードを仮定して,三ヶ月毎の変更が意味のあるものかどうかを試すものです。
乱数で毎回値を作っているので,同じ値が繰り返し出ることも考えるとだいたい合ってるんじゃないかな。
さて,朝風呂浴びてる間に結果が出るかな?
20分(1200秒経過)中間報告
パスワード固定 39回HIT
10秒毎変更 44回HIT
(分毎変更と書いてるのは修正漏れ)
試行回数は4倍なので4800回。5回差は試行回数ベースで0.1%程度なので誤差とみていいでしょう。
差はないと言えませんかね?
さらに経過(2000s経過)
75回HIT(HITごと変更のみ)
74回HIT(10sごと変更/HITごと変更)
やめやめ
3000s超えたけど,110回と114回でやっぱり明白な差は出なかった。
考察
つことで,たぶんこれもう結論出していいよね。定期的にパスワード変えても強度は上がらない。
では何故パスワードを変えるか,というと,推進派曰く「被害を受ける期間を該当パスワード有効期間に限定するため」ということですが,そんなのもう無意味になっているのはご承知の通りです。
バックドア置けばいいし,ローカルのAdministratorsグループにでもアカウント追加すればいい。Users権限ならバックドア設置やアカウント追加に対して権限的に大丈夫かもしれませんが,一般的にはメールアカウントのパスワードはメーラに記憶させているのが普通ですから,適当に情報を漁って外部にでも送られたらアウトです。
結局,パスワードが破られた時点で最大限に近い被害が生まれていますので,気休め程度,ということになってきそうです。
対して,パスワードを定期的に変更することで,パスワードが枯渇する問題が生まれます。
強度のあるパスワードを多数安定して作れるだけのリテラシーがある人なら,充分な強度のパスワードが作れるでしょうから,どうせ変更しても破られるまでの期間等に大差がないのであればガッチリしたパスワードなりパスフレーズなりを運用していればそれで充分ではないかと思うのです。
結局,パスワードが枯渇するのを防ごうとすると,毎月パスワードの末尾の数字をインクリメントする,という運用が横行しかねないわけです。
そうなると,変更している意味はありません。一度破ったパスワードを辞書に登録すればいいのですから。
結論として,パスワードの定期的な変更には,明確なメリットが無い,といえるのではないでしょうか。
長期的に観測したい,長期的に権限を(コッソリ)使いたいというクラッカーに対しては抑止力になる場合もある*1のですが,まあ,限定されたケースを想定して全体にパスワードのよろしくない運用がまん延しかねないルールを適用するよりは,充分な強度のパスワードが使えるシステムで,適切なパスワード運用の教育を行うほうが効果的なんじゃないですかね。
*1:アカウントがUser権限など,充分に制限されている,または,情報の抜き出しなどに長期間かかる等の場合