证书基本结构与编码.pptx

上传人:莉*** 文档编号:88442468 上传时间:2023-04-26 格式:PPTX 页数:22 大小:268.72KB
返回 下载 相关 举报
证书基本结构与编码.pptx_第1页
第1页 / 共22页
证书基本结构与编码.pptx_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《证书基本结构与编码.pptx》由会员分享,可在线阅读,更多相关《证书基本结构与编码.pptx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、前言前言 计算机和网络技术的发展将人类带入信息化社会计算机和网络技术的发展将人类带入信息化社会,随之而来的是随之而来的是倍受关注的信息安全问题。现代密码学己成为信息安全技术的核心倍受关注的信息安全问题。现代密码学己成为信息安全技术的核心,基于数字签名的数字证书是现代密码学主要研究的内容之一。数字基于数字签名的数字证书是现代密码学主要研究的内容之一。数字证书技术在身份识别和认证、数据完整性、抗抵赖等方面具有其他证书技术在身份识别和认证、数据完整性、抗抵赖等方面具有其他技术所无法替代的作用技术所无法替代的作用,它在军事、电子商务和电子政务等领域有着它在军事、电子商务和电子政务等领域有着极广泛的应用

2、。极广泛的应用。数字证书在信息传输中起着验证用户身份数字证书在信息传输中起着验证用户身份,保证信息传递的安全保证信息传递的安全性、合法性和完整性等作用性、合法性和完整性等作用,它在公钥基础设施中是重要的一环。应它在公钥基础设施中是重要的一环。应用第三方软件对数字证书解析存在着安全性无法彻底保障用第三方软件对数字证书解析存在着安全性无法彻底保障,证信息分证信息分析不彻底等诸多问题析不彻底等诸多问题,因此对数字证书的验证过程的研究分析因此对数字证书的验证过程的研究分析,实现实现数字证书验证代码的完全自主开发数字证书验证代码的完全自主开发,为保证信息传输安全为保证信息传输安全,建立有效建立有效的公钥

3、基础设施起了重要的作用。的公钥基础设施起了重要的作用。本篇的目的是对数字证书进行详尽的分析,包括数字证书的基本篇的目的是对数字证书进行详尽的分析,包括数字证书的基本结构、描述方法、编码以及本结构、描述方法、编码以及X.509X.509数字证书实例等。数字证书实例等。第1页/共22页主要内容uu 数字证书的基本结构数字证书的基本结构uu 数字证书的描述方法数字证书的描述方法uu 数字证书的编码数字证书的编码uuX.509X.509数字证书结构数字证书结构uuX.509X.509数字证书详细描述数字证书详细描述uuX.509X.509数字证书实例数字证书实例第2页/共22页数字证书的基本结构一张数

4、字证书由一张数字证书由证书内容证书内容、签名算法签名算法和和签名结果签名结果组成组成证书内容签名算法签名结果证书的基本结构第3页/共22页数字证书的基本结构证书实例:在证书实例:在InternetInternet选项选项-内容内容第4页/共22页数字证书的基本结构证书内容包括:证书内容包括:版本号版本号 证书主体证书主体 主体公钥内容主体公钥内容 签发者签发者 序列号序列号 有效期有效期 扩展项扩展项第5页/共22页数字证书的基本结构 版本号版本号数字证书有自己的格式,而这个格式可能会不断改进。为了让所有应用系统正确地识别证书内容,需考虑数字证书有自己的格式,而这个格式可能会不断改进。为了让所

5、有应用系统正确地识别证书内容,需考虑向前和向后兼容。因此,在证书中标明自己的格式版本有利于应用程序根据不同的格式定义来正确阅读不同向前和向后兼容。因此,在证书中标明自己的格式版本有利于应用程序根据不同的格式定义来正确阅读不同的证书。的证书。证书主体证书主体11)证书的持有者(订户)证书的持有者(订户)22)不仅具有证书的使用权,而且具有证书的所有权)不仅具有证书的使用权,而且具有证书的所有权33)不仅可以把证书复制或传递给别人,更重要的是,证书主体拥有证书中的身份、公钥和对应的私钥)不仅可以把证书复制或传递给别人,更重要的是,证书主体拥有证书中的身份、公钥和对应的私钥 主体公钥内容主体公钥内容

