- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我很难理解 RDN (RelativeDistinguishedName) 中属性 (AttributeTypeAndValue) 的顺序。
以下是相关的 ASN.1 定义(取自 www.in2eps.com ):
TBSCertificate
TBSCertificate ::= SEQUENCE {
[...]
subject Name,
[...]
}
名字
Name ::= CHOICE {
rdnSequence RDNSequence
}
RDNS 序列
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName
RelativeDistinguishedName ::= SET SIZE (1 .. MAX) OF AttributeTypeAndValue
属性类型和值
AttributeTypeAndValue ::= SEQUENCE {
type AttributeType,
value AttributeValue
}
属性类型
AttributeType ::= OBJECT IDENTIFIER
属性值
AttributeValue ::= ANY -- DEFINED BY AttributeType
如果我创建一个包含“/CN=CommonNameX/O=OrganizationX/...”的 CSR(按此特定顺序),CA 如何以此构建证书?
将主题设置为“.../O=OrganizationX/CN=CommonNameX/”(倒序相同)时,证书将如何构造?
据我所知,RDN 属性的顺序在验证证书链时很重要。因此,我假设必须有一些可用的详细规范?
更重要的是,我还想知道是否有不同的 CA 使用不同的顺序。如果是这样,有人可以指出一些 CA 吗?
编辑:
阅读第一个答案后,我意识到我要求的东西与预期的非常不同。简而言之:预期的问题是,RDN 序列 中元素的顺序是否重要。
抱歉打扰了,我会在之后更正问题的标题...
最佳答案
If I create a CSR containing "/CN=CommonNameX/O=OrganizationX/..." (in this specific order), how does a CA constructs a certificate out of this?
一个体面的 CA 实际上应该忽略 CSR 中提交的 DN,并根据它已验证的信息构建主题 DN。也就是说,通常,他们会根据他们的 CA 策略放置自己的国家、组织、OU(等等)。他们会将 CN 更改为您申请的主机的 CN(例如,或根据证书类型与申请流程相关的任何其他内容)。 CSR 中的内容有助于跟踪在申请过程中提交的公钥的身份,但最多只能用于管理目的。
As far as I know the ordering of the RDN attributes is important when verifying certificate chains. Therefore, I assume there must by some detailed specification available?
是的,顺序很重要 RDNSequence
确实是一个 SEQUENCE OF RelativeDistinguishedName
。每个 RDN 本身就是一组(无序的)AVA(属性值断言/AttributeTypeAndValue
):SET SIZE (1 .. MAX) OF AttributeTypeAndValue
。
每个RDN 内容(AVA 的集合)和每个DN(RDN 的序列)的匹配规则在RFC 5280 中定义。 :
Two naming attributes match if the attribute types are the same and
the values of the attributes are an exact match after processing with
the string preparation algorithm. Two relative distinguished names
RDN1 and RDN2 match if they have the same number of naming attributes
and for each naming attribute in RDN1 there is a matching naming
attribute in RDN2. Two distinguished names DN1 and DN2 match if they
have the same number of RDNs, for each RDN in DN1 there is a matching
RDN in DN2, and the matching RDNs appear in the same order in both
DNs. A distinguished name DN1 is within the subtree defined by the
distinguished name DN2 if DN1 contains at least as many RDNs as DN2,
and DN1 and DN2 are a match when trailing RDNs in DN1 are ignored.
本质上,DN 中的 RDN 需要以正确的顺序排列(SEQUENCE
已排序),但 AVA 的顺序不需要(SET
未排序) : "如果两个相对的可分辨名称 RDN1 和 RDN2 具有相同数量的命名属性并且对于 RDN1 中的每个命名属性在 RDN2 中都有一个匹配的命名属性,则它们匹配。"
实际上,大多数 CA 只对每个 RDN 使用一个属性值对。如果许多依赖于文本序列化(例如 RFC 2253)的实现(不一定是 SSL/TLS 堆栈的一部分,但可以说,它上面的身份验证/授权层)会被混淆,我不会感到惊讶多个 AVA(更具体地说,它们的顺序在每个 RDN 中无关紧要,因此您可以有两个不同的文本序列化,它们实际上是等效的)。
关于ssl - CA 认证签名过程中 RDN 属性的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33080136/
我正在使用 Tornado 与 twitter 等第三方进行身份验证。 我的登录处理程序看起来像这样 class AuthLoginHandler(BaseHandler, tornado.auth.
有没有一种真正的方法可以在 Pylons 中添加身份验证?我见过很多不同的方法,但大多数方法要么过时,要么过于复杂。是否有教程可以解释如何以良好而可靠的方式添加身份验证? 最佳答案 考虑使用 repo
RESTful 身份验证是什么意思,它是如何工作的?我在谷歌上找不到很好的概述。我唯一的理解是您在 URL 中传递了 session key (记住),但这可能是非常错误的。 最佳答案 如何在 RES
我正在考虑在基于插件的系统中实现安全性的多种方式。现在,当我说“安全”时,我的意思是: a) 插件系统的开发人员如何确保插件在核心平台上的使用是安全的。b) 插件开发人员如何确保在其平台上使用的插件是
我正在使用 WCF Webhttp 服务。我创建了一堆服务,剩下的就是放入用户身份验证... 问题 与其余架构风格保持一致,我是否应该针对用户 db 验证每个服务调用。 如果是这样,我应该在每次调用服
假设我想对 Mifare Classic 进行身份验证。 我如何知道要发送到卡的确切类型的 APDU? 例子。 这段代码: bcla = 0xFF; bins = 0x86; bp1 = 0x0;
我通过在文件 xyz.php 中编写以下代码登录到网站。当我运行这个文件时,我会登录到 moodle 网站。有什么方法可以像下面的登录代码一样注销吗? $user = authenticate_use
我有一个应用程序可以匿名访问除几个之外的所有 xpages。我需要强制用户登录这些 xpages。是使用 beforepageload 事件来检查用户登录页面并将其重定向到正确的方式还是有更好的方法?
我想用 ember.js 实现身份验证。 因此,当应用程序启动时,在路由器处理请求的 url 之前,我想检查用户状态。如果用户未通过身份验证,我想保存请求的 url 并重定向到特定的 url (/lo
您如何执行 jQuery Ajax 调用并在发送请求之前对调用进行身份验证? 我还没有登录所以必须进行身份验证。安全不是任何人都可以访问的问题,只需要进行身份验证。它只是基本的 http 身份验证,您
我尝试使用找到的 swift 代码 here在网站上找到here ,但响应是带有两个错误的 html 代码:“您必须输入密码!”和“您必须输入用户名!”我是 NSURLSession 的新手,并尝试更
我正在尝试连接到 Visa Direct API,但我没有通过基本的 SSL 证书认证,这是我的代码: import requests headers = { 'Content
我正在用 tornado 在 python 中开发一个 REST API,我将实现身份验证和授权,试图避免锁定到其他大项目,即 django。我也在通过论坛和 SO 环顾四周,我喜欢一个可能适合的解决
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭10
如何在 Android 中通过 HTTP 进行身份验证? 最佳答案 我非常难以在 Android 中通过 HTTP 进行身份验证,因为在浏览器(Web 和 Android native )中它工作完美
我有一些关于登录和 session 的问题。我有这段代码: 数据库查询: login: function(req,callback) { var query = 'SELECT id FROM
我开始使用 Swift 开发 iOS 应用。现在我正处于需要创建登录系统的部分。但是,我们需要人们提供的 LinkedIn 信息。 我如何在 iOS 中使用 OAuth2 API 来实现这一点? 我已
如果没有找到用户,问题出在每个 $routeChangeStart 上,如果我只输入 url,它仍然会引导我访问页面。 现在我已经在服务器上重写了规则。 Options +FollowSymlinks
简单代码 require 'net/http' url = URI.parse('get json/other data here [link]') req = Net::HTTP::Get.new(
参考文档: https://docs.sonarqube.org/latest/instance-administration/security/ 概述 SonarQube具有
我是一名优秀的程序员,十分优秀!