共用方式為


微軟 Windows Server 2008 R2:認證促進 RDS 安全性

證書發揮了巨大的作用,在保護遠端桌面服務主機和用戶端之間的連接。

克莉絲汀 · 格裡芬

要求哪些角色使用證書是種很難回答。 真正的答案是"全體他們"。它是瞭解哪裡在遠端桌面服務 (RDS) 部署中,您應使用證書和為什麼每個特定的 RDS 角色服務與使用它們的重要。

大多數的角色,你需要配置,但有些人你不會 (如 RD 許可證伺服器)。 預設情況下,您將連接到會話的每個階段需要 SSL (x.509) 證書或託管虛擬機器 (VM)。 您將使用這些為三個主要目的:來保護用戶端和伺服器,以確認身份的伺服器或用戶端的連接,並標誌的 Web 網站之間通信的遠端桌面協定 (RDP) 檔,因此您的使用者知道的 RDP 檔來自受信任的來源,並且沒有被改變。

下麵是一些示例的 RDS 如何使用證書:

  • RD 工作階段主機伺服器使用證書來證明自己的身分。 這被稱為伺服器身份驗證。
  • RD 工作階段主機伺服器和 RD 虛擬化主機伺服器使用證書設置安全用戶端和伺服器使用 TLS 1.0 之間的連結。
  • RD 工作階段主機伺服器使用網路級別的身份驗證 (NLA)、 單點登錄 (SSO) 和執行 Web SSO 所需的用戶端身份驗證的證書。
  • RD 工作階段主機伺服器和 RD 連接經紀人使用 SSL 證書簽署檔 RemoteApps 和 VM RDP 檔,向使用者保證他們發佈了受信任的檔。
  • 路閘道伺服器使用證書與用戶端使用 TLS 1.0 的通信進行加密。
  • 你可以安全的 RD 訪問 Web 網站的 SSL 證書,確保人們到受信任的網站 (HTTPS)。

啟用 RDS 功能依賴于特定的技術,以支援證書的使用 (請參見圖 1)。

Enabling RDS functionality brings into play certain security technologies

圖 1 啟用 RDS 功能帶進播放某些安全技術。

確保通道的安全

TLS 是基於 SSL 版本 3,出版的網景公司的互聯網工程任務組 (IETF) 標準。 一些 TLS 的增強功能,包括新的警報消息,從 SSL 的根 CA 證書和略有不同的加密演算法而不是中間憑證授權 (CA) 憑證連結證書的能力。

儘管 TLS 基於 SSL,則這兩個不相容。 TLS 可以,但是,實現了一種機制,它可以回到 SSL 版本 3 如果必要。 要建立安全通信通道之間的用戶端和伺服器使用 TLS,用戶端和伺服器會經歷一個過程的消息、 反應和加密 (請參見圖 2)。

The two-way encryption process for establishing a secure channel.

圖 2 建立秘密頻道的雙向加密過程。

有兩個要求,這個程式才能正常工作。

  • 用戶端必須信任標誌伺服器的 SSL 證書的 CA。
  • 伺服器和用戶端之間的連接必須使用高級別 (預設) 或聯邦資訊處理標準 (FIPS) 加密。 低級加密只加密從用戶端到伺服器、 不伺服器到用戶端,交通,所以不安全的方式發送安全功能或共用的機密。