6、11)PKIPKI是算法无关的,实际中可以使用多种算法是算法无关的,实际中可以使用多种算法22)公钥信息中首先需要指明所用的公钥算法,随后才是公钥信息本身)公钥信息中首先需要指明所用的公钥算法,随后才是公钥信息本身 签发者签发者证书管理机构证书管理机构-CA-CA注:注:CACA是是PKIPKI系统中通信双方都信任的实体,被称为可信第三方(系统中通信双方都信任的实体,被称为可信第三方(TrustedThirdPartyTrustedThirdParty,简称,简称TTPTTP)第6页/共22页数字证书的基本结构 序列号序列号11)证书编号)证书编号22)如果签发者命名能满足唯一性要求的话,用)

7、如果签发者命名能满足唯一性要求的话,用“签发者签发者”和和“序列号序列号”就可以唯一的标识任何一张数就可以唯一的标识任何一张数字证书字证书 有效期有效期 1 1)持有数字证书也就享有了证书签发结构通过证书提供的安全服务,其中还包含着责任和一些法律义务持有数字证书也就享有了证书签发结构通过证书提供的安全服务,其中还包含着责任和一些法律义务 2 2)订户享受的服务是有时效性的,因此,数字证书应具有一个有效期。订户享受的服务是有时效性的,因此,数字证书应具有一个有效期。3 3)长期)长期使用同一密钥是不安全的,而且证书持有者的信息经过一段时间可能会改变,所以需要为证书设使用同一密钥是不安全的,而且证

8、书持有者的信息经过一段时间可能会改变,所以需要为证书设置一个包含起、止时间的置一个包含起、止时间的“有效期有效期”。4 4)本质上)本质上是是CACA负责维护证书状态的时间范围,在此时间内负责维护证书状态的时间范围,在此时间内CACA担保证书持有者和公钥绑定关系的正确性担保证书持有者和公钥绑定关系的正确性 扩展项扩展项 提供为用户或者公开密钥和证书管理等级制度相结合的附加属性的方法提供为用户或者公开密钥和证书管理等级制度相结合的附加属性的方法第7页/共22页数字证书的描述方法 证书的描述证书的描述需要使用精确的语言将内容需要使用精确的语言将内容准确的、无二义的准确的、无二义的表达出来,以便表达

9、出来,以便PKIPKI系统中的各个组件都能正确的系统中的各个组件都能正确的处理证书,各种应用系统也能正确的从证书中获取公钥和持有者的信息。处理证书,各种应用系统也能正确的从证书中获取公钥和持有者的信息。基本要求基本要求 1 1)简明的)简明的 2 2)无歧义)无歧义 自然语言自然语言和和程序设计语言程序设计语言无法满足要求无法满足要求 1 1)自然语言自然语言 a.a.多种语言多种语言 b.b.同语种中一词多义和一义多词同语种中一词多义和一义多词 2 2)程序设计语言程序设计语言 a.a.有较严格的语法和较清晰的数据结构表达方式有较严格的语法和较清晰的数据结构表达方式 b.b.但由于平但由于平

10、台相关的编译器不同,同一数据类型在不同系统中的实现就可能有差异。程序语言在内容的台相关的编译器不同,同一数据类型在不同系统中的实现就可能有差异。程序语言在内容的顺序上也没有严格规定。顺序上也没有严格规定。ASN.1 ASN.1 ASN.1 ASN.1(Abstract Syntax Notation oneAbstract Syntax Notation oneAbstract Syntax Notation oneAbstract Syntax Notation one)抽象语法表示法抽象语法表示法可以满足要求可以满足要求 ASN.1 ASN.1 语法纪法标准是一种既简单,又没有歧义的内容描

11、述语言。语法纪法标准是一种既简单,又没有歧义的内容描述语言。第8页/共22页数字证书的描述方法 ASN.1 ASN.1语法记法标准语法记法标准 1 1)AbstractSyntaxNotationoneAbstractSyntaxNotationone抽象语法表示法抽象语法表示法 2 2)是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以)是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。描述独立于特定计算机硬件的对象结构。3 3)ASN.1ASN.1是是ISOISO和和ITU-TITU

12、-T的联合标准,最初是的联合标准,最初是19841984年的年的CCITTX.409:1984CCITTX.409:1984的一部分。由于其广泛应用,的一部分。由于其广泛应用,19881988年年ASN.1ASN.1移到独立标准移到独立标准X.208X.208,19951995年进行全面修订后变成年进行全面修订后变成X.680X.680系列标准。系列标准。4 4)ASN.1ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。ASN.1 ASN.1 首先定义一定数量的首先定义一定数量的“简单类型简单类型”,然后通过构造出各

