X 509数字证书结构简介

发布 2019-09-14 15:48:40 阅读 2097

1、简介。

x.509被广泛使用的数字证书标准,是由国际电联电信委员会(itu-t)为单点登录(sso-single sign-on)和授权管理基础设施(pmi-privilege management infrastructure)制定的pki标准。x.

509定义了(但不仅限于)公钥证书、证书吊销清单、属性证书和证书路径验证算法等证书标准。

在x.509系统中,ca签发的证书依照x.500的管理,绑定了一个唯一甄别名(dn-distinguished name ),可以包含多个字段和值,还可以支持别名(alternative name )。

一个组织受信任的根证书会分发给所有需要用到的pki系统的员工手上。主流浏览器:ie、netscape/mozilla,opera和safari会预先安装一部分根证书,这些根证书都是受信任的证书认证机构ca,这样他们颁发的证书,浏览器将可以直接信任。

虽然用户可以删除或者禁用这些根证书,但事实上,用户很少这么做。在最新的微软平台,甚至会在用户移除了预先安置的根证书后,当用户再访问这些被删除的根证书**的时候,会自动将这些根证书恢复到信任列表中。

x.509包含了一个证书吊销列表(crl-certificate revocation list)实施的标准,这在pki系统中经常被人所忽略。ietf提出的检查证书有效性的方法是**证书状态(ocsp- online certificate status protocol)。

firefo3 缺省就是使用ocsp协议。

2、历史和用途。

x.509最初是在2023年的7月3日发布的,版本是x.509 v1,当时是作为itu x.

500目录服务标准的一部分。它设定了一系列严格的ca分级体系来颁发数字证书。和其他网络信任模型(譬如pgp)对比,任何人,不仅仅是特定的ca,可以签发并验证其他密钥证书的有效性。

x.509 2 版引入了主体和签发人唯一标识符的概念,以解决主体和/或签发人名称在一段时间后可能重复使用的问题。大多数证书监视文档都极力建议不要重复使用主体或签发人名称,而且建议证书不要使用唯一标识符。

版本 2 证书尚未得到广泛使用。

x.509 3 版是最新的版本(1996 年)。它支持扩展的概念,因此任何人均可定义扩展并将其纳入证书中。

现在常用的扩展包括:keyusage(仅限密钥用于特殊目的,例如“只签”)和 alternativenames(允许其它标识与该公钥关联,例如 dns 名、电子邮件地址、ip 地址)。扩展可标记为“极重要”,以表示应选中该扩展并强制执行或使用。

例如,如果某一证书将 keyusage 扩展标记为“极重要”,而且设置为“keycertsign”,则在 ssl 通信期间该证书出现时将被拒绝,因为该证书扩展表示相关私钥应只用于签写证书,而不应该用于 ssl。

3、x.509数字证书的编码。

x.509证书的结构是用asn1(abstract syntax notation one)进行描述数据结构,并使用asn1语法进行编码。

asn1采用一个个的数据块来描述整个数据结构,每个数据块都有四个部分组成:

1)数据块数据类型标识(一个字节)

数据类型包括简单类型和结构类型。

简单类型是不能再分解类型,如整型(interger)、比特串(bit string)、字节串(octet string)、对象标示符(object identifier)、日期型(utctime)等。

结构类型是由简单类型和结构类型组合而成的,如顺序类型(sequence, sequence of)、选择类型(choice)、集合类型(set)等。

顺序类型的数据块值由按给定顺序成员成员数据块值按照顺序组成;

选择类型的数据块值由多个成员数据数据块类型中选择一个的数据块值;

集合数据块类型由成员数据块类型的一个或多个值构成。

这个标识字节的结构如下:

1.1)bit8-bit7用来标示 tag 类型,共有四种,分别是universal(00)、application(01)、context-specific(10)和private(11)。

1.2)bit6表示是否为结构类型(1位结构类型);0则表明编码类型是简单类型。

1.3)bit5-bit1是类型的tag值。根据bit8-bit7的不同值有不同的含义,具体含义见下表。

当bit8-bit7为universal(00)时,bit5-bit1的值表示不同的universal的值:

标记(tag) 对应类型备注。

[universal 1] boolean [有两个值:false或true]

[universal 2] integer [整型值]

[universal 3] bit string [0位或多位]

[universal 4] octet string [0字节或多字节]

[universal 5] null

[universal 6] object identifier [相应于一个对象的独特标识数字]

[universal 7] object descriptor [一个对象的简称]

