安全性監控Windows 中的 PKI 增強

John Morello

本專欄是根據 Windows Server 2008 的搶鮮版所撰寫。本文包含的所有資訊均有可能變更。

Windows 自 Windows 2000 發行以來便包含對公開金鑰基礎結構 (PKI) 穩固的全平台支援。該版本不但包含最初的憑證授權單位功能,引進了自動註冊,更提供了對智慧卡驗證的支援。在 Windows XP 和 Windows Server 2003 中,該些

功能已經過擴充,透過第 2 版憑證範本以及對自動註冊使用者憑證的支援,提供了更富彈性的註冊選項。在 Windows Vista® 和 Windows Server® 2008 (前產品代碼 "Longhorn") 中,Windows® PKI 平台更進一步支援進階演算法、即時驗證檢查及較佳管理性。本專欄將探討 Windows Vista 及 Windows Server 2008 中全新的 PKI 功能,以及企業可以如何利用它們來降低成本並提高安全性。

Windows Vista 和 Windows Server 2008 中的 PKI 改進重點是放在四大要件上: 加密、註冊、管理性及撤銷。除了這些功能特定的改進外,Windows PKI 平台也因其他作業系統的先進功能而受益,例如角色管理員,它使建立和部署新憑證授權單位更為簡單。此外,Windows 許多其他部份也都能利用 PKI 平台中的改進,例如 Windows Vista 中支援使用智慧卡存放加密檔案系統 (EPS) 金鑰。

加密

加密要件方面有雙重的改良。首先,隨著 Cryptography Next Generation (CNG) 的推出,Windows 現在提供隨插即用、通訊協定中立的加密功能,使得個別的演算法更容易透過撰寫程式的方式來開發和存取。其次,CNG 本身還添加了對 Suite B 演算法的新支援,這是由美國國家安全局 (NSA) 在 2005 年推出的。

CNG 是 Microsoft 一種全新的核心加密介面,並且是未來以 Windows 為主的加密感知應用程式建議採用的 API。CNG 提供許多以開發人員為焦點的新功能,包括更簡易的演算法探索及替代,可取代的亂數產生器,以及核心模式加密 API。在提供這些新功能的同時,CNG 還與其先前版本 (目前為 CryptoAPI 1.0) 中所提供的演算法組完全相容。CNG 在選定的平台上已經通過聯邦資訊處理標準 (FIPS) 140-2 第 2 級憑證以及共同標準的評估。

CNG Suite B 支援包括所有必要的演算法:AES (各種金鑰大小)、SHA-2 系列 (SHA-256、SHA-384 和 SHA-512) 雜湊演算法、Elliptic Curve Diffie-Hellman (ECDH),以及關於美國國家標準與技術局 (NIST) 標準質數曲線 P-256、P-384 和 P-521 的 Elliptic Curve Digital Signature Algorithm (ECDSA)。NSA 指出將採用合格 Suite B 實作來保護分類為最機密、機密和私人資訊 (這在過去是指機密但不保密) 的資訊。所有 Suite B 演算法都是公開開發,並且其他有些政府也考慮將之納入國家標準。

Windows PKI 平台這些低階的改進提供開發人員更安全的方法來保護資料,並同時建立了一套隨時間更容易維護和改良的子系統。由於 CNG 是隨插即用的架構,必要時也能加入新演算法,並且 CNG 會從應用程式層擷取這些提供者。這樣的結果使得 Windows Vista 和 Windows Server 2008 的設計提供了進階可發展的平台,利於開發啟用 PKI 的應用程式和服務。

註冊

Windows 中的憑證註冊體驗已透過全新的精靈式註冊工具、更完備的憑證到期處理、全新的 API、代理註冊功能,以及認證漫遊等而獲得大幅的改良。這些強化功能透過中央管理以及最不影響使用者的方式,使得在企業內部署憑證更加容易,進而降低的整體擁有成本。

從註冊的角度來看,最顯著的變更是 [圖 1] 和 [圖 2] 中所示的全新憑證註冊使用者介面。此使用者介面取代了舊式有限制的介面,這個舊版介面無法在註冊期間接受使用者的資料。全新的介面允許使用者在註冊期間輸入資料 (若系統管理員設定憑證範本加以要求的話)。該介面也針對使用者為什麼無法以指定範本註冊提供了清楚的解釋。

[圖 1] 選取可用的憑證

[圖 1]** 選取可用的憑證 **(按影像可放大)

[圖 2] 無法使用的憑證的狀態

[圖 2]** 無法使用的憑證的狀態 **(按影像可放大)

另外一項重要的註冊介面改良是到期憑證的處理方式。新介面提供使用者哪些憑證快到期的清楚資訊,並允許使用者輕鬆更新憑證或關閉從相同介面而來的警告。雖然系統管理員可透過自動註冊自動更新憑證,但這項警告功能對可能不常登入公司網路、但憑證已接近到期日的行動或離線使用者而言相當重要。