13、种较复杂的,然后通过构造出各种较复杂的“构造类型构造类型”1 1)简单类型)简单类型 2 2)构造类型)构造类型 3 3)其它关键字)其它关键字第9页/共22页数字证书的描述方法 简单类型简单类型BITSTRING比特串(O和1组成)BOOLEAN布尔型(取TRUE或FALSE)INTEGER整数NULL空值OBJECT IDENTIFIER对象标识符OCTET STRING字节串PrintableString可打印字符串UTCTime“协调世界时”(UTC)GeneralizedTime通用时间第10页/共22页数字证书的描述方法 构造类型构造类型SEQUENCE表示1个或多个字段组成的有序

14、序列SEQUENCEOF表示0个或多个特定类型字段的有序序列SET表示1个或多个字段组成的无序集合SETOF表示0个或多个特定类型字段的无序集合 其它关键字其它关键字CHOICEANYOPTIONALDEFAULT第11页/共22页数字证书的编码 利用利用ASN.1ASN.1可以准确地定义证书应该包含的内容。即可以准确地定义证书应该包含的内容。即ASN.1ASN.1可以定义证书应该包含的内容可以定义证书应该包含的内容的准确类型。的准确类型。无二义性的内容类型的实际取值无二义性的内容类型的实际取值 可以说可以说ASN.1ASN.1解决的是高层设计者之间的交流问题,编码方法要解决的是机器间的交流问

15、解决的是高层设计者之间的交流问题,编码方法要解决的是机器间的交流问题。题。编码的作用就是将各种用编码的作用就是将各种用ASN.1ASN.1定义的数据类型的值对应到比特流,以便在不同通信实体定义的数据类型的值对应到比特流,以便在不同通信实体之间传递,而且使得各通信实体对于所传递的信息理解没有歧义。之间传递,而且使得各通信实体对于所传递的信息理解没有歧义。1 1)“TLV”“TLV”方式方式 可以完整表示特定类型的数据可以完整表示特定类型的数据2 2)类型)类型typetype、长度、长度lengthlength和值和值valuevalue3 3)解码时,首先识别数据的类型,即可选定处理的方法;然

16、后得到数据的长度,即可)解码时,首先识别数据的类型,即可选定处理的方法;然后得到数据的长度,即可进行处理的准备工作;最后就可以正确的得到数据本身的值。进行处理的准备工作;最后就可以正确的得到数据本身的值。第12页/共22页数字证书的编码 简单类型的编码简单类型的编码BOOLEAN布尔型的数据,只有两种可能的取值“TRUE”(0 xFF)和“FALSE”(0 x00)INTEGER整数类型BITSTRINGOCTETSTRING字符码串NULL一个特殊的值,表示“无”或“空”OBJECT IDENTIFIER对象标识符 OIDPrintableString任意长度的ASCII字符串UTCTime

17、协调世界时GeneralizedTime类似UTCTime第13页/共22页数字证书的编码 构造类型及其他构造类型及其他SEQUENCE表示1个或多个字段组成的有序序列SEQUENCEOF表示0个或多个特定类型字段的有序序列SET表示1个或多个字段组成的无序集合SETOF表示0个或多个特定类型字段的无序集合CHOICEOPTIONALANYDEFAULT第14页/共22页X.509数字证书结构X.509X.509数字证书结构的基本部分数字证书结构的基本部分 版本号版本号 标识证书的版本标识证书的版本 序列号序列号 标识证书的唯一整数,由证书颁发者分配的本证书的唯一标识符。标识证书的唯一整数,由

18、证书颁发者分配的本证书的唯一标识符。签名签名 用于签证书的算法标识,由对象标识符加上相关的参数组成,用于说明本证书所用的数字签名算法。例用于签证书的算法标识,由对象标识符加上相关的参数组成,用于说明本证书所用的数字签名算法。例如,如,SHA-1SHA-1和和RSARSA的对象标识符就用来说明该数字签名是利用的对象标识符就用来说明该数字签名是利用RSARSA对对SHA-1SHA-1杂凑加密。杂凑加密。颁发者颁发者 证书颁发者的可识别名(证书颁发者的可识别名(DNDN)。)。有效期有效期 证书有效期的时间段。本字段由证书有效期的时间段。本字段由”Not Before”Not Before”和和”N

19、ot After”Not After”两项组成,它们分别由两项组成,它们分别由UTCUTC时间或一时间或一般的时间表示(在般的时间表示(在RFC2459RFC2459中有详细的时间表示规则)。中有详细的时间表示规则)。主体主体 证书拥有者的可识别名,这个字段必须是非空的,除非你在证书扩展中有别名。证书拥有者的可识别名,这个字段必须是非空的,除非你在证书扩展中有别名。主体公钥信息主体公钥信息 主体的公钥(以及算法标识符)。主体的公钥(以及算法标识符)。颁发者唯一标识符颁发者唯一标识符 标识符标识符证书颁发者的唯一标识符证书颁发者的唯一标识符 主体唯一标识符主体唯一标识符 证书拥有者的唯一标识符证

