2024年2月9日发(作者:)

ICS 35.100.70一一L 79苟日中华人民共和国国家标准GB/T               19771-2005信息技术安全技术公钥基础设施  PKI组件最小互操作规范          on Informatitechnology-Security technology-Public key infrastructure一Mi        nimum interoperability specification for PKI components2005-05-25发布2005-12-01实施丰    督锲臀策蟾臀袋臀臀暴发“

GB/T               19771-2005ml                             1青    本标准是在参考美国国家标准与技术研究院(NIST)提出的《公钥基础设施PKI组件最小互操作规范》第二版内容的基础上修改而成,同时本标准还参照了包括证书管理策略(CMP )、证书请求消息格式(CRMF), FIPS许可的密码算法和X9密码算法等相关的规范。    本标准凡涉及密码算法相关内容,按国家有关法规实施。本标准中引用的SHA-1,RSA,SHA1-MAC,SHAI-HMAC     ,DES-MAC,tDEA密码算法均为举例性说明,具体使用时均须采用国家商用密码管理委员会批准的相应算法。    本标准的附录A、附录B、附录C、附录D为规范性附录。本标准由中华人民共和国信息产业部提出。    本标准由全国信息安全标准化技术委员会(TC260     )归口。    本标准起草单位:信息安全国家重点实验室、中国电子技术标准化研究所。本标准主要起草人:冯登国、吴志刚、荆继武、高能、向继、张凯、周瑞辉、徐佳、林爆锵、曹政、    余蜻、廖洪蛮、李丹、罗锋盈、陈星。

GB/T 19771-2005引                     言数字签名证书在政府服务商业和法律程序中代替手写签名,并且允许以前没有联系的双方可靠地    鉴别对方以进行商业事务。加密证书提供了加密传输和加密算法的应用,来建立或保护对称密钥以提供机密性。这样的一个公钥基础设施(PKI )系统和它相应的证书,也许远远超出了一些应用的实际需要,对那些特别的应用要求来说改进的证书和协议更合适。

GB/T               19771-2005信息技术安全技术公钥基础设施              PKI组件最小互操作规范                  1范围本标准支持大规模公钥基础设施(PKI负责发布、撤销和管理用于数字签名及密钥管理的公钥证    书)的互操作性。本标准为不同的PKI开发者所开发的组件产品提供了基本的互操作性参考。本标准的内容涉及:            公钥证书的产生、更新和撤销;签名的产生和验证;          证书和证书认证路径验证。            本标准主要包括了对证书、证书撤销列表(CRI.)扩展和一套事务的描述。这些事务包括证书申请、证书更新、证书撤销以及从资料库检索证书和CRLa本标准主要以最终用户的角度来看待PKI的互操作性,即怎样申请和获得一个证书;怎样签署文    档;怎样检索他人的证书;怎样验证签名。就像下面所提及的,PKI的“内部”操作规范还没有达到足够成熟,因此它们没有被详细规定。在本标准中PKI被分成五个组件:            颁发和撤销证书的证书认证机构(CAs);确保公钥和证书持有者的身份以及别的属性之间绑定的注册机构(RAs        ) ;获得证书和签署文档的证书持有者;        验证签名并且执行密钥管理协议以及验证证书认证路径的客户;                存储并提供对证书和CRL查询的资料库。许多实体在功能上既是证书持有者又是客户。CAs和RAs也是如此。终端实体证书持有者通常    也是客户。当然,也有一些客户并不是证书持有者。资料库不必是证书持有者和客户。本标准仅仅涉及资料库协议的一部分,那就是客户要求从资料    库中获得证书和CRI.的信息。本标准将轻型目录访问协议(LDAP)版本2作为用户访问资料库的传输手段,因为它是被广泛接    受和采用的方法。例如,这种选择既不强调CA用来更新资料库的标准化协议,也不强调资料库之间互相映射的协议,尽管它们都是需要的。前者可以具体情况具体分析以解决CA和资料库之间的协议,后者也许并不必要。在通常的证书状态确认(本标准遵循的)中,资料库不是可信实体,CA对CRL的签名更可靠。在    线证书状态实时确认机制要求资料库是可信实体,而且它们也能让客户相信他们的身份。这样的证书状态确认协议超出了本标准的范围,但是在一些应用中可能需要实时证书状态确认,所以在以后的修订版中可能会解决这个问题。本标准中没有提供让资料库验证使用者的协议,    该协议是资料库记费应用的前提。虽然这可能是资料库重要的商用模式,但目前人们对该模式的看法还没有达到一致,也没有统一的支撑协议。在以后的修订版中可能会解决这个问题。在一些情况下,带外事务也是本标准中事务的一部分。带外事务的形式和内容超出了本标准的    范围。本标准假定CA,RA和证书持有者是物理_    L分离的。如果这些实体在物理上是在一起的话,那么

