QA@IT

パスワードを定期的に変更する理由は何ですか?

20371 PV

職場やWebサイトなどで、パスワードを定期的に変更するように要求されることがあります。
しかし、なぜ定期的に変更しなければならないのか分かりません。パスワードを定期的に変更すべき(した方がよい)理由を教えてください。

回答

バスワードを定期的に変更するべき理由があるとすれば、以下の二点が考えられます。

(1)パスワード漏洩のリスクを減らす

パスワードが漏洩する経路として、時間を掛ければパスワードが解読されるタイプのものがあります。その典型例として、パスワードのハッシュ値を持ち出す手段があり、そのハッシュ値から時間を掛ければ平文のパスワードが得られるというケースです。昔のUNIXでは/etc/passwdというファイルにパスワードのハッシュ値がありましたが、/etc/passwdはそのマシンのユーザであれば誰でも見ることができるので、他人のパスワードのハッシュ値を求め、そこから時間をかけて平文パスワードを得るという攻撃が可能でした。

この状況では、対策として、パスワードを定期的に変更することで、パスワード解読された頃には別のパスワードが使われている「対策」がある程度有効でした。

しかし、パスワード解読側が高速なマシンを多数用意すれば、パスワード解読に至る時間を短縮できます。どの程度の頻度でパスワードを変更すれば安全かどうかには基準はなく、極論すれば「毎日パスワードを変更しても安全とは言い切れない」ということがおこります。

最近のUNIX系OSでは、シャドウファイルというファイル(一般ユーザには見えない)にパスワードが格納されており、パスワードを定期的に変更する必要はなくなりました。

(2)パスワードが万一漏洩した場合の保険的対策として

パスワードがなんらかの経路で漏洩した場合、そのまま何もしないと、永遠にパスワードが悪用され続けるという状況が起きます。仮にパスワードを3ヶ月毎に変更すると、パスワードの悪用は最長でも3ヶ月で止まります。
上記が意味を持つためには、以下の前提が両方とも成り立つ必要があります。

  • パスワードが長期にわたって悪用されることでリスクが相当拡大する
  • パスワードがいったん漏洩したが、再度漏洩する可能性はない(十分低い)

前者の例として、たとえばメールシステムのパスワードが該当します。メールの盗聴は避けなければなりませんが、長期に漏洩し続けると被害が拡大します。一方、オンラインバンキングのパスワードの場合は、悪用されると気づく場合が多いので攻撃者は短期的に利益を得ようとするでしょう。したがって、オンラインバンキングのパスワードが長期にわたって悪用されるケースはあまり想定しなくてよいと考えられます。

次に、パスワードの再漏洩がない(可能性が低い)と想定することは通常無理があります。例えば、SQLインジェクション攻撃でパスワードが漏洩した場合、攻撃者は再度同じ攻撃によりパスワードを得ることができます。この場合、パスワードの定期的変更では十分な対策になりません。パスワードの再漏洩がないと言えるのは、攻撃を受けたり、脆弱性の指摘を受けて、脆弱性の改修したケースです。この場合は、(定期的ではなく)スポット的にパスワードをリセットするべきです。

このように、パスワードを定期的に変更しなければならない状況というのは、元々かなり危ない状態であり、その根本原因を取り除くことが重要です。

また、パスワードの定期的変更は、ユーザ負荷が高いため、入力しやすい短いパスワードを使ったり、同じパスワードを別のサイトにも使い回すということが起こりやすくなります。これは、パスワードの定期的変更による副作用と言えます。

このように、パスワードの定期的変更は、メリットが希薄である上に副作用が大きいため、一般にはおすすめできないと考えます。

「パスワードを定期的に変更してください」と要求されたら、「パスワードを定期的に変更したら安全となる理由を教えてください」、「パスワードを3ヶ月毎に変更したら安全で、それが6ヶ月になったら危険になるのですか」などと質問するとよいでしょう。

上位のポリシーや標準で「パスワードを定期的に変更すること」と明確に要求している場合は、従うしかありません。しかし、不合理なルールは時間が掛かったとしても改善されていくべきと考えます。

編集 履歴 (1)
  • 改行の調整と一部Markdown形式にしました -
ウォッチ

この質問への回答やコメントをメールでお知らせします。