1、ICS 35.100.70 L 79 GB 中华人民共和国国家标准G/T 19771-2005 信息技术安全技术公钥基础设施PKI组件最小互操作规范Information technology-Security technology-Public key infrastructure -Minimum interoperability specification for PKI components 2005-05-25发布中华人民共和国国家质量监督检验检技总局中国国家标准化管理委员必2005-12-01实施GB/T 19771-2005 目次前言.皿引言w1 范围2 规范性引用文件-3 术语
2、和定义4 缩略语55 PKI组件规范5. 1 概述5.2 证书认证机构(CA). 5.2. 1 概述5.2.2 与互操作性有关的CA功能要求5.2.3 电子事务集合75. 3 注册机构(RA)5.3. 1 概述5.3.2 与互操作性有关的RA功能要求. 5.3.3 事务集合.9 5.4 证书持有者规范5.4.1 概述. 5.4.2 与互操作性相关的PKI证书持有者功能要求. 5.4.3 证书持有者事务集合95. 5 客户规范四5.5. 1 客户概述105.5.2 与互操作性相关的PKI客户功能要求105.5.3 PKI客户事务集合106 数据格式106. 1 数据格式概述106.2 证书格式1
3、06.2.1 证书宇段106.2.2 加密算法126.2.3 证书扩展. 6.3 证书撤销列表176.3. 1 证书撤销列表概述. 6.3.2 CRL宇段186.3.3 CRL扩展186.3.4 CRL Entry扩展 20 6.4 证书认证路径216. 5 事务消息格式226.5. 1 事务消息格式概述nGB/T 19771-2005 6.5.2 全体PKI消息组件6.5.3 通用数据结构246.5.4 特殊操作的数据结构m6.6 PKI事务306.6.1 PKI事务概述.30 6.6.2 RA发起的注册请求306.6.3 新实体的自我注册请求6.6.4 已知实体的自我注册请求346.6.5
4、 证书更新6.6.6 PKCS# 10自我注册请求386.6.7 撤销请求406.6.8 集中产生密钥对和密钥管理证书申请426.6.9 组合证书申请.446.6.10 从资料库请求证书.45 6.6.11 从资料库请求CRL. . . . . . . . . . 45 附录A(规范性附录)X. 509 v3证书ASN.1 46 附录B(规范性附录)证书和CRL扩展ASN.1 50 附录C(规范性附录)ASN. 1 Module for transactions 58 附录D(规范性附录)证书请求消息格式ASN.1Module H GB/T 19771-2005 前言本标准是在参考美国国家标准
5、与技术研究院CNIST)提出的公钥基础设施PKI组件最小互操作规范第二版内容的基础上修改而成,同时本标准还参照了包括证书管理策略(CMP)、证书请求消息格式(CRMF)、FIPS许可的密码算法和X9密码算法等相关的规范。本标准凡涉及密码算法相关内容,按国家有关法规实施。本标准中引用的SHA-l、RSA、SHAI-MAC、SHAI-HMAC、DES-MAC , tDEA密码算法均为举例性说明,具体使用时均须采用国家商用密码管理委员会批准的相应算法。本标准的附录A、附录B、附录C、附录D为规范性附录。本标准由中华人民共和国信息产业部提出。本标准由全国信息安全标准化技术委员会(TC260)归口。本标
6、准起草单位:信息安全国家重点实验室、中国电子技术标准化研究所。本标准主要起草人:冯登国、吴志刚、荆继武、高能、向继、张凯、周瑞辉、徐佳、林琼锵、曹政、余娟、廖洪盔、李丹、罗锋盈、陈星。E GB/T 19771-2005 引数字签名证书在政府服务商业和法律程序中代替手写签名,并且允许以前没有联系的双方可靠地鉴别对方以进行商业事务。加密证书提供了加密传输和加密算法的应用,来建立或保护对称密钥以提供机密性。这样的一个公钥基础设施(PKD系统和它相应的证书,也许远远超出了一些应用的实际需要,对那些特别的应用要求来说改进的证书和协议更合适。町1 范围信息技术安全技术公钥基础设施PKI组件最小互操作规范G
7、B/T 19771-2005 本标准支持大规模公钥基础设施(PKI负责发布、撤销和管理用于数字签名及密钥管理的公钥证书)的互操作性。本标准为不同的PKI开发者所开发的组件产品提供了基本的互操作性参考。本标准的内容涉及:公钥证书的产生、更新和撤销;签名的产生和验证;证书和证书认证路径验证。本标准主要包括了对证书、证书撤销列表(CRL)扩展和一套事务的描述。这些事务包括证书申请、证书更新、证书撤销以及从资料库检索证书和CRL。本标准主要以最终用户的角度来看待PKI的互操作性,即怎样申请和获得一个证书;怎样签署文档;怎样检索他人的证书;怎样验证签名。就像下面所提及的,PKI的内部操作规范还没有达到足
8、够成熟,因此它们没有被详细规定。在本标准中PKI被分成五个组件:颁发和撤销证书的证书认证机构(CAs); 确保公钥和证书持有者的身份以及别的属性之间绑寇的注册机构(RAs); 获得证书和签署文档的证书持有者;验证签名并且执行密钥管理协议以及验证证书认证路径的客户;存储并提供对证书和CRL查询的资料库。许多实体在功能上既是证书持有者又是客户。CAs和RAs也是如此。终端实体证书持有者通常也是客户。当然,也有一些客户并不是证书持有者。资料库不必是证书持有者和客户。本标准仅仅涉及资料库协议的一部分,那就是客户要求从资料库中获得证书和CRL的信息。本标准将轻型目录访问协议(LDAP)版本2作为用户访问
9、资料库的传输手段,因为它是被广泛接受和采用的方法。例如,这种选择既不强调CA用来更新资料库的标准化协议,也不强调资料库之间互相映射的协议,尽管它们都是需要的。前者可以具体情况具体分析以解决CA和资料库之间的协议,后者也许并不必要。在通常的证书状态确认(本标准遵循的)中,资料库不是可信实体,CA对CRL的签名更可靠。在线证书状态实时确认机制要求资料库是可信实体,而且它们也能让客户相信他们的身份。这样的证书状态确认协议超出了本标准的范围,但是在一些应用中可能需要实时证书状态确认,所以在以后的修订版中可能会解决这个问题。本标准中没有提供让资料库验证使用者的协议,该协议是资料库记费应用的前提。虽然这可
10、能是资料库重要的商用模式,但目前人们对该模式的看法还没有达到一致,也没有统一的支撑协议。在以后的修订版中可能会解决这个问题。在一些情况下,带外事务也是本标准中事务的一部分。带外事务的形式和内容超出了本标准的范围。本标准假定CA、RA和证书持有者是物理上分离的。如果这些实体在物理上是在一起的话,那么GB/ T 19771-2005 对特定接口的支持是不需要的。具体地说,如果一个PKI组件既包含RA又包含CA的功能,那么就不必支持这两者之间的事务消息格式。然而,如果一个系统包括一个CA,该CA除了具有本地RA功能以外还支持远程RA,那么它就必须支持和远程RA之间的事务。在以下的论述中,我们假设CA
11、和RA是单独的PKI组件。本标准把CA和RA当作PKI系统的功能实体。这些实体的内部设计超出了本标准的范围。本标准假设,从最小范围来讲,证书持有者有一个签名密钥和证书。可选的,证书持有者还可以获得一个加密密钥和证书。一旦证书持有者希望请求或者撤销加密证书,它就需要用签名密钥来向CA证明自己。对那些没有签名密钥对、不需要不可否认性服务的系统,本标准不予直接支持。当然,这些实体主(即交叉认证),因此两个证书的扩展basicConst希望资料库能够支资料库不必连料库和检索证书以CRL是一个广统一。一些CA选五操作性。除了当档。如果一个带日证书被撤销的信息。2 规范性引用文件下列文件中的条款通的修改单
12、(不包括勘误的内容是否可使用这些文件的最新版本是不GB/ T 16264.8- 2005 信息技IEC 9594-8 : 200 1, IDT) T 16 264 . 8- 2005 用的证书资可能还没有说应该具有撤销状态存L不会显示用文件,其随后所有准达成协议的各方研究ISO/ IEC 8825-1: 2002 信息技术ASN.1编码规则第1部分:基本编码规则(BER)、正则编码规则(CER)和非典型编码规则(DER)规范2 ANSI X9. 52 用于金融服务业的公钥密码算法:三重DES操作模式ANSI X9 . 55 用于金融服务业的公钥密码算法:公钥证书扩展和证书撤销列表扩展RFC 8
13、22 Internet文本邮件的标准消息格式RFC 1766 语言标识用标签RFC 1777 轻量级目录访问协议RFC 1959 LDAPURL格式GB/T 19771-2005 RFC 2104 用于消息认证的带密钥散列函数RFC 2202 HMAC-MD5和HMAC-SHA-1测试用例RFC 23 13 PKCS# 1 RSA加密版本1.5RFC 2314 PKCS # 10 认证请求语法版本1.5RFC 2459 因特网X.509公开密钥基础设施证书和证书撤销列表框架RFC 2510 因特网X.509公开密钥基础设施证书管理协议RFC 2511 因特网X.509公开密钥基础设施证书消息格
14、式RFC 2559 因特网X.509公开密钥基础设施操作协议-轻量目录访问协议版本2RFC 298 5 PKCS # 9 可选的对象类和参数类型版本2.0 FIPS-1l3: 1985 计算机数据加密附口,(PKCS#11 密码令牌接口标/ 3 术语和定义3.1 3. 4 3.5 抽象语法记法一血用来组织复杂妞瞌.对证书持有者证书策略cert 命名的一组规则,定的证书策略表明,用3. 6 证书用户certificate 3. 7 证书使用系统certificate- using sys 证书用户使用的、本标准定义的那些功能实现。3. 8 证书认证机构(CA)Certificate A utho
15、ri ty (CA) 负责创建和分配证书,受用户信任的权威机构。用户可以选择该机构为其创建密钥。3. 9 证书认证路径certification path 一个DIT中对象证书的有序序列,通过处理该有序序列及其起始对象的公钥可以获得该路径的末端对象的公钥。3 GB/T 19771-2005 3. 10 3. 11 认证业务说明(CPS)Certification Practice Statement(CPS) 证书认证机构发放证书时遵循的业务说明。CRL分布点CRL distribution point 一个CRL目录项或其他CRL分发源;由CRL分布点分发的CRL可以包括仅对某CA所发证书全
16、集某个子集的撤销条目,或者可以包括有多个CA的撤销条目。3. 12 证书撤销列表(CRL)Certificate Revocation List (CRL) 一个巳标识的列表,它指定了一套证书发布者认为无效的证书。除了普通CRL外,还定义了一些特殊的CRL类型用于覆盖特殊领域的CRL。3. 13 3. 14 3.15 3. 16 发证certify 颁发一个证书的行为。害户client 使用PKI来获得证书并且去验证证书和签名的功能。增量CRLdeIta-CRL 部分撤销列表,在可参考的基础CRL发布以后,这些证书更改了其撤销状态。可辨别编码规则(DER)Distinguished Encod
17、ing Rules(DER) 对ASN.l对象进行编码的规则。注:本标准中使用DER对ASN.l对象进行编码。3. 17 数字签名digital signature 允许接收者验证签名人的身份和数据完整性的数据单元。3.18 目录服务(DS)Directory Service(DS) 分布在网络中的各种节点或服务器提供的分布式数据库服务。3. 19 终端实体end entity 不以签署证书为目的而使用其私钥的证书主体或者是依赖(证书)方。3.20 散列函数,晗希函数hash function 将值从一个大的(可能很大)定义域映射到一个较小值域的(数学)函数。好的散列函数是把该函数应用到大的定
18、义域中的若干值的(大)集合的结果可以均匀地(和随机地)被分布在该范围上。3.21 3.22 4 散列码hash code 散列函数的输出比特串。消息认证码(MAC)Message Authentication Code(MAC) 通过密码技术由消息产生的认证数据。GB/T 19771-2005 3.23 消息摘要message digest 散列一个消息后得到的固定长度数据。3.24 带外事务。utof band 不是通过电子形式,而是通过通常的物理形式进行的一些PKI组件的事务。3.25 策略映射policy mapping 当某个域中的一个CA认证另一个域中的一个CA时,在第二个域中的特定
19、证书策略可能被第一个域中的证书认证机构认为等价(但不必在各方面均相同)于第一个域中认可的特定证书策略。3.26 注册机构(RA)Registration Authority(RA) 为用户办理证书申请、身份审核、证书下载、证书更新、证书注销以及密钥恢复等实际业务的办事机构或业务受理点。3.27 3.28 3.29 3.30 资料库repository 存储证书和CRL等信息,并提供无需验证的信息检索服务的数据库。自假发证书self-issued certificate 证书的主体和颁发者相同的CA证书。统一资源标识符(URI)Uniform Resource Identifier(URI) 包
20、含了名字或地址的短数据串,指向web上的某个对象。统-资源定位符(URL)Uniform Resource Locator(URL) 包含地址的短数据串,指向web上的某个对象,URL是URI的子集。4 缩畸语下列缩略语适用于本标准。CA 证书认证机构CRL 证书撤销列表PKCS 公钥密码系统PKI 公钥基础设施POP拥有证明RA 注册机构5 PKI组件规范5. 1 概述本章规定了PKI各组件进行互操作时所需的功能和事务的最小集合。它们分别是CA、RA、证书持有者和PKI客户的规范。5.2 证书认证机构(CA)5.2.1 概述CA负责生成、撤销、公布和存档证书。资料库使得所有证书使用者都可以获
21、得证书和CRLs的5 GB/T 19771-2005 信息。CA生成自己的公私钥对并公布自己的证书。因此,CA应当生戚、估定相应的参数以便生成/验证它们的签名。为了使新的CA能加入到已有的层次结构中,它们应当可以从父CA那里申请证书。CA也应可以生成交叉证书,在其他CA的策略允许下支持与其他CA进行交叉认证。CA对所有的事务进行存档,这些事务包括PKI各组件之间的服务请求与响应。CA授权RA去确认那些申请证书的使用者的身份或其他的特征属性。这种授权通过离线接受来自某个RA的证书请求完成。CA利用X.500的可辨别名(DN)来唯一标识证书持有者。CA本身也具备证书持有者的功能:请求、撤销、更新由
22、其他CA颁发的证书(5.4) ;检索证书和CRLs,验证证书认证路径的客户功能(5.5)。5.2.2 与E操作性有关的CA功能要求6 a) RA发起的权RA的证后将证书发证书请求不求。如果CA在自我注册证划kd公私钥对,组成4 密导出的认证信Ji:!:i于RA的登们的私钥签收到来自授策略不允许更新请求,CA将会拒绝该证书更新请求。如果CA拒绝了更新请求,它将会向请求实体报告失败并说明原因。b) 颁发加密证书CA可以支持某个请求者发出的加密证书的证书请求,该请求者拥有该CA颁发的有效签名证书。请求者的身份由对请求的数字签名来验证。本标准中规定请求者的密钥对由第二方集中产生并通过带外方式提供给CA
23、。在集中密钥管理证书请求中,证书持有者生成一个证书请求,说明自己想要的加密算法,并用GB/T 19771-2005 当前得到该CA认可的签名密钥来对该请求签名。CA响应该请求,发还一个证书和加密私钥。c) 交叉认证在一定的约束条件下CA可向别的CA颁发证书。交叉认证的决定是在带外做出的,并且要通过认证业务说明和证书策略检查。每个CA都会对它们的使用者的路径验证做出适当的约束。在获得别的CA的公钥后,该CA生成证书并将其存放到资料库中。可选的,交叉认证的CA之间可以交换证书,构造证书对并把它们放入资料库。d) 撤销证书CA产生和发布证书撤销列表(CRLs)0 CRL中包括所有被撤销但没有到期的证
24、书。可选的,CA也可以颁发间接的和增革严帮朋节F吨式由CA的认证业务说明决定。在CA为所有的撤销证的CRLD在这种自己持有将证书和CRL放入资料库;为了验证签名的有效性从资料库中检索证书和CRL。被放入新的CRL,继续保略。如果被忽略就表明签名请求,或是CA署者或者是证书展,以及赋给它颁发CA证书、可选的。用于更可以参考6.6.2展来把该请求CA确CA处理在CertReq消息中的RA发起的注册请求。CertReq消息由RA在PKIProtecton结构里签名。通过签署请求消息,RA保证证书持有者的身份并且确认它拥有相应私钥。CA以CertRep消息回复RA或者证书持有者。如果接受请求,Cert
25、Rep中包含新的证书。如果拒绝请求,报文中包含错误代码。(见6.6.2)CA支持自我注册证书请求,此时请求实体还不是证书持有者。CA要求请求实体利用带外方式从RA获得的秘密产生认证信息。这一认证信息代替RA的签名保证请求者的身份是经过RA核实的。以带外方式从RA获得的秘密可以用来产生mac或者带密钥的散列函数的对称密钥。请求实体产生7 GB/T 19771-2005 CertReq消息并且用相应的私钥签名。这一消息利用从RA获得的秘密加以保护。之后.CA产生CertRep消息,如果请求消息正确,则CertRep中包含新的证书。如果拒绝请求,报文中包含错误代码。(见6.6.3和6.6.4)CA处
26、理以CertReq消息形式出现的证书更新请求。这种消息被请求实体发到CA。这个消息包括证书持有者的标识名,当前证书的序列号,新的公钥以及拥有相应私钥的证明。消息可以包括预定的有效期和建议的密钥id。这个消息可用证书持有者的有效证书(未过期,未被撤销)私钥签署。CA用CertRep消息回复申请者。这个消息包含一个新证书或者错误代码。如果颁发新证书的话,证书中将包含证书持有者的标识名和新的公钥。CA可以自由修改请求中的合法期限。如果申请消息中没有密钥标识符.CA将产生一个(见6.6.5)。CA应该接收从RA发来的RevReq消息。RevReq消息应该包括证书序列号或证书持有者的标识名。CA用Rev
27、Rep消息回应。这个消息应该包括状态和失败信息,也可以包括撤销证书的附加细节。CA支持由第三方集中产生密钥对(并通过带外方式提供给CA)的加密证书请求。支持对第三方集中产生的密钥对颁发加密证书的CA要处理CertReq消息形式的请求。这些消息由请求证书的终端实体发送给CA。这些消息应当包括证书持有者的可辨别名,当前证书的序列号。可选的,该消息可包括一个有效期。该消息用证书持有者的未过期,未被撤销的签名证书的相应私钥签名。之后CA以CertRep消息的形式响应请求者。该消息包括新证书和加密私钥,或是错误代码。如果颁发证书的话,该证书就包括证书持有者的可辨别名和新的公钥。CA可以随意修改请求中希望
28、的有效期。CA应该把CA证书、交叉证书对、CRL以及它颁发的终端实体的加密证书放入资料库。5.3 注册机构(RA)5.3. 1 概述RA保证请求证书的实体的身份。RA可以通过要求实体用物理令牌来和RA进行物理上的接触或通过带外机制来验证身份。当实体物理上接触RA时.RA也要通过验证一个被签名的消息来验证它们拥有与公钥相应的私钥材料(见6.6. 2)。RA应该验证实体拥有一个完整的密钥对。在密钥对和实体身份被验证之后.RA签署并发送一个电子证书请求给相应的CA。没有与RA进行过物理接触的证书请求者,在进行证书请求时,必须具有RA提供给他的认证信息。这一信息用于实体在自我注册请求中向CA证明自己的
29、身份。本标准不对实现自我注册请求的带外事务的格式和内容进行规定。RA可以对CA授权它们管理的实体证书请求证书撤销。RevReq的格式在6.6.7中定义。RA功能可以与CA在一起也可以在一个不同的设施中执行。RA本身既包括证书持有者的功能一一请求、撤销和更新由CA颁发的证书(它得是该证书的主体)(见5.4).又包括客户的功能-一一检索证书和CRL以及验证证书认证路径(见5.5)。5.3.2 与互操作性有关的RA功能要求RA应该执行下列功能:接受和验证证书请求;向CA发送证书请求;从资料库检索证书和CRL;产生证书撤销请求。RA应该能够连同CA的证书一起把新签署的证书发给证书持有者。RA应该可以代
30、表不再拥有它们的私钥并且怀疑该私钥已槛露的证书持有者产生并签署证书撤销请求(丢失而并不认为已泄露的签名密钥不是必须被撤销;这由策略决定。注意丢失的保密性的密钥无论如何都必须被撤销,否则发送方就会加密和传输接受方无法解秘的消息)。如果CA的认证业务说明允许.RA也应该可以代表证书持有者的组织产生并签署证书撤销请求。撤销请求由后来把它们发送给颁发证书的CA的RA所签署。5.3.3 事务集合GB/T 19771-2005 RA所用电子事务能够实现终端实体证书的请求、发送和撤销,以及为了验证签名而从资料库中检索证书和CRL。下面将给出这些事务的一个概括;它们将在6.6中具体地描述。RA接收来自潜在证书
31、持有者的CertReq格式的证书请求。CertReq消息被潜在证书持有者在PKIProtection结构中所签署。在审查了请求者的凭证并确认该潜在证书持有者拥有相应的私钥之后,RA抽取公钥信息并且用RA的名字和签名建立一个新的CertReq消息。RA把该消息发送给CAoRA应该可以向证书持有者提供该CA的证书。RA可以从CA接收CertRep消息。如果证书请求被拒绝,RA将审查从CA发来的错误代码并可能会发送一个新的请求。如果一个证书请求被接受了,RA可以向证书持有者提供新的证书。RA应该在不再拥有它们自己私钥的证书持有者或证书持有者所在组织的要求下,产生撤销请求。通过签署这个请求,RA保证请
32、求者的身份。RA应该可以产生RevReq消息,包括证书序列号或证书持有者的可辨别名。这个RevReq消息应该被一个RA所签署。CA应该用RevRep消息回应RA。这个消息应该包括状态和失败信息,并且可以包括关于被撤销证书的附加细节。如果证书被撤销了,RA应该提供这个信息给请求者。如果请求被拒绝了,RA将审查错误代码并且可能再产生该请求。5.4 证书持有者规范5.4.1 概述PKI为证书持有者提供证书管理功能。证书持有者包括CAs,RAs和其他的终端实体。终端实体可能是个人用户和计算机系统(例如路由器和防火墙),也可能是应用程序(CAs和RAs除外)。PKI证书持有者生成签名并且支持PKI事务来
33、获取、更新和撤销他们的证书。5.4.2 与互操作性相关的PKI证书持有者功能要求证书持有者的功能:生成签名;生成证书请求;请求证书撤销;请求证书更新(可选项)。证书持有者同时也是客户,因此它也具备5.5中定义的客户功能。5.4.3 证书持有者事务集合证书持有者的事务能使证书持有者请求新的证书,以及撤销当前持有的证书。所有的证书持有者事务都由发放证书的CA及其CA授权的RA执行。证书持有者应该能够请求撤销他们自己的证书。这个事务由CA执行,允许证书持有者签署他们的证书撤销请求。证书持有者为每个他们希望撤销的证书产生一个RevReq消息井发送给CA。RevReq消息要包括撤销原因。CA产生RevR
34、ep消息并返还给证书持有者。这个事务过程在6.6.7中有详细描述。可选的,证书持有者能够实现证书更新请求。这个事务由CA执行,允许证书持有者签署自己的证书请求(不需要RA验证其身份)0CA可以支持该项事务,但是它的具体使用由认证业务说明决定。在不与RA交互的情况下请求一个新的证书,证书持有者产生一个CertReq消息,并且使用新的和当前的私钥进行签名。CA产生CertRep消息,如果请求成功,就包含一个新的证书。如果请求被拒绝,就包含错误代码。证书持有者能够实现自我注册的证书请求。证书持有者也可以实现加密证书请求。在此事务中,证书持有者产生一个证书请求,说明希望的密钥管理算法,并用一个有效的签
35、名密钥对该请求签名。CA响应一个证书和加了密的私钥或是错误代码。9 GB/T 19771-2005 5. 5 害户规范5.5.1 害户概述PKI客户使用PKI来为证书持有者和证书使用者,包括CA和其他的终端实体提供证书处理功能。终端实体也可以包括RA,个人用户和计算机系统(如路由器和防火墙)。在最小意义上,PKI客户验证签名,获得证书和CRLs,并验证证书认证路径。同时具有证书持有者身份的客户也能产生签名,也可以支持撤销或更新证书的PKI事务。5.5.2 与互操作性相关的PKI害户功能要求客户的最小功能集合:验证签名;从查询服务器中检索证书验证证书认证路径。必须支持以下事务:检索证书6 数据格
36、式Issuer Distinguished Subject Distinguished Name Subject Public Key Information 主体公钥信息;Issuer U nique Identifier 颁发者唯一标识符(可选,本标准不使用); Subject Unique Identifier 主体唯一标识符(可选,本标准不使用); Extensions 证书扩展(可选); Issuers Signature on all the above fi elds 颁发者对以上所有域的签名。6.2.1 证书字段X.509证书语法的ASN.1定义见附录A。出于签名考虑,证书用A
37、SN.1DER编码表示。ASN.1DER是一个为每个元素赋予标签、长度和值的编码系统。详见ISO/IEC8825 . 1-2002。以下介绍GB/T16264. 8-2005的证书。除了可选的subjectUniqueID和issuerU niqueID宇段,10 GB/T 19771-2005 CA应该产生下面这些字段,而且客户根据GB/T16264.82005可以处理它们。CA可以不颁发包括issuerUniqueID和subjectUniqueID的证书。客户也可以不处理subjectUniqueID和issuerUniqueID。他们可以拒绝那些含有这两部分字段的证书。a) Versi
38、on verslOn宇段表示证书的版本号。该字段的值应为2,以表示版本3证书。b) Serial N umber serialNumber是CA给每个证书分配的一个整数。对一个给定的CA,它提供的证书序列号应该是唯一的(即,颁发者和证书序列号唯一标识一个证书)。c) Signature d) slgnature宇段包含mldentifier,用王a 集不仍然书中使些类型的可选的名lssuer字段为的算法。此字段包括一个algorith entifier的内容。证书不应该使tion) ,因为该字段没有被名字是一个X.500标识列建议定义,属性值为, UniversalString和小写字母,数字
39、和少入了重音符和日本versalString是多宇代编码。选择最严格的类型e一般就使用Printo当BMPString字符,不应该在新主体的证ients可能会收到使用这: 8-2005证书的使用者希望X.500的可辨别名。e) Validity validity字段说明了字段的时间表示形式用UTCl-m运乌比单旦台机zedllme。对于1950年到2049年(含)的日期,validity宇段一般使用UTCTTimeoUTCTTime使用格林威治时间,而且要精确到秒。秒耍清楚表示,即使为零。UCTCTime的格式为YYMMDDHHMMSSZ。年字段做如下规定:1) 如果YY等于或大于50,年代为
40、19YY;2) 如果YY小于50,年代为20YY。对于2050年以后的日期,validity字段一般用GeneralizedTimeoGeneralizedTime使用格林威治时间,而且要精确到秒。秒要清楚表示,即使为零。GeneralizedTime的格式为YYMMDDHHMMSSZo GeneralizedTime不能包括分秒。(1950年前的日期对本标准来说无效,所以11 GB/T 19771-2005 不予考虑。)f) Subject Name subject Name字段的目的是给证书主体提供唯一的标识符。主体名使用X.500可辨别名。像在lssuername中描述的一样,在构建Di
41、rectoryString时CA使用最严格的选择。可替代的名字可放在subjectAltName扩展中,GB/T16264.8-2005证书的使用者希望本宇段为空。然而,遵从本标准的证书都在这个字段里带有主体的X.500可辨别名。g) Subject Public Key Information SubjectPublicKeylnfo字段是用来携带公钥和公钥使用的算法的。它包括su bj ectPu blicKey 宇段和algorithmldentifier字段,algorithmldentifier字段有algorithmand parameters次级字段。h) Unique Iden
42、tifiers 证书里的subjectUniqueldentifier和issuerU niqueldentifier字段是用来处理主体名和颁发者名被过时重用的可能性。CA不会颁发含有这些唯一标识符的证书。PKI客户也不会被要求去处理含有这些标识符的证书。当然,如果它们不处理这些字段,他们会拒绝包含这些字段的证书。i) Extesion extension宇段的增加是GB/T16264. 8一2005证书最主要的改变。扩展有三部分:extnld,标识该扩展,critical,说明该扩展是critical或noncritical的,extnValue,扩展值。一个证书可以包括任意多个扩展宇段,其
43、中也包括局部定义的扩展。如果设置了critical标志,就要求客户或者能够处理该扩展字段,或者不能验证该证书。在GB/T16264.8-2005中有完整的扩展标准。6.2. 3详述了这些标准扩展在本标准中的使用。j) Issuers Signature 实际的证书签名使用SIGNED参数类型,扩展为被签名的数据的SEQUENCE(例如,证书), 算法标识符,以及一个BITSTRING形式的实际签名。algorithmldentifier标识了用来对证书签名的算法。尽管这个algorithmldentifier宇段包括了一个parameters宇段,在理论上可以用来传递签名算法的参数(见6.2.
44、 2. 3) ,但它本身并不是一个被签名的对象。parameters宇段不能用来传递参数。当需要获得验证签名的参数时,应当从颁发证书的CA的证书的subjectPublicKeylnfo宇段中获得相应参数。6.2.2 加密算法6.2.2.1 加密算法概述本标准使用四类算法:散列函数、数字签名算法、消息认证算法和对称加密算法。当描述数字签名算法时,通常与散列函数一起介绍。当描述证书中的公钥时,散列函数被忽略。这就允许当散列函数被另一个更强的算法替换时,证书也能使用。要求一个PKI组件至少应该实现其中一个数字签名算法。对于简单的PKI客户组件来说,能验证由其中一个算法生成的签名已经足够了;要求其他
45、的组件能够产生和验证由其中一个算法生成的签名。遵守本标准的PKI组件应该支持一个加密算法。允许相应的组件使用额外的算法,甚至当它们不能使用所有的这些算法时。比如,支持这里的一个密钥协定算法的客户可以使用别的密钥传递算法,即使它不支持这里的密钥传递算法。6.2.2.2 散到函数散列函数用于为证书和CRL产生数字签名,它也用于将共享秘密散列为报文确认码。本标准中建议使用一种散列函数。以SHA-1为例,它是通过对象标识符以及数字签名算法表示的。SHA-l的ASN.1对象标识符是:G/T 19771-2005 shal OBjECT IDENTIFIER : = iso(l) identified-organization(3) oiw(14) secsig(3) algorithm(2) 26 只要该对象标识符在算法类型中出现,相应的参数域应该被忽略,如果出现,必须为NULL。6.2.2.3 数字签名算法GB/T 1626