B.4. CRL 扩展
B.4.1. 关于 CRL 扩展 复制链接链接已复制到粘贴板!
自初始发布以来,已修改 CRL 格式的 X.509 标准,以在 CRL 中包含其他信息。此信息通过 CRL 扩展添加。
由 ANSI X9 和 ISO/IEC/ITU 为 X.509 CRL [X.509] [X9.55] 定义的扩展允许额外的属性与 CRL 关联。Internet X.509 公钥基础架构证书和 CRL 配置文件位于 RFC 5280 中,建议在 CRL 中使用一组扩展。这些扩展称为 标准 CRL 扩展。
该标准还允许在 CRL 中创建并包含自定义扩展。这些扩展称为 私有、专有 或自定义 CRL 扩展,并将信息提供给组织或业务。应用程序可能无法验证包含私有关键扩展的 CRL,因此不建议在一般上下文中使用自定义扩展。
抽象语法符号 1 (ASN.1)和可辨识的编码规则(DER)标准在 CCITT Recommendations X.208 和 X.209 中指定。有关 ASN.1 和 DER 的快速摘要,请参阅 Layman 的指南为 ASN.1、BER 和 DER,该指南位于 RSA 实验室器的网站 http://www.rsa.com。
B.4.1.1. CRL 扩展的结构 复制链接链接已复制到粘贴板!
CRL 扩展由以下部分组成:
-
扩展的对象标识符(OID)。此标识符唯一标识扩展。它还决定了 value 字段中的 ASN.1 类型的值以及如何解释值。当扩展出现在 CRL 中时,OID 显示为扩展 ID 字段(
extnID
),对应的 ASN.1 编码结构显示为 octet 字符串(extnValue
)的值;示例显示在 例 B.4 “用户打印证书扩展示例” 中。 名为
critical
的标记或布尔值字段。分配给此字段的
true
或false
值指示扩展是否为 CRL 的关键或非关键值。 如果扩展至关重要,并且将 CRL 发送到不根据扩展 ID 了解扩展的应用程序,应用程序必须拒绝 CRL。 如果扩展不是关键的,并且 CRL 发送到根据扩展 ID 不理解扩展的应用程序,则应用程序可以忽略扩展并接受 CRL。- 包含扩展值的 DER 编码的 octet 字符串。
接收 CRL 的应用会检查扩展 ID,以确定它是否可以识别 ID。如果可以,它将使用扩展名 ID 来确定所使用的值类型。
B.4.1.2. CRL 和 CRL 条目扩展示例 复制链接链接已复制到粘贴板!
以下是 X.509 CRL 版本 2 扩展的示例。证书系统可以以可读的用户打印格式显示 CRL,如下所示。如示例所示,CRL 扩展按顺序出现,只有特定扩展的一个实例可能会每个 CRL 出现;例如,CRL 可能只包含一个授权密钥标识符扩展。但是,CRL-entry 扩展会出现在 CRL 中的相应条目中。
delta CRL 是 CRL 的子集,仅包含发布最后一个 CRL 起的更改。任何包含 delta CRL 指示符扩展的 CRL 是 delta CRL。
B.4.2. 标准 X.509 v3 CRL 扩展参考 复制链接链接已复制到粘贴板!
除了证书扩展外,X.509 建议标准定义了对 CRL 的扩展,它提供了将额外属性与互联网 CRL 关联的方法。这些是两种类型之一:对 CRL 本身的扩展,对 CRL 中的单个证书条目的扩展。
B.4.2.1. CRL 的扩展 复制链接链接已复制到粘贴板!
以下 CRL 描述被定义为互联网 X.509 v3 公钥基础架构建议标准的一部分。
B.4.2.1.1. authorityInfoAccess 复制链接链接已复制到粘贴板!
Authority Information Access 扩展标识如何获取 delta CRL 信息。全新estCRL 扩展放在完整的 CRL 中,以指示在哪里查找最新的 delta CRL。
OID
1.3.6.1.5.5.7.1.1
严重性
PKIX 要求此扩展不能至关重要。
参数 | 描述 |
---|---|
enable | 指定是否启用或禁用规则。默认为禁用此扩展。 |
critical | 设置扩展是否标记为 critical;默认值为非关键。 |
numberOfAccessDescriptions | 表示访问描述的数量,从 0 到任何正整数;默认值为 0。 当将此参数设置为 0 以外的整数时,请设置数字,然后点 OK 关闭窗口。重新打开规则的编辑窗口,以及设置点的字段将存在。 |
accessMethodn | 此参数的唯一可接受值为 caIssuers。当可用列出可用于验证 CRL 上的签名的证书时,会使用 caIssuers 方法。当 AIA 扩展包含在 CRL 中时,不应使用其他方法。 |
accessLocationTypen |
指定 n 访问描述的访问位置类型。选项是 |
accessLocationn |
如果将
如果将 |
B.4.2.1.2. authorityKeyIdentifier 复制链接链接已复制到粘贴板!
CRL 的授权密钥标识符扩展标识了与用于为 CRL 签名的私钥对应的公钥。详情请查看证书扩展中的讨论 第 B.3.2 节 “authorityKeyIdentifier”。
PKIX 标准建议 CA 必须在所有 CRL 中包括此扩展,因为 CA 的公钥可以改变,例如当密钥被更新时,或者 CA 可能会有多个签名密钥,因为多个并发密钥对或密钥改变。在这些情况下,CA 以多个密钥对结束。在证书上验证签名时,其他应用程序需要知道签名中使用的密钥。
OID
2.5.29.35
参数 | 描述 |
---|---|
enable | 指定是否启用或禁用规则。默认为禁用此扩展。 |
critical | 设置扩展是否标记为 critical;默认值为非关键。 |
B.4.2.1.3. CRLNumber 复制链接链接已复制到粘贴板!
CRLNumber 扩展指定 CA 发布的每个 CRL 的序列号。它允许用户轻松确定特定的 CRL 何时取代另一个 CRL。PKIX 要求所有 CRL 都有此扩展。
OID
2.5.29.20
严重性
此扩展不能至关重要。
参数 | 描述 |
---|---|
enable | 指定是否启用规则,这是默认设置。 |
critical | 设置扩展是否标记为 critical;默认值为非关键。 |
B.4.2.1.4. deltaCRLIndicator 复制链接链接已复制到粘贴板!
deltaCRLIndicator 扩展会生成 delta CRL,仅列出自最后一个 CRL 起撤销的证书列表;它还包括对基础 CRL 的引用。这会在本地数据库中更新本地数据库,同时忽略本地数据库中已有的未更改信息。这可显著提高以 CRL 结构以外的格式存储吊销信息的应用程序的处理时间。
OID
2.5.29.27
严重性
PKIX 需要将此扩展名至关重要。
参数 | 描述 |
---|---|
enable | 设置是否启用了规则。默认情况下,它被禁用。 |
critical | 设置扩展是否为 critical 还是非关键。默认情况下,这至关重要。 |
B.4.2.1.5. FreshestCRL 复制链接链接已复制到粘贴板!
全新estCRL 扩展标识如何获取 delta CRL 信息。全新estCRL 扩展放在完整的 CRL 中,以指示在哪里查找最新的 delta CRL。
OID
2.5.29.46
严重性
PKIX 要求此扩展必须是非关键的。
参数 | 描述 |
---|---|
enable | 设置是否启用了扩展规则。默认情况下禁用它。 |
critical | 将扩展标记为 critical 或 noncritical。默认值为非关键。 |
numPoints |
表示 delta CRL 的发布点数,从 |
pointTypen |
指定 n 发出点的发布点类型。对于 |
pointNamen |
如果将
如果 |
B.4.2.1.6. issuerAltName 复制链接链接已复制到粘贴板!
Issuer Alternative Name 扩展允许其他身份与 CRL 的签发者关联,如绑定属性,如电子邮件地址、DNS 名称、IP 地址(包括 IPv4 和 IPv6)以及一个统一的资源指示符(URI),以及 CRL 的签发者。详情请查看证书扩展中的讨论 第 B.3.7 节 “issuerAltName extension”。
OID
2.5.29.18
参数 | 描述 |
---|---|
enable | 设置是否启用了扩展规则;默认情况下,这被禁用。 |
critical | 设置扩展是否至关重要;默认情况下,这是非关键的。 |
numNames |
设置扩展中允许的备用名称或身份的总数。每个名称都有一组配置参数 |
nameTypen | 指定 general-name 类型;这可以是以下任意一种:
|
namen |
指定 general-name 值;允许的值取决于
|
B.4.2.1.7. issuingDistributionPoint 复制链接链接已复制到粘贴板!
Issuing Distribution Point CRL 扩展标识了特定 CRL 的 CRL 发行版点,并指示它涵盖的撤销类型,如仅撤销最终证书、CA 证书或撤销具有有限原因代码的证书。
PKIX Part I 不需要此扩展。
OID
2.5.29.28
严重性
PKIX 需要将此扩展名至关重要。
参数 | 描述 |
---|---|
enable | 设置是否启用扩展;默认是禁用的。 |
critical | 将扩展标记为 critical、default 或 noncritical。 |
pointType | 指定发布发行版本的类型:
|
pointName |
提供发布分发点的名称。发行版点的名称取决于为
注意 CRL 可以存储在与 CRL 发布点对应的目录条目中,这可能与 CA 的目录条目不同。 |
onlySomeReasons | 指定与分发点关联的原因代码。
permissible 值是原因代码( |
onlyContainsCACerts | 指定发行版点仅在设置时包含用户证书。默认情况下,这没有被设置,这意味着分发点包含所有类型的证书。 |
indirectCRL | 指定发行版点包含间接 CRL;默认情况下,不选择此点。 |
B.4.2.2. CRL 条目扩展 复制链接链接已复制到粘贴板!
以下章节列出了定义为互联网 X.509 v3 Public Key Infrastructure 建议标准的一部分定义的 CRL 条目扩展类型。所有这些扩展都不是关键的。
B.4.2.2.1. certificateIssuer 复制链接链接已复制到粘贴板!
Certificate Issuer 扩展标识了与间接 CRL 中条目关联的证书签发者。
此扩展仅用于间接 CRL,证书系统不支持这些扩展。
OID
2.5.29.29
B.4.2.2.2. invalidityDate 复制链接链接已复制到粘贴板!
Invalidity Date 扩展提供了私钥泄露的日期,或者证书无效。
OID
2.5.29.24
参数 | 描述 |
---|---|
enable | 设置是否启用或禁用扩展规则。默认情况下启用此设置。 |
critical | 将扩展标记为 critical 或非关键;默认情况下,扩展是非关键的。 |
B.4.2.2.3. CRLReason 复制链接链接已复制到粘贴板!
Reason Code 扩展标识证书撤销的原因。
OID
2.5.29.21
参数 | 描述 |
---|---|
enable | 设置是否启用或禁用扩展规则。默认情况下启用此设置。 |
critical | 将扩展标记为 critical 或 noncritical。默认情况下,这是非关键的。 |
B.4.3. Netscape 定义的证书扩展参考 复制链接链接已复制到粘贴板!
Netscape 为其产品定义了某些证书扩展。有些扩展现已过时,其他扩展已被 X.509 建议标准中定义的扩展替代。所有 Netscape 扩展都应标记为非关键扩展,因此它们在证书中存在不会使该证书与其他客户端不兼容。
B.4.3.1. netscape-cert-type 复制链接链接已复制到粘贴板!
Netscape 证书类型扩展可用于限制可使用证书的目的。它已被 X.509 v3 扩展 第 B.3.6 节 “extKeyUsage” 和 第 B.3.3 节 “basicConstraints” 替代。
如果证书中存在扩展,它会将证书限制为其中指定的使用。如果没有扩展,则证书可用于所有应用程序,但对象签名除外。
该值是一个位字符串,在设置时单个位位置,认证特定使用的证书,如下所示:
- 位 0:SSL 客户端证书
- 第 1 位:SSL 服务器证书
- 第 2 位:S/MIME 证书
- 第 3 位:对象签名证书
- 位 4:保留
- 第 5 位:SSL CA 证书
- 位 6:S/MIME CA 证书
- 位 7:对象签名 CA 证书
OID
2.16.840.1.113730.1.1
B.4.3.1.1. Netscape-comment 复制链接链接已复制到粘贴板!
此扩展的值是 IA5String。这是一个注释,可在查看证书时向用户显示。
OID
2.16.840.1.113730.13