使用 Active Directory 证书服务的 PKI 设计注意事项

使用 Active Directory 证书服务规划公钥基础结构部署时,应考虑一些事项。 可在此处找到成功安装和配置 PKI 环境所需的内容。

在高层次上,你应该:

  • 规划适合组织的公钥基础结构(PKI)。
  • 根据 HSM 供应商说明安装和配置硬件安全模块(HSM),如果你打算使用一个。
  • 如果要修改默认安装设置,请创建适当的CAPolicy.inf
  • 选择加密选项
  • 确定 CA 名称
  • 确定有效期
  • 选择 CA 数据库
  • 颁发机构信息访问和证书吊销列表分发点设置

规划 PKI

若要确保组织能够充分利用 Active Directory 证书服务(AD CS)安装,必须适当规划 PKI 部署。 在安装任何 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 证书时使用的各种设置。 CAPolicy.inf该文件必须创建并存储在%systemroot%目录(通常C:\Windows)中,才能使用它。

文件中包含的 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 的私钥时提示用户进行其他身份验证。 例如,要求管理员在每个加密作之前输入密码。

内置加密提供程序支持特定的密钥长度和哈希算法,如下表所述。

Cryptographic provider Key lengths 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 数据库

证书颁发机构的数据库是硬盘驱动器上的文件。 除此文件外,其他文件还充当事务日志,并在更改之前接收对数据库的所有修改。 由于这些文件可能经常和同时访问,因此你可能希望将数据库和事务日志保留在单独的卷上。

证书数据库和日志文件的位置保存在以下注册表位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration

注册表包含以下值:

  • DBDirectory
  • DBLogDirectory
  • DBSystemDirectory
  • DBTempDirectory

颁发机构信息访问和证书吊销列表分发点设置

安装根或从属 CA 后,应在 CA 颁发任何证书之前配置颁发机构信息访问(AIA)和 CRL 分发点(CDP)扩展。 AIA 扩展指定可在何处找到适用于 CA 的最新证书。 CDP 扩展指定可在何处找到由 CA 签名的最新 CRL。 这些扩展适用于该 CA 颁发的所有证书。

配置这些扩展可确保将此信息包含在 CA 颁发的每个证书中,以便可供所有客户端使用。 使用扩展可以减少由于未验证的证书链或证书吊销而导致的失败,这可以避免 VPN 连接失败、智能卡登录失败或未验证的电子邮件签名。

作为 CA 管理员,可以添加、删除或修改 CRL 分发点以及 CDP 和 AIA 证书颁发的位置。 修改 CRL 分发点的 URL 只会影响新颁发的证书。 以前颁发的证书继续引用原始位置,这就是为什么在 CA 分发任何证书之前应建立这些位置的原因。

配置 CDP 扩展 URL 时,请考虑以下准则:

  • 避免在脱机根 CA 上发布增量 CRL。 因为你不会在脱机根 CA 上吊销许多证书,因此可能不需要增量 CRL。
  • 根据你的需要,在证书颁发机构的“属性扩展”选项卡的“扩展”选项卡中调整默认的 LDAP://http:// URL 位置。
  • 在 HTTP Internet 或 Extranet 位置发布 CRL,以便组织外部的用户和应用程序可以执行证书验证。 可以发布 CDP 位置的 LDAP 和 HTTP URL,使客户端能够使用 HTTP 和 LDAP 检索 CRL 数据。
  • 请记住,在检索有效的 CRL 之前,Windows 客户端始终按顺序检索 URL 列表。
  • 使用 HTTP CDP 位置为运行非 Windows作系统的客户端提供可访问的 CRL 位置。

Next steps

若要了解有关部署 AD CS 的详细信息,请参阅 “实现和管理 Active Directory 证书服务”。