拡張保護は、man-in-the-middle (MITM) 攻撃に対するセキュリティ イニシアチブです。MITM 攻撃はセキュリティの脅威です。MITM は、クライアントの資格情報を取得し、その資格情報をサーバーに転送します。
使用例
拡張保護
説明
アプリケーションが HTTPS で Kerberos、Digest または NTLM を使用して認証を実行する場合、最初にトランスポート レベルのセキュリティ (TLS) チャネルが構築され、その後セキュリティ チャネルを使用して認証が行われます。しかし、SSL によって生成されるセッション キーと認証時に生成されるセッション キーはバインドされていません。サーバーはセキュリティ チャネルがクライアントまたは MITM のどちらで確立されたものであるか知ることができないため、トランスポート チャネルそのものはセキュリティで保護されていても、MITM がクライアントとサーバーの間に自身を構築し、クライアントからの要求の転送を開始する可能性があります。このシナリオの解決策として、外部の TLS チャネルを内部の認証チャネルにバインドする方法があります。この方法により、サーバーは、MITM が存在するかどうかを検出できます。
![]() |
---|
このサンプルは、IIS でホストされている場合にのみ機能します。Cassini (Visual Studio Development Server) は HTTPS をサポートしないため、Cassini 上では機能しません。 |
![]() |
---|
この機能は現在 Windows 7 でのみ使用できます。次の手順は、Windows 7 でのみ実行できます。 |
サンプルを設定、ビルド、および実行するには
[コントロール パネル]、[プログラムの追加と削除]、[Windows 機能] の順にクリックして、インターネット インフォメーション サービスをインストールします。
[Windows 機能]、[インターネット インフォメーション サービス]、[World Wide Web サービス]、[セキュリティ]、[Windows 認証] の順にクリックして、Windows 認証をインストールします。
[Windows 機能]、[Microsoft .NET Framework 3.5.1]、[Windows Communication Foundation HTTP Activation] の順にクリックして、Windows Communication Foundation HTTP Activation をインストールします。
このサンプルを実行するには、サーバーとの安全なチャネルを確立する必要のあるクライアントが必要なので、インターネット インフォメーション サービス (IIS) マネージャーからインストールすることのできるサーバー証明書が存在する必要があります。
IIS マネージャーを開きます。[サーバー証明書] を開きます。これは、ルート ノード (コンピューター名) を選択すると、[機能表示] タブに表示されます。
このサンプルをテストする目的で、自己署名証明書を作成します。インターネット エクスプローラーで証明書の安全性に関するプロンプトが表示されないようにする場合は、信頼されたルート証明機関ストアに証明書をインストールします。
既定の Web サイトの操作ウィンドウを開きます。[サイトの編集]、[バインド] の順にクリックします。HTTPS が存在しない場合は、ポート番号を 443 に指定して HTTPS を追加します。前の手順で作成した SSL 証明書を割り当てます。
サービスをビルドします。これにより、仮想ディレクトリが IIS に作成され、サービスを Web ホストにするために必要な .dll ファイル、.svc ファイルおよび .config ファイルがコピーされます。
IIS マネージャーを開きます。前の手順で作成した仮想ディレクトリ (ExtendedProtection) を右クリックします。[アプリケーションへの変換] を選択します。
この仮想ディレクトリの認証モジュールを IIS マネージャーで開き、Windows 認証を有効にします。
仮想ディレクトリの [Windows 認証] の下にある [詳細設定] を開き、[必須] に設定します。
ブラウザー ウィンドウから HTTPS URL にアクセスして (完全修飾ドメイン名を指定します) サービスをテストできます。リモート コンピューターからこの URL にアクセスする場合は、すべての受信 HTTP および HTTPS 通信に対してファイアウォールが開かれていることを確認してください。
クライアント構成ファイルを開き、クライアントの完全修飾ドメイン名、または
<<full_machine_name>>
を置き換えるエンドポイント アドレス属性を指定します。クライアントを実行します。クライアントはサービスと通信します。これで、安全なチャネルが確立され、拡張保護が使用されます。
![]() |
---|
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。
<InstallDrive>:\WF_WCF_Samples
このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。
<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\Security\ExtendedProtection
|