数字证书格式与数据结构
创始人
2024-05-30 04:19:53
0

1.数字证书介绍

数字证书是由具有权威性、可信性和公正性的第三方证书认证机构(CA)进行数字签名的一个可信的数字化文件。

数字证书具有以下特性

  • 任何能够获得和使用认证机构公钥的用户都可以恢复认证机构所认证的公钥。
  • 除了认证机构,没有其他机构能够更改证书,证书是不可伪造的。

2.数字证书格式

2.1总述

数字证书采用ANS.1 DER编码进行各个信息进行编码,ANS.1 DER编码是关于每个元素的标记、长度和值的编码系统,采用该编码系统对证书各项信息进行编码,组成特定的整数数据结构。

2.2 基本整数域的数据结构

证书的基本数据结构如下:

Certificate  ::=  SEQUENCE  {tbsCertificate       TBSCertificate,signatureAlgorithm   AlgorithmIdentifier,signatureValue       BIT STRING  }
 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,-- If present, version MUST be v2 or v3subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,-- If present, version MUST be v2 or v3extensions      [3]  EXPLICIT Extensions OPTIONAL-- If present, version MUST be v3}
Version  ::=  INTEGER  {  v1(0), v2(1), v3(2)  }
CertificateSerialNumber  ::=  INTEGER
Validity ::= SEQUENCE {notBefore      Time,notAfter       Time }
Time ::= CHOICE {utcTime        UTCTime,generalTime    GeneralizedTime }
UniqueIdentifier  ::=  BIT STRING
SubjectPublicKeyInfo  ::=  SEQUENCE  {algorithm            AlgorithmIdentifier,subjectPublicKey     BIT STRING  }
Extensions  ::=  SEQUENCE SIZE (1..MAX) OF Extension
 Extension  ::=  SEQUENCE  {extnID      OBJECT IDENTIFIER,critical    BOOLEAN DEFAULT FALSE,extnValue   OCTET STRING-- contains the DER encoding of an ASN.1 value-- corresponding to the extension type identified-- by extnID}

上述的整数数据结构由tbsCertificate,signatureAlgorithm和signatureValue三个域构成。这些域的含义如下:

tbsCertificate域包含了主题名称和颁发者名称、主体的公钥、证书的有效期以及其他相关信息。

signatureAlgorithm域包含证书签发机构签发该证书使用的密码算法标识(数字签名算法)。

 AlgorithmIdentifier  ::=  SEQUENCE  {algorithm               OBJECT IDENTIFIER,parameters              ANY DEFINED BY algorithm OPTIONAL  }

signatureValue域包含了对tbsCertificate域进行数字签名的结果。

2.2.1 TBSCertificate域数据结构

2.2.1.1 版本 Version

本项描述了编码证书的版本号。

2.2.1.2 序列号 serial number

本项是CA分配给每个证书的一个正整数,一个CA签发的每张证书的序列号必须是唯一的,CA必须保证序列号是非负数。序列号可以长整数,证书用户必须能够处理长达20个8位字节的序列号值。CA必须保证使用不大于20个8位字节的序列号。

2.2.1.3 签名算法 signature

本项包含CA签发该证书所使用的密码算法的标识符,这个算法标识符必须与
证书中的signatureAlgorithm项的算法标识符相同。

2.2.1.4 颁发者 Issuer

本项标识了证书签名和证书颁发的实体。必须包含一个非空的甄别名。该项被定义为Name类型,他的ASN.1结构如下:

Name ::= CHOICE { -- only one possibility for now --rdnSequence  RDNSequence }RDNSequence ::= SEQUENCE OF RelativeDistinguishedNameRelativeDistinguishedName ::=SET SIZE (1..MAX) OF AttributeTypeAndValueAttributeTypeAndValue ::= SEQUENCE {type     AttributeType,value    AttributeValue }AttributeType ::= OBJECT IDENTIFIERAttributeValue ::= ANY -- DEFINED BY AttributeTypeDirectoryString ::= CHOICE {teletexString           TeletexString (SIZE (1..MAX)),printableString         PrintableString (SIZE (1..MAX)),universalString         UniversalString (SIZE (1..MAX)),utf8String              UTF8String (SIZE (1..MAX)),bmpString               BMPString (SIZE (1..MAX)) }

Name描述了一些由属性组成的层次结构的名称,如国家名,相应的值 C=CN。

2.2.1.5 有效期 validity

本项是一个时间段,在这个时间段内,CA担保与维护证书的状态信息。该项被表示成一个具有两个时间值的SEQUENCE的类型数据:证书的有效的起始时间和证书有效期的终止时间。

2.2.1.6 主题 subject

本项描述了与主体公钥项中的公钥的相对应的实体。主体名称可以在出现在主体项和/或主体替换名称的拓展项中(subjectAAltName)。如果主体是一个CA,那么主体项必须是一个非空的与颁发者相匹配的甄别名称。

2.2.1.7 主体公钥信息 Subject Public Key Info

本项用来表示公钥和相应的公钥算法。公钥算法使用算法标识符 AlgprithmIdentifier 结构来表示。当公钥算法为RSA时,AlgprithmIdentifier 结构定影参见 PKCS#7。

2.2.1.8 颁发者唯一标识符 IssuerUniqueID

本项主要用来处理主体或者颁发者名称重用的问题。国内标准中,Intelnet中证书不会出现该项,要求在证书处理过程中需要识别该项。

2.2.1.9 主体唯一标识符 SubjectUniqueID

本项主要用来处理主体名称重用的问题。国内标准中,Intelnet中证书不会出现该项,要求在证书处理过程中需要识别该项。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...