证书的基本结构与编码_第1页
证书的基本结构与编码_第2页
证书的基本结构与编码_第3页
证书的基本结构与编码_第4页
证书的基本结构与编码_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字证书的结构、描述与编码 前言前言 计算机和网络技术的发展将人类带入信息化社会, 随之而来的是 倍受关注的信息安全问题。现代密码学己成为信息安全技术的核心, 基于数字签名的数字证书是现代密码学主要研究的内容之一。数字 证书技术在身份识别和认证、数据完整性、抗抵赖等方面具有其他 技术所无法替代的作用, 它在军事、电子商务和电子政务等领域有着 极广泛的应用。 数字证书在信息传输中起着验证用户身份, 保证信息传递的安全 性、合法性和完整性等作用, 它在公钥基础设施中是重要的一环。应 用第三方软件对数字证书解析存在着安全性无法彻底保障, 证信息分 析不彻底等诸多问题, 因此对数字证书的验证过程的研究

2、分析, 实现 数字证书验证代码的完全自主开发, 为保证信息传输安全, 建立有效 的公钥基础设施起了重要的作用。 本篇的目的是对数字证书进行详尽的分析,包括数字证书的基 本结构、描述方法、编码以及X.509 数字证书实例等。 主要内容 u 数字证书的基本结构 u 数字证书的描述方法 u 数字证书的编码 u X.509 数字证书结构 u X.509 数字证书详细描述 u X.509 数字证书实例 数字证书的基本结构 一张数字证书由证书内容、签名算法和签名结果组成 证书的基本结构 数字证书的基本结构 证书实例:在证书实例:在Internet选项选项-内容内容 数字证书的基本结构 证书内容包括:证书内

3、容包括: 版本号 证书主体 主体公钥内容 签发者 序列号 有效期 扩展项 数字证书的基本结构 版本号版本号 数字证书有自己的格式,而这个格式可能会不断改进。为了让所有应用系统正确地识别证书内容,需考虑 向前和向后兼容。因此,在证书中标明自己的格式版本有利于应用程序根据不同的格式定义来正确阅读不同 的证书。 证书主体证书主体 1)证书的持有者(订户) 2)不仅具有证书的使用权,而且具有证书的所有权 3)不仅可以把证书复制或传递给别人,更重要的是,证书主体拥有证书中的身份、公钥和对应的私钥 主体公钥内容主体公钥内容 1)PKI是算法无关的,实际中可以使用多种算法 2)公钥信息中首先需要指明所用的公

4、钥算法,随后才是公钥信息本身 签发者签发者 证书管理机构-CA 注:CA是PKI系统中通信双方都信任的实体,被称为可信第三方(Trusted Third Party,简称TTP) 数字证书的基本结构 序列号序列号 1)证书编号 2)如果签发者命名能满足唯一性要求的话,用“签发者”和“序列号”就可以唯一的标识任何一张数字证书 有效期有效期 1)持有数字证书也就享有了证书签发结构通过证书提供的安全服务,其中还包含着责任和一些法律义务 2)订户享受的服务是有时效性的,因此,数字证书应具有一个有效期。 3)长期使用同一密钥是不安全的,而且证书持有者的信息经过一段时间可能会改变,所以需要为证书设 置一个

5、包含起、止时间的“有效期”。 4)本质上是CA负责维护证书状态的时间范围,在此时间内CA担保证书持有者和公钥绑定关系的正确性 扩展项扩展项 提供为用户或者公开密钥和证书管理等级制度相结合的附加属性的方法 数字证书的描述方法 证书的描述证书的描述需要使用精确的语言将内容准确的、无二义的准确的、无二义的表达出来,以便PKI系统中的各个组件都能正确的 处理证书,各种应用系统也能正确的从证书中获取公钥和持有者的信息。 基本要求基本要求 1)简明的 2)无歧义 自然语言自然语言和程序设计语言程序设计语言无法满足要求 1)自然语言 a. 多种语言 b. 同语种中一词多义和一义多词 2)程序设计语言 a.

