言うまでもなく,パスワードは重要である。容易に推測可能なパスワードを使っていれば,どんなに強固なセキュリティ・システムを利用していても意味はない。例えば,セキュアなリモート・アクセスを実現するプロトコルの一つ「SSH」のパスワードを破られてサーバーに侵入された事例が情報処理推進機構(IPA)に報告されている関連記事)。

 実際,富士通 fujitsu.com室の城崎徹氏によると,SSHなどへのパスワード破り攻撃が最近増えているという(関連記事)。あるセミナーにおいて同氏は,パスワード破りのツールには“改良”が加えられていて,簡単なパスワードを付けていると容易に破られる状況になっているという。パスワード破りツールは,辞書ファイルの中にある単語を使ってログインを試行する。このため,辞書が同ツールの肝となる。この辞書は「日々更新されている」(城崎氏)という。辞書には「国内ユーザーを対象としていると思われる単語が多数含まれる」(同氏)。

 同様の話は,2年前にあるセキュリティ・ベンダーの方からも聞いている(関連記事)。パスワード破り用の辞書には,通常に辞書に書かれている単語はもちろん,いろいろな国の人名や地名といった固有名詞も収められているという。日本人の名前や日本語の曲名などをパスワードにしていれば,一見,日本人以外のクラッカには破られないように思えるが,ツールを使えばあっという間に破られることになる。破られないようにするには,世界中の誰が見ても意味不明な文字列にする必要がある。しかも,パスワードを頻繁に変更することも求められる。

 つまり,「推測できないようなパスワードを設定する」「パスワードを頻繁に変更する」---ことが,インターネットからアクセスできるようなサーバーでは特に重要になる。

 もちろん,パスワード認証以外のユーザー認証システムを導入できればパスワードにまつわる問題からは解放されるが,コストなどの問題で導入が難しい企業や組織は少なくないだろう。そういった企業/組織では,個々のユーザーがパスワードを適切に管理する必要がある。

推測できないものは覚えるのも大変

 とはいえ言うのは簡単だが,推測できないようなパスワードを設定して,しかも頻繁に変更することは難しい。推測できないような複雑なパスワードは,当然覚えていることも難しいからだ。

 複雑なパスワードを作る方法はいくつかある。「他人は推測できないが自分は覚えていられるパスワード」の作成方法としてよく用いられるのが,有名な文章や歌詞に並んでいる単語の頭の文字を使う方法である。このとき,アルファベットだけのパスワードにならないように,自分なりのルールで記号や数字に読み替える。

 具体例として筆者がよく使うのは,「枕草子」の一節から作ったパスワードである。「春は,あけぼの。やうやう白くなりゆく山ぎは・・・」⇒「春は|,|あけぼの。|やうやう|白く|なりゆ|く|山|ぎは・・・」⇒「Haruha|(テン)|@kebono|Youyou|(白=スペース)|Nariyu|9|(ヤマ)|giwa・・・」⇒「Hrh.@Y N9^g」。いかがでしょうか(ちなみに,このパスワードがどれだけ強固かは調べていない)。

 上記の例に限らず,推測できないような複雑なパスワードを作ることは面倒だろうが難しくはない。また,自分で作ったパスワードなら時間をかければ覚えられるだろう。

 だが,システムによっては管理者から渡された複雑なパスワードを使わなくてはいけない場合がある。また,自分で作る場合でも,頻繁に変更しなくてはいけない場合には,とても覚えていられない。例えば,1カ月に1回あるいは2カ月に1回変更しなければならないとなると,作ったり覚えたりすることは容易ではない。

 そうなると,ユーザーはシステムが許す範囲で最も容易なパスワードを付けるようになる。例えば,パスワード破りツールに簡単に破られることが分かっていても,固有名詞を単に並べただけでのパスワードを設定するユーザーが現れるだろう。数字を入れなくてはいけない場合には,銀行口座の暗証番号を含めてしまうかもしれない。このようなことをすると,別のリスクが発生するにもかかわらずである。

 システム側でパスワードの履歴を記録しておいて,例えば過去10個分とは同じパスワードを設定できないようにしておくとする。すると“お気に入り”のパスワードを使い続けたいユーザーは,短時間でパスワードを10回変更して,再び同じパスワードを使い続ける場合があるという。これを防ぐために,多くのシステム(OS)では「パスワードの変更禁止期間」を設定できるようにしている。

覚えられなければ書き留めよう

 「推測できないようなパスワードを設定する」「パスワードを頻繁に変更する」---。この2つを強要するようシステム側で設定すると,最終的にユーザーはパスワードを何かに書き留めるようになるだろう。覚えていられないのだから無理はない。

 ここで,「書き留めておいて誰かに見られたらどうする。無理でも覚えろ」と言うのは簡単だが,現実的ではない。筆者は,パスワードを書き留めておいてよいと考えている。むしろ,書き留めておくことを勧める。

 もちろん,“生”のパスワードを付箋紙などに書いてパソコンに張っておいてはだめだ。そのようなことを勧めているわけではない。肌身離さず持ち歩いている手帳や財布に入れた紙に,パスワードのヒントを書いておくのである。セキュリティの専門家であるBruce Schneier氏も以前から同様の主張をしていることを,同氏が発行するニューズ・レター「CRYPTO-GRAM」明らかにしている関連記事)。

 マイクロソフト セキュリティレスポンスチームの小野寺匠氏も,あるセミナーにおいて,「パスワードのヒントをメモしておくことは“アリ”だと思う」と解説した(関連記事)。同氏が例として紹介したのは,書籍や雑誌中からランダムに抜き出した文章を使う方法。メモには書籍名や雑誌名を書かずに,その文章が書いてあるページ数だけを書いておく。「記憶を呼び起こすヒントだけを書いておくことがポイント」(小野寺氏)

 管理者としては,「推測できないようなパスワードを設定しろ」「パスワードを頻繁に変更しろ」「どこにも書き留めず覚えていろ」---と言いたいだろう。その気持ちは分かる。だが,多くのユーザーにとっては難しい要求である。これらすべてを要求すれば,ユーザーとしては簡単なパスワードを設定したり,付箋紙などに書き留めたりするようになる。パスワードを忘れたという問い合わせも増えるだろう。

 「とにかく推測できないようなパスワードを設定してください。それが第一です。パスワードはできるだけ記憶してほしいけれど,覚えられない場合には書き留めても結構です。ただしその際には以下の点に注意してください・・・」として,書き留めておく際の注意点を具体的に紹介したほうが,システム全体のセキュリティは守られると筆者は考えるがいかがだろうか。

 前述のSchneier氏は「たとえパスワードをそのまま紙に書いていたとしても,記憶できないようなパスワードを書き留めておくことは,簡単に覚えられるようなパスワードを設定することよりもずっと安全だ(But even if you don't do any of this, writing down your impossible-to-memorize password is more secure than making your password easy to memorize)」とまで言っている。筆者もそのとおりだと思う。