1.4 パスワードの管理と注意

不正アクセスを目論むクラッカがまず狙うのがパスワードです。パスワードを奪われれば、侵入やなりすまし、メール閲覧やデータ改竄を許してしまいます。私たちは、どのようにパスワードを取り扱うべきなのでしょうか。

認証システムの技術的対策と同時に、使用者が心がけるべきパスワードの取扱いには下記が推奨されています。

「定期的に変更する」意義ですが、パスワード奪取または解析に成功したクラッカは、所有者に知られないようシステムを使用し続けていることが通例であり、定期的にパスワードを変更することで、奪取されたパスワードを無効にする狙いがあります。不正アクセス被害には目に見えないものが多いため、万が一に備えた対策の1つです。

「類推されやすいものは避ける」、「アカウント作成時に付与されたパスワードは使用しない」、「可能な限り文字列を長くする」は、簡単な推理で破れるパスワードを使用すべきでないという意味です。

パスワードに関する攻撃に、様々な単語を大量に記録した辞書データを使用し、認証システムに片端から単語を投入する方法や、使用者の個人情報等を調べてそれらを入力するソーシャルクラッキングがあります。したがって、推測を許す可能性のあるパスワードは絶対に使用すべきではありません。

また、管理者は次のようにサーバの設定を変更することが推奨されています。

新しいUNIXシステムであれば、ほとんどの場合、root権限でしかパスワードファイルの閲覧ができない、シャドウパスワードが設定されているはずです。オプションで設定することも可能になっています。

また、ユーザに対して頻繁にパスワードを変更するよう促しても、 全員が守ってくれるとは限りません。そこで、パスワードの有効期限も設定することができます。これによって、30日毎に強制的なパスワード変更を行わせることができるようになります。

たとえば、パスワードの有効期限を30日と設定した場合、 パスワードの解析を試みる側には30日間の猶予期間があるということになります。

これも危険であると判断した場合は、ワンタイムパスワードによる方式を導入する方法もあります。ワンタイムパスワードは、毎回新しいパスワードを発行する仕組みであるため、 パスワードの解析は大変な作業になります。

加えて、ユーザインターフェースに、ユーザがログインした際に前回のログアウト時間が表示される仕組みを作ってやれば、パスワードの盗難が起きているかどうかを各自で確認できるようになります。また、そういう侵入を検知できる仕組みが構築されていれば、クラッカ側もそのシステムに興味を示すことは無くなるでしょう。

1.4.1 類推しやすいパスワード例

パスワードも頻繁に変更しておけば何でも良いというわけではありません。
現実に設定してはいけないパスワードの例を挙げます。

ユーザ名と同一のパスワードを設定してはいけないことは良く知られていることです。しかし、他の項目は何故でしょうか? パスワード解析を行うには主に3つの方法があります。

  1. ブルートフォース攻撃
  2. 辞書攻撃
  3. 盗聴

(1) ブルートフォース攻撃

Brute force password crackingとも言われます。これは単純な文字の組み合わせを総当たりで試みるものです。解析の時間が非常にかかる方法ですが、時間さえあれば確実にパスワードを奪取することができます。

(2) 辞書攻撃

もし、パスワードの文字列に辞書にあるような単語や、人名、 製品や商標名といったものを使っている場合、 辞書攻撃によってパスワードを解析される可能性が高くなります。一般的な英和辞典が約5万語ですが、辞書攻撃に使われるワードリストは80万語とも100万語とも言われています。

パスワード解析に使用される辞書は、英和辞典などに掲載されている単語だけでなく、人名、地名といったものや、よく使われるユーザ名などを入れておきます。さらに、この中に規則性を持たせた文字列も入れておきます。たとえば"777" や"aaaa"といったものです。これを順に試していくわけです。

この辞書には、変換規則を考慮したデータもあります。たとえば、"taro"のように"orat"の文字列を逆順にしたり、"tAro"のように一部を文字の大文字にすることや、"taro1"のように先頭や末尾に数字を付けるというものもあります。

ユーザ名や固有名詞を使用していても数字や大小文字を使用しているから大丈夫ということはありません。

(3) 盗聴

パスワードを確実に得るためには盗聴という手段があります。

同一ネットワーク内から、相手がシステムにログインするときを待って、サーバとクライアントの間でやりとりされる通信を傍受しパスワードを奪取する方法です。

盗聴を行うには、通信傍受のための機材をネットワークに物理的に接続する必要があったため、同一事務所内などネットワークの置かれた環境内だけでの話でした。しかし、最近サービスが始まった街中のホットスポットでは、無線LAN接続の電波からパケットを収集するなど、新たな盗聴の危険性が広がっています。

