【问题标题】:How to properly include custom information into X509 certificates如何将自定义信息正确包含到 X509 证书中
【发布时间】:2015-03-05 10:21:32
【问题描述】:

我正在实现一个使用 X509 证书对调用者进行身份验证和授权的 Web 服务。

将实体类型(即“最终用户”或“设备”)指定为主题名称的一部分是否合适,例如 OURDN?

使用CN RDN 将实体的身份指定为主题名称的一部分是否合适?

授权令牌是否是 X509.v3 扩展的一部分的最佳位置(我了解授权信息,例如“有权访问 cookie jar”,不属于主题名称部分)?

如果我要在证书中包含自定义扩展值,正确的方法是申请 OID(通过 PEN),并创建指定授权信息的子 OID,并使用这些 OID( s) 作为扩展的 OID?如果由于某种原因这是错误的,任何有关如何以标准方式完成此操作的指针将不胜感激。

【问题讨论】:

    标签: x509


    【解决方案1】:

    在主题专有名称 (DN) 的通用名称 (CN) 字段中指定实体的身份是适当的。 对于用户或设备,还可以在主题 DN 中指定他们所属的组织 (O) 和/或组织单元 (OU)。还有用户 ID (UID) 组件。

    对于授权断言specified in RFC 5755,有一个标准的 X.509 配置文件。 属性证书包含一个或多个关于身份的属性,例如组成员身份、角色、权限级别等,以及引用 公钥证书(即,通常类型的 X.509 证书)适用于授权信息的身份。

    这种标准化的方法避免了设计自定义 X.509 扩展的任何需要,因此,申请了官方 OID(这也不错,因为我不知道这方面的“官方”程序。)

    【讨论】:

    • IMO,申请 PEN 可以获得可用于您的东西的 OID。 Puppet 这样做了:docs.puppetlabs.com/puppet/latest/reference/… 感谢您的 RFC 参考,这些标准属性很可能涵盖了我需要的内容。
    • 但是,属性证书在很大程度上不受支持,很难找到创建和管理它们的软件,而且我认为我不能将它们作为建立 SSL 的一部分进行传输。但是,我确实看到,这将是一种正确的做事方式:)
    • RFC 5878 定义用于传输授权断言(X.509 AC 和 SAML 断言)的 TLS 扩展。不确定哪些实现支持它(如果有的话)。
    • 其实,RFC 5878 有各种各样的问题。更通用的 RFC 4680 Supplemental Data 扩展可用于在 TLS 握手中传递附加数据。 GnuTLS 显然支持它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 2014-11-19
    • 2021-02-16
    相关资源
    最近更新 更多