GB/T 19771-2005对特定接口的支持是不需要的。具体地说,如果一个PKI组件既包含RA又包含CA的功能,那么就不必支持这两者之间的事务消息格式。然而,如果一个系统包括一个CA,该CA除了具有本地RA功能以外还支持远程RA,那么它就必须支持和远程RA之间的事务。在以下的论述中,我们假设CA和RA是单独的PKI组件。    本标准把CA和RA当作PKI系统的功能实体。这些实体的内部设计超出了本标准的范围。本标准假设,    从最小范围来讲,证书持有者有一个签名密钥和证书。可选的,证书持有者还可以获得一个加密密钥和证书。一旦证书持有者希望请求或者撤销加密证书,它就需要用签名密钥来向CA证明自己。对那些没有签名密钥对、    不需要不可否认性服务的系统,本标准不予直接支持。当然,这些实体主要是这样一些计算机系统(例如,路由器或是链路加密机),它们由管理员来维护。如果管理员有系统管理的签名密钥对,本标准的事务集合也可用来支持这些实体的证书请求和撤销。本标准选定了一个成熟重要的数字签名算法,新的标准算法很容易加人进来。        本标准支持层状和网状信任模型。在层次模型中,CA通过认证一个次级CA来提供可信性。信任授权从根CA开始,该CA被所有节点信任。在网状模型中,信任是建立在两个同等关系的CA中的(即交叉认证),因此两个CA之间可以有多个信任路径。最小互操作规范假设GB/T 16264. 8-2005证书的扩展basicConstraints, nameConstraints, keyUsage和certificatePolicy都会包含在证书中,以便对信任关系进行明确管理。本标准假设无需确认就可以从资料库中检索证书和CRI,。客户可以从适当的资料库中获得证书    和CRL来进行路径验证。资料库可以是X. 500目录或者使用通用资源标识符(URI)可访问的目录。希望资料库能够支持LDAP(即RFC 1777),因此相应的产品也要求支持这个协议。资料库不必连接在一起,别的协议也可以用来获得证书和CRI,。本标准要求明确所使用的证书资    料库和检索证书以及CRI,的机制。    CRL是一个广泛使用的机制,它用于撤销证书和验证未到期证书的状态。CRL的使用可能还没有统一。一些CA选择在线实时确认证书状态的机制,CRI,的产生对于别的CA的使用者来说应该具有互操作性。除了当前检查证书的有效性,CRI,还提供了一个重要的机制,即将证书以前的撤销状态存档。如果一个带日期签名的签名日期在证书的有效期内,那么该签名是合法的,当前的CRI,不会显示证书被撤销的信息。在本标准中,    假设CA可以产生CRI.,客户在验证证书时可以使用CRL.2规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有    的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。GB/T     16264. 8-2005信息技术IEC 9594-8:2001,IDT)开放系统互连目录第8部分:公钥和属性证书框架((IS()/    ISO/IEC 8825-1:2002信息技术ASN. 1编码规则规则(CER)和非典型编码规则(DER)规范第1部分:基本编码规则(BER )、正则编码    ANSI X9.52用于金融服务业的公钥密码算法:三重DES操作模式ANSI     X9.55用于金融服务业的公钥密码算法:公钥证书扩展和证书撤销列表扩展RFC     822  Internet文本邮件的标准消息格式RFC     1766语言标识用标签    RFC 1777轻量级目录访问协议RFC     1959  LDAPURI,格式

GB/T             19771-2005    RFC 2104用于消息认证的带密钥散列函数RFC     2202  HMAC-MD5和HMAC-SHA-1测试用例RFC     2313  PKCS # 1 RSA加密版本1.5 RFC     2314  PKCS # 10认证请求语法版本1.5RFC     2459因特网X. 509公开密钥基础设施证书和证书撤销列表框架    RFC 2510因特网X. 509公开密钥基础设施证书管理协议RFC     2511因特网X. 509公开密钥基础设施证书消息格式    RFC 2559因特网X. 509公开密钥基础设施操作协议一轻量目录访问协议版本2RFC     2985  PKCS # 9可选的对象类和参数类型版本2.0FI    PS-113:1985计算机数据加密鉴别PKCS     #n3术语和定义下列术语和定义适用于本标准。    3.1密码令牌接口标准版本2.0抽象语法记法一(    ASN. 1)  Abstract Syntax Notation 1(ASN. 1)用来组织复杂数据对象的表示法。    3.2许可accredi    t认可一个实体或个人去执行特定动作。    3.3公钥证书publ    ic key certificate用户的公钥连同其他信息,并由发布该证书的证书认证机构的私钥进行加密使其不可伪造。    3.4    证书持有者certificate holder有效证书的主体对应的实体。    3.5证书策略c    ertificate policy    命名的一组规则,指出证书对具有公共安全要求的特定团体和/或应用的适用范围。例如,一个特定的证书策略表明,用于确认电子数据交换贸易证书的适用范围是价格在某一预定范围内的交易。3.6    certi证书用户ficate user需要确切地知道另一实体的公开密钥的某一实体。    3.7证书使用系统c    ertificate-using system证书用户使用的、本标准定义的那些功能实现。    3.8证书认证机构(    CA)  Certificate Authority(CA)负责创建和分配证书,受用户信任的权威机构。用户可以选择该机构为其创建密钥。    3.9证书认证路径c    ertification path一个DI    T中对象证书的有序序列,通过处理该有序序列及其起始对象的公钥可以获得该路径的末端对象的公钥。

GB/T 19771-20053.10认证业务说明(CPS)      Certification Practice Statement(CPS)证书认证机构发放证书时遵循的业务说明。    3.11CRL分布点    CRL distribution point一个CR工团目录项或其他CRI    .分发源;由CRI,分布点分发的CRL可以包括仅对某CA所发证书全集某个子集的撤销条目,或者可以包括有多个CA的撤销条目。3. 12证书撤销列表(CRL)      Certificate Revocation List(CRL)    一个已标识的列表,它指定了一套证书发布者认为无效的证书。除了普通CRI,外,还定义了一些特殊的CRL类型用于覆盖特殊领域的CRI.3.13发证cert    ify颁发一个证书的行为。    3.14客户c    lient使用PKI来获得证书并且去验证证书和签名的功能。    3. 15增量CRL      delta-CRL部分撤销列表,在可参考的基础CRI    ,发布以后,这些证书更改了其撤销状态。3.16可辨别编码规则(    DER)  Distinguished Encoding Rules(DER)对ASN.     1对象进行编码的规则。注:本标准中使用DER对ASN.     1对象进行编码3.17数字签名di    gital signature允许接收者验证签名人的身份和数据完整性的数据单元。    3.18目录服务(DS)      Directory Service(DS)分布在网络中的各种节点或服务器提供的分布式数据库服务。    3.19终端实体end     entity不以签署证书为目的而使用其私钥的证书主体或者是依赖(证书)方。    3.20散列函数,    哈希函数hash function    将值从一个大的(可能很大)定义域映射到一个较小值域的(数学)函数。“好的”散列函数是把该函数应用到大的定义域中的若干值的(大)集合的结果可以均匀地(和随机地)被分布在该范围上。3.21散列码ha    sh code散列函数的输出比特串。    3.22    消息认证码(MAC)    Message Authentication Code(MAC)通过密码技术由消息产生的认证数据。    

GB/T               19771-20053.23消息摘要me    ssage digest散列一个消息后得到的固定长度数据。    3.24带外事务out     of band不是通过电子形式,而是通过通常的物理形式进行的一些PKI组件的事务。    3.25策略映射pol    icy mapping当某个域中的一个CA认证另一个域中的一个CA时,在第二个域中的特定证书策略可能被第一    个域中的证书认证机构认为等价(但不必在各方面均相同)于第一个域中认可的特定证书策略。3.26注册机构(RA)      Registration Authority(RA)    为用户办理证书申请、身份审核、证书下载、证书更新、证书注销以及密钥恢复等实际业务的办事机构或业务受理点。3.27资料库r    epository存储证书和CRL等信息,并提供无需验证的信息检索服务的数据库。    3.28自颁发证书s    elf-issued certificate证书的主体和颁发者相同的CA证书。    3.29统一资源标识符(URI) Uni    form Resource Identifier(URI)包含了名字或地址的短数据串,指向web上的某个对象。    3.30统一资源定位符(URL)     Uniform Resource Locator(URL)包含地址的短数据串,指向web上的某个对象,URI是URI的子集。    4缩略语    下列缩略语适用于本标准。CA证书认证机构    CRI,证书撤销列表    PKCS公钥密码系统    PKI公钥基础设施        POP拥有证明RA注册机构    5    PKI组件规范5.1概述    本章规定了PKI各组件进行互操作时所需的功能和事务的最小集合。它们分别是CA, RA、证书持有者和PKI客户的规范。5.2证书认证机构(CA)5.2.1概述CA负责生成、撤销、公布和存档证书。资料库使得所有证书使用者都可以获得证书和CRI    _s的

GB/T 19771-2005信息。CA生成自己的公私钥对并公布自己的证书。因此,CA应当生成、估定相应的参数以便生成/验证    它们的签名。为了使新的CA能加人到已有的层次结构中,它们应当可以从父CA那里申请证书。CA也应可以生成交叉证书,在其他CA的策略允许下支持与其他CA进行交叉认证。CA对所有的事务进行存档,这些事务包括PKI各组件之间的服务请求与响应。CA授权RA去确认那些申请证书的使用者的身份或其他的特征属性。这种授权通过离线接受来    自某个RA的证书请求完成。CA利用X. 500的可辨别名(DN)来唯一标识证书持有者。CA本身也具备证书持有者的功能:请求、撤销、更新由其他CA颁发的证书(5.4);检索证书和    CRLs,验证证书认证路径的客户功能(5.5)05.2.2与互操作性有关的CA功能要求CA执行下列功能:            颁发并传送证书给终端实体和其他的CA;接收来自RA的证书撤销请求;        将证书和CRL存人资料库;                请求CA证书。a)颁发数字签名证书    CA支持三种有关数字签名证书的证书请求:        RA发起的注册请求、更新和自我注册请求。根        据每种请求的不同,CA以不同的方式来鉴别这些申请证书主体的身份。潜在的证书持有者在自我注册请求中提供一个证据证明自己的身份已经得到了RA的核实,该证据是由从RA        那里获得的秘密信息导出的。当用户与RA物理上在一起时,RA产生并签署基于RA的登        记请求来保证该用户的身份。在证书更新请求中,当前有效证书的主体可以用它们的私钥签                名来保证它们身份的真实性。RA发起的证书请求:        RA保证该用户的身份并将其和公钥绑定在一起。当CA接收到来自授权RA的证书请求时,        CA就处理该请求,如果接受,就生成新证书,并将其放到资料库中,然        后将证书发给相应的RA, CA也可以直接把新证书发给该证书的持有者。如果基于RA的证书请求不是来自一个授权的RA,即签名无效,        或者包含不匹配信息,CA将会拒绝该证书请        求。如果CA拒绝了该证书请求,它将会向RA报告失败并说明原因。在自我注册证书请求中,RA为潜在证书持有者提供了一个秘密信息。请求实体产生自己的                公私钥对,组成一个证书请求消息,并用相应的私钥签名,被签名部分包括基于RA提供的秘密导出的认证信息。CA接收来自实体的证书请求,通过认证信息验证请求者的身份并且验                证实体拥有相应的私钥。如果接受,CA就产生新证书,并将其放到资料库中,然后将证书发给证书持有者。如果认证信息验证不通过,签名无效,或者包含不匹配信息,CA将会拒绝该        证书请求。如果CA拒绝了自我注册证书请求,        它将会向申请者报告失败并说明原因。证书更新请求:申请者已确定的身份通过该更新请求消息来验证。证书持有者产生更新请求        并直接发给CA,         CA处理证书更新请求,如果正确的话,就把新证书发给证书持有者,并将其        放入资料库。如果签名是无效的,或者请求实体当前是非法的,或者CA认证业务说明或证书策略不允许更新请求,CA将会拒绝该证书更新请求。如果CA拒绝了更新请求,它将会向请                求实体报告失败并说明原因。b)颁发加密证书    CA可以支持某个请求者发出的加密证书的证书请求,        该请求者拥有该CA颁发的有效签名        证书。请求者的身份由对请求的数字签名来验证。本标准中规定请求者的密钥对由第三方集中产生并通过带外方式提供给CA}        在集中密钥管理证书请求中,证书持有者生成一个证书请求,说明自己想要的加密算法,并用        

