(3)オンラインでのパスワード推測
パスワード・ファイルを必要としない推測方法もある。ユーザーが通常ログインする場合と同じように,ネットワーク経由でユーザーIDとパスワードを入力し,ログインできる組み合わせを探す方法である。パスワード・ファイルを使った推測方法と比較すると時間はかかるが,対象とするホスト(サーバー)にアクセスできればよいので,実施自体は容易な方法である。
この方法では1回の試行に時間がかかるので,パスワードとして利用される頻度が高い単語だけを集めた小さい辞書ファイルを使って,多数のホストに対して次から次へと試す場合が多いようだ。
(4)ソーシャル・エンジニアリング
「ソーシャル・エンジニアリング」と呼ばれる手法もよく利用される。代表的な方法としては,「オフィスに侵入して,机やパソコンに張られたパスワードを盗む」「ゴミ箱からパスワードが書かれたメモを探し出す」「上司やシステム管理者を装って電話で聞きだす」---などがある。
基本的な対策
(1)“危ない”パスワードは使わない
パスワード破りで最初に試されるパスワードは,ブランク・パスワード(パスワードなし)とアカウント名(ユーザー名)である。これらを設定していれば瞬時に破られることになるので,絶対に使ってはいけない。
最初に試されるだけあって,このようなパスワードを利用している例は想像以上に多い。筆者の1人が以前に参加した案件では,ドメイン・コントローラのADMINISTRATORアカウントがブランク・パスワードだった。
また,別の案件ではシステムのrootアカウントがブランク・パスワードだったこともある。この企業/組織では,「rootはコンソールからのログインしか許していないため,これで問題ない」と判断していたが,適切とはいえないだろう。そのシステムに物理的にアクセスできる人物すべてに管理者権限を許す恐れがあるからだ。
デフォルト・パスワードも“危ない”パスワードの一つだ。デフォルト・パスワードとは,工場出荷時にあらかじめ設定されているアカウントや,データベースなどのプログラムをインストールした際に自動的に作成されるアカウント,特定のサービス業者と契約するとメンテナンス用として作成されるアカウントなど,あらかじめ決められているパスワードである。これらのアカウントとパスワードの組み合わせの多くは広く知られていて,インターネットでも公開されている。
(2)複雑で長いパスワードを使う
パスワードには,大/小文字,数字,記号のすべてを含む十分に長い文字列が望ましい。使う文字の種類が多くなればなるほど,文字列を長くすればするほど,取りうる文字列の種類(組み合わせ数)が増えるからだ。
ここで,使用する文字の種類と文字列の長さによって,組み合わせ数がどの程度変わるか単純に計算してみた(図2)[注2]。図2が示しているのは組み合わせの数だが,とりあえずここでは「パスワード強度」としている。
注2 大/小/数字/記号については,93種類の文字の組み合せ数を計算している。
図2 パスワードの強度 [画像のクリックで拡大表示] |
ランダムな文字列にすることも重要だ。例えば,筆者が持っている英英辞書「LONGMAN DICTIONARY OF AMEICAN ENGLISH」は3万8千語が登録されている。一方,8文字の大/小/数字/記号をランダムに組み合わせた場合には,約5千兆(10の15乗)通りの文字列が考えられる。桁が大きく異なるのだ。この違いを考えれば,辞書にある単語をパスワードに使う危険性が分かってもらえるだろう。
また,「パスワードは8文字以上にすべき」というガイドラインをよく見かける。環境によっては,この「8文字」に特別な意味がある。例えばWindowsシステムでは,パスワード7文字ごとにハッシュ・データを作成する。このため,8文字のパスワードを破るには,攻撃者は8〜14文字のパスワードについて試行しなければならない。7文字のパスワードと比較すると,攻撃者の手間は1文字分以上のものとなる。
「パスワードは15文字が望ましい」とも言われるが,これにも環境によっては特別な意味がある。Windowsシステムでは,14文字以下のパスワードについてはWindows 95/98/Meとの互換性を維持するため,大文字と小文字を区別しない。このためWindowsシステムにおいては,15文字以上のパスワードが推奨されることが多い。
|
この記事は,2006年5月15日に公開した「今週のSecurity Check」の改訂版です。攻撃件数などを最新の情報にアップデートしてあります。
|
|