【问题标题】:Certificates Basic Constraint's Path Length证书基本约束的路径长度
【发布时间】:2011-09-30 18:46:45
【问题描述】:

对于 CA 类型的基本约束,路径长度为 0 和 None 是否相同?澄清一下,路径长度为 0 是否意味着 CA 不能颁发证书,而路径长度为 none 是否意味着它可以颁发无限数量的证书?

【问题讨论】:

    标签: path certificate constraints


    【解决方案1】:

    取自RFC 5280,第 4.2.1.9 节:

    pathLenConstraint 为零表示在有效的证书路径中不能遵循任何非自行颁发的中间 CA 证书。在出现的地方,pathLenConstraint 字段必须大于或等于零。在没有出现 pathLenConstraint 的地方,没有施加限制。

    pathLenConstraintof 0 仍然允许 CA 颁发证书,但这些证书必须是最终实体证书(BasicConstraints 中的 CA 标志为假 - 这些是颁发给个人或组织的“正常”证书)。

    这也意味着使用此证书,CA 不得颁发中间 CA 证书(CA 标志再次为真 - 这些证书可能会颁发更多证书,从而将 pathLen 增加 1)。

    另一方面,pathLenConstraint 不存在意味着考虑到从最终实体证书构建的证书路径的长度没有限制,这将导致我们的示例 CA 证书。这意味着 CA 可以为子 CA 颁发中间证书,该子 CA 可以再次颁发中间证书,该子 CA 可以再次...直到最终一个子 CA 颁发最终实体证书。

    如果给定 CA 证书的 pathLenConstraint > 0,则它表示从最终实体证书到 CA 证书构建的路径中可能的中间 CA 证书的数量。假设 CA X 的 pathLenConstraint 为 2,则最终实体证书颁发给 EE。那么以下场景都是有效的(我指的是中间CA证书)

    X - EE
    X - I1 - EE
    X - I1 - I2 - EE
    

    但这种情况和那些具有更多中间 CA 的情况不是

    X - I1 - I2 - I3 - EE
    ...
    

    【讨论】:

    • 那怎么说一个证书可以颁发No certificate呢?
    • @Rory,您通过确保证书不是 CA 证书来执行此操作(即,将 cA 属性设置为 false 并确保密钥使用扩展中的 keyCertSign 位未声明)。跨度>
    • 中间证书 I1、I2 等可以定义自己的 pathLenConstraint 吗?
    • @mR_fr0g,是的,他们可以。显然,那么只能使限制更强,而不是更弱。
    • 是的,认为@Rory 指出了一个有价值的问题。创建具有约束和策略的证书并不会阻止某些人使用它来创建依赖证书。约束和策略应通过适当的证书管理系统进行处理,以强制执行此类限制,例如有效期、密钥使用、CPS、策略等。
    猜你喜欢
    • 2023-01-19
    • 1970-01-01
    • 2014-06-09
    • 2019-10-16
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2017-03-29
    相关资源
    最近更新 更多