数字证书编码ASN.1

发布时间 2023-05-06 15:17:12作者: 少管我

数字证书编码ASN.1

0. 参考附件中图书p223 中13.2的实验指导,完成DER编码
1. 序列号=1174(0x0496),证书签发者 DN="CN=Virtual CA,C=CN",证书持有者DN="CN=你的名字拼音, OU=Person,C=CN",证书有效期=20200222000000-20220222000000。
2. 用echo -n -e "编码" > 你的学号.der中,用OpenSSL asn1parse 分析编码的正确性
3. 提交编码过程文档(推荐markdown格式)

1.查看姓名、学号的16进制ASCII码

2.对TBSCertificate进行DER编码

TBSCertificate内容编码规则采用结构类型定长模式。

  • 序列号1174(0x4096)
    echo -n -e "\xA0\x03\x02\x01\x02\x02\x02\x04\x96\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00" > 20201329.der

  • 证书签发者DN="CN=Virtual CA
    echo -n -e "\x30\x22\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4E\x31\x13\x30\x11\x06\x03\x55\x04\x03\x13\x0A\x56\x69\x72\x74\x75\x61\x6C\x20\x43\x41" >> 20201329.der

  • 证书有效期=20200222000000-20220222000000
    echo -n -e "\x17\x0D\x32\x30\x32\x30\x30\x32\x32\x32\x30\x30\x30\x30\x5A\x17\x0D\x32\x30\x32\x32\x30\x32\x32\x32\x30\x30\x30\x30\x5A" >> 20201329.der

  • 证书持有者DN=CN=Wei He, OU=Person

输入:echo -n -e "\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4E\x31\x11\x30\x0F\x06\x03\x55\x04\x0A\x13\x08\x32\x30\x32\x30\x31\x33\x32\x39\x31\x15\x30\x13\x06\x03\x55\x04\x03\x13\x05\x57\x65\x69\x48\x65" >> 20201329.der

  • 用户WeiHe最终der编码为

    \x30\x33 \x31\x0b \x30\x09 \x06\x03\x55\x04\x06 \x13\x02\x43\x4e ("CN")

    \x31\x11 \x30\x0f \x06\x03\x55\x04\x0a \x13\x08 \x32\x30\x32\x30\x31\x33\x32\x39 ("20201329")

    \x31\x07 \x30\x0f \x06\x03\x55\x04\x03 \x13\x05 \x57\x65\x69\x48\x65 ("Wei He")

3.用OpenSSL asn1parse 分析编码的正确性

使用命令openssl asn1parse -inform DER -in 20201329.der

发现编码正确