如果連接和加密級別滿足那些兩個要求,用戶端與伺服器建立通信,如下所示:

  1. 用戶端發送你好消息和一個隨機的固定長度值。 伺服器的回應,隨機的固定長度值。 在這種交流的過程中,用戶端告訴伺服器壓縮方法、 密碼和它所支援的雜湊值。 它還向伺服器發送其協定版本和會話 ID。 會話 ID 標識通信­陽離子通道 — — 這不是 RD 工作階段主機伺服器上的會話 ID。
  2. 伺服器拿他們都支援的最高加密方法和加密和散列函數從用戶端的清單。 然後它告訴用戶端哪一個是已經 cho­森。 如果有最低級別設置為伺服器和用戶端不能滿足最少,則連接會失敗。
  3. 伺服器向用戶端發送其數碼證書。 此證書包含伺服器的名稱,受信任的 CA 簽署的證書和伺服器的公共金鑰。
  4. 用戶端驗證證書有效且可信。 用於簽名的伺服器憑證的證書將在用戶端的受信任的根憑證授權存儲區中。 然後創建一個 pre-master 的秘密、 用伺服器的公開金鑰對它進行加密並將其發送到伺服器。
  5. 伺服器接收並使用其私密金鑰解密 pre-master 的秘密。 此伺服器是可以這樣做是因為它是唯一匹配的專用金鑰與伺服器的唯一的一個。
  6. 伺服器和用戶端都有 pre-master 秘密和亂數字交換過程的開始。 他們使用這些值來生成 48 位元組主金鑰 (也稱為共用金鑰)。 後生成主金鑰,他們刪除 pre-master 的秘密。
  7. 用戶端和伺服器然後散列 48 位元組主金鑰,並使用它來生成的 MAC 秘密 (工作階段金鑰用於雜湊) 和寫入金鑰 (工作階段金鑰用於加密)。 這些金鑰進行加密和解密此會話的通信。 在會議結束後,這些金鑰將被丟棄。

如果此序列的任何一步不工作,還沒有充分獲得連接。 然後會發生什麼取決於遠端桌面纖連接器上的高級選項卡設置­突變 (RDC) 用戶端。 身份驗證失敗的情況下,使用者可以選擇做以下各項的任何一個:

  • 反正連接而不通知用戶端對伺服器進行身份驗證的問題。
  • 警告用戶端,但仍然允許連接 (預設設置)。
  • 拒絕連接,如果它不能被驗證。

例外情況是,如果伺服器要求最低的安全級別。 如果是這樣,用戶端不能滿足的最低級別,則連接會失敗。 預設情況下,用戶端和伺服器會談判和使用他們都支援的最安全的連接設置。

憑據緩存與 CredSSP

憑據緩存與 Windows Vista 和 Windows Server 2008 介紹。 這使兩個功能 — — 一個有助於使用者,並有助於保護伺服器。

通過存儲特定連接的憑據,因此他們不需要向他們提供每次他們連接到該伺服器憑據緩存可説明使用者 (這是 SSO)。 這加快了該連接。 否則,必須簽的撮合的連接的每一步。

在伺服器端,憑據緩存憑據到伺服器之前提供它建立了一個會話。 這樣可以避免會話的開銷,如果使用者不授權 (這是 NLA)。

使憑據緩存工作是憑據安全服務提供者 (CredSSP)。 這被支援 Windows 7、 Windows Vista、 Windows Server 2008 和 Windows XP SP3。 它不被連結到的 RDC 因為 CredSSP 是作業系統的一部分正在使用的版本。 CredSSP 執行以下功能:

  • 對於 NLA,CredSSP 提供了對 RD 工作階段主機伺服器的使用者身份驗證之前完全建立連接的框架。
  • 為重新連接到一個農場內的會話,CredSSP 速度通過讓看看誰無需創建整個會話登錄的 RD 工作階段主機伺服器傳遞到正確的伺服器的連接的過程。 這將使用 NLA 略有不同的場景中。
  • SSO,對於 CredSSP 存儲使用者的憑據,並將它們傳遞給 RD 工作階段主機伺服器來自動登錄。

CredSSP 啟用相互身份驗證的伺服器和用戶端 (請參見圖 3)。

Authenticating both the server and client requires a secure channel.

圖 3 需要進行身份驗證的伺服器和用戶端安全的通道。

