共用方式為


TLS - SSL 概述 (Schannel SSP)

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows 10

這個針對 IT 專業人員的主題介紹 Schannel Security Support Provider (SSP) 功能的更改,其中包括 Windows Server 2012 R2、Windows Server 2012、Windows 8.1 和 Windows 8 的 Transport Layer Security (TLS)、Secure Sockets Layer (SSL) 和 Datagram Transport Layer Security (DTLS) 驗證協定。

安全通道是安全性支援提供者 (SSP),可以實作 SSL、TLS 及 DTLS 網際網路標準驗證通訊協定。 安全性支援提供者介面 (SSPI) 是 Windows 系統所使用的 API,可以執行包含驗證在內的安全性相關功能。 SSPI 可以做為包含安全通道 SSP 在內的數個安全性支援提供者 (SSP) 的常用介面來運作。

有關 Microsoft 在 Schannel SSP 中實施 TLS 和 SSL 的詳細資訊,請參閱 《TLS/SSL技術參考 (2003)》。

TLS/SSL (Schannel SSP) 功能

以下說明 Schannel SSP 中 TLS 的功能。

TLS 工作階段繼續

傳輸層安全性 (TLS) 通訊協定是安全通道安全性支援提供者元件,可用來保護跨不受信任網路的應用程式之間所傳送的資料。 TLS/SSL 可用來驗證伺服器與用戶端電腦,也可用來加密已驗證對象之間的訊息。

將 TLS 連接到伺服器的裝置經常因工作階段逾時而需要重新連線。 Windows 8.1 和 Windows Server 2012 R2 現在支援 RFC 5077 (無伺服器端狀態的 TLS 工作階段恢復)。 此修改為 Windows Phone 和 Windows RT 裝置提供:

  • 減少伺服器上的資源使用量

  • 降低頻寬,改善用戶端連線的效率

  • 減少因繼續連線的 TLS 信號交換所花費的時間。

注意

新增 RFC 5077 的客戶端實現到 Windows 8 中。

有關無狀態 TLS 工作階段恢復的資訊,請參閱 IETF 文件 RFC 5077。

應用程式通訊協定交涉

Windows Server 2012 R2 和 Windows 8.1 支援客戶端 TLS 應用程式協定協商,因此應用程式可以利用協定作為 HTTP 2.0 標準開發的一部分,並且使用者可以使用執行 SPDY 協定的應用程式訪問線上服務,例如 Google 和 Twitter。

運作方式

用戶端和伺服器應用程式可提供支援的應用程式通訊協定識別碼來啟用應用程式通訊協定交涉延伸模組 (依喜好設定的遞減順序)。 TLS 用戶端可指示它支援應用程式通訊協定交涉,方法是在 ClientHello 訊息中,加入包含用戶端支援的通訊協定清單的應用程式層通訊協定交涉 (ALPN) 延伸模組。

當 TLS 用戶端對伺服器提出要求時,TLS 伺服器會針對最慣用的應用程式通訊協定 (用戶端也支援) 讀取其支援的通訊協定清單。 如果發現這類通訊協定,伺服器會回應所選的通訊協定識別碼,並如往常一樣繼續信號交換。 如果沒有一般的應用程式通訊協定,伺服器會傳送信號交換嚴重失敗警示。

用戶端驗證受信任簽發者的管理

當用戶端電腦的驗證需要使用 SSL 或 TLS 時,您可以設定伺服器傳送受信任的憑證簽發者清單。 這份清單包含伺服器將會信任的一組憑證簽發者,並為用戶端電腦提供出現多個憑證時,應選擇使用之用戶端憑證的提示。 此外,用戶端電腦傳送到伺服器的憑證鏈結必須向設定的信任簽發者清單進行驗證。

在 Windows Server 2012 和 Windows 8 之前,使用 Schannel SSP (包括 HTTP.sys 和 IIS) 的應用程式或程序可以透過 Certificate Trust List (CTL) 提供他們支援客戶端驗證的受可信簽發者清單。

在 Windows Server 2012 和 Windows 8 中,對底層驗證程序進行更改,以便:

  • 不再支援 CTL 式受信任簽發者清單的管理。

  • 依預設,傳送 Trusted Issuer List 的行為為關閉:SendTrustedIssuerList 登錄檔機碼的預設值為 0 (依預設) 而非 1。

  • 保留與舊版 Windows 作業系統的相容性。

注意

如果使用者端應用程式啟用SendTrustedIssuers系統對應程式,而且您已經設定了,則CN=NT Authority該系統對應程式會新增至簽發者清單。

這增加什麼價值?

從 Windows Server 2012 開始,CTL 的使用已經被基於憑證儲存的實現所取代。 透過 PowerShell 提供者的現有憑證管理 Commandlet 和命令列工具 (如 certutil.exe),提供您更熟悉的管理方式。

雖然受信任的憑證機構列出 Schannel SSP 支援的最大大小 (16 KB) 與 Windows Server 2008 R2 中的大小相同,但在 Windows Server 2012 中為客戶端驗證簽發者提供一個新的專用憑證儲存,因此訊息中不會包含不相關的憑證。

它是如何運作的?

在 Windows Server 2012 中,受信任簽發者清單是使用憑證存放區設定;一個預設的全域電腦憑證存放區,以及每個網站可選的憑證存放區。 清單的來源將取決於下列條件:

  • 如果已為網站設定特定的認證存放區,則會將之做為來源

  • 如果應用程式定義的存放區中沒有憑證,Schannel 會檢查本機電腦上的 Client Authentication Issuers,如果存有憑證,則會使用該存放區作為來源。 如果任一存放區都找不到任何憑證,則會檢查信任根目錄存放區。

  • 如果全域性或本地儲存都不包含憑證,則 Schannel 供應商將使用 Trusted Root Certification Authorities 存放區作為受信任簽發者清單的來源。 (這是 Windows Server 2008 R2 的行為。)