20、书拥有者的唯一标识符第15页/共22页X.509数字证书结构X.509X.509数字证书结构的扩展部分数字证书结构的扩展部分 发行者密钥标识符发行者密钥标识符 证书所含密钥的唯一标识符,用来区分同一证书拥有者的多对密钥。证书所含密钥的唯一标识符,用来区分同一证书拥有者的多对密钥。密钥使用密钥使用 一个比特串,指明(限定)证书的公钥可以完成的功能或服务,如:证书签名、数据加密等。如果某一一个比特串,指明(限定)证书的公钥可以完成的功能或服务,如:证书签名、数据加密等。如果某一证书将证书将 KeyUsage KeyUsage 扩展标记为扩展标记为“极重要极重要”,而且设置为,而且设置为“keyCe

21、rtSign”“keyCertSign”,则在,则在 SSL SSL 通信期间该证书出现时通信期间该证书出现时将被拒绝,因为该证书扩展表示相关私钥应只用于签写证书,而不应该用于将被拒绝,因为该证书扩展表示相关私钥应只用于签写证书,而不应该用于 SSL SSL。CRL CRL CRL CRL分布点分布点 指明指明CRLCRL的分布地点的分布地点 私钥的使用期私钥的使用期 指明证书中与公钥相联系的私钥的使用期限,它也有指明证书中与公钥相联系的私钥的使用期限,它也有Not BeforeNot Before和和Not AfterNot After组成。若此项不存在时,组成。若此项不存在时,公私钥的使用

22、期是一样的公私钥的使用期是一样的 证书策略证书策略 由对象标识符和限定符组成,这些对象标识符说明证书的颁发和使用策略有关由对象标识符和限定符组成,这些对象标识符说明证书的颁发和使用策略有关 策略映射策略映射 表明两个表明两个CACA域之间的一个或多个策略对象标识符的等价关系,仅在域之间的一个或多个策略对象标识符的等价关系,仅在CACA证书里存在证书里存在 主体别名主体别名 指出证书拥有者的别名,如电子邮件地址、指出证书拥有者的别名,如电子邮件地址、IPIP地址等,别名是和地址等,别名是和DNDN绑定在一起的绑定在一起的 颁发者别名颁发者别名 指出证书颁发者的别名,如电子邮件地址、指出证书颁发者

23、的别名,如电子邮件地址、IPIP地址等,但颁发者的地址等,但颁发者的DNDN必须出现在证书的颁发者字段必须出现在证书的颁发者字段 主体目录属性主体目录属性 指出证书拥有者的一系列属性。可以使用这一项来传递访问控制信息。指出证书拥有者的一系列属性。可以使用这一项来传递访问控制信息。第16页/共22页X.509证书详细描述Certificate:=SEQUENCE Certificate:=SEQUENCE tbsCertificatetbsCertificateTBSCertificate,TBSCertificate,signatureAlgorithmsignatureAlgorithmAl

24、gorithmIdentifier,AlgorithmIdentifier,signatureValue BIT STRING signatureValue BIT STRING TBSCertificate:=SEQUENCETBSCertificate:=SEQUENCEversion 0EXPLICIT Version DEFAULT version 0EXPLICIT Version DEFAULT v1,v1,serialNumber CertificateSerialNumber,serialNumber CertificateSerialNumber,signature Algo

25、rithmIdentifier,signature AlgorithmIdentifier,issuer Name,issuer Name,validity Validity,validity Validity,subject Name,subject Name,subjectPublicKeyInfo SubjectPublicKeyInfo,subjectPublicKeyInfo SubjectPublicKeyInfo,issuerUniqueID1IMPLICIT UniqueIdentifier OPTIONAL,issuerUniqueID1IMPLICIT UniqueIden

26、tifier OPTIONAL,subjectUniqueID 2IMPLICIT UniqueIdentifier OPTIONAL,subjectUniqueID 2IMPLICIT UniqueIdentifier OPTIONAL,extensions 3EXPLICIT Extensions OPTIONALextensions 3EXPLICIT Extensions OPTIONALVersion:=INTEGERv1(0),v2(1),v3(2)Version:=INTEGERv1(0),v2(1),v3(2)CertificateSerialNumber:=INTEGERCe