此身份驗證過程將執行以下步驟。

  1. 用戶端與伺服器使用 TLS 啟動秘密頻道。 伺服器傳送回來的名稱、 CA 的公開金鑰證書。 只有伺服器標識。 此時,用戶端仍然是匿名。
  2. 當建立會話和一個工作階段金鑰創建,CredSSP 使用簡單和保護安全總局 API 談判 (SPNEGO) 協定相互身份到­美食的伺服器和用戶端。 基本上,這種機制允許用戶端和伺服器上的身份驗證機制,他們都支援如 Kerberos 或 Windows NT LAN 管理器 (NTLM) 同意。
  3. 相互身份驗證完成後,CredSSP 用戶端對伺服器的證書與在第 2 步,期間創建的工作階段金鑰進行加密,並將其發送到伺服器。 伺服器接收加密的證書、 及其私密金鑰,對它進行解密,然後添加一個證書編號的最高有效位。 然後,對結果進行加密,並將其發送回用戶端。 後一種操作可確保沒有人可以攔截用戶端和伺服器之間的交流和欺騙伺服器。
  4. 用戶端從伺服器和 com 收到的加密的證書審查了­韻它以它自己的證書。
  5. 假設結果匹配,CredSSP 用戶端向伺服器發送使用者憑據。

身份驗證伺服器標識

要求您提供您的憑據的遠端電腦與通信的風險之一在於,伺服器可能不是你的想法。 如果是冒充一個受信任的無管理伺服器,您可能無意中鍵入您的憑據錯誤的伺服器。 這將使攻擊者連接到您的域或伺服器所需的一切。

RDP 包括加密,但議定書 》 沒有任何手段對伺服器進行身份驗證。 這是哪裡 TLS 和 CredSSP 來。 伺服器身份驗證檢查它所連接到 RDC 用戶端 (或 RDP 檔) 對發行的 RD RD 工作階段主機伺服器上配置工具中指定的證書名稱中輸入的名稱。

RDP 檔簽名

您可以使用證書進行數位簽章否認是檔,以及用於連接到池或個人 VM (VDI) 的 RDP 檔。 他們創建的受信任的來源,使用者可以確保簽署這些檔。 它還能保護從篡改的 RDP 檔。

此外需要執行 Web SSO 否認是檔簽名。 這允許使用者登錄到 RD Web 訪問 Web 網站的一次。 然後他們可以不必再提供其憑據啟動 RemoteApps 從任何的農場。

CredSSP 不能將憑據傳遞給 RD 的 Web 訪問。 使用者必須首先登錄到他們的憑據存儲 Web 網站。 然後他們就不需要再次啟動否認是程式的進行身份驗證。 這項工作,必須簽署 RemoteApps,使用者必須信任證書用於簽署否認是。

當使用者啟動的 RDP 連接從 RD Web 訪問桌面選項卡時,創建的 RDP 檔是動態創建的。 不被簽署檔。 因此,Web SSO 將不能連接到桌上型電腦時。 使用者必須登錄到終結點一旦建立的連接。 連接池或個人虛擬機器上 web SSO 也不工作。

保護的連接

路閘道使用 TLS 1.0 路閘道和遠端桌面用戶端,通常位於您公司的網路外部 (通過 Internet) 之間的安全通信。 TLS,如前所述,需要 SSL 證書。 您還可以在用戶端和 Web 網站的會話 (HTTPS) 加密使用數碼證書的 RD Web 訪問伺服器之間的安全通信。

證書的是必不可少的 RDS 部署。 RDS 使用證書來安全的通信和他們啟用的功能。 下個月,我將涵蓋設置 RDS 角色服務使用這些證書。

Raymond Chen

克莉絲汀 · 格裡芬 是遠端桌面服務 MVP。 她溫和派致力於説明基於伺服器的計算社區 (遠端桌面服務) 的 Microsoft 論壇並保持在 blog.kristinlgriffin.com RDS 博客。 她是貢獻者馬克米納西"掌控 Windows Server 2008"(Sybex,2008年) 和"掌握 Windows Server 2008 R2"(Sybex,2010年)。 她還與塔 · 安德森合著的"微軟 Windows Server 2008 終端服務資源工具包"(微軟出版社,2008年) 和"Microsoft Windows Server 2008 R2 遠端桌面服務資源工具包"(微軟出版社,2010年)。

相關內容