標準書に見る「パスワードの定期的変更」の歴史(書きかけ放置)

時折セキュリティクラスタを賑わす「パスワードの定期的変更」ネタ。きっかけは2008年頃の高木先生のはてブだったと記憶。その頃わしはISMSなんぞに手を染めてた頃だったので、セキュリティ標準書とかどうなってるんだと思って、BS (British Standard), DoD, NIST関連文書を2008年3月に少々調べて某SNSに書いて放置していた。
その後こんなしょーもないものを書いたものの、もっと調べてまとめて一般公開したいなぁと思ってきたままずるずると今に至っている訳だが、いつまでも抱えてるのもあれなので、2008年に書いたものをベースに公開することにした。
ツッコミどころは多いだろうが、気になる人は自分で調べて発表してちょ。てゆうかそろそろ技術史研究者が乗り出してほしいとも思う。

ISO/IEC27000シリーズと英BS7799

ISMSの認証基準であるISO/IEC27001"Information technology -- Security techniques -- Information security management systems -- Requirements"(日本ならJIS Q 27001「情報技術―セキュリティ技術―情報セキュリティマネジメントシステム―要求事項」)を見ると、Appendix A.のA.11.3.1にパスワード選択・利用時における「正しいセキュリティ慣行に従うこと」(to follow good security practices)の利用者への要求を管理策としているに過ぎず、パスワードの定期的変更そのものの記述はない。また、A.11.5.3でオペレーティングシステムのパスワード管理システムでは、「良質なパスワードを確実とするもの」(ensure quality passwords)であることを管理策としているが、定期的強制変更機能の実装について記述している訳ではない。いずれにしろ、27001では自組織が選択する管理策(control, リスク管理手段を指す言葉であり、ある客体に対してセキュアな状態を想定し、その状態を維持するよう制御する方法の方向性であって、具体的な対策とはイコールではないと理解)候補として大まかなことを言っているに過ぎず、定期的変更を行うことはMUSTではない。

27001の管理策の元ネタは、ISO/IEC27002"Information technology -- Security techniques -- Code of practice for information security management"(日本ならJIS Q 27002「情報技術―セキュリティ技術―情報セキュリティマネジメントの実践のための規範」)*1であり、その位置付けはあくまでもbest(?) practice集である。27001のAppendix A.と27002の項番は1対1対応している。27002の11.3.1を見ると、"Implementation guidance"(実施の手引)として、全利用者への助言が望ましいものの一つとして、定期的間隔もしくはアクセス回数に基づいて変更することが挙げられている。

27002は元はISO/IEC17799という番号だった。これには2005年版以前に2000年版があり、2000年版(JIS化はX 5080)はイギリスの標準BS7799-1がベースになっている。さらにこの2000年版の前には、1999年版と1995年版があった。古い版のBS7799-1全てをBSIから取り寄せて(糞高かった)調べたところ、2000年版と1999年版のBS7799-1では、項番は異なるが、文言は27002と同一であった。だが、1995年版は少し違っていて、7.3.1 g)で具体的に"regular intervals of about 30 days"と変更頻度が提示されていた。

30日ってどっから出てきた数字だよゴルァ!」と言いたい。尚、e)には"minimum length of six characters"と書かれていた。改訂により具体的な数字を消した理由については、残念ながら制定・改訂の経緯がBS7799には掲載されていないのでわからない。

もう一つ、27001にあったA.11.5.3のOSのパスワードの管理システムはどうか。現在の27002では、11.5.3 d)でパスワードの強制変更を挙げ、括弧書きで11.3.1参照としているだけで、明示的定期的強制変更機能を要求しているようには見えない(だが変更履歴による再利用防止について記述がある)。BS7799-1の2000年版と1999年では、9.5.4 d)ではユーザ自身がパスワードをmaintainする場合という記述はあるが同様の内容。BS7799-1:1995では、7.5.4 d)に同様の記載があり、NOTEとして7.3.1との整合性で30日間隔をデフォルトとしている。尚、g)には旧パスワード再利用禁止のための履歴維持期間として12ヶ月という具体的な数値を挙げている。

27002を見ていつも思うのは、せめて「暗号化されたパスワードファイルが開示されている環境下では」とか、「パスワード漏洩の兆候が発見できなかった場合を考慮し」とかの想定脅威の文言を入れて欲しいということだが、単にbest practiceの羅列でしかなく、「使うか使わないかは、読んでいるあなた次第」ということなのだろう。

ちなみに、「"change passwords" "30 days"」でぐぐってみると、まぁ色々出てくる。その中で一つ、ちゃんと読んでないが、Purdue大のSpafford教授のブログが目を引いた。

This is DESPITE the fact that any reasonable analysis shows that a monthly password
change has little or no end impact on improving security! It is a "best practice" based
on experience 30 years ago with non-networked mainframes in a DoD environment -
hardly a match for today’s systems, especially in academia!

