Hatena::ブログ(Diary)

ockeghem(徳丸浩)の日記 このページをアンテナに追加 RSSフィード

[PR]WAFの導入はHASHコンサルティング
 | 

2008-02-26 セキュリティの常識・非常識

パスワードの定期変更は「神話」なのか?  パスワードの定期変更は「神話」なのか?を含むブックマーク

ITProの記事が契機となって、PCIDSS(PCIデータセキュリティ規準)およびパスワードに関する規定が話題となっている*1

記者の眼 - 「パスワードは90日ごとの変更」が義務づけられる!?:ITpro

それに対して,PCIDSSは表現が具体的である。現在のバージョン1.1ではパスワードについて下記のような規定がある。

■要件8.5.8 グループ、共有または汎用のアカウントパスワードを使用しないこと。

■要件8.5.9 ユーザー・パスワードは少なくとも90日ごとに変更する。

http://itpro.nikkeibp.co.jp/article/OPINION/20080220/294287/

このうち、要件8.5.9「ユーザー・パスワードは少なくとも90日ごとに変更する」に関して疑問を持った。これはいわゆる「セキュリティの常識」という奴の一つではあるが、実際のところ、なぜパスワードを90日ごとに(あるいは定期的に)変更しなければならないのだろうか。

ネットなどで探してみると、定期的なパスワード変更の理由としては、主に以下の二つが説明されているようだ。

例えば、総務省が公開している情報管理担当者のための情報セキュリティ対策 パスワード管理の推奨では以下のような記述がある。

 パスワードを定期的に変更しなければならない理由には、以下のようなものがあります。

  • 他人に推測されにくいパスワードでも、ハッキングツールを使って長時間かければパスワードが割り出されてしまうこと
  • 仮にパスワードが割り出されてしまっても、なりすましなどの被害を受け続けることを避けることができること
http://www.soumu.go.jp/joho_tsusin/security/business/admin03.htm

本当にそうだろうか。以下、順に検討してみよう。

パスワードの定期変更はパスワードを破られにくくするか?

これはすなわち、90日以上も掛けてパスワードを割り出すようなクラッキング行為に対して、定期的にパスワードを変更することで対抗しようということだろう。しかし、PCIDSSには以下のような規定もある(日本語版からの引用)。

8.5.13 ユーザーIDをロックアウトすることにより、連続したアクセス試行を6回以内に制限する。

8.5.14 ロックアウト時間は30分間、またはアドミニストレータがユーザーIDを有効にするまでとする。

https://www.pcisecuritystandards.org/pdfs/japanese_pci_dss_v1-1.pdf

いわゆるアカウントロックを義務付けていることになる。パスワードの間違いが6回を超えると、30分以上時間をおくか、管理者に依頼してロックアウトを解除してもらわなければならない。これはかなり厳しい制限である。この規定は、定期的にパスワードを変更するよりもはるかに有効なパスワードクラッキング対策である。かたや、90日ごとのパスワード変更は、有効性はずっと乏しい。(最長)90日以内にパスワードが破られた場合には無力だからだ。

一般に、パスワードのブルート・フォース攻撃や辞書攻撃に対する備えとしてはアカウント・ロックが有効であり、重ねて定期的なパスワード変更を義務付ける必要はまったくないと私は考える。

パスワードの定期変更によって被害を最小限にできるか?

次に、パスワードの定期変更によって被害を最小限にできるかを検討する。

そもそもPCIDSSは、PAN(カード番号=Primary Account Number)を取り扱うサイトに義務付けられた規定だ。カード番号がクラックされた場合に、(最長)90日放置されて「被害を最小限にできる」だろうか?クラッカーは、必要な情報をすばやく入手して、ばれないうちに悪用しようとするのではないか。90日もたってから悪用するのは、よほどのんびりしたクラッカーのように思える。

したがって、90日毎のパスワード変更では、被害を最小限にすることは期待できない。

なぜパスワードの定期変更という「常識」が生まれたか?

このテーマを考えると、一つだけ、パスワードを定期的に変更せざるを得ない状況を思いつく。それは、UNIX系OSで/etc/passwdにパスワード*2を格納している場合だ。/etc/passwdは、そのマシンのユーザであれば誰でも参照できるので、今時はそのような運用をしているケースはまれだろうが、昔は/etc/passwdそのものにパスワード情報が格納されていたのだ。

このような状況では、いくらアカウントロックなどの設定をしていても、/etc/passwdファイルを入手した上で、John the Ripperなどのツールを利用すれば、オフラインでゆっくりパスワードを解析することが可能となる。あとは時間との勝負だ。

このような状況では、確かにパスワードの定期変更くらいしか対抗手段がない。

しかし、これはそもそも/etc/passwdにパスワード情報を格納していることが問題であるのだ。近年では、パスワード情報はroot権限でのみ参照できるシャドウファイルに格納されているので、パスワードの定期変更をする動機はなくなったと考える。

同様に、データベース暗号化されたパスワードを格納しているケースで、それを解読される時間を問題視する方もいるかもしれない。しかし、データベースからパスワード情報を読み出せるユーザであれば、カード番号など別の重要情報も読み出せるだろう。カード番号は暗号化されているかもしれない*3が、パスワードの解読を心配するのであれば、カード番号の解読はもっと心配すべきだろう。

言い換えれば、こうだ。この理由によりパスワードを90日毎に変更しなければならないのであれば、カード番号も90日毎に変更すべきである。しかしPCIDSSにはカード番号の定期変更に関する規定は見当たらない。

パスワードの定期変更は「神話」なのか?

話題となったPCIDSSをきっかけとして、パスワードの定期変更問題について検討した。ひょっとすると、私の知らない理由によって、パスワードを定期変更するべき明確な根拠があるのかもしれない。もしあるのであればぜひ教えていただきたい。

少なくとも、現時点の私の心証はこうだ。

かつてはパスワードを定期変更すべき明確な根拠があったが、現在その根拠は失われている。そして、パスワードの定期変更は『神話』となった

*1:各国語版のPCIDSSv1.1は、ここから(LICENSE AGREEMENTを経由して)ダウンロードできる

*2暗号化されたパスワード、あるいはパスワードハッシュ

*3:PCIDSSではカード番号の暗号化は推奨であって、強制ではない

F2F2 2008/02/29 16:37 他人に入力する姿を見られる可能性のあるパスワードは、変える必要があると思っています。
人の敵は人ですから。

masamasa 2008/02/29 18:31 モデムで通信していた時代なら有効だったとかもしれません。
1回の接続で接続で試せるパスワードが3つで、接続の頻度の上限が1分に1回
だとすると、90日でも試行できる回数は90*24*60*3=388800回なので、
英数字5文字のパスワードが設定されているとすると、可能なパスワードの総数は
(26+10)^5=60466176 なので、90日で試行できるのは1%未満となり、ほぼ確実に
総当りで試し終わる前にパスワードが変わってしまうことになります。

 | 
Google