6、有较严格的语法和较清晰的数据结构表达方式 b. 但由于平台相关的编译器不同,同一数据类型在不同系统中的实现就可能有差异。程序语言在内容的 顺序上也没有严格规定。 ASN.1 ASN.1 (Abstract Syntax Notation oneAbstract Syntax Notation one)抽象语法表示法可以满足要求 ASN.1 语法纪法标准是一种既简单,又没有歧义的内容描述语言。 数字证书的描述方法 ASN.1语法记法标准语法记法标准 1)Abstract Syntax Notation one 抽象语法表示法 2)是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、

7、无歧义和精确的规则以 描述独立于特定计算机硬件的对象结构。 3)ASN.1是ISO和ITU-T的联合标准,最初是1984年的CCITT X.409:1984的一部分。由于其广泛应用, 1988年ASN.1移到独立标准X.208,1995年进行全面修订后变成X.680系列标准。 4)ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。 ASN.1 首先定义一定数量的首先定义一定数量的“简单类型简单类型”,然后通过构造出各种较复杂的,然后通过构造出各种较复杂的“构造类型构造类型” 1)简单类型 2)构造类型 3)其它关键字 数字证书的描述方法 简单类型简单类型 数字证书的描述方法

8、构造类型构造类型 其它关键字其它关键字 数字证书的编码 利用ASN.1可以准确地定义证书应该包含的内容。即ASN.1可以定义证书应该包含的内容 的准确类型。 无二义性的内容类型的实际取值 可以说ASN.1解决的是高层设计者之间的交流问题,编码方法要解决的是机器间的交流问 题。 编码的作用就是将各种用ASN.1定义的数据类型的值对应到比特流,以便在不同通信实体 之间传递,而且使得各通信实体对于所传递的信息理解没有歧义。 1)“TLV”方式 可以完整表示特定类型的数据 2)类型type、长度length和值value 3)解码时,首先识别数据的类型,即可选定处理的方法;然后得到数据的长度,即可 进

9、行处理的准备工作;最后就可以正确的得到数据本身的值。 数字证书的编码 简单类型的编码简单类型的编码 数字证书的编码 构造类型及其他构造类型及其他 X.509 数字证书结构 X.509 数字证书结构的基本部分 版本号版本号 标识证书的版本 序列号序列号 标识证书的唯一整数,由证书颁发者分配的本证书的唯一标识符。 签名签名 用于签证书的算法标识,由对象标识符加上相关的参数组成,用于说明本证书所用的数字签名算法。例 如,SHA-1和RSA的对象标识符就用来说明该数字签名是利用RSA对SHA-1杂凑加密。 颁发者颁发者 证书颁发者的可识别名(DN)。 有效期有效期 证书有效期的时间段。本字段由”Not

10、 Before”和”Not After”两项组成,它们分别由UTC时间或一般 的时间表示(在RFC2459中有详细的时间表示规则)。 主体主体 证书拥有者的可识别名,这个字段必须是非空的,除非你在证书扩展中有别名。 主体公钥信息主体公钥信息 主体的公钥(以及算法标识符)。 颁发者唯一标识符颁发者唯一标识符 标识符证书颁发者的唯一标识符 主体唯一标识符主体唯一标识符 证书拥有者的唯一标识符 X.509 数字证书结构 X.509 数字证书结构的扩展部分 发行者密钥标识符发行者密钥标识符 证书所含密钥的唯一标识符,用来区分同一证书拥有者的多对密钥。 密钥使用密钥使用 一个比特串,指明(限定)证书的公

11、钥可以完成的功能或服务,如:证书签名、数据加密等。如果某一 证书将 KeyUsage 扩展标记为“极重要”,而且设置为“keyCertSign”,则在 SSL 通信期间该证书出现时 将被拒绝,因为该证书扩展表示相关私钥应只用于签写证书,而不应该用于 SSL。 CRL CRL分布点分布点 指明CRL的分布地点 私钥的使用期私钥的使用期 指明证书中与公钥相联系的私钥的使用期限,它也有Not Before和Not After组成。若此项不存在时, 公私钥的使用期是一样的 证书策略证书策略 由对象标识符和限定符组成,这些对象标识符说明证书的颁发和使用策略有关 策略映射策略映射 表明两个CA域之间的一个

