Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解数字证书验证

MX 系列设备采用 Junos OS 16.1R3 版,支持数字证书验证。在 IKE 协商期间,MX 系列设备上的 PKI 守护程序会验证从 VPN 对等方接收的 X509 证书。执行的证书验证在 RFC 5280、 Internet X.509 公钥基础架构证书和证书撤销列表 (CRL) 配置文件中指定。基本证书和证书链验证包括签名和日期验证以及撤销检查。本主题介绍由 PKI 守护程序执行的其他数字证书验证。

策略验证

X509 证书可以包含可选的策略验证字段。如果存在策略验证字段,将对整个证书链(包括最终实体 (EE) 证书和中间证书颁发机构 (CA) 证书)执行策略验证。策略验证不适用于根证书。策略验证可确保 EE 和中间 CA 证书具有通用的策略。如果对要验证的证书链没有通用策略,则证书验证将失败。

在策略验证之前,必须构建包含自签名根证书、中间 CA 证书和 EE 证书的证书链。策略验证从自签名根证书颁发的中间 CA 证书开始,并持续到 EE 证书。

以下可选证书字段用于策略验证:

  • 策略 oid

  • 需要ExplicitPolicy

  • 跳过证书

以下部分介绍了这些字段。

在 MX 系列设备上配置的策略 OID

在某些情况下,最好只接受来自对等方带有已知策略对象标识符 (OID) 的证书。只有当从对等方收到的证书链包含 MX 系列设备上配置的至少一个策略 OID 时,此可选配置才允许证书验证成功。

在 MX 系列设备上,策略 IKE 策略中的配置语句位于 policy-oids [edit security ike policy policy-name certificate] 层次结构级别。您最多可以配置五个策略 OID。要成功验证对等方证书,对等方证书链必须至少包含一个在 MX 系列设备上配置的策略 OID。请注意,证书中的 策略 oid 字段是可选的。如果在 MX 系列设备上配置了策略 OID,但对等方证书链中不包含任何策略 OID,则证书验证将失败。

未在 MX 系列设备上配置策略 OID

如果在 MX 系列设备上未配置任何策略 OID,则只要证书链中遇到 “需要策略” 字段,即可开始策略验证。证书可能包含一个或多个证书策略 OID。要使策略验证成功,证书链中必须有一个通用策略 OID。

图 1 显示了一个证书链,由根 CA、三个中间 CA 和一个 EE 的证书组成。Int-CA-2 的 CA 证书包含 requireExplicitPolicy 字段;因此,策略验证从 Int-CA-2 开始,一直持续到 EE-1。Int-CA-2 的证书包含策略 OID P1、P2 和 P3。Int-CA-3 的证书包含策略 OID P2、P3 和 P4。EE-1 的证书包含策略 OID P2 和 P5。由于策略 OID P2 对于要验证的证书通用,因此策略验证会成功。

图 1:使用所需策略字段 Policy Validation with requireExplicitPolicy Field进行策略验证

中间 CA 证书中的可选 跳过证书 字段表示要从策略验证中排除的证书数量,包括当前 CA 证书。如果 跳过证书 为 0,则策略验证从当前证书开始。如果 跳过证书 为 1,则当前证书将从策略验证中排除。在每个中间 CA 证书中都会检查 跳过证书 字段的值。如果遇到跳过 证书 值低于当前要排除的证书数,则使用较低的 跳过证书 值。

图 2 显示了一个证书链,由一个根 CA、四个中间 CA 和一个 EE 组成。Int-CA-1 中的 skipCerts 值为 12,可跳过 12 个证书,包括 Int-CA-1 证书。但是,在链中的每个中间 CA 证书中都会检查 跳过 证书值。Int-CA-2 中的 skipCerts 值是 2,低于 12,因此现在跳过 2 个证书。Int-CA-4 中的 skipCerts 值是 5,大于 2,因此将忽略 Int-CA-4 跳过Certs 值。

图 2:使用跳过证书字段 Policy Validation with skipCerts Field的策略验证

在 MX 系列设备上配置策略 OID 时,证书字段 需要ExplicitPolicy ,而 跳过证书 将被忽略。

路径长度验证