如果使用的 Trusted Root Certification Authorities 存放區包含根 (自我簽署) 憑證授權單位 (CA) 簽發者憑證的組合,則預設只會將 CA 簽發者憑證傳送至伺服器。

如何配置 Schannel 以使用受信任簽發者的憑證存放區

預設情況下,Windows Server 2012 中的 Schannel SSP 結構將使用上述存放區來管理受信任簽發者清單。 您仍然可以使用 PowerShell 提供者現有的憑證管理 Commandlet 和命令列工具 (例如 Certutil) 來管理憑證。

有關使用 PowerShell 供應商管理憑證的資訊,請參閱 Windows 中的 AD CS Administration Cmdlets。

有關使用憑證公用程式管理憑證的資訊,請參閱 certutil.exe。

有關為 Schannel 驗證定義資料 (包括應用程式定義的存放區) 的資訊,請參閱 SCHANNEL_CRED 結構 (Windows)。

Trust Modes 的預設值

安全通道提供者支援三種用戶端驗證信任模式。 受信任模式控制如何執行使用者端憑證鏈結的驗證,並且是由 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel 底下 REG_DWORD "ClientAuthTrustMode" 控制的全系統設定。

信任模式 描述
0 機器信任 (預設) 要求用戶端憑證必須由受信任簽發者清單中的憑證所簽發。
1 獨佔根信任 要求用戶端憑證要鏈結至包含在呼叫者指定之受信任簽發者存放區中的根憑證。 憑證還必須由受信任簽發者清單中的簽發者簽發。
2 獨佔 CA 信任 要求用戶端憑證要鏈結至中繼 CA 憑證,或鏈結至呼叫者指定之受信任簽發者存放區中的根憑證。

有關由於受信任簽發者配置問題導致的驗證失敗資訊,請參閱 Knowledge Base 文章 280256。

Server Name Indicator (SNI) Extensions 的 TLS 支援

伺服器名稱指示器功能會延伸 SSL 和 TLS 通訊協定,當單一伺服器上有許多虛擬映像正在執行時,允許對伺服器進行適當的識別。 為了適當保護用戶端電腦與伺服器之間的通訊安全,用戶端電腦會要求伺服器提供數位憑證。 在伺服器回應要求並傳送憑證之後,用戶端電腦會檢驗該憑證、使用它來加密通訊,並繼續進行正常的要求回應交換。 不過,在虛擬主機案例中,會在一部伺服器上裝載多個網域,每個網域都各自擁有可能完全不同的憑證。 在這種情況下,伺服器沒有方法可以預先得知要將哪個憑證傳送到用戶端電腦。 SNI 允許用戶端電腦在通訊協定中提前通知目標網域,而這讓伺服器能夠正確地選取適當的憑證。

這增加什麼價值?

這個額外功能:

  • 讓您能夠在單一 IP 和連接埠組合中裝載多個 SSL 網站

  • 在單一網頁伺服器上裝載多個 SSL 網站時,可以降低記憶體使用率

  • 允許更多使用者同時連線到我的 SSL 網站

  • 允許您透過電腦介面為使用者提供提示,以便在用戶端驗證程序期間選取正確的憑證。

運作方式

安全通道 SSP 會維護針對用戶端所允許的用戶端連線狀態的記憶體內部快取。 這可讓用戶端電腦快速重新連線到 SSL 伺服器,而不需在後續造訪時受限於完整的 SSL 交握。 憑證管理的有效使用可讓單一 Windows Server 2012 上裝載的網站數量較先前的作業系統版本更多。

藉由讓您建構可能的憑證簽發者名稱清單 (這可以提示使用者要選擇哪一個),強迫使用者選取憑證。 這個清單可以使用群組原則來設定。

Datagram Transport Layer Security (DTLS)

DTLS 版本 1.0 通訊協定已新增到安全通道安全性支援提供者。 DTLS 通訊協定可以為資料包通訊協定提供通訊私密性。 這個通訊協定讓用戶端/伺服器應用程式能夠以設計來防止竊聽、竄改或訊息偽造的方式來通訊。 DTLS 通訊協定會以傳輸層安全性 (TLS) 通訊協定為基礎並提供對等的安全性保證,減少使用 IPsec 或設計自訂應用程式層安全性通訊協定的需要。

這增加什麼價值?

資料報在串流媒體 (例如遊戲或安全視訊會議) 中很常見。 將 DTLS 通訊協定新增到安全通道提供者,讓您能夠使用熟悉的 Windows SSPI 模型,來保護用戶端電腦與伺服器之間通訊的安全。 DTLS 特別設計為儘可能與 TLS 類似,這兩者都會盡量減少新的安全性發明,並將重新使用程式碼和基礎結構的次數最大化。

運作方式

在 Windows Server 2012 和 Windows 8 中使用 DTLS over UDP 的應用程式可以使用 SSPI 模型。 特定的加密套件可以用來進行設定,與您設定 TLS 的方式類似。 安全通道會繼續使用 CNG 密碼編譯提供者以利用 FIPS 140 憑證,此憑證是在 Windows Vista 中所引進。

過時的功能

在 Windows Server 2012 和 Windows 8 的 Schannel SSP 中,沒有不推薦使用的特點或功能。

其他參考