CERIAS : Security Myths and Passwords

やっぱりメインフレーム環境が元の話なのか…? 米国政府調達に引きずられた結果なのか?

米国標準

上記Spafford博士のブログに"DoD environment"とあるので鍵はDoD文書かということに気付き、ふと思い出したのはOrange Book。今のISO/IEC 15408の元になったCommon Criteria、これは欧米のセキュリティ機能要件と保証要件の標準を統合したものだが、その一つが米国の軍需調達要件のTCSEC(DoD 5200.28-STD)、俗に言う"Orange Book"である。でもOrange Bookは機能要件のみ。まして運用系の話なんてあったっけと、ぐぐってOrange Book探して見てみたが、やはりない。そういえば、Orange Bookは"Rainbow Series"の一つだっけ、それじゃ他の色で…、と探してみると、"Green Book"がそれであった。

CSC-STD-002-85 DEPARTMENT OF DEFENSE PASSWORD MANAGEMENT GUIDELINE
(数式が読める印刷物スキャン)

よく見てみると、はじめにパスワードの有効期間(lifetime)ありきで、それと突破確率を想定してパスワード長を決めろということが書いてある。以下その数式で、オンラインブルートフォースモデル。わしは暗号強度とかそのへんの理由から決めているのかと思っていたから、この考え方にはちょっと面食らった。
M = log(L*R/P)/log(A)
(M: パスワード桁長, L: 有効期間, R: 単位時間当たりの推測可能数, P: 想定突破確率, A: 文字種数)
Rは想定環境の実測値を用いる。PはAppendix C.6では100万分の1を例示していた。

だが、この式を現在でもそのまま使うことはまったく考えられない。中身はメインフレーム(パスワード利用可能文字種の区分に26文字はあるが52文字はないので英小文字を利用できない環境を想定?)を300baudか1200baudのシリアル端末で使用する環境(しかもシングルセッション)を想定してしか書かれていない(しかもDESが有効だった時代)。現在のようなインターネットという信頼性のないネットワークを経由し、て誰もがシステムに同時アクセス可能な分散コンピューティング環境とは全然違う。コンピュータと通信性能も向上し、botnetもある環境下で、この式は有用なのか直感的には疑問に思う*2

そしてさらに調べると、NISTの廃止文書の一つに、以下があることがわかった。

FIPS 112 Password Usage

この文書はGreen Bookと同時期に刊行(発効は翌年)された。そして、この文書のAPPENDIX EにGreen Bookの内容がパスワード管理基準の設計根拠として丸々取り込まれている。

この文書をつまみ読みすると、"3. Acceptable Basic Criteria"では、パスワードの利用可能文字種、長さ、有効期間(lifetime)等についての基本諸元が定められており、有効期間については、最大有効期間1年、最短有効期間の指定、パスワード危殆化確認時から1営業日以内の変更等が定められている

3.3 Lifetime

3.3.1 Passwords shall have a maximum lifetime of 1 year.

3.3.2 Passwords shall have the shortest practical lifetime, selected by the Security Officer in conjunction with the Systems Manager, which provides the desired level of protection at the least possible cost (i.e., passwords should be changed often but only if the cost of replacement is reasonable and the owner is able to adopt the new password easily).

3.3.3 Passwords shall be replaced as quickly as possible but at least within l working day from the time that a compromise of the password is suspected or confirmed.

3.3.4 Passwords shall be deleted or replaced with an invalid password as quickly as possible but at least within 3 working days from the time that an owner is no longer an authorized ADP system user or any one of a set of owners is no longer authorized access to the data.

3.3.5 Passwords forgotten by their owner shall be replaced, not reissued.

3.3.6 (*) An automated password system shall allow the Security Officer to delete or replace a password (subsequent to authenticating the identity of the Security Officer).

3.3.7 (*) An automated password system shall have the capability of maintaining a record of when a password was created and changed.

FIPS 112 Password Usage

そして"APPENDIX A PASSWORD USAGE GUIDELINES"を見ると、制定背景や考え方(パスワード管理に必要な10要素)の説明に続き、"4. Examples of Password Systems"で3つのシステムモデルを想定し、システム毎にパスワード管理10要素の諸元を例示している。

4.1 Password System for Low Protection Requirements
 (民間小売業者と同程度の小規模科学研究システム、特別な目的のシステム、重要な判断を行わないシステムを想定)
1. Length Range: 4-6
2. Composition: Digits (0-9)
3. Lifetime: 1 year
4. Source: User
5. Ownership: Individual (personal password); group (access passwords)
6. Distribution: Unmarked envelope in U.S. Mail
7. Storage: Central computer on-line storage as plaintext
8. Entry: Non-printing "PIN-PAD"
9. Transmission: Plaintext
10. Authentication Period: Each transaction
4.2 Password System for Medium Protection Requirements
 (個人情報処理、政府機関人事管理、社会保障、軍の補給管理、税金管理等センシティブな処理を行うシステムを想定)