GB/T               19771-2005        当前得到该CA认可的签名密钥来对该请求签名。CA响应该请求,发还一个证书和加密私钥。          c)交叉认证            在一定的约束条件下CA可向别的CA颁发证书。交叉认证的决定是在带外做出的,并且要通过认证业务说明和证书策略检查。每个CA都会对它们的使用者的路径验证做出适当的约        束。在获得别的CA的公钥后,        该CA生成证书并将其存放到资料库中。可选的,        交叉认证的CA之间可以交换证书,构造证书对并把它们放人资料库。    d)撤销证书CA产生和发布证书撤销列表(CRLs)         o CRL中包括所有被撤销但没有到期的证书。可选的,CA也可以颁发间接的和增量CRL。被颁发CRL的形式由CA的认证业务说明决定。        在CA为所有的撤销证书仅颁布唯一的CRI,的情况下:        1)新的CRI        ,产生时,老CRI,中的全部信息将放到它的里面,那些新被撤销的证书将被加人            到新的CRI,。老CRL中带certificateHold原因代码的证书也将被放人新的CRL,继续保持同样的原因代码,变成一个不同的原因代码,或是被新CRL忽略。如果被忽略就表明            CA将保证证书主体和公钥之间的绑定。那种决定撤销但还没有被撤销的证书将放人新            的CRI            ,,既使在新CRI,发布之前它已经到期了。2)在这种情况下,        CA只撤销它们自己颁发的证书。(撤销可能来自一个签名请求,或是CA            自己决定撤销。本标准中不考虑CA自己撤销证书的情况)撤销请求的签署者或者是证书持有者,或者是代表证书持有者或证书持有者组织的权威实体(比如被授权的RA),在把                        证书放人CRI,之前,CA要确认验证撤销请求。撤销请求的合法性包括请求签名的合法性。对RA签名的撤销请求进行带外验证,根据证书策略是可选的。            CA发布X.         509版本2的CRI,(版本2的CRL对应版本3的证书)。字段和扩展,以及赋给它们的值,要与6.         3. 2一致。产生和签署了CRI,之后,CA要把它放到资料库中去。    e)颁发证书、交叉证书和CRICA应当能够颁发证书,交叉证书对和CRI        ,以供PKI client检索。CA也应能颁发CA证书、交叉证书对、CRI        ,和终端实体的加密证书。终端实体数字签名证书的颁发是可选的。用于更        新目录的机制超出本标准范围。f)请求CA证书    CA应能向层次更高的CA申请证书,以支持PKI的层次信任模型。这个请求可以参考6.         6. 2中的描述。这个证书请求将通过6.2.3.4中描述的bas        icConstraints扩展来把该请求CA确定为一个实体。        5.2.3电子事务集合提供证书管理服务所需的电子事务如下:            处理终端实体的证书请求和证书撤销请求;将证书和CRI        .放人资料库;为了验证签名的有效性从资料库中检索证书和CRI        .    CA处理在CertReq消息中的RA发起的注册请求。CertReq消息由RA在PKIProtection结构里签名。通过签署请求消息,RA保证证书持有者的身份并且确认它拥有相应私钥。CA以CertRep消息回复RA或者证书持有者。如果接受请求,CertRep中包含新的证书。如果拒绝请求,报文中包含错误代码。(见6. 6. 2 )CA支持自我注册证书请求,    此时请求实体还不是证书持有者。CA要求请求实体利用带外方式从RA获得的秘密产生认证信息。这一认证信息代替RA的签名保证请求者的身份是经过RA核实的。以带外方式从RA获得的秘密可以用来产生mac或者带密钥的散列函数的对称密钥。请求实体产生

GB/T 19771-2005CertReq消息并且用相应的私钥签名。这一消息利用从RA获得的秘密加以保护。之后,CA产生Cer-tRep消息,如果请求消息正确,则CertRep中包含新的证书。如果拒绝请求,报文中包含错误代码。(见6. 6. 3和6.6.4)CA处理以Cer    tReq消息形式出现的证书更新请求。这种消息被请求实体发到CA。这个消息包括证书持有者的标识名,当前证书的序列号,新的公钥以及拥有相应私钥的证明。消息可以包括预定的有效期和建议的密钥id。这个消息可用证书持有者的有效证书(未过期,未被撤销)私钥签署。CA用CertRep消息回复申请者。这个消息包含一个新证书或者错误代码。如果颁发新证书的话,证书中将包含证书持有者的标识名和新的公钥。CA可以自由修改请求中的合法期限。如果申请消息中没有密钥标识符,CA将产生一个(见6.6.5)0CA应该接收从RA发来的Re    vReq消息。RevReq消息应该包括证书序列号或证书持有者的标识名。CA用RevRep消息回应。这个消息应该包括状态和失败信息,也可以包括撤销证书的附加细节。CA支持由第三方集中产生密钥对(并通过带外方式提供给CA)的加密证书请求。支持对第兰方    集中产生的密钥对颁发加密证书的CA要处理CertReq消息形式的请求。这些消息由请求证书的终端实体发送给CA。这些消息应当包括证书持有者的可辨别名,当前证书的序列号。可选的,该消息可包括一个有效期。该消息用证书持有者的未过期,未被撤销的签名证书的相应私钥签名。之后CA以CertRep消息的形式响应请求者。该消息包括新证书和加密私钥,或是错误代码。如果颁发证书的话,该证书就包括证书持有者的可辨别名和新的公钥。CA可以随意修改请求中希望的有效期。CA应该把CA证书、交叉证书对、CRL以及它颁发的终端实体的加密证书放入资料库。    5.3注册机构(RA)5.3.1概述    RA保证请求证书的实体的身份。RA可以通过要求实体用物理令牌来和RA进行物理上的接触或通过带外机制来验证身份。当实体物理上接触RA时,RA也要通过验证一个被签名的消息来验证它们拥有与公钥相应的私钥材料(见6.6.2)0    RA应该验证实体拥有一个完整的密钥对。在密钥对和实体身份被验证之后,RA签署并发送一个电子证书请求给相应的CA a没有与RA进行过物理接触的证书请求者,在进行证书请求时,必须具有RA提供给他的认证信    息。这一信息用于实体在自我注册请求中向CA证明自己的身份。本标准不对实现自我注册请求的带外事务的格式和内容进行规定。    RA可以对CA授权它们管理的实体证书请求证书撤销。RevReq的格式在6. 6. 7中定义。RA功能可以与CA在一起也可以在一个不同的设施中执行。RA本身既包括证书持有者的功能—请求、撤销和更新由CA颁发的证书(它得是该证书的主    体)(见5.4),又包括客户的功能—检索证书和CRI.以及验证证书认证路径(见5.5)05.3.2与互操作性有关的RA功能要求RA应该执行下列功能:    接受和验证证书请求;        向CA发送证书请求;        从资料库检索证书和CRL;        产生证书撤销请求。            RA应该能够连同CA的证书一起把新签署的证书发给证书持有者。RA应该可以代表不再拥有它们的私钥并且怀疑该私钥己泄露的证书持有者产生并签署证书撤销    请求(丢失而并不认为已泄露的签名密钥不是必须被撤销;这由策略决定。注意丢失的保密性的密钥无论如何都必须被撤销,否则发送方就会加密和传输接受方无法解秘的消息)。如果CA的认证业务说明允许,RA也应该可以代表证书持有者的组织产生并签署证书撤销请求。撤销请求由后来把它们发送

