武田圭史さんの「パスワードの定期変更」に関する議論

Takayuki Kawamoto

1st appeared: 2016-02-01 at Google+.

慶応大学の武田圭史さんがブログで公表した「パスワードの定期変更」に関する三つの記事について批評します。もともとは Google+ に投稿した文章ですが、ひとまとまりのテーマで集約できる文章は、こちらにも掲載することとしました。転載にあたっては、誤字を修正したり文章を追加しています。(2016年3月7日の追記)

その1

【パスワードの定期変更1】~まずは結論から

まず武田さんの議論で首肯できるところは、このような議論においては、既存の規程やルールを煩わしいものとして安易に「無意味だ」と否定して喜んでいるだけの人たちが SNS で簡単に介入できるため、一定の根拠を示さない感情的な不平不満の類はスクリーニングすべきということです。簡単に言うと、それらの意見なるものは「パスワードの定期的変更は無意味だ」という音声や文字列をパソコンでコピーしては弄んでいるだけにすぎないので、ポパー的な意味で言う「世界III」に存在しないものとして扱っても議論に影響はありません。ただし、そういう人たちが現実のサービスの顧客になる可能性はあるため、ビジネスとしては御しやすい方法を見つける手間がかかります。

【「定期的」という表現について】

一連の記述について経緯上「定期的」という表現を用いていますが、一般にパスワード変更の文脈において「定期的」とは「一定の期間を超えないうちに」と いう意味で使われる表現と認識しており、必ず一定の期間毎に変更するという意味を意図するものではありません。これは一定期間を最長とする不定期な変更を 含むものと認識しています。

武田圭史「【パスワードの定期変更1】~まずは結論から

上記のような文章には疑問があります。まず、情報セキュリティマネジメントに関する既存の規範として引き合いに出されることが多い PCI DSS を参照すると、Version 3.1(2015年4月)の 8.2.4 項に「少なくとも90日ごとにユーザパスワードを変更する」と規定されています。すると、武田さんが書かれているように、PCI DSS では、設定したパスワードを長くとも 90 日以上は使わないようにするのが望ましいということです。よって、90日以内にパスワードを変更しても、90日ちょうどでパスワードを変更しても、どちらでも構わないこととなるでしょう。(PCI DSS の原文では、“Change user passwords / passphrases at least every 90 days” で、“every 90 days” の根拠はないため、この規定内容自体も議論に値しますが。)

しかし、これは「定期的」という日本語の意味としては間違いです。現に PCI DSS ではパスワードを上記の意味で「定期的に変更せよ」とは書いていません。「定期的」刊行物である雑誌は、季刊誌であれば四半期ごとに発行します。ISMS の「定期的」な外部監査は1年ごととされています。つまり、通常の日本語では「定期」とは「定められた期間」のことであって、その期間が到来しないうちに何かをやってもやらなくてもいいなどという条件であれば、それは上限としての期限があるだけの「不定期」と同じです。実際、僕らがプライバシーマークの現地審査で審査員から「パスワードはどれくらいの頻度で変更していますか」と聞かれるときに、彼ら審査員は「90日ごと」といった回答を期待していて、「90日以内で、特に決まった頻度や目安はない」などという回答は期待していないでしょう。

攻撃者にパスワードを解析されてしまうという想定で話をすると、90日で変更するのと10日で変更するのとでは、理論上は後者が強い運用であることは確かだと思います。もちろん、他の条件が同じならば(ceteris paribus)。仮に運よく攻撃者が3日で解析に成功したとしても、90日ごとの変更ポリシーでは残りの87日を攻撃者が無断であなたのアカウントにアクセスし続けられますが、10日ごとの変更なら攻撃者が無断でアクセスできるのはたったの7日ですから、被害が広がり難いと想定できます。(ただし、ひとたびアクセスされたら「終わり」という事案の場合は、残りが何日であろうと被害は同じかもしれません。)

