前回、WordやExcelなど、Officeドキュメントのパスワード暗号化保護は簡易的なものであり、個人情報を扱うには適切ではないということを書きました。その考えに変わりはありませんが、「パスワードの強度(十分な長さと複雑さ)を高めれば十分に安全では」という声をいただきました。確かにその通りだと思います。そこで今回は、Officeドキュメントに設定するパスワードの強度について考えてみました。
最初に断わっておきますが、2015年5月に発生した日本年金機構の情報漏えい事件で話題になっている「パスワード」が、Microsoft Officeドキュメントの「パスワードを使用して暗号化」機能のことを指しているのかどうかは、公表されていないので分かりません。今回も、もしMicrosoft Officeドキュメントの「パスワードを使用して暗号化」の「パスワード」だとしたら……と仮定しての話です(画面1)。
Microsoft Officeドキュメントの「パスワードを使用して暗号化」機能は、解除するための鍵がユーザーが設定したパスワード一つだけです。そのため、この方法でドキュメントを保護するには、類推されにくいパスワードを使用し、かつ、そのパスワードがドキュメントとともに第三者に漏れないということが大前提になります。これは、パスワードの入力を要求するタイプの自己解凍型の暗号化ソフトウエアの場合も同様です。
以下の表1は、パスワードに使用する文字の種類と長さで、考えられるパスワードの組み合わせ数を示したものです。なお、この表の組み合わせ数は、使用できる文字数の組み合わせ総数であり、文字の種類の混在は考慮していません。文字の種類の混在を考慮した場合、組み合わせ数は少なくなります。
文字の種類 | 使用できる文字数 | パスワードの長さと組み合わせ数(※種類の混在していない組み合わせを含む) | |||
---|---|---|---|---|---|
4文字 | 6文字 | 8文字 | |||
数字のみ(0〜9) | 10 | 104(1万) | 106(100万) | 108(1億) | |
英字(大文字と小文字を区別しない) | 26 | 264(45万) | 266(約3億) | 268(約2088億) | |
英字(大文字と小文字を区別する)と数字 | 62 | 624(約1477万) | 626(約568億) | 628(約218兆) | |
英字(大文字と小文字を区別する)と数字と記号 | 95 | 954(約8145万) | 956(約7350億) | 958(約6634兆) | |
表1 パスワードに使用できる文字数と長さとその組み合わせ総数(記号は`&<>'*@\[]{}^:,$=!-#()%.|+?";/~_および半角スペースの33字) |
少し古い情報になりますが、情報処理推進機構(IPA)が発行している以下のリポートでは、パスワード解析ツールを使用した解読時間の試算結果が紹介されています。
IPAのリポートでは「3種類以上の文字を使用した8文字以上」のパスワードが、解読されにくいパスワードとされています。現在のコンピューティング環境では解読時間はもっと短縮されていると思いますが、パスワード解析ツールを使用した最大解読時間の当時の試算では、3種類6桁で約54日、2種類8桁で50年、3種類8桁で約1千年となっています。
マイクロソフトのActive Directoryドメインでは「英大文字(A〜Z)、英小文字(a〜z)、数字(0〜9)、記号の4つの種類のうち、3種類の文字を使用し、6文字以上」(およびユーザー名や表示の一部を含まない)のパスワードが推奨されています。
総当り攻撃や辞書攻撃を緩和する要素としては、誤ったパスワードが入力されるたびに応答時間を延ばしたり、繰り返し失敗したときにロックしたりするような機能があります。
例えば、銀行のキャッシュカードは4桁の数字の暗証番号(PIN)ですが、ATMでPINの入力を複数回間違えると、一時的にカードが利用できなくなったり、カードが無効化されたりします。ATMの場所や時間、監視カメラの記録も残るでしょう。Microsoft Officeには、そんな機能はありません。パスワードを解読しようとする攻撃者には、いくらでも時間がありますし、解読の試みが記録、通知されることもありません。
次の画面2は、Wordのマクロ機能を利用して、4桁の数字パスワードが設定されたWordドキュメントのパスワードを解読して開くプログラムを作成し、実行した結果になります。
念のためコードの一部は隠していますが、0000〜9999の全ての組み合わせを使用してドキュメントを開き、成功するまで繰り返しているだけです。4桁の数字パスワードということが前提ですが、筆者のPC環境では最短1秒以下(0000)〜最大42分(9999)で解読できました。
この簡単な例は、主にWordのファイルを開いて失敗するという処理に時間を要しています(1パスワード当たり約0.25秒)。全ての組み合わせを試すため、いつか必ずパスワードは解読できます。6桁以下の数字パスワードなら、最大で77時間あれば解読できる計算になります(1桁「0」〜6桁「999999」までの111万1110通りの組み合わせ×0.25秒)。
強力なパスワードの使用は、最長の解読時間を理論上、千や億の年月に延ばしてくれるでしょう。しかし、Microsoft Officeドキュメントの「パスワードを使用して暗号化」機能で設定できるパスワードは、「1文字以上」のパスワードからです。
そのため、運用ルールに任せてしまうと、ユーザーは極めて簡単なパスワードを設定してしまうかもしれません。その方が覚えやすく、仕事の効率にも影響しないからです。運用ルールに違反して、パスワードを設定しないというユーザーが出てくる可能性もあります。
実は、「グループポリシー」を使用することで、Microsoft Officeにパスワードルールを強制できるようになります。Office 2013およびOffice 365 ProPlusの「グループポリシー管理用テンプレート」は、次のWebサイトから入手できます。
「グループポリシー管理用テンプレート」を使用すると、パスワードの最小文字数の設定、およびパスワードの文字数と複雑性のチェック機能を構成することができます(画面3)。Active Directoryのドメインのパスワードポリシーに基づいたチェックを行わせることも可能です(画面4)。
グループポリシーを使用することで強力なパスワードの設定を強制できますが、設定したパスワードを忘れてしまうユーザーが続出するかもしれません。そのような場合に備えて、前回の記事(「Word/Excelのパスワードによる保護では個人情報は守れません」)で紹介した「Microsoft Officeのパスワード解除ツール(Office DocRecryptツール)」を展開して、パスワードをリセットできる方法を用意しておくとよいでしょう。
グループポリシーを使用しても、パスワードを設定しないという運用ルール違反を取り締まることまではできません。ただし、共有フォルダーに保存されるMicrosoft Officeドキュメントにパスワードを要求することは、システム的に比較的簡単に対応できるかもしれません。
例えば、Windows Serverの「FCI(File Classification Infrastructure:ファイル分類インフラストラクチャ)」機能を利用すると、共有フォルダー内に保存されたファイルに対して、スケジュールまたは保存されたタイミングで、ドキュメントの内容や属性に基づいて何らかのタスクを自動実行させることができます。
前回紹介した「Active Directory Rights Managementサービス(AD RMS)」によるMicrosoft Officeドキュメントの高度な暗号化は、標準で用意されている「RMS暗号化」タスクで簡単に自動化できます(「RMS暗号化」タスクはWindows Server 2012 R2からの機能)。ファイル管理タスクではカスタムスクリプトを自動実行することもできるので、Microsoft Officeドキュメントのパスワード設定のチェックや新たなパスワード設定の処理を自動化するのに利用できるでしょう。
岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.