12、或多个策略对象标识符的等价关系,仅在CA证书里存在 主体别名主体别名 指出证书拥有者的别名,如电子邮件地址、IP地址等,别名是和DN绑定在一起的 颁发者别名颁发者别名 指出证书颁发者的别名,如电子邮件地址、IP地址等,但颁发者的DN必须出现在证书的颁发者字段 主体目录属性主体目录属性 指出证书拥有者的一系列属性。可以使用这一项来传递访问控制信息。 X.509 证书详细描述 Certificate := SEQUENCE tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signatureValue BI

13、T 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, subjectUniqueI

14、D 2 IMPLICIT UniqueIdentifier OPTIONAL, extensions 3 EXPLICIT Extensions OPTIONAL Version := INTEGER v1(0), v2(1), v3(2) CertificateSerialNumber := INTEGER AlgorithmIdentifier := SEQUENCE algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL 证书全部内容开始,结构化不定长编码 证书主体 证书签名算法标识 证书签名值(

15、注1) 证书版本号 证书序列号(注2) 证书签名算法标识 证书发行者名称 证书有效期 证书主体名称 证书公钥 证书发行者ID(可选),只在证书版本2、3中才有 证书主体ID(可选),只在证书版本2、3中才有 证书扩展段(可选),只在证书版本3中才有 注1:证书签名值,是使用signatureAlgorithm部分指定的签名算法对tbsCertificate证书主题部分签名后的值 注2:证书序列号,对同一CA所颁发的证书,序列号唯一标识证书 X.509 证书详细描述 Parameters: Dss-Parms := SEQUENCE p INTEGER, q INTEGER, g INTEGER

16、 SignatureValue: Dss-Sig-Value := SEQUENCE r INTEGER, s INTEGER Name := CHOICE RDNSequence RDNSequence := SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName := SET OF AttributeTypeAndValue AttributeTypeAndValue := SEQUENCE type AttributeType, value AttributeValue AttributeType := OBJECT

17、 IDENTIFIER AttributeValue := ANY DEFINED BY AttributeType parameters ,DSA(DSS)算法时的 parameters,RSA算法没有此参数 sha1DSA签名算法时,签名值 X.509 证书详细描述 Validity := SEQUENCE notBefore Time, notAfter Time Time := CHOICE utcTime UTCTime, generalTime GeneralizedTime UniqueIdentifier := BIT STRING SubjectPublicKeyInfo :

18、= SEQUENCE algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING SubjectPublicKey:SubjectPublicKey: RSAPublicKey := SEQUENCE modulus INTEGER, - n publicExponent INTEGER - e - Extensions := SEQUENCE SIZE (1.MAX) OF Extension Extension := SEQUENCE extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAUL

19、T FALSE, extnValue OCTET STRING 证书有效期起始时间 证书有效期终止时间 公钥算法 公钥值 X.509数字证书实例 000030 80: SEQUENCE(本证书全部内容开始,结构化不定长编码 ) 000230 8202 40576: . SEQUENCE(证书基本内容开始) 0006a0 033: . . 0(上下文含蓄继承Version 结构,a0 标识10100000,长度 3 个字节) 000802 011: . . . INTEGER 2(Version 结构,全局类整型02 标识,长度1 个字节) : 02(内容值为2,表示版本v3) 00110202

20、2: . . INTEGER 256(序列号,全局整型,长度2 个字节) : 01 00(内容值256) 001530 0d13: . . SEQUENCE(CA签名算法, 全局类结构编码, 10 标 SEQUENCE, 13 个字节) 001706 099: . . . OID1.2.840.113549.1.1.2:(对象标识类,9 个字节) MD2WithRSAEncryption : 2a 8648 86f70d 0101 02(内容值1.2.840.113549.1.1.2) (2a240+2)(864810000110/010010000000110/1001000) 002805 000: . . . NULL(RSA 参数,标准规定为空) 003030 6888: . . SEQUENCE(颁发者,结构化描述,长度88 个字节) 003231 0b11: . . . SET 003430 099: . . . . SEQUENCE 003606 033: . . . . . OID2.5.4.6: C(国家) : 55 0406 004113 022: . . . . . PrintableString ES(西班牙) : 45 53 004531 2d45: . . . SET 004730

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论