【问题标题】:How to recognize x509 flags如何识别 x509 标志
【发布时间】:2010-08-03 21:29:30
【问题描述】:

有什么方法可以区分标志后的数据和标志后的子标志吗?在我导出的雅虎证书中,有一个带有a0 2d a0 2b ... 的部分,它是所有标志。另一方面,主题密钥ID是“a0 1e 6e 0c 9b 6e 6a eb d2 ae 5a 4a 18 ff 0e 93 46 1a d6 32”。我如何区分which is what? 03、04 和 06 等其他标志也经常这样做

另外,有人认识字符串86 29 吗?它既不是标志也不是可读数据(29 是“)”,但这似乎没有任何作用)

【问题讨论】:

  • 您可能应该阅读 X.509 标准,特别是 ASN.1 编码。
  • 我有,但我不记得有任何部分谈论规则的例外/不管这是什么

标签: x509certificate x509 flags


【解决方案1】:

您可以将证书导出到一个文件中,然后使用CertUtil.exe -dump 来检查证书的包含情况。

已更新 基于评论:由于您在评论中粘贴了一个长字符串,cmets 可能无法阅读。所以我在这里重复我上一条评论的文字:

解码 X.509 扩展的最简单方法是使用 CryptDecodeObjectEx 和 X509_EXTENSIONS。因此,您将收到 CERT_EXTENSIONS - CERT_EXTENSION 的数组(请参阅 msdn.microsoft.com/en-us/library/aa377195.aspx)。扩展由定义扩展的 OID、扩展是否关键的属性(您是否真的必须理解它)和可选的附加编码扩展数据组成,在大多数情况下是 BER 编码的 NULL。当然,您可以根据 4.2 of RFC 3280、X.509 PKI(参见 http://www.ietf.org/rfc/rfc3280.txt)自行解码信息。

【讨论】:

  • 我知道数据的含义。我试图自己提取信息
  • 您将 X.509 证书的哪一部分命名为“x509 标志”和“子标志”?如果您描述了您的意思,我可以向您解释如何解码信息。几年前,为了更多地了解 ASN.1、BER、DER 和 X.509,我编写了一个实用程序,它产生的输出可以与 CertUtil.exe -dump 进行比较。那是你尝试做的吗?
  • 错误...我想是的。 the part im having trouble with is: "3081ab300e0603551d0f0101ff0404030204f0301d0603551d0e04160414a01e6e0c9b6e6aebd2ae5a4a18ff0e93461ad632303a0603551d1f04333031302fa02da02b8629687474703a2f2f63726c2e67656f74727573742e636f6d2f63726c732f73656375726563612e63726c301f0603551d2304183016801448e668f92bd2b295d747d82320104f3398909fd4301d0603551d250416301406082b0601050507030106082b06010505070302" this is only the "extensions" section.我设法获得了证书的其余部分(最多“65537”)、签名算法和签名值。对我来说,子标志是字符串中的任何组 im on
  • 解码 X.509 扩展的最简单方法是使用 CryptDecodeObjectEx 和 X509_EXTENSIONS。结果,您将收到CERT_EXTENSIONS - CERT_EXTENSION 的数组(请参阅msdn.microsoft.com/en-us/library/aa377195.aspx)。扩展由定义扩展的 OID、扩展是否关键的属性(您是否真的必须理解它)和可选的附加编码扩展数据组成,在大多数情况下是 BER 编码的 NULL。当然,您可以根据 RFC 3280、X.509 PKI 的 4.2 自行解码信息。
猜你喜欢
  • 1970-01-01
  • 2015-09-02
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 2016-01-19
相关资源
最近更新 更多