首页 > 其他分享 >数字证书编码ASN.1

数字证书编码ASN.1

时间:2023-05-06 14:44:34浏览次数:40  
标签:x32 编码 x30 CN SEQUENCE ASN.1 数字证书

数字证书编码ASN.1

一、任务详情

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

二、查看姓名、学号的16进制ASCLL码

echo -n "zhaobin" | od -tc -tx1
echo -n "20201229" | od -tc -tx1

三、ASN.1描述与实例

1.TBSCertificate 的 ASN.1描述与实例

TBSCertificate格式用ASN.1描述如下:

TBSCertificate :=SEQUENCE {
version
[0] EXPLICIT Version DEFAULT v1,
serialNumber
CertificateSerialNumber,
signature
Algorithmldentifier,
issuer
Name,
validity
Validity,
subject
Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID[1] IMPLICIT Uniqueldentifier OPTIONAL,
-- If present, version MUST be v2 or v3

subjectUniqueID [2] IMPLICIT Uniqueldentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions[3]EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}

Extensions ::=SEQUENCE SIZE (1..MAX) OF ExtensionTBSCertificate 中各项内容具体值如下所示。

TBSCertificate
version 02
serialNumber 04 96
signature sha 1 WithRSAEncryption ( 1.2.840.113549.1.1.5)
issuer “CN=Virtual CA,C=CN”
validity notBefore=20200222000000、notAfter=20220222000000
subject “CN=chenshaoqing,OU=Person,C=CN”
subjectPublicKeyInfo
issuerUniquelD subjectUniquelD
extensions 包含6个扩展项(Extension ): basicContraints、subjectKeyldentifier、keyUsage、extKeyUsage,netscapeCertType、authorityKeyIdentifier

2.Extension的ASN.1描述与实例Extension格式用ASN.1描述如下:

Extension :=SEQUENCE {
extnID
OBJECT IDENTIFIER,
critical
BOOLEAN DEFAULT FALSE,
extnValue
OCTET STRING }

Extension各扩展项值如下所示。

3.Certificate 的ASN.1描述与实例Certificate格式用ASN.1描述如下:

Certificate ::=SEQUENCE {
tbsCertificate
TBSCertificate,
signatureAlgorithm
AlgorithmIdentifier,
signature Value
BIT STRING }

四、DER编码过程

(一)对Extension进行DER编码

各扩展项具体内容用ASN.1描述如下:

BasicConstraints ::=SEQUENCE{
cA
BOOLEAN DEFAULT FALSE,
pathLenConstraint
INTEGER (O..MAX)OPTIONAL}
SubjectKeyIdentifier ::= Keyldentifier
(KeyIdentifier ::= OCTET STRING)KeyUsage ::= BIT STRING
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX)OF KeyPurposeld

(KeyPurposeld ::= OBJECT IDENTIFIER)NetscapeCertType ::= BIT STRING
AuthorityKeyldentifier ::=SEQUENCE{
keyIdentifier
[O] KeyIdentifier
OPTIONAL,
authorityCertIssuer
[1]GeneralNames
OPTIONAL,
authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }(KeyIdentifier ::= OCTET STRING)

Extension为 SEQUENCE结构类型,不同扩展项DER编码值包含在OCTET STRING类型extnValue中,编码规则采用结构类型定长模式。各扩展项DER编码值用括号分隔。其中,对于BIT STRING类型,编码后第1个字节表示填充位数或未使用位数。

(二)对TBSCertificate进行DER编码

验证:openssl asn1parse -inform der -in ./20201229.der

1.序列号1174(0x0496)

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" > 20201229.der

2.证书签发者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" >> 20201229.der

3.证书有效期=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" >> 20201229.der

4.证书持有者DN=CN=Yang Chengyu, OU=Person

echo -n -e "\x30\x37\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\x32\x31\x32\x31\x15\x30\x13\x06\x03\x55\x04\x03\x13\x0C\x59\x61\x6e\x67\x20\x43\x68\x65\x6e\x67\x79\x75" >> 20201229.der

标签:x32,编码,x30,CN,SEQUENCE,ASN.1,数字证书
From: https://www.cnblogs.com/qwer6653/p/17377260.html

相关文章

  • DER编码
    一、任务详情参考附件中图书p120中7.1的实验指导,完成DER编码Name实例中,countryName改为"CN",organizationName="你的学号"commonName="你的姓名拼音"用echo-n-e"编码">你的学号.der中,用OpenSSLasn1parse分析编码的正确性提交编码过程文档(推荐markdown格式)附件:PKI.......
  • 修改数据库实例、修改数据库、修改数据表、修改数据,编码、排序规则
    查实例字符集showvariableslike'%character%';查实例排序规则showvariableslike'%collation%';查库语句showcreatedatabasetest;查表排序规则showtablestatusfromtestlike'test_saas_single';查字段排序规则showfullcolumnsfromtest_saas_single;......
  • DER编码
    一、编码AttributeType编码AttributeValue标识符长度串内容串2020133213083230323031333332yangsai130779616e67736169CN1302434eAttributeValueAssertion编码AttributeValueAssertion标识符长度串内容串2020133230......
  • DER编码
    一、任务详情参考附件中图书p120中7.1的实验指导,完成DER编码Name实例中,countryName改为"CN",organizationName="你的学号"commonName="你的姓名拼音"用echo-n-e"编码">你的学号.der中,用OpenSSLasn1parse分析编码的正确性提交编码过程文档(推荐markdown格式)......
  • 数字证书编码ASN.1
    一、任务详情参考附件中图书p223中13.2的实验指导,完成DER编码序列号=1174(0x0496),证书签发者DN="CN=VirtualCA,C=CN",证书持有者DN="CN=你的名字拼音,OU=Person,C=CN",证书有效期=20200222000000-20220222000000。用echo-n-e"编码">你的学号.der中,用OpenSSLasn1parse分析......
  • DER编码
    一、查看CN、姓名、学号的16进制ASCII码echo-n"CN"|od-tc-tx1echo-n"hanjin"|od-tc-tx1echo-n"20201206"|od-tc-tx1二、DER编码1.countryName="CN"echo-n-e"\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x0......
  • DER编码
    一、任务详情参考附件中图书p120中7.1的实验指导,完成DER编码Name实例中,countryName改为"CN",organizationName="你的学号"commonName="你的姓名拼音"用echo-n-e"编码">你的学号.der中,用OpenSSLasn1parse分析编码的正确性提交编码过程文档(推荐markdo......
  • 数字证书编码ASN.1
    一、查看姓名、学号的16进制ASCII码echo-n"hanjin"|od-tc-tx1echo-n"20201206"|od-tc-tx1二、对TBSCertificate进行DER编码1.序列号1174(0x0496)echo-n-e"\xA0\x03\x02\x01\x02\x02\x02\x04\x96\x30\x0D\x06\x09\x2A\x86\x48\x86\x......
  • 康托编码与解码
    简介对于一个集合{1,2,...,n},其不同排列有\(n!\)种,将各种排列按照字典序从小到大编号(0~\(n!-1\))。康托编码与解码旨在解决这么一个问题:给定一个排列X,它的序号是多少。或者给定一个序号,它的排列是怎么样的。康托表达式\(X=f(n)\cdot(n-1)!+f(n-1)\cdot(n-2)!+......
  • [oeasy]python0048_注释_comment_设置默认编码格式
    注释Comment回忆上次内容使用了版本控制git制作备份进行回滚 尝试了嵌套的控制结构层层控制 不过除非到不得以尽量不要太多层次的嵌套 这样从顶到底含义明确而且还扁平 扁平也能含义明确......