证书验证可以涉及包含根 CA、一个或多个可选中间 CA 和 EE 证书的证书链。根据部署场景,中间 SA 的数量可能会增加。路径长度验证提供了一种限制证书验证涉及的中间证书数量的机制。 路径长度 是 X509 证书中的可选字段。 路径长度 值表示允许用于证书验证的非自签名中间 CA 证书的数量。最后一个证书(通常为 EE 证书)不包括在路径限制中。如果根证书包含 的路径长度 值 0,则不允许任何中间 CA 证书。如果 路径长度 值为 1,则可以有 0 或 1 个中间 CA 证书。

路径长度 可以存在于证书链中的多个 CA 证书中。路径长度验证始终以自签名根证书开头。链中的每个中间证书的路径限制会减少 1。如果中间证书包含 的路径长度 值小于当前路径限制,将实施新的限制。另一方面,如果 路径长度 值大于当前路径限制,则将其忽略。

图 3 显示了由一个根 CA、四个中间 CA 和一个 EE 组成的证书链。Root-CA 中的 路径长度 值为 10,因此允许用于证书验证的非自签名中间 CA 证书的初始路径限制为 10。在 Int-CA-1,路径限制为 10-1 或 9。Int-CA-1 中的 路径长度 值为 4,小于路径限制 9,因此新路径限制变为 4。在 Int-CA-2,路径限制为 4-1 或 3。Int-CA-2 中的 路径长度 值为 5,大于路径限制 3,因此将被忽略。在 Int-CA-3,路径限制为 3-1 或 2。Int-CA-3 中的 路径长度 值为 20,大于路径限制 2,因此也会被忽略。

图 3:路径长度验证 Path Length Validation

密钥用法

EE 或 CA 证书中的密钥使用字段定义了证书中包含的密钥的用途。

EE 证书

对于 EE 证书,如果存在密钥使用字段,但证书不包含 数字签名不可否认性 标志,则证书将被拒绝。如果密钥使用字段不存在,则不会检查密钥使用情况。

CA 证书

该密钥可用于证书或 CRL 签名验证。由于 PKI 守护程序负责 X509 证书验证和 CRL 下载,因此在验证证书或 CRL 之前,必须检查密钥使用情况。

证书签名验证

密钥CertSign 标志指示 CA 证书可用于证书签名验证。如果未设置此标志,将终止证书验证。

CRL 签名验证

在第 1 阶段协商中,参与方检查证书撤销列表 (CRL),查看在 IKE 交换期间收到的证书是否仍然有效。对于配置了 CRL 作为证书撤销检查的 CA 配置文件,定期下载 CRL。必须先验证已下载的 CRL 文件,然后才能将其下载到设备中。其中一个验证步骤是使用 CA 证书验证 CRL 签名。下载的 CRL 使用 CA 证书的私有密钥进行签名,并且必须使用存储在设备中的 CA 证书公钥进行验证。CA 证书中的密钥使用字段必须包含 CRLSign 标志,以验证下载的 CRL。如果此标志不存在,CRL 将被丢弃。

颁发者和主题可分辨名称验证

对从对等方收到的证书以及从 CA 服务器下载的 CRL 文件执行签名验证。签名验证涉及根据证书中的可识别名称 (DN) 或要验证的 CRL 在 CA 数据库中查找 CA 证书。

图 4 显示了基于颁发者 DN 的 CA 证书查找。在 EE 证书中,颁发者 DN 是 CA-1,它是链中级 CA 证书的主题 DN。在中间 CA 证书中,颁发者 DN 是 CA-Root,它是链中自签名的 Root-CA 证书的主题 DN。在 CRL 中,颁发者 DN 是 CA-Root,它是自签名根 CA 证书的主题 DN。

图 4:颁发者和主题 DN 验证 Issuer and Subject DN Validation

对颁发者或主题 DN 的查找必须遵循以下属性规则:

  • 在不同的 ASN.1 类型(例如,可打印字符串和 BMP 字符串)中编码的属性值被假定表示不同的字符串。

  • 在 PrintableString 类型中编码的属性值不区分大小写。在移除前导空格和尾随空格并将一个或多个连续空格的内部子字符串转换为单个空格之后,将比较这些属性的值。

  • 以印刷字符串以外的类型编码的属性值区分大小写。

版本历史记录表
释放
描述
16.1R3
MX 系列设备采用 Junos OS 16.1R3 版,支持数字证书验证。