使用 Active Directory 憑證服務的 PKI 設計考量
規劃使用 Active Directory 憑證服務部署公開金鑰基礎結構時,您應該考慮的一些事項。 您可以在這裡找到成功安裝和設定 PKI 環境所需的項目。
在高層級,您應該:
- 規劃組織適用的公開金鑰基礎結構 (PKI)。
- 如果您打算使用硬體安全模組 (HSM),請依據 HSM 廠商指示安裝及設定 HSM。
- 如果您想要修改預設安裝設定,請建立適當的
CAPolicy.inf
。 - 選擇密碼編譯選項
- 決定 CA 名稱
- 決定有效期間
- 選取 CA 資料庫
- 授權單位資訊存取和憑證撤銷清單發佈點設定
PKI 計畫
為確保組織可以充分利用您的 Active Directory 憑證服務 (AD CS) 安裝,您必須適當地規劃 PKI 部署。 您應該先決定您將安裝的 CA 數目與 CA 組態,然後再安裝 CA。 例如,您是否需要企業根 CA 或獨立根 CA? 如何處理憑證核准要求? 您要如何管理憑證撤銷? 建立適當的 PKI 設計可能非常耗時,但這對於 PKI 能否成功而言非常重要。
使用 HSM
HSM 是由作業系統個別管理的專用硬體裝置。 除了專用的密碼編譯處理器可加速簽署和加密作業之外,這些模組還可為 CA 金鑰提供安全的硬體存放區。 作業系統會透過 CryptoAPI 介面使用 HSM,且 HSM 會以密碼編譯服務提供者 (CSP) 裝置的方式運作。
HSM 通常是 PCI 介面卡,但它們也可以是網路設備、序列裝置,以及 USB 裝置。 如果組織計劃實作兩個或多個 CA,您可以安裝一個以網路為基礎的 HSM,並由多個 CA 共用。
若要使用 HSM 設定 CA,必須先安裝及設定 HSM,才能使用將儲存在 HSM 上的金鑰設定任何 CA。
請考慮使用 CAPolicy.inf 檔案
安裝 AD CS 時並不需要 CAPolicy.inf
檔案,但是它可以用來自訂 CA 的設定。 CAPolicy.inf
檔案包含安裝 CA 或更新 CA 憑證時所使用的各種設定。 必須在 %systemroot%
目錄 (通常是 C:\Windows
) 中建立及儲存 CAPolicy.inf
檔案,才能使用該檔案。
您在 CAPolicy.inf
檔案中包含的設定主要需視您想要建立的部署類型而定。 例如,根 CA 的 CAPolicy.inf
檔案可能看起來像這樣:
[Version]
Signature= "$Windows NT$"
[Certsrv_Server]
RenewalKeyLength=4096
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=20
LoadDefaultTemplates=0
選取密碼編譯選項
選取憑證授權單位 (CA) 的密碼編譯選項對於 CA 的安全性、效能及相容性而言很重要。 雖然預設密碼編譯選項可能適用於大部分 CA, 但能夠實作自訂選項的能力對於更深入了解密碼編譯及需要此使用彈性的系統管理員和應用程式開發人員來說很有用。 密碼編譯選項可以使用密碼編譯服務提供者 (CSP) 或金鑰儲存提供者 (KSP) 來實作。
CSP 是 Windows 作業系統中的硬體與軟體元件,提供一般密碼編譯功能。 CSP 可編寫為提供各種不同的加密和簽章演算法。
選取提供者、雜湊演算法和金鑰長度時,您應該謹慎地考量您想要使用的應用程式與裝置可以支援哪些密碼編譯選項。 雖然這是選取最強安全性選項的最佳作法,但並非所有應用程式和裝置都可以支援這些選項。
[CA 存取私密金鑰時,允許系統管理員互動] 是通常會與硬體安全模組 (HSM) 搭配使用的選項。 這選項可讓密碼編譯提供者在存取 CA 的私密金鑰時提示使用者提供額外的驗證。 例如,要求系統管理員在每個密碼編譯作業之前輸入密碼。
內建的密碼編譯提供者支援如下表所述的特定金鑰長度及雜湊演算法。
密碼編譯提供者 | 金鑰長度 | Hash algorithm |
---|---|---|
Microsoft 基礎密碼編譯提供者 v1.0 | - 512 - 1024 - 2048 - 4096 |
- SHA1 - MD2 - MD4 - MD5 |
Microsoft 基礎 DSS 密碼編譯提供者 | - 512 - 1024 |
SHA1 |
Microsoft 基礎智慧卡密碼編譯提供者 | - 1024 - 2048 - 4096 |
- SHA1 - MD2 - MD4 - MD5 |
Microsoft 增強型密碼編譯提供者 v1.0 | - 512 - 1024 - 2048 - 4096 |
- SHA1 - MD2 - MD4 - MD5 |
Microsoft 強式密碼編譯提供者 | - 512 - 1024 - 2048 - 4096 |
- SHA1 - MD2 - MD4 - MD5 |
RSA#Microsoft 軟體金鑰儲存提供者 | - 512 - 1024 - 2048 - 4096 |
- SHA1 - SHA256 - SHA384 - SHA512 - MD2 - MD4 - MD5 |
DSA#Microsoft 軟體金鑰儲存提供者 | - 512 - 1024 - 2048 |
SHA1 |
ECDSA_P256#Microsoft 軟體金鑰儲存提供者 | 256 | - SHA1 - SHA256 - SHA384 - SHA512 |
ECDSA_P384#Microsoft 軟體金鑰儲存提供者 | 384 | - SHA1 - SHA256 - SHA384 - SHA512 |
ECDSA_P521#Microsoft 軟體金鑰儲存提供者 | 521 | - SHA1 - SHA256 - SHA384 - SHA512 |
RSA#Microsoft 智慧卡金鑰儲存提供者 | - 1024 - 2048 - 4096 |
- SHA1 - SHA256 - SHA384 - SHA512 - MD2 - MD4 - MD5 |
ECDSA_P256#Microsoft 智慧卡金鑰儲存提供者 | 256 | - SHA1 - SHA256 - SHA384 - SHA512 |
ECDSA_P384#Microsoft 智慧卡金鑰儲存提供者 | 384 | - SHA1 - SHA256 - SHA384 - SHA512 |
ECDSA_P521#Microsoft 智慧卡金鑰儲存提供者 | 521 | - SHA1 - SHA256 - SHA384 - SHA512 |
決定 CA 名稱
當您在組織中設定憑證授權單位 (CA) 之前,應該先建立 CA 命名慣例。
您可以使用任何 Unicode 字元建立名稱,但如果有互通性考量,您也可以使用 ANSI 字元集。 例如,如果 CA 名稱包含特殊字元 (例如底線),某些類型的路由器將無法使用網路裝置註冊服務來註冊憑證。
如果您使用非拉丁字元 (例如,斯拉夫文、阿拉伯文或中文字元),您的 CA 名稱包含的字元數必須少於 64 個字元。 如果您只使用非拉丁字元,您 CA 名稱的長度則不得超過 37 個字元。
在 Active Directory 網域服務 (AD DS) 中,您在將伺服器設定為 CA 時所指定的名稱會成為 CA 的一般名稱。 一般名稱會反映在 CA 發行的每個憑證中。 基於此原因,請不要使用完整的網域名稱作為 CA 的一般名稱。 如此一來,取得憑證複本的惡意使用者便無法識別及使用 CA 的完整網域名稱來建立潛在的安全性弱點。
CA 名稱不應與電腦的名稱 (NetBIOS 或 DNS 名稱) 相同。 而且,安裝 Active Directory 憑證服務 (AD CS) 後,若變更伺服器的名稱,必然會使 CA 簽發的所有憑證失效。
若要在安裝 AD CS 之後變更伺服器名稱,您必須解除安裝 CA、變更伺服器名稱、使用相同金鑰重新安裝 CA,以及修改登錄以便使用現有 CA 金鑰和資料庫。 如果您重新命名網域,您不需要重新安裝 CA,但是您必須重新設定 CA 以支援名稱變更。
決定有效期間
以憑證為基礎的密碼編譯是使用公開金鑰密碼編譯來保護及簽署資料。 經過一段時間之後,攻擊者可能取得公開金鑰保護的資料,並嘗試從中衍生私密金鑰。 只要有足夠的時間和資源,這個私密金鑰就可能被洩露,讓所有受保護的資料不再受到保護。 而且在一段時間之後,由憑證所保證的名稱也可能需要變更。 因為憑證是名稱與公開金鑰之間的繫結,所以當其中之一有變更時,就應該要更新憑證。
每個憑證都有一個有效期間。 有效期間結束之後,憑證便不再是可接受及可使用的認證。
CA 無法發行有效期間超出其自身有效期間的憑證。 最佳做法是在 CA 憑證的有效期間已經過一半時更新 CA 憑證。 安裝 CA 時,您應該規劃此日期,並確認加以記錄為日後工作。
選取 CA 資料庫
憑證授權單位的資料庫是硬碟上的一個檔案。 除了這個檔案之外,其他檔案是做為交易記錄使用,而且它們會在變更之前接收對資料庫的所有修改。 由於這些檔案可能會經常和同時存取,因此您可能會想要將資料庫和交易記錄保留在不同的磁碟區上。
憑證資料庫和記錄檔的位置會儲存在以下登錄位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration
登錄包含下列值:
DBDirectory
DBLogDirectory
DBSystemDirectory
DBTempDirectory
授權單位資訊存取和憑證撤銷清單發佈點設定
安裝根 CA 或次級 CA 之後,您應在 CA 簽發任何憑證之前先設定授權單位資訊存取 (AIA) 和 CRL 發佈點 (CDP) 延伸。 AIA 延伸會指定要尋找 CA 之最新憑證的位置。 CDP 延伸會指定尋找 CA 所簽署之最新 CRL 的位置。 這些延伸會套用至該 CA 簽發的所有憑證。
設定這些延伸可確保 CA 簽發的每個憑證中都有包含此資訊,以便供所有用戶端使用。 使用這些延伸可降低失敗的次數,這些失敗可能會導致無法成功連線 VPN,智慧卡登入失敗,或未經驗證的電子郵件簽章。
身為 CA 系統管理員,您可以新增、移除或修改 CRL 發佈點,以及 CDP 和 AIA 憑證簽發的位置。 修改 CRL 發佈點的 URL 只會影響新簽發的憑證。 先前簽發的憑證將會繼續參照原始位置,這就是為什麼您應該在 CA 發佈任何憑證之前先建立這些位置。
當您設定 CDP 延伸 URL 時,請考量這些指導方針:
- 避免在離線根 CA 上發佈 Delta CRL。 因為您不會在離線根 CA 上撤銷許多憑證,所以可能不需要 Delta CRL。
- 依據您的需求,在憑證授權單位之 [屬性延伸] 索引標籤的 [延伸] 索引標籤上,調整預設
LDAP://
和https://
URL 位置。 - 在 HTTP 網際網路或外部網路位置上發佈 CRL,讓組織外部的使用者和應用程式能夠執行憑證驗證。 您可以發佈 CDP 位置的 LDAP 與 HTTP URL 來讓用戶端能夠透過 HTTP 和 LDAP 擷取 CRL 資料。
- 請記住,Windows 用戶端一律會以循序方式擷取 URL 的清單,直到擷取有效的 CRL 為止。
- 請使用 HTTP CDP 位置來為執行非 Windows 作業系統的用戶端提供可存取的 CRL 位置。
下一步
若要深入了解部署 AD CS,請參閱實作和管理 Active Directory 憑證服務。