PKI (Public Key Infrastructure) — a system to manage certificates/public key encryption
PKI(公钥基础设施)— 管理证书/公钥加密的系统
AD CS (Active Directory Certificate Services) — Microsoft’s PKI implementation
AD CS (Active Directory 证书服务) — Microsoft 的 PKI 实施
CA (Certificate Authority) — PKI server that issues certificates
CA(证书颁发机构) — 颁发证书的 PKI 服务器
Enterprise CA — CA integrated with AD (as opposed to a standalone CA), offers certificate templates
企业 CA — 与 AD 集成的 CA(而不是独立的 CA),提供证书模板
Certificate Template — a collection of settings and policies that defines the contents of a certificate issued by an enterprise CA
证书模板 — 定义企业 CA 颁发的证书内容的设置和策略的集合
CSR (Certificate Signing Request) (证书签名请求) — 发送到 CA 以请求签名证书的消息
EKU (Extended/Enhanced Key Usage) — one or more object identifiers (OIDs) that define how a certificate can be used
EKU (扩展/增强密钥使用) — 定义如何使用证书的一个或多个对象标识符 (OID)
AD CS 是一个服务器角色,充当 Microsoft 的公钥基础结构 PKI 实现。正如预期的那样,它与 Active Directory 紧密集成并支持颁发证书,这些证书是 X.509 格式的数字签名电子文档,可用于加密、消息签 名和/或身份验证(我们的研究重点)。 证书中包含的信息将身份(使用者)绑定到公钥/私钥对。然后,应用程序可以在操作中使用密钥对作为 用户身份的证明。证书颁发机构 (CA) 负责颁发证书。 概括地说,客户端会生成公钥-私钥对,公钥与其他详细信息(如证书主题和证书模板名称)一起放置在 证书签名请求 (CSR) 消息中。然后,客户端将 CSR 发送到 Enterprise CA 服务器。然后,CA 服务器 会检查是否允许客户端请求证书。如果是这样,它会通过查找 CSR 中指定的证书模板 AD 对象(稍后将 详细介绍)来确定是否颁发证书。CA 将检查证书模板 AD 对象的权限是否允许身份验证帐户获取证书。 如果是这样,CA 将使用证书模板定义的“蓝图”设置(例如,EKU、加密设置、颁发要求等)并使用 CSR
中提供的其他信息(如果证书的模板设置允许)生成证书。CA 使用其私有密钥对证书进行签名,然后将 其返回给客户端
Certificate Templates 证书模板
AD CS Enterprise CA 使用由 AD 对象定义的设置(称为证书模板)颁发证书。这些模板是注册策略和预 定义证书设置的集合,包含诸如“此证书的有效期为”、“证书的用途是什么”、“如何指定使用者”、“允许谁 请求证书”等内容,以及大量其他设置:

Subject Alternative Names
使用者可选名称 使用者可选名称 (SAN) 是一种扩展,它允许将其他身份绑定到证书,而不仅仅是证书的使用者。例 如,如果 Web 服务器托管多个域的内容,则每个适用的域都可以包含在 SAN 中,以便 Web 服务器只需 要一个 HTTPS 证书,而不是每个域需要一个证书。 这对于 HTTPS 证书来说很好,但是当与允许域身份验证的证书结合使用时,可能会出现危险的情况。默 认情况下,在基于证书的身份验证期间,证书将根据 SAN 中指定的用户主体名称 (UPN) 映射到 Active Directory 帐户。因此,如果攻击者在请求启用域身份验证的证书时可以指定任意 SAN,并且 CA
使用攻击者提供的 SAN 创建并签署证书,则攻击者可以成为域中的任何用户!域升级情况可能是由各种 AD CS 模板错误配置引起的,这些错误配置允许非特权用户在证书注册中提供任意 SAN。我们将在
Domain Escalation 部分中介绍这些情况。




