信息安全技术公钥基础设施数字证书格式(GB-T 20518-2018).docx
GB/T ××××200×××××-××-××实施××××-××-××发布信息安全技术 公钥基础设施 数字证书格式Information security technology-public key infrastructure-digital certificate format (报批稿)本稿完成日期:2016年12月GB/T XXXXXXXX中华人民共和国国家标准ICS 35.100.70L 79备案号:1GB/T XXXXXXXX目 次前言II1 范围12 规范性引用文件13 术语和定义14 缩略语25 数字证书与CRL25.1 概述25.2 数字证书格式35.3CRL格式206 算法技术的支持24附录A(规范性附录)证书的结构25附录B(规范性附录)证书的结构实例27附录C(规范性附录)证书撤销列表内容表29附录D(资料性附录)数字证书编码举例45附录E(资料性附录)算法技术支持49I前 言本标准依据GB/T1.1-2009给出的规则起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。本标准由国家密码管理局提出。本标准由全国信息安全标准化技术委员会(SAC/TC260)归口。本标准的附录A是规范性附录。本标准的附录B为规范性附录。本标准的附录C为规范性附录。本标准的附录D为资料性附录。本标准的附录E为资料性附录。本标准修订了GB/T 20518-2006信息安全技术 公钥基础设施 数字证书格式,增加了对SM2和SM3密码算法的支持,增加了证书撤销列表的基本结构以及数字证书格式中扩展项的内容,去掉了MD5,SHA-1算法的介绍。本标准修订稿起草单位:上海格尔软件股份有限公司、长春吉大正元信息技术股份有限公司、上海市数字证书认证中心有限公司、中国金融认证中心、北京海泰方圆科技有限公司、北京数字认证股份有限公司、无锡江南信息安全工程技术中心、成都卫士通信息产业股份有限公司、兴唐通信科技有限公司、山东得安信息技术有限公司、国家信息安全工程技术研究中心。 本标准修订稿主要起草人:刘平、郑强、许俊、赵丽丽、韩玮、赵改侠、傅大鹏、蒋红宇、罗俊、徐明翼、王妮娜、孔凡玉、袁锋。49信息安全技术 公钥基础设施 数字证书格式1 范围本标准规定了数字证书和证书撤销列表的基本结构,并对数字证书和证书撤销列表中的各数据项内容进行了描述。本标准适用于数字证书认证系统的研发、数字证书认证机构的运营以及基于数字证书的安全应用。2 规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。GB/T 16262.1-2006 信息技术 抽象语法记法一(ASN.1):基本记法规范GB/T 16264.82005 信息技术 开放系统互连 目录 公钥和属性证书框架GB/T AAAA SM2密码算法使用规范GB/T BBBB SM2密码算法加密签名消息语法格式RFC 5280:互联网X.509公钥基础设施证书和CRL轮廓PKCS #7 Cryptographic Message Syntax3 术语和定义 下列术语和定义适用于本文件。3.1公钥基础设施public Key Infrastructure支持公钥管理体制的基础设施,提供鉴别、加密、完整性和不可否认性服务。3.2公钥证书 Public Key Certificate用户的公钥连同其他信息,并由发布该证书的证书认证机构的私钥进行加密使其不可伪造。3.3证书撤销列表Certificate Revocation List 一个已标识的列表,它指定了一套证书颁发者确认为无效的证书。除了普通CRL外,还定义了一些特殊的CRL类型用于覆盖特殊领域的CRLs。3.4证书序列号Certificate Serial Number在CA颁发的证书范围内为每个证书分配的一个整数值。此整数值对于该CA所颁发的每一张证书必须是唯一的。3.5证书认证机构Certification Authority受用户信任,负责创建和分配证书的权威机构。证书认证机构也可以为用户创建密钥。3.6证书撤销列表分发点 CRL Distribution Point一个CRL的目录项或其他CRL分发源,通过CRL分发点分发的CRL可以只含有某个CA所颁发的证书全集中的某个子集的撤销项,也可以包括有多个CA的撤销项。3.7数字证书 Digital Certificate数字证书是由国家认可的,具有权威性、可信性和公正性的第三方证书认证机构(CA)进行数字签名的一个可信的数字化文件。4 缩略语下列缩略语适用于本文件。 CA 证书认证机构( Certification Authority)CRL 证书撤销列表(Certificate Revocation List)DIT 目录信息树系统(Directory Information Tree)OID 对象标识符(Object ID)PKI 公钥基础设施(Public key infrastructure) 5 数字证书与CRL5.1 概述数字证书具有以下的特性:任何能够获得和使用认证机构公钥的用户都可以恢复认证机构所认证的公钥。除了认证机构,没有其他机构能够更改证书,证书是不可伪造的。由于证书是不可伪造的,所以可以通过将其放置在目录中来发布,而不需要以后特意去保护它们。认证机构通过对信息集合的签名来生成用户证书,信息集合包括可辨别的用户名、公钥以及一个可选的包含用户附加信息的唯一性标识符。唯一性标识符内容的确切格式这里未做规定,而留给认证机构去定义。唯一性标识符可以是诸如对象标识符、证书、日期或是说明有关可辨别用户名的有效性的证书的其它形式。具体地说,如果一个用户证书的可辨别名为A,唯一性标识符为UA,并且该证书是由名为CA,其唯一性标识符为UCA的认证机构生成的,则用户证书具有下列的形式:CA<<A>>=CAV,SN,AI,CA,UCA,A,UA,Ap,TA这里V为证书版本;SN为证书序列号;AI为用来签署证书的算法标识符;UCA为CA的可选的唯一性标识符;UA为用户A的可选的唯一性标识符;Ap为用户A的公钥;TA表示证书的有效期,由两个日期组成,两者之间的时间段即是证书的有效期。证书有效期是一个时间区间,在这个时间区间里,CA必须保证维护该证书的状态信息,也就是发布有关撤销的信息数据。由于假定TA在不小于24小时的周期内变化,要求系统以格林威治时间为基准时间。证书上的签名可被任何知道CA公钥CAp的用户用来验证证书的有效性。CRL是CA对撤销的证书而签发的一个列表文件,该文件可用于应用系统鉴别用户证书的有效性。CRL遵循X.509V2标准的证书撤销列表格式。5.2 数字证书格式5.2.1 综述本标准采用GB/T 16262-1系列标准的特定编码规则(DER)对下列证书项中的各项信息进行编码,组成特定的证书数据结构。ASN.1 DER 编码是关于每个元素的标记、长度和值的编码系统。5.2.2 基本证书域的数据结构数字证书的基本数据结构如下:Certificate := SEQUENCE tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signatureValue BIT STRING TBSCertificate := SEQUENCE version 0 EXPLICIT Version DEFAUT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo, issuerUniqueID 1 IMPLICIT UniqueIdentifier OPTIONAL, - 如果出现,version必须是v2或者v3subjectUniqueID 2 IMPLICIT UniqueIdentifier OPTIONAL, - 如果出现,version必须是v2或者v3extensions 3 EXPLICIT Extensions OPTIONAL 扩展项 - 如果出现, version 必须是v3Version := INTEGER v1(0), v2(1), v3(2) CertificateSerialNumber := INTEGER Validity := SEQUENCE notBefore Time, notAfter Time Time := CHOICE utcTime UTCTime, generalTime GeneralizedTime UniqueIdentifier := BIT STRINGSubjectPublicKeyInfo := SEQUENCE algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING Extensions := SEQUENCE SIZE (1.MAX) OF ExtensionExtension := SEQUENCE extnID OBJECT IDENTIFIER, critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING 上述的证书数据结构由tbsCertificate, signatureAlgorithm和signatureValue三个域构成。这些域的含义如下:tbsCertificate域包含了主体名称和签发者名称、主体的公钥、证书的有效期以及其它的相关信息。signatureAlgorithm域包含证书签发机构签发该证书所使用的密码算法的标识符。一个算法标识符的ASN.1结构如下:AlgorithmIdentifier := SEQUENCE algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL 算法标识符用来标识一个密码算法,其中的OBJECT IDENTIFIER 部分标识了具体的算法。其中可选参数的内容完全依赖于所标识的算法。该域的算法标识符必须与tbsCertificate中的signature标识的签名算法项相同。如果签名算法为SM2,无参数。signatureValue域包含了对tbsCertificate域进行数字签名的结果。采用ASN.1 DER编码的tbsCertificate作为数字签名的输入,而签名的结果则按照ASN.1编码成BIT STRING类型并保存在证书签名值域内。如果签名算法为SM2,SM2密码算法签名数据格式参见GB/T AAAA。5.2.3 TBSCertificate及其数据结构TBSCertificate包含了证书结构中前十个项的信息。这些信息主要有主体和签发者的名称、主体的公钥、有效期、版本号和序列号,有些TBSCertificate还可以包含可选的唯一标识符项和扩展项。本节的下述段落描述这些项的语法和语义。5.2.3.1 版本 Version 本项描述了编码证书的版本号。5.2.3.2 序列号 Serial number 序列号是CA分配给每个证书的一个正整数,一个CA签发的每张证书的序列号必须是唯一的(这样,通过签发者的名字和序列号就可以唯一地确定一张证书),CA 必须保证序列号是非负整数。序列号可以是长整数,证书用户必须能够处理长达20个8比特字节的序列号值。CA必须确保不使用大于20个8比特字节的序列号。5.2.3.3 签名算法 Signature 本项包含CA签发该证书所使用的密码算法的标识符,这个算法标识符必须与证书中signatureAlgorithm项的算法标识符相同。可选参数的内容完全依赖所标识的具体算法,可以支持用户定义的签名算法。5.2.3.4 颁发者 Issuer 本项标识了证书签名和证书颁发的实体。它必须包含一个非空的甄别名称(DN-distinguished name)。该项被定义为X.501的Name类型,其ASN.1的结构如下:Name := CHOICE RDNSequence RDNSequence := SEQUENCE OF RelativeDistinguishedNameRelativeDistinguishedName := SET OF AttributeTypeAndValueAttributeTypeAndValue := SEQUENCE type AttributeType,value AttributeValue AttributeType := OBJECT IDENTIFIERAttributeValue := ANY DEFINED BY AttributeTypeDirectoryString := CHOICE teletexString TeletexString (SIZE (1.MAX),printableString PrintableString (SIZE (1.MAX),universalString UniversalString (SIZE (1.MAX),utf8String UTF8String (SIZE (1.MAX),bmpString BMPString (SIZE (1.MAX) Name描述了由一些属性组成的层次结构的名称,如国家名、相应的值,如“国家=CN”。其中AttributeValue部分的类型是由AttributeType确定的,通常它是一个DirectoryString类型。DirectoryString类型被定义为PrintableString, TeletexString, BMPString, UTF8String和UniversalString类型之一。UTF8String 编码是首选的编码。5.2.3.5 有效期 Validity 证书有效期是一个时间段,在这个时间段内,CA担保它将维护关于证书状态的信息。该项被表示成一个具有两个时间值的SEQUENCE类型数据:证书有效期的起始时间(notBefore)和证书有效期的终止时间(notAfter)。NotBefore和 notAfter这两个时间都可以作为UTCTime类型或者GeneralizedTime类型进行编码。5.2.3.5.1 编码类型要求遵循本标准的CA在2049年之前(包括2049年)必须将该时间编码为UTCTime类型,在2050年之后,编码为GeneralizedTime类型。5.2.3.5.2 世界时间 UTCTime 本项是为国际应用设立的一个标准ASN.1类型,在这里只有本地时间是不够的。UTCTime通过两个低位数确定年,时间精确到一分钟或一秒钟。UTCTime包含Z(用于Zulu,或格林威治标准时间)或时间差。 在本标准中,UTCTime值必须用格林威治标准时间(Zulu)表示,并且必须包含秒,即使秒的数值为零(即时间格式为YYMMDDHHMMSSZ)。系统对年字段(YY)必须如下解释:当YY大于等于50,年应解释为19YY;当YY不到50,年应解释为20YY。5.2.3.5.3 通用时间类型 GeneralizedTime 通用时间类型,GeneralizedTime,是一个标准ASN.1类型,表示时间的可变精确度。GeneralizedTime字段能包含一个本地和格林威治标准时间之间的时间差。本标准中,GeneralizedTime值必须用格林威治标准时间表示,且必须包含秒,即使秒的数值为零(即时间格式为YYYYMMDDHHMMSSZ)。GeneralizedTime值绝不能包含小数秒(fractional seconds)。5.2.3.6 主体 Subject 主体项描述了与主体公钥项中的公钥相对应的实体。主体名称可以出现在主体项和/或主体可选替换名称扩展项中(subjectAltName)。如果主体是一个CA,那么主体项必须是一个非空的与签发者项的内容相匹配的甄别名称(distinguished name)。如果主体的命名信息只出现在主体可选替换名称扩展项中(例如密钥只与一个Email地址或者URL绑定),那么主体名称必须是一个空序列,且主体可选替换名称扩展项必须被标识成关键的。当主体项非空时,这个项必须包含一个X.500的甄别名称(DN),一个CA认证的每个主体实体的甄别名称必须是唯一的。一个CA可以为同一个主体实体以相同的甄别名称签发多个证书。主体名称扩展项被定义成GB/T 16264.82005的名字类型。5.2.3.7 主体公钥信息 Subject Public Key Info 本项用来标识公钥和相应的公钥算法。公钥算法使用算法标识符AlgorithmIdentifier结构来表示。当公钥算法为SM2时,AlgorithmIdentifier结构定义参见GB/T AAAA;当公钥算法为RSA时,AlgorithmIdentifier结构定义参见PKCS#7。5.2.3.8 颁发者唯一标识符issuerUniqueID 该项主要用来处理主体或者颁发者名称的重用问题。本标准建议不同的实体名称不要重用, Internet网的证书不要使用唯一标识符。遵循本标准的证书签发机构应不生成带有颁发者唯一标识符的证书,但是在应用过程中应该能够解析这个项并进行对比。5.2.3.9 主体唯一标识符subjectUniqueID该项主要用来处理主体名称的重用问题,本标准建议对不同的实体名称不要重用,并且不建议使用此项,遵循本标准的证书签发机构应不生成带有主体唯一标识符的证书,但是在应用过程中应该能够解析唯一标识符并进行对比。5.2.3.10 扩展项extensions若出现,该项则是一个或多个证书扩展的序列(SEQUENCE),其内容和数据结构在5.2.4中定义。5.2.4 证书扩展域及其数据结构5.2.4.1 证书扩展本标准定义的证书扩展项提供了把一些附加属性同用户或公钥相关联的方法以及证书结构的管理方法。数字证书允许定义标准扩展项和专用扩展项。每个证书中的扩展可以定义成关键性的和非关键性的。一个扩展含有三部分,他们分别是扩展类型、扩展关键度和扩展项值。扩展关键度(extension criticality)告诉一个证书的使用者是否可以忽略某一扩展类型。证书的应用系统如果不能识别关键的扩展时,必须拒绝接受该证书,如果不能识别非关键的扩展,则可以忽略该扩展项的信息。本条定义一些标准的扩展项。需要特别注意的是,在实际应用过程中,如果采用了关键性的扩展,可能导致在一些通用的应用中无法使用该证书。每个扩展项包括一个对象标识符OID和一个ASN.1结构。当证书中出现一个扩展时,OID作为extnID项出现,其对应的ASN.1编码结构就是8bit字符串extnValue的值。一个特定的证书中特定的扩展只可出现一次。例如,一个证书只可以包含一个认证机构密钥标识符扩展。一个扩展中包含一个布尔型的值用来表示该扩展的关键性,其缺省值为FALSE,即非关键的。每个扩展的正文指出了关键性项的可接收的值。遵循本标准的CA必须支持密钥标识符、基本限制、密钥用法和证书策略等扩展。如果CA签发的证书中的主体项为空序列,该CA就必须支持主体可替换名称扩展。其它的扩展是可选的。CA还可以支持本标准定义之外的其它的扩展。证书的签发者必须注意,如果这些扩展被定义为关键的,则可能会给互操作性带来障碍。遵循本标准的应用必须至少能够识别下列扩展:密钥用法、证书策略、主体替换名称、基本限制、名称限制、策略限制和扩展的密钥用法。另外,本标准建议还能支持认证机构(authority)和主体密钥标识符(subject key identifier)以及策略映射扩展。5.2.4.2 标准扩展5.2.4.2.1 综述本节定义数字证书的标准证书扩展,每个扩展与GB/T 16264.8-2005中定义的一个OID相关。这些OID都是id-ce的成员,其定义如下:id-ce OBJECT IDENTIFIER := joint-iso-ccitt(2) ds(5) 29 5.2.4.2.2 颁发机构密钥标识符authorityKeyIdentifier颁发机构密钥标识符扩展提供了一种方式,以识别与证书签名私钥相应的公钥。当颁发者由于有多个密钥共存或由于发生变化而具有多个签名密钥时使用该扩展。识别可基于发行方证书中的主体密钥标识符或基于颁发者的名称和序列号。相应CA产生的所有证书应包括authorityKeyIdentifier扩展的keyIdentifier项,以便于链的建立。CA以“自签”(self-signed )证书形式发放其公钥时,可以省略认证机构密钥标识符。此时,主体和认证机构密钥标识符是完全相同的。本项既可用作证书扩展亦可用作CRL扩展。本项标识用来验证在证书或CRL上签名的公开密钥。它能辨别同一CA使用的不同密钥(例如,在密钥更新发生时)。本项定义如下:id-ce-authorityKeyIdentifier OBJECTIDENTIFIER := id-ce 35AuthorityKeyIdentifier := SEQUENCE keyIdentifier 0 KeyIdentifier OPTIONAL, authorityCertIssuer 1 GeneralNames OPTIONAL,authorityCertSerialNumber 2 CertificateSerialNumber OPTIONAL (WITH COMPONENTS ,authorityCertIssuer PRESENT, authorityCertSerialNumber PRESENT WITH COMPONENTS ,authorityCertIssuer ABSENT, authorityCertSerialNumber ABSENT)KeyIdentifier := OCTET STRING。KeyIdentifier项的值应从用于证实证书签名的公钥导出或用产生唯一值的方法导出。公开密钥的密钥标识符KeyIdentifier可采用下述两种通用的方法生成:a) keyIdentifier由BIT STRING subjectPublicKey值的160-bit SHA1杂凑值组成(去掉标签、长度和不使用的字节)。b) keyIdentifier 由0100加上后跟的BIT STRING subjectPublicKey值的SHA -1杂凑值中最低位的60bit组成。此密钥可以通过keyIdentifier字段中的密钥标识符来标识,也可以通过此密钥的证书的标识(给出authorityCertIssur字段中的证书颁发者以及authorityCertSerialNumber字段中的证书序列号)来标识,或者可以通过密钥标识符和此密钥的证书标识来标识。如果使用两种标识形式,那么,证书或CRL的颁发者应保证它们是一致的。对于颁发机构的包含扩展的证书或CRL的所有密钥标识符而言,每个密钥标识符应该是唯一的。不要求支持此扩展的实现能够处理authorityCertIssuer字段中的所有名字形式。证书认证机构指定或者自动产生证书序列号,这样颁发者和证书序列号相结合就唯一地标识了一份证书。除自签证书之外,所有的证书必须包含本扩展,而且要包含keyIdentifier项。如果证书的颁发者的证书有SubjectKeyIdetifier扩展,则本扩展中keyIdentifier项必须与颁发者的证书的SubjectKeyIdetifier扩展的值一致,如果证书的颁发者的证书没有SubjectKeyIdetifier扩展,则可以使用文中介绍的两种方法之一来产生。结构中的keyIdentifier,authorityCertSerialNumber建议为必选,但本扩展必须是非关键的。5.2.4.2.3 主体密钥标识符subjectKeyIdentifier主体密钥标识符扩展提供一种识别包含有一个特定公钥的证书的方法。此扩展标识了被认证的公开密钥。它能够区分同一主体使用的不同密钥(例如,当密钥更新发生时)。此项定义如下:id-ce-subjectKeyIdentifier OBJECT IDENTIFIER := id-ce 14SubjectKeyIdentifier:=KeyIdentifier对于使用密钥标识符的主体的各个密钥标识符而言,每一个密钥标识符均应是唯一的。此扩展项总是非关键的。所有的CA证书必须包括本扩展;而且CA签发证书时必须把CA证书中本扩展的值赋给终端实体证书AuthorityKeyIdentifier扩展中的KeyIdentifier项。 CA证书的主体密钥标识符应从公钥或生成唯一值的方法中导出。终端实体证书的主体密钥标识符应从公钥中导出。有两种通用的方法从公钥中生成密钥标识符。5.2.4.2.4 密钥用法keyUsage此扩展指示已认证的公开密钥用于何种用途,该项定义如下:id-ce-keyUsage OBJECT IDENTIFIER := id-ce 15KeyUsage:=BIT STRINGdigitalSignature (0),nonRepudiation (1),keyEncipherment (2),dataEncipherment (3),keyAgreement (4),keyCertSign (5),cRLSign (6),encipherOnly (7),decipherOnly (8) KeyUsage类型中的用法如下:a) digitalSignature:验证下列b)、f)或g)所标识的用途之外的数字签名;b) nonRepudiation:验证用来提供抗抵赖服务的数字签名,这种服务防止签名实体不实地拒绝某种行为(不包括如f)或g)中的证书或CRL签名)。c) keyEncipherment:加密密钥或其它安全信息,例如用于密钥传输。d) dataEncipherment:加密用户数据,但不包括上面c)中的密钥或其他安全信息。e) keyAgreement:用作公开密钥协商密钥。f) keyCertSign:验证证书的CA签名。g) CRLSign:验证CRL的CA签名。h) EncipherOnly:当本比特与已设置的keyAgreement比特一起使用时,公开密钥协商密钥仅用于加密数据(本比特与已设置的其他密钥用法比特一起使用的含义未定义)。i) DecipherOnly: 当本比特与已设置的keyAgreement比特一起使用时,公开密钥协商密钥仅用于解密数据(本比特与已设置的其他密钥用法比特一起使用的含义未定义)。keyCertSign只用于CA证书。如果KeyUsage被置为keyCertSign和基本限制扩展存在于同一证书之中,那么,此扩展的CA成分的值应被置为TRUE。CA还可使用keyUsag中定义的其他密钥用法比特,例如,提供鉴别和在线管理事务完整性的digitalSignature。若缺少keyAgreement比特,则不定义encipherOnly比特的含义。若确定encipherOnly比特,且keyAgreement比特也被确定时,主体公钥可只用于加密数据,同时执行密钥协议。若缺少keyAgreement比特,则不定义decipherOnly比特的含义。若确定decipherOnly比特,且keyAgreement比特也被确定时,主体公钥可只用于脱密数据,同时执行密钥协议。所有的CA证书必须包括本扩展,而且必须包含keyertSign这一用法。此扩展可以定义为关键的或非关键的,由证书签发者选择。如果此扩展标记为关键的,那么该证书应只用于相应密钥用法比特置为“1”的用途。如果此扩展标记为非关键的,那么它指明此密钥的预期的用途或多种用途,并可用于查找具有多密钥/证书的实体的正确密钥/证书。它是一个咨询项,并不意指此密钥的用法限于指定的用途。置为“0”的比特指明此密钥不是预期的这一用途。如果所有比特均为“0”,它指明此密钥预期用于所列用途之外的某种用途。在应用中,使用该扩展项对证书类型的进行区别,当设置了c)、d)、h)、i)比特中的一位时,表示该证书为加密证书;当设置了a)、b)比特中的一位时,表示该证书为签名证书。 5.2.4.2.5 扩展密钥用途extKeyUsage此项指明已验证的公开密钥可以用于一种用途或多种用途,它们可作为对密钥用法扩展项中指明的基本用途的补充或替代。此项定义如下:id-ce-extKeyUsage OBJECT IDENTIFIER : id-ce 37ExtKeyUsageSyntax :=SEQUENCE SIZE (1MAX) OF KeyPurposeIdKeyPurposeId:=OBJECT IDENTIFIER密钥的用途可由有此需要的任何组织定义。用来标识密钥用途的客体标识符应按照GB/T 17969.1-2000来分配。由证书签发者确定此扩展是关键的或非关键的。如果此扩展标记为关键的,那么,此证书应只用于所指示的用途之一。如果此扩展标记为非关键的,那么,它指明此密钥的预期用途或一些用途,并可用于查找多密钥/证书的实体的正确密钥/证书。它是一个咨询项,并不表示认证机构将此密钥的用法限于所指示的用途。然而,进行应用的证书仍然可以要求指明特定的用途,以便证书为此应用接受。如果证书包含关键的密钥用途项和关键的扩展密钥项,那么,两个项应独立地处理,并且证书应只用于与两个项一致的用途。如果没有与两个项一致的用途,那么,此证书不能用于任何用途。 本标准定义下列密钥用途: id-kp OBJECT IDENTIFIER := id-pkix 3 id-kp-serverAuth OBJECT IDENTIFIER := id-kp 1 - TLS Web server 鉴别 - Key usage 可以设置为digitalSignature, keyEncipherment或keyAgreement id-kp-clientAuth OBJECT IDENTIFIER := id-kp 2 - TLS Web server 鉴别 - Key usage 可以设置为digitalSignature和/或keyAgreement id-kp-codeSigning OBJECT IDENTIFIER := id-kp 3 - 可下载执行代码的签名 - Key usage 可以设置为digitalSignature id-kp-emailProtection OBJECT IDENTIFIER := id-kp 4 - E-mail 保护 - Key usage可以设置为digitalSignature,nonRepudiation和/或(keyEncipherment或keyAgreement) - id-kp-timeStamping OBJECT IDENTIFIER := id-kp 8 - 将对象的Hash与同一时间源提供的时间绑定 - Key usage 可以设置为digitalSignature,nonRepudiation id-kp-OCSPSigning OBJECT IDENTIFIER := id-kp 9 - OCSP 应答签名 - Key usage 可以设置为digitalSignature,nonRepudiation 5.2.4.2.6 私有密钥使用期privateKeyUsagePeriod此扩展指明与已验证的公开密钥相对应的私有密钥的使用期限。它只能用于数字签名密钥。此项定义如下:id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER:=id-ce 16PrivateK