しかし、武田さんの意味で言う、90日ごとに「定期的」に変更するという管理ポリシーの場合は、10日で変更してもいいし90日で変更してもいいという実情になるでしょう。すると、実質として全ての対象者が90日いっぱいだけ既定のパスワードを使っていたとしても、全くポリシーに違反していません。したがって、10日で変更してもよいという意味をもっているとしても、このようなポリシーは90日を最大の脆弱性レベルとして、まさしく機械的に「定期的」な変更を行っているという想定でリスク分析するのが妥当だと考えます。

その2

【パスワードの定期変更2】~なぜ「パスワードの定期変更は無意味」と言ってしまうのか

どのようなケースについて検討しても「パスワードの定期変更を行う目的」としては1番の「パスワードを総当たりによって推測されることを防止する。」はその意義を見出せないということとなります。

武田圭史「【パスワードの定期変更2】~なぜ「パスワードの定期変更は無意味」と言ってしまうのか

二つめの記事です。上記は正しいと思います。そして、武田さんも正しく困惑されているように、解析されてしまうまでにパスワードを変更するのが望ましいと言っているかのようなセキュリティ対策のスローガンは、いまや「非科学的」とすら言えるような代物でしょう。なぜなら、これこそ、どういうパスワードを設定しているかによって解析に要する時間の理論値は異なるからです。4桁の数字で設定しているような企業なら、たぶん1時間おきにパスワードを変更していても脆弱でしょうし、128桁の英数記号で設定している企業が本当にあれば、恐らく数十年放置していても解析される心配はないでしょう。したがって、もしも後者のように強いパスワードを運用している場合には、寧ろパスワードを変更するタイミングを考えるよりも、パスワードをストアしたり復号したり認証している仕組みを攻撃されるリスクを心配した方が適切でしょう。よって、強いパスワードを運用して外部サービスに記録している場合には、自分の設定したパスワードを文字列として単純に解析される(言い当てられる)リスクよりも、パスワード文字列を暗号化せずに、あるいは脆弱な鍵で暗号化しストアしている恐れもある外部サービスそのもののリスクを心配した方がよいわけです。

次に、武田さんの後半の議論は、マネジメントシステムの運用というよりも、自社の従業員の(情報セキュリティに限らず「ルールに従う」というメンタルをコントロールするという意味での)マネジメント、つまりは企業経営や組織運営全般にかかわる話題と言ってもよいような、一般的な結論を伴う議論でしょう。もちろん、これもマネジメントシステムを運用する者の職責ではありますし、プライベートな資産へのアクセスにパスワードを設定している人が自分自身でどういうスタンスをもつべきかという話とも無関係ではありません。

しかし、「ルールに従わせる」という話題であれば、パスワードどころか、そのこと自体が「マネジメント」というものの主目的ですから、課題としては広すぎますし難しいと言えるでしょう。もともと遵法意識が低くて協調性もない人間に、情報セキュリティのルールだけを守れと言っても難しいのと同じです。通常、そういう場合に企業が選択する手段は、本当にリスクを重大だと評価しているなら、就業規則による懲戒が妥当でしょう。パスワードを定期的に変更するかどうかの話など、実は当該の組織にとっては些細な話題かもしれず、「そういう人間」が抱えているもっと大きなリスクの一端かもしれないからです。

そうした手段をとらずに、お馴染みの教育・研修・訓練というアプローチで社内のマネジメントを検討するなら、僕としては、寧ろパスワードの「不定期な変更」、つまり従業員にパスワードを変更するタイミングを予想させない運用が望ましいと考えます(何らかのモニタリングが行き届いていない企業だと、「(本人の)必要に応じた変更」では、本人が必要と感じない限りはパスワードが変更されないままだからです)。「定期的な」変更には意味がなく、不定期の変更には意味があるというわけです。これは、攻撃のアクション自体が攻撃対象の「定期的な」パスワード変更に同期させられている場合には、リスクを低減させる効果があるかもしれません。きっちり90日ごとの変更であれば、逆に言うと攻撃する側は90日ごとに再び攻撃すればいいという話になってしまうからです。こうした予測を外すには、パスワードの変更を文字通り「不定期」にすればよいでしょう。ここで最も長い期間でも攻撃に強いパスワードを設定するように規定すればよいわけですが、これを90日と想定するのは、いまどき馬鹿げています(90日ていどで解析できるような複雑さのパスワードであれば、数年もしないうちに解析時間は劇的に短縮するはずです)。

