エンタープライズ:特集 2003/07/10 19:22:00 更新

N+I NETWORK Guide2003年3月号より転載
RADIUSの仕組みと構築のポイント――第1部:RADIUSの仕組みを知る (3/5)

CHAP

 PAPの弱点である盗聴に備え、パスワードを暗号化するチャレンジ応答方式を組み込んだのがCHAP(Challenge Handshake Authentication Protocol:チャレンジハンドシェイク認証プロトコル)である。この暗号化処理にはMD5(Mess

age Digest 5:メッセージダイジェスト5)という関数が一般的に使われ、これによって作成されるハッシュ値と呼ばれる暗号データを利用する。

図3

図3 CHAPの認証方式

 CHAPでは、クライアントからアクセスのためのユーザー認証要求が送られると、それを受け取った認証機器はまずセッションIDと任意のチャレンジ文字列を合わせた「Challenge」と呼ばれるメッセージを作成、クライアントに送信する。このメッセージを受け取ったクライアントは、チャレンジ文字列、パスワードをMD5を使って暗号化、クリアテキストのユーザー名とともに認証機器に送る(CHAP応答)。認証機器側は、自分でMD5を使って暗号化したデータとCHAP応答を比較し、適合すればユーザー認証を許可、クライアントにCHAP成功メッセージを送る。

 このCHAPのポイントは、認証ごとにチャレンジ文字列を生成するところにある。これにより、一度アクセスに成功したデータを盗聴し、それを丸ごと使って不正アクセスを試みる「リプレイアタック」を防いでいるのだ。また、暗号化にかかわらずパスワード自体はネットワークに流れないため、暗号の解読に対しても安全性がより強化されている。

 ただし、CHAPでは認証機器側からクライアントの確認はできるが、クライアントから認証機器側、すなわち偽装サーバに対する防御はできない。一方向の認証といえる。

 このCHAPはRFC1994として定義されている。PAPと並んで、もう1つの業界標準といってもよいだろう。

●Windowsサーバが実装するMS-CHAP Ver. 1とVer. 2

 認証機器としてWindowsサーバを利用する場合もCHAPが利用できる。リモートクライアントだけでなく、LAN内のユーザー認証でもCHAPがサポートされているのだ。

 マイクロソフト独自の拡張を加えられたMS-CHAPには、Windows NT 3.5xやWindows 95で利用されていたLAN Manager認証をサポート、下位互換性を持つVer.1と、双方向認証などVer.1の問題点解消と機能強化を行ったVer.2がある(表2)。

表2 MS-CHAP Ver. 1の問題点とVer. 2で実装した解決機能

MS-CHAP Ver. 1の問題点
LAN Managerによる応答やパスワード変更の符号化は暗号化の強度が不十分 一方向の認証しかできない。クライアント側からは正規の認証機器か偽装されたものかを確認できない 40ビット暗号化を使い、ユーザーのパスワードに基づいて暗号化キーを作成する。同じパスワードで接続するたびに同じ暗号化キーが生成される クライアントと接続機器のどちらの接続方向の送信データに対しても1つの暗号化キーを使う
MS-CHAP Ver. 2での解決
LAN Managerによって符号化された応答やパスワード変更は許可されない 相互認証とも呼ばれる双方向認証が行われる。クライアント側は認証機器がユーザーのパスワードにアクセスできることを示す証明を受け取る 常にユーザーのパスワードと任意のチャレンジ文字列に基づいて暗号化キーを作成する。同じパスワードで接続しても別の暗号化キーが使用される 送信データと受信データに別々の暗号化キーを使う

 MS-CHAPを認証プロトコルに設定することで、PPPまたはPPTP接続の送信データを暗号化するMMPE(Microsoft Point-to-Point Encryption)を使うこともできる。

○MS-CHAP Ver.1

 MS-CHAP Ver.1は、基本的にCHAPと同じ方式だ。ただし、暗号化アルゴリズムにMD4を使う。具体的な手順は以下のとおりだ。

1)RASなどのユーザー認証システムサーバ(以下認証サーバ)が、リモートアクセスを要求してきたクライアントに対してセッションIDと任意のチャレンジ文字列で構成されるチャレンジを送信する

2)クライアントは、クリアテキストのユーザー名、チャレンジ文字列とセッション IDの暗号化データ(MD4ハッシュ)、パスワードの暗号化データを含む情報をMS-CHAP応答として返信する

3)認証サーバで暗号化データを作成(ハッシュを複製)して返信データと照合、同じであれば認証の成功となる

 MS-CHAP Ver.1を認証プロトコルとして使う場合は、仕様上パスワードが 14 文字を超える場合に40ビットで暗号化された接続を確立できない。ダイヤルアップだけでなく、VPN接続時にも影響を与えるので注意する。

○MS-CHAP Ver. 2

 MS-CHAP Ver. 2はWindows 2000から実装されたマイクロソフト独自拡張のCHAPで、Ver.1に比べてより強力なセキュリティ機能を実装しているのが特徴だ(表2)。

 MS-CHAP Ver. 2では、以下のような手順で相互認証を行う。

1)認証サーバが、リモートアクセスを要求してきたクライアントに対してセッションIDと任意のチャレンジ文字列で構成されるチャレンジを送信する

2)クライアントからMS-CHAP Ver. 2の応答メッセージを送る。このメッセージには、「ユーザーの名前」「任意のピアチャレンジ文字列」「受信したチャレンジ文字列、ピアチャレンジ文字列、セッション識別子、パスワードの暗号化データ」が含まれる

3)認証サーバはクライアントからの応答を確認。その後、「接続の試行の成功または失敗を示す情報」「送信されたチャレンジ文字列、ピアチャレンジ文字列、暗号化されたクライアントの応答、およびユーザーのパスワードに基づく認証済み応答」が含まれた応答メッセージをクライアントに送り返す

4)クライアントは、認証済み応答を確認、正しければ接続を行う。正しくない場合は接続を終了する

 このように、認証サーバが接続を判断実行していたVer. 1と比べ、Ver. 2では認証サーバ側で許可した後にクライアント側で判断、接続を行うようになっている。

 このMS-CHAP Ver.2は、Windows 2000のダイヤルアップ接続およびVPN接続で使用できる。Windows NT 4.0/98では、VPN接続のみの使用が可能だ。ちなみにVPN接続の場合、Windows 2000 ServerはMS-CHAP Ver.1より先にVer. 2の使用を要求する。ダイヤルアップ接続はこの限りではない。

前のページ | 1 2 3 4 5 | 次のページ

[N+I NETWORK Guide編集部,N+I NETWORK Guide]