[universal 8] external, instance of [asn.1没有定义的数据类型]

[universal 9] real [实数值]

[universal 10] enumerated [数值列表,这些数据每个都有独特的标识符,作为asn.1定义数据类型的一部分]

[universal 12] utf8string

[universal 13] relative-oid

[universal 16] sequence, sequence of [有序数列,sequence里面的每个数值都可以是不同类型的,而sequence of里是0个或多个类型相同的数据]

[universal 17] set, set of [无序数列,set里面的每个数值都可以是不同类型的,而set of里是0个或多个类型相同的数据]

[universal 18] numeric string [0-9以及空格]

[universal 19 ]printable string [a-z、a-z、0-9、空格以及符号。

[universal 20] teletexstring, t61string

[universal 21] videotexstring

[universal 22] ia5string

[universal 23] utctime [统一全球时间格式]

[universal 24] generalizedtime

[universal 25] graphicstring

[universal 26] visiblestring, iso646string

[universal 27] generalstring

[universal 28] universalstring

[universal 29] character string

[universal 30] bmpstring

[universal 31] reserved for future use

当bit8-bit7为context-specific(10)时,bit5-bit1的值表示特殊内容:

[0] –表示证书的版本。

[1] –issueruniqueid,表示证书发行者的唯一id

[2] –subjectuniqueid,表示证书主体的唯一id

[3] –表示证书的扩展字段。

如 sequence 类型数据块,其tag类型位universal(00),属于结构类型(1),tag值为16(10000)所以其类型标示字段值为(00110000),即为0x30。再如,证书扩展字段类型的数据块,tag类型为(10),属结构类型(1),tag的值为3(00011),所以其类型标示字段值为(10100011),即为0xa3。

2)数据块长度(1-128个字节)

长度字段,有两种编码格式。

若长度值小于等于127,则用一个字节表示,bit8 = 0, bit7-bit1 存放长度值;

若长度值大于127,则用多个字节表示,可以有2到127个字节。第一个字节的第8位为1,其它低7位给出后面该域使用的字节的数量,从该域第二个字节开始给出数据的长度,高位优先。

还有一种特殊情况,这个字节为0x80,表示数据块长度不定,由数据块结束标识结束数据块。

3)数据块的值。

存放数据块的值,具体编码随数据块类型不同而不同。

4)数据块结束标识(可选)

结束标示字段,两个字节(0x0000),只有在长度值为不定时才会出现。

4、x.509证书的结构。

1)x.509证书基本部分。

1.1)版本号。

标识证书的版本(版本1、版本2或是版本3)。

1.2)序列号。

标识证书的唯一整数,由证书颁发者分配的本证书的唯一标识符。

1.3)签名。

用于签证书的算法标识,由对象标识符加上相关的参数组成,用于说明本证书所用的数字签名算法。例如,sha-1和rsa的对象标识符就用来说明该数字签名是利用rsa对sha-1杂凑加密。

1.4)颁发者。

证书颁发者的可识别名(dn)。

1.5)有效期。

证书有效期的时间段。本字段由”not before”和”not after”两项组成,它们分别由utc时间或一般的时间表示(在rfc2459中有详细的时间表示规则)。

宝洁数字营销x

作者 汤向阳 一句话 碧浪洗段子大赛 本来是有字的 看不懂?试着把 字 换成 渍 吧。这则微 是宝洁旗下碧浪洗衣液数字营销活动 碧浪洗段子大赛,第一名作品。除它之外,另有一万多条微 被发到碧浪微博账户参加评选。这些颇有创意的原创作品帮助碧浪赢得了15万的讨论量。碧浪只是其中一例。作为全球最大广告主,...

数字X线摄影

cr的进展 dr的分类 各类 dr的应用原理 各类dr的优点和缺点 dr的临床应用。针状成像板可使发光沿着针状规则传播,提高影像的锐利度增加光厚度降低噪声。线扫描 提高扫描速度和整体采集效率。相位对比 利用x线的穿透特性和折射特性用于乳腺摄中。x线穿透物体后强度衰减和折射引起的相位位移。x线的基本特...

直接数字X线摄影

direct digital radiography ddr 直接数字x线摄影,是指在具有图像处理功能的计算机控制下,采用一维或二维的x线探测器直接把x线影像信息转化为数字信号的技术。直接的数字化摄影是普通x线摄影数字化的又一大进步,与存贮荧光体方式的间接数字化摄影相比,具有四大特点 1 病人受照射...