GB/T               19771-2005给颁发证书的CA的RA所签署。5.3.3事务集合RA所用电子事务能够实现终端实体证书的请求、发送和撤销,以及为了验证签名而从资料库中检    索证书和CRI.。下面将给出这些事务的一个概括;它们将在6. 6中具体地描述。RA接收来自潜在证书持有者的Ce    rtReq格式的证书请求。CertReq消息被潜在证书持有者在PKIProtection结构中所签署。在审查了请求者的凭证并确认该潜在证书持有者拥有相应的私钥之后,RA抽取公钥信息并且用RA的名字和签名建立一个新的CertReq消息。RA把该消息发送给CA.RA应该可以向证书持有者提供该CA的证书。    RA可以从CA接收CertRep消息。如果证书请求被拒绝,RA将审查从CA发来的错误代码并可能会发送一个新的请求。如果一个证书请求被接受了,RA可以向证书持有者提供新的证书。    RA应该在不再拥有它们自己私钥的证书持有者或证书持有者所在组织的要求下,产生撤销请求。通过签署这个请求,RA保证请求者的身份。RA应该可以产生RevReq消息,包括证书序列号或证书持有者的可辨别名。这个RevReq消息应该被一个RA所签署。CA应该用RevRep消息回应RAo    这个消息应该包括状态和失败信息,并且可以包括关于被撤销证书的附加细节。如果证书被撤销了,RA应该提供这个信息给请求者。如果请求被拒绝了,RA将审查错误代码并且可能再产生该请求。5.4证书持有者规范5.4.1概述PKI为证书持有者提供证书管理功能。证书持有者包括CAs,RAs和其他的终端实体。终端实体    可能是个人用户和计算机系统(例如路由器和防火墙),也可能是应用程序(CAs和RAs除外)。PKI证书持有者生成签名并且支持PKI事务来获取、更新和撤销他们的证书。    5.4.2与互操作性相关的PKI证书持有者功能要求证书持有者的功能:    生成签名;                生成证书请求;请求证书撤销;        请求证书更新(可选项)。        证书持有者同时也是客户,因此它也具备5.     5中定义的客户功能。5.4.3证书持有者事务集合证书持有者的事务能使证书持有者请求新的证书,以及撤销当前持有的证书。所有的证书持有者    事务都由发放证书的CA及其CA授权的RA执行。证书持有者应该能够请求撤销他们自己的证书。这个事务由CA执行,允许证书持有者签署他们    的证书撤销请求。证书持有者为每个他们希望撤销的证书产生一个RevReq消息并发送给CAoRevReq消息要包括撤销原因。CA产生RevRep消息并返还给证书持有者。这个事务过程在6.6.7中有详细描述。可选的,证书持有者能够实现证书更新请求。这个事务由CA执行,允许证书持有者签署自己的证    书请求(不需要RA验证其身份)。CA可以支持该项事务,但是它的具体使用由认证业务说明决定。在不与RA交互的情况下请求一个新的证书,证书持有者产生一个CertReq消息,并且使用新的和当前的私钥进行签名。CA产生CertRep消息,如果请求成功,就包含一个新的证书。如果请求被拒绝,就包含错误代码。证书持有者能够实现自我注册的证书请求。    证书持有者也可以实现加密证书请求。在此事务中,证书持有者产生一个证书请求,说明希望的密    钥管理算法,并用一个有效的签名密钥对该请求签名。CA响应一个证书和加了密的私钥或是错误代码。

GB/T 19771-20055.5客户规范5.5.1客户概述PKI客户使用PKI来为证书持有者和证书使用者,包括CA和其他的终端实体提供证书处理功    能。终端实体也可以包括RA,个人用户和计算机系统(如路由器和防火墙)。在最小意义上,    PKI客户验证签名,获得证书和CRLs,并验证证书认证路径。同时具有证书持有者身份的客户也能产生签名,也可以支持撤销或更新证书的PKI事务。5.5.2与互操作性相关的PKI客户功能要求    客户的最小功能集合:验证签名;                  从查询服务器中检索证书和CRLs ;验证证书认证路径。        5. 5. 3  PKI客户事务集合客户事务使客户能从资料库中获得证书和CRI    ,s。所有的事务都与证书资料库有关。所有的客户必须支持以下事务:        检索证书—这个事务允许一个用户利用LDAP绑定目录服务或指定资料库,并根据主体名或证书序列号和颁发者的名字检索证书;        检索CRI        .—这个事务允许一个用户利用LDAP绑定目录服务或指定资料库,来检索一个特定CA的当前CRL或是某个特定的CRL。所有的客户都必须支持轻型目录访问协议        M         DAP),以检索证书和CRLs。事务的详细规定参见RFC1777 06数据格式6.1数据格式概述    必须为PKI组件之间的互操作定义基本的数据格式。数据格式包括证书、CRL和事务格式。本标准包括了PKI组件之间、PKI client和PKI组件之间所有事务的数据格式。6.2证书格式本标准使用GB/T     16264. 8-2005的证书格式。虽然ITU-T建议的X. 509的修订版没有公布,但版本3的格式已经被广泛采用,并且ANSI的X9. 55和IETF的RFC 2459都对其作了详细说明。GB/T 16264. 8-2005的证书包括以下内容:        Version版本;Seri        al Number证书序列号;I        ssuer Signature Algorithm颁发者签名算法;I        ssuer Distinguished Name颁发者可辨别名;Val        idity Period证书有效时间;        Subject Distinguished Name主体可辨别名;Subj        ect Public Key Information主体公钥信息;        Issuer Unique Identifier颁发者唯一标识符(可选,本标准不使用);Subj        ect Unique Identifie:主体唯一标识符(可选,本标准不使用);Extensi        ons证书扩展(可选);I        ssuers Signature on all the above fields颁发者对以上所有域的签名。6.2. 1证书字段    X. 509证书语法的ASN. 1定义见附录A。出于签名考虑,证书用ASN. 1 DER编码表示。ASN. 1DER是一个为每个元素赋予标签、长度和值的编码系统。详见ISO/IEC 8825.1-2002.以下介绍GB/T     16264. 8-----2005的证书。除了可选的subjectUniqueID和issuerUniquelD字段,