對於使用憑證註冊的開發人員,還有一個全新的 API 可用,它提供比舊式 ActiveX® 控制項 (xenroll.dll 和 scrdernl.dll) 更優越的明顯改進。全新的憑證註冊 API 提供適當定義的類別階層,不但更容易了解也更方便進行程式設計。這個全新的 API 同時取代了 Windows Vista 和 Windows Server 2008 中的 xenroll。

API 的這項變更對於開發人員和 IT 專家皆有影響,因為 Windows Vista 用戶端無法使用 Windows Server 2003 中提供的網頁式註冊功能。這是因為該些註冊頁 (預設存放在 /certsrv 虛擬目錄中) 採用的 xenroll 控制項已不存在於 Windows Vista 中。知識庫文章<如何將憑證服務網頁註冊頁與 Windows Vista 搭配使用> (support.microsoft.com/kb/922706) 提供了因應措施的相關資訊。從 Windows Server 2003 到 Windows Vista 的自動註冊則不受影響。

在前版的 Windows Server 中,註冊代理程式並不限制可代表註冊的對象。換句話說,一旦將註冊代理程式功能提供給使用者,他便能夠代表樹系當中的其他任一使用者來註冊。這當然意謂著使用者可輕易代表現有的使用者並,以新建的憑證模擬該使用者,藉此提高他的權限。為了阻撓這類的威脅,註冊代理程式功能現在只提供給高度信任的個體。這種措施雖提高了安全性,卻也使得部署模型的彈性更低,因為只有少數個體具備代表其他使用者註冊的能力。地理位置分散的大型組織在將憑證部署給使用者時 (例如智慧卡) 因而面臨了更複雜的情況。

在 Windows Server 2008 中,可將註冊代理程式限制在更細微的層級上。限制條件可以根據能代表哪些使用者註冊,或是可對哪些範本註冊,如 [圖 3] 所示。例如,某組織現在可能會提供當地的 IT 專家代表其分公司所有使用者,而不能代表人事部的使用者來註冊的能力。註冊代理程式這種細微限制的方法允許企業更有效且更安全地在整個組織內委派註冊能力。

[圖 3] 註冊代理程式限制

[圖 3]** 註冊代理程式限制 **(按影像可放大)

管理 PKI 最大的挑戰之一是管理四散於組織各裝置間的所有金鑰組。即使在不是很複雜的 PKI 環境中,任何特定的使用者都可能擁有好幾個不論他在哪裡登入都必須可以使用的不同金鑰組 (例如用於 EFS、無線網路的驗證和 S/MIME)。隨著行動運算和終端機服務漸漸普及,在網路複寫這些金鑰組也比以往更重要,以便讓使用者無論在何處登入都可以使用。雖然使用者隨身權杖 (例如智慧卡) 有助於解決部分問題,但組織仍然有無智慧卡,或是憑證不存在智慧卡上的使用者。認證漫遊透過將金鑰組和憑證安全地存放在 Active Directory® 內,讓使用者無論在何處登入都可以使用,因而解決了這些問題。

認證漫遊首先是在 Windows Server 2003 SP1 中推出,它允許憑證和金鑰在機器之間漫遊,而不需要用到漫遊使用者設定檔。Windows Vista 和 Windows Server 2008 中已預設包含這項功能,並且是實作在憑證服務用戶端 (CSC) 服務內。一些像是哪些憑證可以漫遊以及如何仲裁衝突等設定選項,都是透過群組原則來管理。在 Windows Vista 和 Windows Server 2008 上,CSC 服務也可以漫遊已儲存的使用者名稱和密碼。雖然 Windows Vista 中預設已包含此功能,也要注意認證漫遊其實在 Windows XP 上,還有在登入 Windows Server 2003 網域控制站 (需要部署更新,請參閱 support.microsoft.com/kb/907247) 時也完全受到支援。這表示您不必等 Windows Vista 部署完成便可利用這項技術。

管理性

Windows Server 2008 中已進行一些升級,更方便以高度可用的方式來安裝、監視和執行憑證授權單位 (CA) 服務,藉此提升其管理性。CA 安裝程式已與角色管理員工具相整合,並提供了有效率的方法安裝 CA 服務。過程當中的各個步驟皆已定義預設值,因此現在可在自動安裝模式下執行安裝。最後,安裝程式也具備更完善的診斷功能,更方便疑難排解可能發生的任何失敗或問題狀況。

監視 CA 服務在 Windows Server 2008 中也已經過大幅加強 (跟在 Windows Vista 中一樣具有整體憑證診斷功能)。除了橫跨整個產品更具彈性的事件基礎結構外,CA 服務本身現在也有個內建監視主控台,並且連接到 Systems Center Operations Manager 2007 (以前稱為 MOM) 來提供企業層級警告。企業 PKI 監視主控台比它之前的版本 (在 Windows Server 2003 AdminPak 中推出) 更先進。新的主控台是包含在產品本身,而且除了指定樹系內的所有 CA 外,它現在還可以監視線上憑證狀態通訊協定 (OCSP) URI。

