Previous Topへ Next

パスワードの定期的変更は意味があるか

Change it


パスワードの定期的変更は意味があるか

最近はてなあたりを震源地に「パスワードの定期的変更は意味があるか?」という話題がちょっと盛り上がっていた。

その中で面白いと思ったのはこちら。
パスワードの定期変更は「神話」なのか? - ockeghem(徳丸浩)の日記

私の職場でもネットワークに繋がるパソコンは検疫サーバのセキュリティポリシーで30日ごとにパスワードを変更することが義務づけられている。
変更を怠るとログインそのものができなくなって、自分の会社のネットワークから締め出される。

それで結論を先に書くと私もこのパスワードを定期的に変更するという「セキュリティ対策」はほぼ無意味で、「ちゃんと対策やっています」というアピール以外に何の役にも立たないと思っている。

多分こういう対策を支持する人の言い分は大体こういうことに集約されると思う。
「パスワードが漏洩しても定期的に変更していれば新しいパスワードはわからないから安全ではないか」
「辞書攻撃(総当たり攻撃)が完了する前にパスワードが変更される仕様にしておけば、そうした攻撃で破れないではないか」

まず前者の言い分の間違いは、パスワード漏洩による悪用の対策だというのならパスワードの変更サイクルは90日というのは長過ぎる。
私の職場の30日というのも長過ぎる。
なぜならパスワード漏洩情報をつかんでそれを悪用しようという奴らが、90日もかけてゆっくり攻撃してくれるとは到底思えないからだ。

多分そういう情報をつかんでから数十分から数時間のうちにやりたいことをやってさっさと撤収するだろう。
そういうことが起こってから30日後にパスワードを変更したって何の意味もない。

だからそういう目的のために、パスワードを変更するのなら90日とか30日とかのサイクルではなく、数分とかいうサイクルでパスワードを変更しないといけない。


以前スウェーデンのモバイル事情を取材した時に、エリクソンやノキアのケータイ向けにパスワードジェネレータを開発しているRSAセキュリティスウェーデンを取材した。
ここで見せられたデモはRSAのキーホルダのようなデバイスでジェネレートされるパスワードの有効性だった。
ある種の乱数でこのパスワードは毎分変更される。
正確な時計の技術により、本体のパスワード錠と完全に連動してパスワードは変更される。
毎分変更されるので、正当なユーザが正規のパスワードを入力する場合でも1分以内に入力を完了しないとログインに失敗する。

ここまでやればパスワードを盗まれた場合の安全対策にはなるだろう。

ただこの方法はちょっと問題がある。
毎分パスワードが変わるので、使い勝手が悪くどうしても一度ログインしたらデスクトップを離れた時に自動的にログオフするような機能をオフにしたくなる。
実際このデモの時も開発担当者がパスワード入力に失敗して

「ウープス!」

といっていたのが印象的だった。

開発者でも扱いにくいこのパスワードシステムが、一般のシロウトユーザにすんなり受け入れられるとは到底思えない。
結局一回パスワードを入れたら後は極力パスワードを入れなくていいような設定にしたくなるのは当然だろう。

こういうことでセキュリティの精度が下がってしまうというのも問題だ。
しかし何よりもまずい問題がある。
パスワードを開くにはパスワードジェネレータを常に携行しないといけないので、これを紛失したり盗まれたりすると結局同じことだという問題だ。

この対策は機器の使い勝手を悪くするだけで、大して安全には寄与しないということがこれで明白だと思う。


もう一点の言い分だが、
「もし総当たり攻撃に90日以上かかる強度のパスワードならば、90日ごとにパスワードを変更するのは意味があるではないか」
というのは一見もっともらしく響く。
総当たり攻撃に180日かかるパスワードなら、それが完了する以前にパスワードが変更されれば攻撃は元の木阿弥になってまた一からやり直さなければいけなくなる・・・あれ?よく見たらこの理屈はなんか変だと思われないだろうか?

総当たり攻撃に180日かかるというのは最大で180日という意味で、必ず180日かかるという意味ではない。
例えば総当たり攻撃で10万個の組み合わせを試すとする。
実際にはそんなに時間がかかる組み合わせはもっと多いのだが、わかりやすくするために割り切れる数字を仮定する。

10万個の組み合わせを最初は
00000
00001
00002

という感じで昇順で試すとしてもしパスワードが
99999
という一番最後の組み合わせだったら10万全て試してみないといけない。
しかしたまたまジェネレートされたパスワードが
00005
というパスワードだったら、一瞬で破られてしまう
そこでそういう昇順の若い組み合わせは使わないというルールを決めてパスワード変更をする。

最初の5%攻撃が終わった時点でパスワードが変更されたら、どういう影響があるか?
理屈では95%はまだ未実行の組み合わせに変更されるのだから確率は変わらない。
むしろ先ほどの昇順ルールがあるからすでにテストした組み合わせに変更される可能性は5%よりも低い。
ここでは攻撃失敗に追い込める確率は見た目以上に低い。

5万総当たりを攻撃を受けた時点で90日目のパスワード変更をするとしたら確率はどうなるか。
見かけの確率は2分の1で攻撃は失敗する。
しかし昇順ルールがあるので実際には攻撃を失敗させる確率は2分の1以下の確率となる。
昇順ルールのおかげでここまでで攻撃が成功しない確率も2分の1以下になるがどうもこの安全策は確率的に相殺されているっぽい。

95%攻撃を終えたところでパスワードが変更されたらこれは有効のように見える。
しかしこの確率論には落とし穴がある。
95%攻撃が終わるまでパスワードが判明しないという確率は見かけ5%しかない。
ここまでいくまでにすでに攻撃が成功している確率が95%近くある。

攻撃に180日かかる組み合わせを90日で変更するのでは、そんなに確率に影響がない。
もっと大きな単位差があれば有効になるだろうか。
180日かかる組み合わせを1時間で変更するとかだと有効になるだろうか?
これも結局確率に大きな差がでないことがわかる。
未実行の組み合わせから、実行済みの組み合わせにパスワードが変更される確率も高まるが、逆に実行済みの組み合わせに待避していたパスワードが再び未実行の組み合わせに戻ってくる確率も同程度にあるからだ。
攻撃側のエラーが出る確率はやや増えるが劇的に増えるわけではない。
総当たり攻撃を何回も繰り返していたらやはり破れる程度の確率だろう。


これをスマートに数式で表現できればいいのだが、要するにパスワードを変更することで総当たり攻撃をかわすことができるかというと、大した確率の差にはならないということを言いたかったのだ。

パスワードを頻繁に変更するのは一見決定的な安全対策のように見えるが、よくよく考えてみるとそんなに安全性が向上しているわけでもない。
確率の端数分ぐらいは安全性が向上するかもしれないが、まさに端数程度で、そのためにRSAの担当者のように世界中のパソコンや機器ユーザが毎日
「ウープス!」
とか言っているデメリットの方がはるかに大きい気がする。

事実私の職場環境の30日パスワードルールも皆今月の1日の日付をパスワードにしたりしている。
ポリシーで日付が禁止されたら、今度は生年月日に毎月1を足していくというようなパスワードを設定している。
これではほぼ意味がない気がする。

定期的なパスワード変更なんてルールはどう運用しても結局有効性に疑問が残る。
最近話題になったWPA-TKIPが数分で破られたなんて話は同根なのか全く別の話なのかよくわからないが、その連想で関連記事を探していて見つけたこんな話題に反応してみた。




2009年8月21日
















Previous Topへ Next





site statistics