GB/T                19771-2005CA应该产生下面这些字段,而且客户根据GB/T 16264. 8-2005可以处理它们。CA可以不颁发包括issuerUniqueID和subjectUniquelD的证书。客户也可以不处理subjectUniqueID和issuerUniqueID o他们可以拒绝那些含有这两部分字段的证书。a)      Versionversi        on字段表示证书的版本号。该字段的值应为2,以表示版本3证书。b)        Serial Number        serialNumber是CA给每个证书分配的一个整数。对一个给定的CA,它提供的证书序列号应该是唯一的(即,        颁发者和证书序列号唯一标识一个证书)。c)      Signatures        ignature字段包含了一个算法标识符,用于表示签署证书的算法。此字段包括一个algorith-mIdenti        fier,用于传递参数。在6. 2. 2. 2中列出了algorithmIdentifier的内容。证书不应该使用s        ignature字段去传递参数(看下面的Subject Public Key Information),因为该字段没有被        颁发者的签名保护。d)      Issuer Name        issuer Name字段提供了签署证书机构的全球唯一标识符。颁发者的名字是一个X. 500标识名。该标识名由属性类型和属性值组成。通常属性类型由X.         500系列建议定义,属性值为Di        rectoryString类型。Di        rectoryString可选择PrintableString, Teletex5tring, BMPString, UniversalString和        Utf8String中的一种。PrintableString是一个基本拉丁字符集,可使用大小写字母,数字和少量特殊字符。Tel        etexString是PrintableString的扩展集,在拉丁字符中加人了重音符和日本字符。BMPSt        ring是双字节字符集,它满足绝大多数的欧洲字符集。UniversalString是多字节字符集,        包括了所有的主要字符集。Utf8String是UniversalString的替代编码。当创建新名字时,CA要从Pri        ntableString, BMPString,和Utf8String里选择最严格的类型来创建Di        rectoryString。也就是说,仅需基本拉丁字符的AttributeValue一般就使用Print-abl        eString。包含重音符拉丁字符的AttributeValue就使用BMPString。当BMPString字符        f集不够用时才使用Ut8String,仍然保留Tel        etexString,和UniversalString是为了向后兼容性的需要,不应该在新主体的证书中使用它们。但是,        此种类型可能会在已经颁发的证书中使用。Clients可能会收到使用这些类型的证书。                ssuerAl可选的名字可放在itName扩展字段,一些GB/T 16264. 8-2005证书的使用者希望i        ssuer字段为空。然而,遵从本标准的证书中的这个字段都含有X. 500的可辨别名。e)      Validityval        idity字段说明了证书开始生效的日期(notBefore)和变成无效的日期(notAfter) o validity字段的时间表示形式用UTCTi        me或GeneralizedTimeo        对于1950年到2049年(含)的日期,validity字段一般使用UTCTTimeo UTCTTime使用格林威治时间,而且要精确到秒。秒要清楚表示,即使为零。UCTCTi        me的格式为YYMMD-DHHMMSSZ,          年字段做如下规定:        1)如果YY等于或大于50,年代为19YY;                2)如果YY小于50,年代为20YYo对于2050年以后的日期,val        idity字段一般用GeneralizedTimeo GeneralizedTime使用格林威治时间,而且要精确到秒。秒要清楚表示,即使为零。General        izedTime的格式为YYMMD-DHHMMSSZ.         GeneralizedTime不能包括分秒。(1950年前的日期对本标准来说无效,所以

GB/T 19771-2005        不予考虑。)f)      Subject Name        subject Name字段的目的是给证书主体提供唯一的标识符。主体名使用X. 500可辨别名。像在i        ssuer name中描述的一样,在构建DirectoryString时CA使用最严格的选择。可替代的名字可放在subj        ectAltName扩展中,GB/T 16264. 8-2005证书的使用者希望本字段为空。然而,遵从本标准的证书都在这个字段里带有主体的X.         500可辨别名。    g)  Subject Public Key InformationSub        jectPublicKeyInfo字段是用来携带公钥和公钥使用的算法的。它包括subjectPublicKey字段和al        gorithm1dentifie:字段,algorithmIdentifier字段有algorithm and parameters次级          字段。h)      Unique Identifiers证书里的subi        ectUniqueIdentifie:和issuerUniqueIdentifier字段是用来处理主体名和颁发者名被过时重用的可能性。CA不会颁发含有这些唯一标识符的证书。PKI客户也不会被要求        去处理含有这些标识符的证书。当然,如果它们不处理这些字段,他们会拒绝包含这些字段        的证书。          i    )  Extesionext        ension字段的增加是GB/T 16264. 8-2005证书最主要的改变。扩展有三部分:extnId,标识该扩展,cri        tical,说明该扩展是critical或noncritical的,extnValue,扩展值。一个证书可以        包括任意多个扩展字段,其中也包括局部定义的扩展。如果设置了critical标志,就要求客户或者能够处理该扩展字段,或者不能验证该证书。        在GB/T         16264. 8-2005中有完整的扩展标准。6. 2. 3详述了这些标准扩展在本标准中的使用。        j    )Issuer'sSi gnature实际的证书签名使用SI        GNED参数类型,扩展为被签名的数据的SEQUENCE(例如,证书),        算法标识符,以及一个BIT STRING形式的实际签名。algorithmIdentifier标识了用来对证书签名的算法。尽管这个al        gorithmIdentifier字段包括了一个parameters字段,在理论上可以用来传递签名算法的参数(        见6. 2. 2. 3 ),但它本身并不是一个被签名的对象。parameters字段不能用来传递参数。当需要获得验证签名的参数时,应当从颁发证书的CA的证书的subject        -Publ        icKeyInfo字段中获得相应参数。6.2.2加密算法6.2.2. 1加密算法概述    本标准使用四类算法:散列函数、数字签名算法、消息认证算法和对称加密算法。当描述数字签名算法时,通常与散列函数一起介绍。当描述证书中的公钥时,散列函数被忽略。这就允许当散列函数被另一个更强的算法替换时,证书也能使用。    要求一个PKI组件至少应该实现其中一个数字签名算法。对于简单的PKI客户组件来说,能验证由其中一个算法生成的签名已经足够了;要求其他的组件能够产生和验证由其中一个算法生成的签名。遵守本标准的PKI组件应该支持一个加密算法。    允许相应的组件使用额外的算法,甚至当它们不能使用所有的这些算法时。比如,支持这里的一个密钥协定算法的客户可以使用别的密钥传递算法,即使它不支持这里的密钥传递算法。6.2.2.2散列函数    散列函数用于为证书和CR工J产生数字签名,它也用于将共享秘密散列为报文确认码。本标准中建议使用一种散列函数。以SHA-1为例,它是通过对象标识符以及数字签名算法表示    的。SHA-1的ASN. 1对象标识符是:

GB/T             19771-2005shal       OBJECT IDENTIFIER::二{    iso(1)identified-organization(3) oiw(14) secsig(3) algorithm(2) 26}只要该对象标识符在算法类型中出现,相应的参数域应该被忽略,如果出现,必须为NULL.    6.2.2.3数字签名算法GB/T     16264. 8-2005中指定了发放证书的签名算法和其他主体的加密算法。这两种算法可以是不同的。本标准以RFC 2313中的RSA算法为例。RSA的签名算法在RFC     2313中定义。RSA也可使用几种散列算法。本标准中引用的RSA定义为:pkcs-1       OBJECT IDENTIFIER::={iso(1)member-body(2)U S(840)rsadsi                      (113549) pkcs(1)1}      sha-lWithRSAEncryption OBJECT IDENTIFIER::={pkcs-1(1)5}在RSA签署的证书和证书撤销列表中,    它应出现在SIGNED类型中和signature字段中。只要实体的标识符作为算法标识符出现,那么参数的值必须是NULI_o当证书和证书撤销列表签署时,签名将按下列规则生成和加密:证书和证书撤销列表按ASN.     1DER加密,并作为SHA-1的散列函数的输入。SHA-1散列函数的输出为OCTET STRING并按照RSA的加密算法加密。签署证书时,RSA生成一个整数yo y的值按照ASN. 1的BIT STRING输出。在y的signature字段包含了证书或证书撤销列表。(通常分为两步,整数y先转化为octet string。然后再转化为bit string. )当CA发放了一个证书,并且它的subj    ectPublicKeylnfo字段包含了RSA的公钥,那么对象标识符rsaEncryption将作为algorithmIdentifier出现在subjectPublickeyInfo字段中,来标识RSA的公钥。      rsaEncryption OBJECT IDENTIFIER::={pkcs-1 1}只要rsaEncrypti    on对象标识符在算法类型中出现,那么参数字段必为NULL,    RSA的公钥必须为ASN. 1的RSAPublicKey:的类型。RSAPubl      icKey::=SEQUENCE{modul        us                     INTEGER,一npubl      icExponent       INTEGER一e)系数为n,     publicExponent为公共指数e, RSAPublicKey编码后为BIT STRING subjectPublicKey的值。RSAPubl    icKey既出现在RSA的签名密钥中,也在RSA的加密密钥中出现。虽然不禁止只使用一个密钥来进行加密和签名,但不提倡这样做。6.2.2.4消息认证算法    本标准建议支持两种消息认证算法。以DES-MAC和SHA1-MAC为例,推荐使用SHAT-MAC,DES-MAC是为了保证向后的兼容性。SHA1-MAC      本算法通过为数据计算一个SHA-    i HMAC值(在RFC2104中详细定义)而提供完整性保护。它的算法标识符如下:SHA1一HMAC     OBJECT IDENTIFIER::={136155812}本标准中使用的mac长度为96bi    toDES-MAC      本算法通过为数据计算一个DES     MAC值(在FIPS-113中详细定义)而提供完整性保护。它的算法标识符如下:DES-MAC     OBJECT IDENTIFIER::={i        so(1)identified-organization(3) oiw(14) secsig(3) algorithm(2) 10

GB/T 19771-2005一MAC的长度是一个整数型的参数,在本标准中限制为32}            参数域包含一个整数,表明了MAC的长度,在本标准中规定该值取为3206.2.2.5对称加密算法本标准使用了对称密钥算法来实现挑战一响应协议和保护私钥传输。在本标准中,以使用t    DEA(Triple Data Encryption Algorithm)算法的ECB模式为例说明对称密钥算法的使用。t    DEA算法在ANSI X9. 52中定义。tDEA算法基于DES算法,使用3个56 bit的密钥:Kl,K2和K3。在本标准中,使用双密钥模式,K1=K3e tDEA算法的密钥绝对不能出现在GB/T 16264. 8-2005证书中。有的情况下,会在PKIMessage中传输tDEA的密钥,这时候,tDEA的密钥必须是经过加密的。下文说明了tDEA的双密钥、ECB模式的加密方法和密钥的编码格式。    t    DEA算法有AlgorithmIdentifier,而且要有tECB的OID。双密钥选项在ECBParams结构中指明。ASN.     1表示如下:TDEAI    dentifier::=AlgorithmIdentifier({TDEAModes}}    TDEAModes ALGORITHM-ID::二{{OID     tECB PARMS ECBParms}}一mode 1一{OID     tCBC PARMS TDEAParms}}一mode 2一{OID     tCBC-I PARMS TDEAParms}}一mode 3一    {OID tCFB PARMS CFBParms}}一mode 4一{OID     tCFB-P PARMS CFBParms)}一mode 5一{OI    D tOFB PARMS TDEAParms}}一mode 6一{OID     tOFB-I PARMS TDEAParms},一mode 7一}    ECBParms::=TDEAParms     (WITH COMPONENTS{·一i    vGeneration ABSENT})    TDEAParms::=SEQUENCE{keyi    ng0ptions Keying0ptions OPTIONAL,i    vGeneration [0] IVGeneration OPTIONAL}      一本标准中只支持双密钥        Keying0ptions::=BIT STRING{opti    on-1 (0),一(3-key) K1,K2 and K3 are independent keysopti    on-2 (1),一(2-key) K1 and K2 are independent and K3=K1opti    on-3 (2)一(1-key) Kl=K2=K3)      i    d-ansi-x952 OBJECT IDENTIFIER::={i    so(1)member-body(2) us(840) ansi-x952(10047)}Second     CRADA Draft,Version 2mode     OBJECT IDENTIFIER::={id-ansi-x952 1}tECB     OBJECT IDENTIFIER::={mode 1}有的情况下,需要对t    DEA的密钥进行编码,就是两个密钥的直接串接。TwoKeys二[K1}K2],TwoKeys的最高位比特是Kl的最高位比特。

GB/T               19771-20056.2.3证书扩展6.2.3. 1证书扩展概述在GB/T     16264. 8-2005中定义了一套标准扩展集合。扩展由三部分组成:扩展名称、关键性标识位和扩展取值。在GB/T 16264. 8-2005中做了如下规定:客户如果不能处理设置了关键性标识位的扩展,就不能验证证书是否有效。标准化的扩展可以分为四类:密钥和策略信息;主体和颁发者的特征;验证路径限制;CRL标识    扩展。6.2.3.2密钥和策略信息    此类扩展用于区分特定的公钥和证书,它们可以用于区别具有多个证书的证书认证机构(CA)中某一特定的公钥/证书,有助于客户查找某个特定的CA证书,以便建立验证路径。这些扩展可以限制密钥用途,提供CA证书中关于策略映射的信息。a)权威密钥标识符    扩展aut        horityKeyIdentifier提供了一种区别签名证书的特定私钥的手段,标识性信息既可以        基于密钥标识符,也可以基于颁布者名字和序列号。在本标准中,使用密钥标识符的方法。本扩展用于具有多个签名密钥的颁发者(既可能是多个密钥对,也可能是正在进行密钥更换),证                书认证机构(CA)应当能够产生本扩展,而且客户应能查找和验证具有多个数字签名密钥的证书颁发者CA的验证路径。建议客户既能够处理密钥标识符,又能够处理由证书颁发者和证        书序列号组成的密钥标识符,便于找到验证路径。            b)主体密钥标识符本字段用于区别一个主体所拥有的多个密钥,在每个已颁发的证书中都应当包含本字段,本        扩展应当是非关键的。        c)密钥用途            扩展keyUsage定义了证书中密钥在使用上的限制,这种限制是基于策略和/或用途的(如签名,        加密)。CA应当能产生该扩展,而客户应当能处理该扩展。如果keyUasge定义为BITSTRING,        所有遵从本标准的CA都应当在终端实体证书中设置一个值,例如,一个终端实体        证书中的KeyUsage不应当既是digitalSig nature又是dataEncipherment,本扩展应当设置为关键性的扩展。        d)私钥使用期限    扩展pr        ivateKeyUsagePeriod仅适用于数字签名密钥。在私钥使用期限之外的签名是无效        的,CA可以产生此扩展,但客户不要求处理此扩展。e)扩展的密钥使用范围    扩展ext        endedKeyUsage用于定义在应用中对证书密钥的使用限制,如果使用此扩展,就不考虑互操作的因素。符合本标准的PKI组件不要求支持该扩展。        f)证书策略            扩展certificatePolicies包括一个或多个对象标识符(OIDs),每个OID代表颁发本证书的一个策略。CA应当能够产生带有一个或多个证书策略OID的证书,CA应当支持一个特殊策略        OI        D,即任意策略anyPolicy, anyPolicy的()ID可以认为是一个通用符,能够匹配任何策略。        客户应当能够处理policyldentifier字段,并与可接受的策略列表(策略列表取决于相应的应用程序)中的标识进行比较。如果提供了一个可接受策略列表,并且至少要有一个列表中的策略        或其映射策略存在于certi        ficatePolicy中时,客户才能验证证书认证路径。如果在证书策略中存在特定策略标识符anyPol        icy,并且没有禁止任何策略(见6. 2. 3. 4 ),就可以认为列表中的所有策略都可以接受。        要求符合本标准的组件能处理c        ertificatePolicy的子域policyQualifiers,并且支持id-pkix-cps