27、rtificateSerialNumber:=INTEGERAlgorithmIdentifier:=SEQUENCEAlgorithmIdentifier:=SEQUENCEalgorithm OBJECT IDENTIFIER,algorithm OBJECT IDENTIFIER,parameters ANY DEFINED BY parameters ANY DEFINED BY algorithm OPTIONALalgorithm OPTIONAL证书全部内容开始,结构化不定长编码证书全部内容开始,结构化不定长编码 证书主体证书主体证书签名算法标识证书签名算法标识证书签名值证书签名

28、值(注(注1 1)证书版本号证书版本号证书序列号证书序列号(注(注2 2)证书签名算法标识证书签名算法标识证书发行者名称证书发行者名称证书有效期证书有效期证书主体名称证书主体名称证书公钥证书公钥证书发行者证书发行者ID(ID(可选可选),只在证书版本,只在证书版本2 2、3 3中才有中才有证书主体证书主体ID(ID(可选可选),只在证书版本,只在证书版本2 2、3 3中才有中才有证书扩展段(可选),只在证书版本证书扩展段(可选),只在证书版本3 3中才有中才有注注1 1:证书签名值:证书签名值,是使用是使用signatureAlgorithmsignatureAlgorithm部分指定的签名算

29、法对部分指定的签名算法对tbsCertificatetbsCertificate证书主题部分签名后的值证书主题部分签名后的值注注2 2:证书序列号,对同一:证书序列号,对同一CACA所颁发的证书,序列号唯一标识证书所颁发的证书,序列号唯一标识证书第17页/共22页X.509证书详细描述Parameters:Parameters:Dss-Parms:=SEQUENCEDss-Parms:=SEQUENCEpINTEGER,pINTEGER,qINTEGER,qINTEGER,gINTEGERgINTEGERSignatureValue:SignatureValue:Dss-Sig-Value:=

30、SEQUENCEDss-Sig-Value:=SEQUENCErINTEGER,rINTEGER,sINTEGERsINTEGERName:=CHOICEName:=CHOICERDNSequenceRDNSequenceRDNSequence:=SEQUENCEOFRelativeDistinguishedNameRDNSequence:=SEQUENCEOFRelativeDistinguishedNameRelativeDistinguishedName:=SETOFAttributeTypeAndValueRelativeDistinguishedName:=SETOFAttribut

31、eTypeAndValueAttributeTypeAndValue:=SEQUENCEAttributeTypeAndValue:=SEQUENCEtypeAttributeType,typeAttributeType,valueAttributeValuevalueAttributeValueAttributeType:=OBJECTIDENTIFIERAttributeType:=OBJECTIDENTIFIERAttributeValue:=ANYDEFINEDBYAttributeTypeAttributeValue:=ANYDEFINEDBYAttributeTypeparamet

32、ers parameters,DSA(DSS)DSA(DSS)算法时的算法时的parameters,RSAparameters,RSA算法没有此参数算法没有此参数sha1DSAsha1DSA签名算法时签名算法时,签名值签名值第18页/共22页X.509证书详细描述Validity:=SEQUENCE Validity:=SEQUENCE notBefore Time,notBefore Time,notAfter TimenotAfter TimeTime:=CHOICE Time:=CHOICE utcTime UTCTime,utcTime UTCTime,generalTime Gene

33、ralizedTime generalTime GeneralizedTime UniqueIdentifier:=BIT STRINGUniqueIdentifier:=BIT STRINGSubjectPublicKeyInfo:=SEQUENCESubjectPublicKeyInfo:=SEQUENCE algorithm algorithm AlgorithmIdentifier,AlgorithmIdentifier,subjectPublicKey BIT STRING subjectPublicKey BIT STRINGSubjectPublicKey:SubjectPubl

34、icKey:SubjectPublicKey:SubjectPublicKey:RSAPublicKey:=SEQUENCE RSAPublicKey:=SEQUENCE modulus INTEGER,-nmodulus INTEGER,-npublicExponent INTEGER-e-publicExponent INTEGER-e-Extensions:=SEQUENCE SIZE(1.MAX)OF ExtensionExtensions:=SEQUENCE SIZE(1.MAX)OF ExtensionExtension:=SEQUENCEExtension:=SEQUENCEextnID OBJECT IDENTIFIER,extnID OBJECT IDENTIFIER,critical BOOLEAN DEFAULT FALSE,critical BOOLEAN DEFAULT FALSE,extnValue OCTET STRING extnValue OCTET STRING证书有效期起始时间证书有效期起始时间证书有效期终止时间证书有效期终止时间公钥算法公钥算法公钥值公钥值第19页/共22页X.509数字证书实例第20页/共22页第21页/共22页感谢您的观看!第22页/共22页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