Operations Manager Management Pack 為組織的 PKI 提供了主動式監視功能,包括內建以閾值為主的警告。例如,Management Pack 可用來監視憑證撤銷清單 (CRL) 的最新狀態,並在 CRL 接近到期前的特定天數或小時數前警告 PKI 系統管理員。最後,還有提供許多全新的效能計數器,幫助疑難排解和監視 CA 服務本身的整體效能。這些計數器可用來擷取每秒發行多少憑證之類的資料。

Windows Server 2008 中也推出了一項新功能:支援硬體叢集的 CA 服務。此項叢集支援利用 Microsoft Cluster Service (MSCS) 技術並支援雙節點主動/被動設定。叢集支援可讓您在高度可用的情況下執行一個執行個體基礎結構,並且可用在地理位置分散的叢集部署中。如果您選擇利用叢集支援,要注意光是叢集化 CA 並不表示就可以使用整個 PKI。雖然叢集有助於確保 CA 自己可供使用,但適當運作的 PKI 很可能有其他不直接在 CA 上執行的元件。比方說,CRL 發佈點 (CDP) 和 OCSP 回應程式也必須以高度可用的方式來執行,以確保撤銷能夠執行。除此之外,當利用硬體安全性模組 (HSM),特別是網路型 HSM 時,也會產生可能的 PKI 失敗。叢集是為憑證授權單位本身提供高可用性一項強大的新功能,但並不是提供整個 PKI 部署可用性的萬靈丹。

撤銷

CRL 一直以來都是用來提供憑證的驗證檢查。這些 CRL 包括其有效期間尚未到期但不再受到信任的所有憑證的序號。例如,假設有名員工擁有一個到期日為 12/31/2008 的憑證,但該員工在 9/1/2007 離職,那麼他的憑證的序號就會放到 CRL 上。接著該 CRL 會提供在多重 CRL 發佈點 (CDP) 上,例如 HTTP 和輕量刑目錄存取通訊協定 (LDAP) 路徑。

CRL 雖然仍廣為採用,但它有一些主要的缺點。第一,CRL 是由 CA 定期發行 (通常是每天一次或兩次)。用戶端接著下載這些 CRL,然後快取它們,直到下個發行間隔為止。在這段快取期間,憑證可能會遭撤銷,讓用戶端對最新的狀態完全不知情。第二,在規模非常大的組織內,CRL 可能會增長到相當大的規模 (有時甚至超過 100MB)。在範圍分散的大型網路上散發這些檔案可能並不容易,甚或是不可能的,尤其是在分公司的案例或其他擁有限制頻寬的環境尤是如此。

為了矯正這些問題,於是誕生了從 RFC 2560 中定義而成的 OCSP,提供即時的方法來驗證憑證的狀態。OCSP 用戶端會執行在需要檢查分葉憑證有效性的機器上。用戶端軟體接著會參考 OCSP 回應程式,並送出訊息詢問分葉憑證的有效狀態。回應程式會檢查憑證的有效性,並即時回應用戶端。這個方法可避免快取和散發的問題。

OCSP 用戶端功能首度包含在 Windows Vista 中 (在過去需要安裝協力廠商軟體),並且可透過群組原則來設定。Windows 在預設的情況下會嘗試使用 OCSP,但是會在沒有回應程式可用的情況下回到標準的 CRL 查詢。

為了因應這些要求,我們在 Windows Server 2008 中加入了 OCSP 回應程式。回應程式是透過角色管理員安裝,並且可藉由 Operations Manager 2007 Management Pack 來監視。由於用戶端和回應程式兩者皆遵守 OCSP 標準,因此可輕鬆將它們整合至現有已利用類似標準協力廠商元件的 OCSP 環境。例如,讓 Windows Vista 用戶端對協力廠商回應程式檢查憑證狀態,並由 Windows Server 2008 回應程式來回答協力廠商用戶端應用程式的查詢是完全受到支援的。此外,Windows OCSP 回應程式還可以回答任何標準相容 CA 所發行的憑證要求,而不一定需要 Windows Server 2008 CA (和一般以 Windows 為主的 CA)。

總結

Windows Vista 和 Windows Server 2008 中的 PKI 平台包含許多增強功能以及數項新功能,使得部署和操作 PKI 更安全且成本更低廉。全新的 CNG API 提供開發人員更簡易的程式設計環境,以及對新加密標準的支援。註冊方面的改良則允許組織更輕鬆地大量提供憑證,並安全地在企業內漫遊金鑰。同樣地,全新的 Management Pack 和 CA 叢集功能使得監視 CA 的狀態及確保高可用性更加容易。最後,撤銷檢查方面的改進採用以標準為主的方法,在不佔用 CRL 發佈的頻寬下,提供憑證的即時驗證。這促使 Windows Vista 和 Windows Server 2008 將 Windows PKI 平台帶入新境界。

PKI 增強功能資源

John Morello 自 2000 年便任職於 Microsoft。身為資深的顧問,他曾為美國財星前百大 (Fortune 100) 企業及民間和國防部門設計安全解決方案。他目前擔任 Windows Server 部門的資深專案經理,負責開發安全性和隨處遠端存取技術。您可以在 blogs.technet.com/WinCAT 閱讀他的小組部落格。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.