GB/T 19771-2005和i        d-pkix-unotice(见RFC2459 )。符合本标准的CA不要求能产生该子域。9)策略映射            此非关键性扩展用于CA证书。它罗列了对象标识符对;每对标识符包括issuerDomainPolicy和sub        jectDomainPolicy。它意味着颁发CA认为其issuerDomainPolicy等价于主体CA的s        ubjectDomainPolicy. CA应当能产生扩展policyMappings,客户也应能够处理该扩展。6.2.3.3证书主体和颁发者特征扩展s    ubjectAltName, issuerAltName, subjectDirectoryAttributes和authority] nformationAccess都是非关键性的。它们提供了关于主体和颁发者的其他名称和特征的附加信息。a)别名    subj        etAltName和issuerAltName扩展提供了证书主体和证书颁发者的附加信息,这些附加信息包括RFC822名称(电子邮件地址),DNS名称和统一资源标识符(URI)。扩展中可以包        括多个名称。如果需要在证书中提供这些信息,        就应当使用扩展subjectAltName和issuer-Al          tName o        根据本标准,扩展subjectAltName和issuerAltName应当是非关键的。识别这些扩展的应用没有必要能支持所有可能的选择。如果应用不能识别证书中的别名,        就可以忽略该扩展。在本标准中,扩展i        ssuerAltName中包括URI信息,URI明确了颁发者证书的位置,这可以用        来验证数字证书中的签名。在本标准中没有规定subjectAltName中包含的信息的意义。如果证书认证机构(CA)的证书不能从X.         500目录服务中得到,CA就应当在证书中的别名扩展中包含相应的URI信息,以指出签名者证书的位置。要求客户能处理URI别名格式,必须        能够识别LDAP         URL[RFC1959]。不要求客户能识别其他URI格式。b)主体目录属性    扩展subj        ectDirectoryAttributes可以包含任何关于主体的X. 500目录属性信息。本扩展是非关键性的。本扩展的实现和使用是可选的。        c)权威机构信息存取            扩展authorityInformationAccess中保存如何获得颁发CA和服务的信息。信息和服务可以包括在线验证服务和CA策略数据。(        CRI,的位置信息不在本扩展域显示,该信息由cRLDis-t        ributionPoints扩展提供。)6.2.3.4验证路径限制扩展ba    sicConstraints, nameConstraints和policyConstraints用于限制有效的验证路径。    a)基本约束扩展basi        cConstraints通过CA部分的信息指定证书的实体是否是CA,通过pathl.enCon-strai        nt部分的信息指定验证路径的长度。CA应当在证书中能产生扩展basicConstraints,客户也应能够处理本扩展。只有在CA为Tr        ue的时候,path LenConstraint才有意义。        在所有CA证书中都应当包括basicConstraints扩展,而且CA应当设置为True。在终端实体的证书中也可以包括扩展basi        cConstraints。如果在终端实体的证书中出现扩展basicCon-strai        nts,它应当是一个空的序列值。在所有CA证书中的扩展basicConstraints应当设置成关键性的。              b)名字约束扩展nameConstrai        nts只能用在CA证书中,它指定证书的验证路径中所有后续证书的名字范围。CA应当在证书中能产生扩展nameConstrai        nts,客户也应能够处理该扩展。该扩展应设置为关键性的。          c)策略约束    扩展pol        icyConstraints只用于CA证书。它可以以两种方式对策略解释进行限制:既可以限

GB/T               19771-2005制策略映射,又可以要求在验证路径中的每个证书包括一个可接受的策略标识符。                i本扩展包括两个字段:nhibitPolicyMapping和requireExplicitpolicy。如果inhibitPolicyMap-pi        ng存在,它的值代表验证路径中的策略映射不再有效之前的其他证书的个数。如果r        equireExplicitPolicy存在,在后续的证书中应当明确包含可接受的策略标识符。RequireEx-pl        icitpolicy的值代表在验证路径中要求明确的策略前的其他证书的个数。CA应当在颁发证书中包括本扩展,客户应能够处理本扩展。该扩展应设置为关键性的。            d)禁止anyPolicy本扩展禁止在今后的证书中使用anyPol        icy。此关键性的扩展可以出现在颁发给CA的证书中。禁止策略意味着特殊策略标识符a        nyPolicy OID(值为{{2 5 2932。})不能和其他证书策略匹配。该扩展的值是I        NTEGER,代表在验证路径中不再允许anyPolicy之前的其他证书的个数。例如,        1意味着any-policy只能在本证书的主体所颁发的证书中处理,在验证路径中的其他证书中不能使用。CA应当能够产生此扩展,客户应能够处理本扩展。        6. 2. 3. 5  CRL标识扩展本类扩展包含如何获得证书撤销列表(CRL)的信息。通过标识CRI,和颁发CRL者的名称(颁发    者可能不是产生证书的CA)的方式,可以将大的CRI,列表划分为多个小CRL列表。    CRL分发点:CRI,    DistributionPoints扩展标识CRI、分发点,或指导客户如何验证一个已撤销的证书。本扩展由三部分字段组成:distributionPoint, reasons和cRl.Issueraa)      DistributionPoint存放如何获得CRI,的位置信息。如果本字段缺省,CRL分发点的名字就是颁发者名字。在CA颁发的CRI        ,很大的情况下,此字段提供了一种将CR工、划分为多个可管        理片断的机制。b)      Reasons存放相应的distributionPoint分发的CRI一撤销的原因。如果reasons不出现,在dis-t        ributePoints分发的CRI,中可以包括由于任何原因而撤销的证书。不要求客户能处理rea-sons.                  c)  CRLIssuer确定分发并签名CRL的权威机构。如果该字段不出现,CRL颁发者与证书颁发者相同。使用本字段可以建立统一的CRL,包括由多个CA颁发的证书。        CAs应当能够产生带有di    stributePoint部分的cRLDistributionPoints扩展。如果不能从公共的X. 500目录服务中获得CRI一列表,CA应当在distributionPoint中用URI别名格式来标注相应CRL列表的位置。要求客户能够处理cRI.DistributionPoint扩展。必须能够识别URI格式,至少能够处理LDAP URI格式。如果使用了cRI,Issuer,要求客户能够使用分发点并验证CRL。在6. 3.3中对分发点做进一步的讨论。6.3证书撤销列表6.3.1证书撤销列表概述证书撤销列表(CRL)用来列出那些已被撤销或冻结的但并未过期的证书。证书撤销的原因多种多    样,例如日常的管理撤销(当证书的主体离开了发放组织,或责任和证书属性发生了变化),或私钥被泄密。“冻结”是指CA不再确保证书主体和公钥之间的绑定。X.     509 v2证书撤销列表格式增加了一些可选扩展,在概念上与证书扩展相似。CAs应能产生如下的X. 509 v2 CRLs,当验证证书认证路径时客户也应能处理它们。颁发CRLs的CA不一定必须是颁发该撤销证书的CA。一些CAs只负责发放CRLs o X. 509 v2 CRI、包含以下信息:Versi        on版本;        Issuer Signature Algorithm颁发者签名算法;I        ssuer Distinguished Name颁发者可辨别名;Thi        s Update本次更新;