また、遠隔地のシステムにパスワードを盗聴するプログラムを仕込み、奪取したパスワードをメールで通知するなどといった手法もあります。これは、トロイの木馬と呼ばれるものの一種です。

*ホットスポット:コーヒーショップやホテルロビーなどで提供されている、無線LANを利用したインターネット接続サービスのこと。

1.4.2 パスワードの設定

それでは、どういうパスワードを使用すればよいのでしょうか?

パスワードは極力長くし、最低でも8文字以上を使用することが必要です。パスワードは長ければ長いほど強度が上がります。

また、使用するパスワードには、アルファベットの大文字と小文字、数字、記号を混ぜ、個人から推測できる情報を含めないことが肝要です。さらに、辞書に有るような単語、テレビやラジオ、メディア等で使用されている流行語や時事用語等、推測しやすいパスワードは使用してはいけません。たとえば「hUj#l-7Zk6y」といった全く意味の無いパスワードになるほど類推が難しくなるため、辞書攻撃を回避することができます。

ただし、強度の高いパスワードを決めれば、今度は使用者がパスワードを覚えられないというジレンマも発生します。「NRzIjKxJ」と設定する変わりに「8jimechanhaKa4koine.」(はじめちゃんはかしこいね。) など、管理者や登録されるユーザには無関係かつ覚えやすい単文に適当に記号や数字を混ぜることで、ある程度、強度の高いパスワードを設定することはできます。

1.4.3 パスワードファイル

UNIXシステムで実際に設定したパスワードを使って説明します。

パスワードファイルは「/etc/passwd」にあり、ユーザ情報が格納されています。各プログラムがこれを利用します。

以下の行はUNIXのパスワードファイルの例です。1ユーザあたり1行が設定され、 それぞれユーザ名や暗号化されたパスワードが ":" で区切られ記録されています。

この表では、その中の一行を示し、それぞれのフィールドを解説します。

パスワードファイルの内容

yamada:E5lYr5uCcib194viiRgRq2xu:2000:500::::YAMADA Jiro:/home/yamada:/bin/csh

ユーザ名

yamada

パスワード

E5lYr5uCcib194viiRgRq2xu

UID(ユーザID)

2000

GID(グループID)

500

ログインクラス

パスワード変更期限

ユーザアカウントの有効期限

CECOS(名前等)

YAMADA Jiro

ホームディレクトリ

/home/yamada

ログインシェル

/bin/csh

ユーザ名の長さはUNIXシステムによって異なります。慣習として8文字以下の英数小文字で付与します。数字のみのユーザ名も作成可能ですが、chownコマンドやアプリケーションで問題を引き起こしかねないためあまり使用されません。

ここで問題にしたいのは次のフィールドです。このパスワードフィールドの文字列は、本来のパスワードをMD5やDESで暗号化したものであり、不可逆なものです。よって、この文字列からパスワードを生成することは事実上不可能とされています。

1.4.4 パスワード解析

では、暗号化され不可逆なパスワードをどのように解析するのでしょうか?

暗号化されたパスワードの文字列には可逆性はなく、元のパスワードを導き出すことは事実上不可能 です。しかし、適当な文字列を暗号化し、その暗号化の結果が一致すれば、元の文字列も一致すると推測できます。 これにはcrypt関数を使用します。crypt関数を使用する若干のコードを記述し、指定した文字列を暗号化できるようにします。暗号化された文字列は、crypt関数に対して同じ引数で引き渡され得られた結果と同じはずです。

パスワードを解析することは、暗号化された文字列を復号するわけではなく、解析する元の文字列を暗号化し、その結果を照合するのです。つまり、復号できなくとも、解析は可能です。

パスワード解析

パスワード解析ツール

*IPアドレス:変化または変換したものを元の状態に戻せること。
 

1.4.5 シャドウパスワード

従来のUNIXシステムでのパスワードは、暗号化された/etc/passwdファイルに保存されており、各プログラムはユーザ認証のためにそのファイルを参照していました。そのため、ユーザにこのファイルへのアクセス権を与える必要がありました。

ユーザとしてアクセスしたクラッカにパスワード奪取を許せば、パスワードファイルを解読されroot権限を乗っ取られる危険性がありました。

そこで、ユーザとグループ名等は/etc/passwdに保存し、暗号化したパスワードは、root権限でしか読めない/etc/shadowに保存します。これがシャドウパスワードです。


前へ ホームへ 次へ


    © 2002 Information-technology Promotion Agency, Japan. All rights reserved.