擴充保護原則

本文說明 ExtendedProtection 範例。

延伸保護是防止中間人攻擊的安全性計劃。 MITM 攻擊是一種安全性威脅,其中MITM會取得客戶端的認證,並將它轉送至伺服器。

討論

當應用程式使用 HTTPS 使用 Kerberos、Digest 或 NTLM 進行驗證時,會先建立傳輸層級安全性 (TLS) 通道,然後使用安全通道進行驗證。 不過,SSL 所產生的會話密鑰與驗證期間產生的會話密鑰之間沒有繫結。 任何 MITM 都可以在用戶端與伺服器之間建立本身,並開始從用戶端轉送要求,即使傳輸通道本身是安全的,因為伺服器無法知道是否已從用戶端或 MITM 建立安全通道。 此案例中的解決方案是將外部 TLS 通道與內部驗證通道系結,讓伺服器可以偵測是否有 MITM。

備註

此範例僅適用於裝載於 IIS 時。

備註

下列步驟專屬於 Windows 7。

要設定、建置和執行範例,請執行以下步驟:

  1. 從 [控制面板]、 [新增/移除程式]、 [Windows 功能] 安裝 Internet Information Services。

  2. 在 Windows 功能、Internet Information Services、World Wide Web Services、安全性和Windows 驗證中安裝 Windows 驗證。

  3. 在 Windows 功能中安裝 Windows Communication Foundation HTTP 啟用、Microsoft .NET Framework 3.5.1 和 Windows Communication Foundation HTTP 啟用。

  4. 此範例需要客戶端與伺服器建立安全通道,因此需要有可從 Internet Information Services (IIS) 管理員安裝的伺服器證書。

    1. 開啟 IIS 管理員。 開啟 [伺服器憑證],這會在選取根節點 (計算機名稱) 時出現在 [ 功能檢視 ] 索引標籤中。

    2. 為了測試此範例,請建立自我簽署憑證。 如果您不想讓瀏覽器提示您有關憑證不安全的問題,請在信任的證書頒發機構單位存放區中安裝憑證。

  5. 開啟預設網站的 [ 動作] 窗格。 點擊編輯網站,系結。 如果尚未存在,請將 HTTPS 新增為類型,埠號碼為 443。 指派在上一個步驟中建立的 SSL 憑證。

  6. 建置服務。 這會在 IIS 中建立虛擬目錄,並視需要複製服務裝載 Web 所需的 .dll、.svc 和 .config 檔案。

  7. 開啟 IIS 管理員。 以滑鼠右鍵按兩下在上一步驟中建立的虛擬目錄 (ExtendedProtection)。 選取 [轉換為應用程式]。

  8. 在此虛擬目錄的 IIS 管理員中開啟 [驗證 ] 模組,然後啟用 Windows 驗證。

  9. 在此虛擬目錄的 Windows 驗證下開啟 [進階設定],並將它設定為 [必要]。

  10. 您可以透過瀏覽器存取 HTTPS URL 以測試服務(提供完整域名)。 如果您想要從遠端電腦存取此 URL,請確定已針對所有連入 HTTP 和 HTTPS 連線開啟防火牆。

  11. 開啟用戶端組態檔,併為取代 <<full_machine_name>>的用戶端或端點位址屬性提供完整域名。

  12. 執行用戶端。 用戶端會與服務通訊,此服務會建立安全通道並使用延伸保護。