GB/T 19771-2005Ne        xt Update下次更新;Revoked         Certificates撤销的证书,零个或多个以下序列的序列:        令        Certificate Serial Number证书序列号,今Revocat        ion Date撤销日期,令CRL         Entry Extensions  CRT. Entry扩展(可选);CRL         Extensions  CRT,扩展(可选);颁发者对以上字段的签名。        6. 3. 2  CRL字段X.     509 v2 CRT.的ASN. 1句法见附录A。对于签名计算,签名的输人数据是ASN. I DER形式的编码。ASN. 1 DER编码对每一个元素来说都是标签、长度、值的编码系统。以下各项描述了X. 509 v2CRL的使用:a)      Version这个字段描述了编码后的CRT        ,的版本。该字段的值应是I,表明是v2 CRL。b)      Signature该字段包含签署CRL的算法的算法标识符。它的内容与证书的si        gnature字段一样。关于这个字段的信息见6.2.1中关于s        ignature字段的定义。CRT,可以被6. 2. 2. 2中标识的任何算法签名;        通常,CA使用同一算法来对证书和CRT、签名。c)        Issuer Name        issuer字段提供了签署CRT,的CA的全球唯一标识名。颁发者的名字是X. 500可辨别名。本标准不支持CRT.颁发者名字为空的CRL         od)      This Updatethi        sUpdate字段指定了该CRL的日期。此字段可以是UTCTime或GeneralizedTime。对于本标准,        thisUpdate字段遵从证书的validity字段的规则。(见6.2.1)e)      Next Updatenext        Update字段指定了下一个CRL颁发的日期。下一个CRL颁发的日期可以在指定日期        之前,但不可在指定日期之后。此字段可以是UTCTime或GeneralizedTime。对于本标准,next        Update字段遵从证书的validity字段的规则。(见6.2. 1)f)      Revoked Certificatesr        evokedCertificates字段是一个已经被撤销的证书的列表。每个被撤销证书包含:1)证书序列号(在userCerti        ficate字段中指出)。它包含被撤销证书的serialNumber字段的              值。它必须与颁发CA的名字一起使用以识别一个已经被撤销但还未到期的证书。2)包含撤销日期的r        evocationDate字段。本字段取值遵从证书的validity字段的规则。(见6.                 2. 1)3)          CRL Entry扩展(可选)(见6. 3. 4 )。它可以给出证书撤销的原因,说明证书无效日期,也可以说明发放该被撤销证书的CA的名字(或许与颁发CRL的CA不是同一个)。注意:            我们假定颁发CRI            _的CA和颁发被撤销证书的CA是同一个,除非CRI. Entry扩展包含certi            ficatelssuer字段。6. 3. 3  CRL扩展1        SO/ITU所定义的X. 509 v2 CRLs扩展提供了对全部CRLs附加其他信息的方法。每个CRL扩展被设计为critical或noncritical.(关键的或非关键的)如果客户碰到一个不能处理的关键性扩展,将无法对该CRL进行验证。本条描述了应被支持的CRI    .扩展。当CA能够产生一个CRL的扩展且客户能够处理该扩展时,此CRI_扩展才有效。

GB/T                19771-2005a)机构密钥标识符    authorityKeyIdentifier,非关键性CRI,扩展,标识了CA用来签署CRI,的密钥。当CA使用多个密钥时该扩展是有用的;它使得不同的密钥得以区分(例如,密钥更新时)。身份的鉴定可        基于密钥标识符或发放者名字和序列号。所有的CRI.s都应有密钥标识名。当发放者拥有多个签名密钥时(或多个密钥对,或是在密钥更新期间),该扩展是很有用的。当发放CA有多个    签名密钥对时,在所有的CRI,扩展里都应包括该扩展,并且客户也应能够找到并验证CRI    ,验证路径。客户如果要查找证书认证路径,    必须能够处理authorityKeyldentifie:的密钥标识符    或证书发放者名加上序列号。b)颁发者别名    issuerAltName,非关键性CRI,扩展字段,包含一个或多个CA别名。别名一旦出现就放置在i    ssuesrAltName里。并非所有的别名格式都要被识别处理,识别不出的别名格式可以被忽略。CA可在CRLs中产生该扩展,然而客户可以不予处理。    c)  CRL编号cRLNumber,非关键性扩展字段,是一个单调增加的序列号,    该CRI,由CA通过特定的CA目    录人口或CRL分布点发放。该扩展可以用来通知证书使用者整个CRL的非固定时间发布,或是便于确定何时某一CRL替代了另一CRI,。在CRL中应该包括该扩展。    d)颁发分布点i    ssuingDistributionPoint字段是非关键性的扩展,决定了一个特定CRI,的CRL分布点。一个分布点就是一个用来检索CRI    ,的目录入口,它可以与CA的目录人口不同。CA要用密钥对CRI    ,加密。CR工J分布点没有自己的密钥对。另外,i    ssuingDistributionPoint字段指定的CRLs可能只针对终端实体的证书,或者只针对CA证书,    或者只针对由于某种特定原因撤销的证书。最后,该扩展也可以确定一个间接CRL,间接CRI    一是由与发放被撤销证书CA不同的CA发放的。间接CRI,包含以下组件:di        stributionPoint,给出了分布点的名字,遵循X. 500标识名规则;onl        yContainsUserCerts,布尔变量,表明该CRI,只包含终端实体证书;onl        yContainsCACerts,布尔变量,表明该CRI、只包含CA证书;onl        ySomeReasons,一个ReasonFlag位串,标明CRL中所列证书的撤销原因;如下:.ke        yCompromise,表明密钥泄漏或怀疑密钥泄漏,.cACompromi        se,表明该证书撤销的原因是CA密钥泄漏,它只用于撤销CA证书,.af        filiationChanged,表明该证书撤销的原因是证书主体的从属关系改变了,令superseded,表明该证书已被代替,        令c        ertificateHold,表明证书处于冻结状态,可能会被撤销,.c        essationOfOperation,表明该证书的目的已经不再被需要,但并不是密钥被泄漏;        IndlrectCRI.,布尔变量,表明这是一个间接CRL.客户应能处理这个字段。    e)增量CRI,指示符de    ltaCRLIndicato:是一个关键CRI扩展,它确定一个增量CRI,。对于那些采用非CRL结构存储撤销信息的用户程序来说,增量CRI可以有效地节省处理时间。它允许把变化的信息增        加到本地数据库里,忽略掉那些本地数据库中已经存在的未改变的信息部分。BaseCRLNumber的值表明基础CRI的CRI,序列号,基础CRI    、是生成增量CRI,的开始点。    增量CRI,包含基础CRI,和当前CRI,之间的变化部分。是否提供增量CRL要由CA来决定。    客户可以利用本地CRI    ,和增量CRI合成一个CRI.,要注意的是如果本地CRI,的CRI、序列

GBJT 19771-2005号小于增量CRI.中的BaseCRLNumber,合成的CRI        .就不正确。如果增量CRL含有一个        CRL序号扩展,那么合成的CRL的CRI.序号就是该扩展的值。客户和CA是否支持增量CRL是可选的。        f    )  CRL扩展使用总结表1总结了标准CRL扩展,表2总结了这些标准CRI    .扩展的使用。表1                                 CRL扩展概要希爪月表2                              CRL扩展在本标准中的使用6. 3. 4    CRL Entry扩展X.     509 v2 CRLs所定义的Entry扩展提供了获取CRI.每条附加信息的方法。每个CRL Entry扩展被设计为关键性或非关键性。如果不能处理关键性扩展,该CRL的验证将是无效的。如果是不可识别的非关键性CRL Entry扩展,则可以忽略。a)原因代码            reasonCode是非关键性CRL Entry扩展,标明了证书撤销原因。CA应当能够生成该扩展,但客户是否要处理reasonCode扩展则是可选的。下面列举的是reasonCode的取值:        AKcCDIseRurlytLiShaNndog: DmX-e}IfrbsKt;iChuadRAylcL.#e1*`ronM tiPAf,."C}R1L