AD Certificates
简介
证书的组成部分
证书的主体表示其所有者。
与私钥配对的公钥将证书与其合法所有者关联起来。
由NotBefore和NotAfter日期定义的有效期标志着证书的有效持续时间。
由证书颁发机构(CA)提供的唯一序列号标识每个证书。
颁发者指的是颁发证书的 CA。
SubjectAlternativeName 允许为主体添加其他名称,增强识别灵活性。
基本约束标识证书是用于 CA 还是终端实体,并定义使用限制。
**扩展密钥用途(EKUs)**通过对象标识符(OIDs)详细说明证书的具体用途,如代码签名或电子邮件加密。
签名算法指定签署证书的方法。
由颁发者的私钥创建的签名保证了证书的真实性。
特殊考虑事项
**主体替代名称(SANs)**扩展了证书适用于多个身份,对于具有多个域的服务器至关重要。安全的颁发流程对于避免攻击者操纵 SAN 规范而造成的冒充风险至关重要。
Active Directory(AD)中的证书颁发机构(CAs)
AD CS 通过指定的容器承认 AD 森林中的 CA 证书,每个容器提供独特的角色:
Certification Authorities 容器保存受信任的根 CA 证书。
Enrolment Services 容器详细说明企业 CA 及其证书模板。
NTAuthCertificates 对象包括授权用于 AD 认证的 CA 证书。
AIA(Authority Information Access) 容器通过中间和跨 CA 证书促进证书链验证。
证书获取:客户端证书请求流程
请求过程始于客户端查找企业 CA。
创建 CSR,包含公钥和其他详细信息,生成公私钥对后。
CA 根据可用的证书模板评估 CSR,根据模板的权限颁发证书。
获得批准后,CA 使用其私钥签署证书并将其返回给客户端。
证书模板
在 AD 中定义的这些模板概述了用于颁发证书的设置和权限,包括允许的 EKUs 和注册或修改权限,对于管理证书服务的关键。
证书注册
证书的注册过程由管理员发起,管理员创建证书模板,然后由企业证书颁发机构(CA)发布。这使得模板可供客户端注册,通过将模板名称添加到 Active Directory 对象的 certificatetemplates
字段来实现。
要求客户端请求证书,必须授予注册权限。这些权限由证书模板和企业 CA 本身上的安全描述符定义。必须在两个位置授予权限才能成功请求。
模板注册权限
这些权限通过访问控制条目(ACEs)指定,详细说明权限,如:
Certificate-Enrollment 和 Certificate-AutoEnrollment 权限,每个与特定 GUID 关联。
ExtendedRights,允许所有扩展权限。
FullControl/GenericAll,提供对模板的完全控制。
企业 CA 注册权限
CA 的权限在其安全描述符中概述,可通过证书颁发机构管理控制台访问。某些设置甚至允许低特权用户远程访问,这可能是一个安全问题。
附加颁发控制
可能适用某些控制,如:
管理者批准:将请求置于待定状态,直到由证书管理员批准。
注册代理和授权签名:指定 CSR 上所需签名的数量以及必要的应用程序策略 OID。
请求证书的方法
可以通过以下方式请求证书:
Windows 客户端证书注册协议(MS-WCCE),使用 DCOM 接口。
ICertPassage 远程协议(MS-ICPR),通过命名管道或 TCP/IP。
证书注册 Web 界面,安装了证书颁发机构 Web 注册角色。
证书注册服务(CES),与证书注册策略(CEP)服务一起使用。
网络设备注册服务(NDES)用于网络设备,使用简单证书注册协议(SCEP)。
Windows 用户还可以通过 GUI(certmgr.msc
或 certlm.msc
)或命令行工具(certreq.exe
或 PowerShell 的 Get-Certificate
命令)请求证书。
证书认证
Active Directory(AD)支持证书认证,主要利用 Kerberos 和 Secure Channel (Schannel) 协议。
Kerberos 认证过程
在 Kerberos 认证过程中,用户请求获取票据授予票据(TGT),使用用户证书的 私钥 进行签名。该请求经过域控制器进行多项验证,包括证书的 有效性、路径 和 吊销状态。验证还包括验证证书来自受信任的来源,并确认发行者在 NTAUTH 证书存储 中的存在。成功的验证会导致 TGT 的颁发。在 AD 中的 NTAuthCertificates
对象,位于:
安全信道(Schannel)认证
Schannel促进了安全的TLS/SSL连接,在握手过程中,客户端提供一个证书,如果成功验证,就会授权访问。证书与AD帐户的映射可能涉及Kerberos的S4U2Self功能或证书的主体替代名称(SAN),以及其他方法。
AD证书服务枚举
可以通过LDAP查询枚举AD的证书服务,揭示有关**企业证书颁发机构(CAs)及其配置的信息。这可被任何具有域身份验证的用户访问,无需特殊权限。工具如Certify和Certipy**用于在AD CS环境中进行枚举和漏洞评估。
使用这些工具的命令包括:
参考资料
最后更新于