その3

【パスワードの定期変更3】~漏洩リスク対策としてのパスワード定期変更

先に述べたとおり、武田さんが「定期的な変更」を「n 日以内で好きなときに変更する」という意味で使われているなら、パスワード管理のポリシーとしては expiration が決まっているだけの「不定期な変更」と同じであって、リスクマネジメントとしては n 日(つまり最大の日数)のあいだ同じパスワードを使い続けているものと想定してリスク分析しなければなりません。(しかし、恐らく武田さんはそういう想定で書かれているわけではないと思います。)

すると、「知らない間にパスワードが漏洩していても n 日で変更すれば被害を防げる」というポリシー、とりわけ n 日という具体的な数字に根拠がない限り、このようなポリシーは n > m であるような数字 m を幾らでも当てはめつつ更に安全にできるので、基準となる n が 90 なら、90 日のあいだに漏洩していたら運用側の責任として過失がないと認められるほど、十分に短い値でなくてはいけないでしょう。恐らく、そうであれば n = 90 というのは、いまどきあまりにも長すぎると思います。また、顧客台帳の Excel ファイルが一つだけ盗まれても当該の会社にとって重大なのであれば、n = 7(毎週変更)であろうと n = 1(毎日変更)であろうと、そのファイルが一つ盗まれたら事業継続が不可能になるかもしれないので、パスワードの変更という手立てには「被害の拡大を防ぐ」という実質的な効果がないと言えるケースも多いでしょう。

すると、一定の日数で変更すれば被害の拡大を防げると想定されている情報資産は、たとえば継続的に変化する内容を含むもの、例えば、どんどん増えていく顧客データを全て横取りするとか、漏洩している最中の会社で運用されている財務データや事業戦略の議事録などを盗み見したとか、そういったものになります。これだと、確かに継続してデータを盗まれることが被害の拡大となるので、そうした漏洩を任意のタイミングで防ぐような措置は必要でしょう。

ただ、これは「たまたま(最大) n 日後にパスワードを変更して外部からのアクセスや外部への漏洩を遮断した」というだけのことであって、当該の情報漏洩に使われているマシンにバックドアが仕込まれている場合には、ふたたび攻撃者に変更後のパスワードが漏洩してしまう可能性が高いです。あるいは、オンラインサービスのパスワードであれば、最初にそれが漏洩した原因を放置したままなら、変更しようとも、まさにパスワードを変更するときに再びどこか外部のサーバへ送信したり漏洩するだけの話ではないでしょうか。要するに、パスワードの変更によって情報が漏洩してしまっている原因を解消できない場合には、パスワードの変更という操作そのものに殆ど対策としての意味はないのではないかと思えます。

Webアプリケーションの場合は新しいバックドアのようなソフトウェアをインストールすることはできませんから一般的な意味でいうバックドアが仕込まれることは考えにくいでしょう。

武田圭史「【パスワードの定期変更3】~漏洩リスク対策としてのパスワード定期変更

オンラインサービスの場合はサービス提供側のサーバに脆弱性があると、バックドアを仕込まれるようなリスクがあります。クライアント側のマシンに脆弱性があっても、drive-by-download 等によってマルウェアがインストールされるリスクがあります。よって、僕は武田さんが言うような意味で、オンラインサービスのアカウントに対する攻撃と OS アカウントに対する攻撃とを「混同」しているわけではありません。寧ろ、どちらにも同じようなリスクがあるという意味で「同じ」だと言っているわけです。

最後に雑感として、パスワードの運用ポリシー(作成、実装、管理など)について、暗号学からマネジメントまで見通した文献(単行本や論文)は非常に少なく、まだまだ検討の余地があることは否めません。情報セキュリティのプロパー研究者やコンサルタントの方々には、ブログ記事や些末な事案を場当たり的にリンクしたり言及するだけではなく、情報セキュリティの体系立った論説として展開してもらいたいものだと思います。

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Google+ Twitter Facebook