この特集のトップページへ

5.2.6 セキュリティ
●Microsoft Challenge Handshake Authentication Protocol(MS-CHAP v1, v2)

 MS-CHAPは,非可逆の暗号化パスワードを用いる認証プロトコルである。MS-CHAPの認証プロセスは,CHAPとほぼ同様となっている。認証者であるリモートアクセスサーバーがリモートアクセスクライアントから接続要求を受けると,セッション識別子と任意のチャレンジ文字列で構成されたchallengeメッセージをリモートアクセスクライアントに送信する。リモートアクセスクライアントは,チャレンジ文字列のユーザー名とセッションID,パスワードを非可逆な方式で暗号化し,応答をリモートアクセスサーバーに返す。リモートアクセスサーバーは応答を確認し,有効であればアクセスを許可する。

 MS-CHAP v2では,MS-CHAP v1で指摘されていたいくつかの問題が解決されている。たとえば,常にユーザーのパスワードと任意のチャレンジ文字列を元に暗号化鍵を作成し,ユーザーが接続するたびに別の暗号化鍵を使用するようになっている。また,送信データと受信データには別々の暗号化鍵を使用し,相互認証するようにセキュリティが強化されている。

 MS-CHAP v2の認証手順は次のようになっている。まずリモートアクセスサーバーは,セッション識別子とサーバーが生成したサーバーチャレンジ文字列で構成されたchallengeメッセージをリモートアクセスクライアントに送信する。これを受信したリモートアクセスクライアントは,(1) ユーザー名,生成したクライアントチャレンジ文字列,パスワードに基づいてクライアントが作成した暗号化鍵,(2) サーバーから送られたチャレンジ文字列,(3) クライアントチャレンジ文字列,(4) セッション識別子,(5) サーバーチャレンジ文字列で暗号化したパスワードを格納している応答メッセージ,をリモートアクセスサーバーに応答する。リモートアクセスサーバーは,リモートアクセスクライアントから送信されたパスワードやセッション識別子などを検証する。リモートアクセスサーバーは,正当なユーザーであれば接続を許可し,そうでなければ,(1) 拒否情報,(2) サーバーチャレンジ文字列とパスワードに基づいて生成した暗号化鍵,(3) リモートアクセスクライアントから受信した応答,などをリモートアクセスクライアントに返す。リモートアクセスクライアントは,サーバーチャレンジ文字列とパスワードを用いて受信した認証ずみの応答を返し,その応答が正しければリモートアクセスサーバーに接続する。以降,リモートアクセスサーバーとリモートアクセスクライアントは,取り出した暗号化鍵とセッションIDでデータを転送する。認証ずみ応答が正しくない場合には,リモートアクセスクライアントは接続を終了する。

注意 MS-CHAP v1を認証プロトコルとして使う場合,パスワードが14バイトを超えると,40ビットで暗号化された接続は確立できなくなる。

注意 Windows Dial-Up Networking 1.3 PerformanceとSecurity Upgrade for Windows 95がインストールされたWindows 95は,仮想プライベートネットワーク接続でのみ,MS-CHAP v2をサポートする。ダイヤルアップ接続では,MS-CHAP v2をサポートしていない。

prevpg.gif Chapter 5 20/25 nextpg.gif