ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ASN1

2022-04-07 23:03:02  阅读:128  来源: 互联网

标签:x32 编码 x30 x31 ASN1 x03 x06


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 个附件

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 中各项内容具体值如表所示。

qfmThD.png

Extension的ASN.1描述与实例

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

Extension :=SEQUENCE {

extnID

OBJECT IDENTIFIER,

critical

BOOLEAN DEFAULT FALSE,

extnValue

OCTET STRING }

Extension各扩展项值如图

2.Certificate 的ASN.1描述与实例

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

Certificate ::=SEQUENCE {

tbsCertificate

TBSCertificate,

signatureAlgorithm

AlgorithmIdentifier,

signature Value

BIT STRING }

Certificate中各项内容的具体值如表所示。

DER编码过程

1.对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个字节表示填充位数或未使用位数。

查看自己的姓名学号16进制ASCII编码

根据证书信息确认用户DER编码值

\x30\x37\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\x31\x39\x31\x32\x33\x31("20191231")

\x31\x11\x30\x0f\x06\x03\x55\x04\x0a\x67\x61\x6f\x7a\x65\x7a\x68\x65\x6e\x67("Gao Zezheng")

对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\xF7\x0D\x01\x01\x05\x05\x00" > 20191231.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" >> 20191231.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" >> 20191231.der

4.证书持有者DN=CN=你的名字拼音, 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\x31\x39\x31\x32\x33\x31\x31\x15\x30\x13\x06\x03\x55\x04\x03\x13\x0c\x67\x61\x6F\x7A\x65\x7A\x68\x65\x6E\x67\x20\x20" >> 20191231.der

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

openssl asn1parse -inform DER -in 20191231.der

结果正确

标签:x32,编码,x30,x31,ASN1,x03,x06
来源: https://www.cnblogs.com/Aegon-Targaryen/p/16114762.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有