ASN.1分析Alipay证书

Posted sanfens

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASN.1分析Alipay证书相关的知识,希望对你有一定的参考价值。

2020-4 基于BouncyCastle的ASN.1分析工具设计与实现 Week2

任务步骤

  • 下载ASN.1的查看工具Asn1View.exe

  • 访问支付宝,获取站点证书
    技术图片

  • 导出证书详细信息-复制到文件-DER编码二进制X.509(.CER),在Asn1View.exe中打开
    技术图片

标识符 分隔符
Integer 0x02
Bit String 0x03
OCTET String 0x04
Null 0x05
Object Indentifier 0x06
UTF8 String 0x12
Printable String 0x13
UTC Time 0x17
Sequence 0x30
Set 0x31
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,          # 证书
signatureAlgorithm AlgorithmIdentifier, # 签名算法
signature BIT STRING                    # 签名
}
  • 证书信息本身是一个 SEQUENCE,里面由两个 SEQUENCE和一个BIT STRING组成

    • SEQUENCE待签的证书,tbsCertificate=TO BE Signed Certificate
    • SEQUENCE签名算法,就是CA准备采用什么签名算法对tbsCertificate进行签名;
    • BIT STRING签名信息,CA对tbsCertificate通过signatureAlgorithm签名算法签出来的签名信息。
  • RFC3280TBSCertificate的定义如下

TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,                # 版本
serialNumber CertificateSerialNumber,                   # 序列号
signature AlgorithmIdentifier,                          # 签名算法
issuer Name,                                            # 颁发者
validity Validity,                                      # 有效期
subject Name,                                           # 主题
subjectPublicKeyInfo SubjectPublicKeyInfo ,             # 主题公钥信息
issuerUniqueID[1] IMPLICIT UniqueIdentifier OPTIONAL,   # 颁发者唯一ID
-- If present, version shall be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL, # 主题唯一ID
-- If present, version shall be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL              # 扩展
-- If present, version shall be v3
}
  • Version

    • Context[0](第一个)里面就是证书版本信息(默认V1)
    • Version的定义Version ::= INTEGER { v1(0),v2(1),v3(2)
    • ASN1View右面的16进制显示
  • serialNumber

    • serialNumber的定义CertificateSerialNumber ::= INTEGER

以上是关于ASN.1分析Alipay证书的主要内容,如果未能解决你的问题,请参考以下文章

数字证书编码ASN.1

ASN.1编解码:asn1c的版本分析-诺基亚

基于OpenSSL的asn.1分析工具设计与实现 20175219罗乐琦 个人报告

ASN.1编解码:ORAN-E2AP分析

如何在使用 bouncycastle 签名之前添加 ASN.1 扩展?

关于证书的几个小问题