1. Length Range: 4-8
2. Composition: U.C. Letters (A-Z), L.C. Letters (a-z), and digits (0-9)
3. Lifetime: 6 months
4. Source: System generated and user selected
5. Ownership: Individual
6. Distribution: Terminal and special mailer
7. Storage: Encrypted passwords
8. Entry: Non-printing keyboard and masked-printing keyboard
9. Transmission: Cleartext
10. Authentication Period: Login and after 10 minutes of terminal inactivity.
4.3 Password System for High Protection Requirements
(国家安全保障等機密性の高いシステムを想定)
1. Length Range: 6-8
2. Composition: Full 95 character set
3. Lifetime: One month
4. Source: Automated password generator within the authentication system
5. Ownership: Individual
6. Distribution: Registered mall, receipt required; personal delivery, affidavit required
7. Storage: Encrypted passwords
8. Entry: Non-printing keyboards
9. Transmission: Encrypted communication with message numbering
10. Authentication Period: Login and after 5 minutes of terminal inactivity.

FIPS 112 Password Usage

時代を感じる諸元だが、先のBS7799-1:1995 7.3.1 g)にあった"30 days"という有効期間は、"Password System for High Protection Requirements"、つまり国防総省が使うようなシステムに相当する(BS7799-1:1995 7.3.1 e)のパスワード長6文字以上もこれに相当)。そして、"APPENDIX B. EXAMPLES OF COMPLIANCE AND PROCUREMENT DOCUMENTS"には、上記3モデルのうち、minmumとmediumレベルのシステムのセキュリティ適合文書と調達文書例を掲載している。つまり、米国政府調達仕様のコピペ元となり得るものである。

FIPS 112は、2005年2月に廃止された。NISTのアーカイブによると、その同時期に"FIPS SP 800-53 Recommended Security Controls for Federal Information Systems"の初版が発行されている。パスワード管理に関する要件が米政府情報システムのセキュリティ推奨策に含められたということか。

IPAに翻訳がある改訂第2版(2007年12月)を見ると、「IA-5 認証コード(Authenticator)の管理」の「管理策」に「(iv) 認証コードを定期的に変更/新たにする」と、「補足ガイダンス」に、「(iii) パスワードの最短/最長の有効存続期間の制限を設ける」とある。だが、具体的な有効期間の提示はなされていない。

怖い考えになってしまった

(以下大胆な妄想)

マジでこうじゃないと祈るとしか。

2013年時点での補足

ISO/IEC 27002は今年(2013年)改版された。英語原文は読んでないが、この文作成時にJISCが出していたJIS化に向けてのパブコメ案を見ると、2005年版11.3.1「パスワードの利用」e)にあったパスワードの定期的変更に関する項目は、2013年版では項番号が移動して9.3.1に移ったが、e)に相当する項はなくなった(タイトルが「秘密認証情報の利用」と変更になった影響か)。一方、11.5.3から9.4.3に項番号が移った「パスワード管理システム」では、パスワード管理システムが満たすことが望ましい条件として、e)で定期的に及び必要に応じて変更させるようになっていた。

NIST SP 800-53の最新版である改訂第4版(2013年4月)にも、まだ"lifetime"が残っている。

IA-5 AUTHENTICATOR MANAGEMENT
Control: The organization manages information system authenticators by:

f. Establishing minimum and maximum lifetime restrictions and reuse conditions for authenticators;

(1) AUTHENTICATOR MANAGEMENT | PASSWORD-BASED AUTHENTICATION
The information system, for password-based authentication:

(d) Enforces password minimum and maximum lifetime restrictions of [Assignment: organization-defined numbers for lifetime minimum, lifetime maximum];

SP 800-53 Rev. 4 Security and Privacy Controls for Federal Information Systems and Organizations

また、NISTは2009年4月に"SP 800-118 (draft) DRAFT Guide to Enterprise Password Management"を発行してパブコメを求めたが、現時点でまだ正式発行されていない。この文書の3-13頁には、パスワードの定期的変更の有効性に否定的なコラム記事が掲載されている*3

更に古い文書"NBS Special Publication 500-9 THE USE OF PASSWORDS FOR CONTROLLED ACCESS TO COMPUTER RESOURCES"(1977年)を見つけたが、この時点で"password lifetime"という言葉が出てくる。

*1:当時managementとcontrolの違いが未分化だったのか、2013年版では表題が"Code of practice for information security controls"となった

*2:Appendix E.でワンタイムパスワードロックアウトはユーザフレンドリではないと評しているのが興味深い。

*3:参考: 実際、パスワードはどれくらいの頻度で変えるべきですか? : ライフハッカー[日本版]