网站地图 | Tags | 热门标准 | 最新标准 | 订阅

GB/T 20518-2018 信息安全技术 公钥基础设施 数字证书格式

  • 名  称:GB/T 20518-2018 信息安全技术 公钥基础设施 数字证书格式 - 下载地址1
  • 下载地址:[下载地址1]
  • 提 取 码
  • 浏览次数:3
下载帮助: 发表评论 加入收藏夹 错误报告目录
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
新闻评论(共有 0 条评论)

资料介绍

  ICS 35 . 040 L 80

  中 华 人 民 共 和 国 国 家 标 准

  GB/T 20518—2018

  代替 GB/T 20518—2006

  信息安全技术 公钥基础设施

  数字证书格式

  Informationsecuritytechnology—publickeyinfrastructure—

  Digitalcertificateformat

  2018-06-07 发布 2019-01-01 实施

  国家市场监督管理总局中国国家标准化管理委员会

  发

  布

  GB/T 20518—2018

  GB/T 20518—2018

  前 言

  本标准按照 GB/T 1 . 1—2009 给出的规则起草。

  本标准 代 替 GB/T 20518—2006 《信 息 安 全 技 术 公 钥 基 础设 施 数 字 证 书 格 式 》,与GB/T 20518—2006 相比主要技术变化如下:

  — 在附录 E算法技术支持中增加了对 SM2 和 SM3 密码算法的支持;删除了 MD5 , SHA-1 算法的介绍;

  — 增加了 5 . 3 证书撤销列表的基本结构以及数字证书格式中扩展项的内容;

  — 修订了 5 . 2 . 4 中一些 OID 的值。

  请注意本文件的某些内容可能涉及专利。 本文件的发布机构不承担识别这些专利的责任。

  本标准由全国信息安全标准化技术委员会(SAC/TC 260)提出并归口 。

  本标准起草单位:上海格尔软件股份有限公司、长春吉大正元信息技术股份有限公司、上海市数字证书认证中心有限公司、中国金融认证中心、北京海泰方圆科技有限公司、北京数字认证股份有限公司、无锡江南信息安全工程技术中心、成都卫士通信息产业股份有限公司、兴唐通信科技有限公司、山东得安信息技术有限公司、国家信息安全工程技术研究中心。

  本标准主要起草人:刘平、郑强、杨文山、赵丽丽、韩玮、赵改侠、傅大鹏、蒋红宇、罗俊、徐明翼、王妮娜、孔凡玉、袁锋。

  本标准所代替标准的历次版本发布情况为:

  —GB/T 20518—2006 。

  GB/T 20518—2018

  信息安全技术 公钥基础设施

  数字证书格式

  1 范围

  本标准规定了数字证书和证书撤销列表的基本结构、各数据项内容。

  本标准适用于数字证书认证系统的研发、数字证书认证机构的运营以及基于数字证书的安全应用。

  2 规范性引用文件

  下列文件对于本文件的应用是必不可少的。 凡是注 日期的引用文件,仅注 日期的版本适用于本文件,凡是不注 日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

  GB/T 35275 SM2 密码算法加密签名消息语法规范

  GB/T 35276 SM2 密码算法使用规范

  PKCS # 7 密码消息语法(Cryptographic message syntax)

  3 术语和定义

  下列术语和定义适用于本文件。

  3.1

  公钥基础设施 publickeyinfrastructure;PKI

  支持公钥管理体制的基础设施,提供鉴别、加密、完整性和不可否认性服务。

  3.2

  公钥证书 publickeycertificate

  用户的公钥连同其他信息,并由发布该证书的证书认证机构的私钥进行加密使其不可伪造。

  3.3

  证书撤销列表 certificaterevocationlist;CRL

  一个已标识的列表,它指定了一套证书颁发者确认为无效的证书。 除了普通 CRL 外,还定义了 一

  些特殊的 CRL类型用于覆盖特殊领域的 CRLs。

  3.4

  证书序列号 certificateserialnumber

  在 CA颁发的证书范围内为每个证书分配的一个整数值。 此整数值对于该 CA 所颁发的每一张证书必须是唯一的。

  3.5

  证书认证机构 certificationauthority;CA

  受用户信任,负责创建和分配证书的权威机构。 证书认证机构也可以为用户创建密钥。

  GB/T 20518—2018

  3.6

  证书撤销列表分发点 CRL distributionpoint

  一个 CRL 的 目录项或其他 CRL分发源,通过 CRL 分发点分发的 CRL 可以只含有某个 CA 所颁发的证书全集中的某个子集的撤销项,也可以包括有多个 CA 的撤销项。

  3.7

  数字证书 digitalcertificate

  由国家认可的,具有权威性、可信性和公正性的第三方证书认证机构(CA)进行数字签名的一个可信的数字化文件。

  4 缩略语

  下列缩略语适用于本文件。

  CA 证书认证机构(Certification Authority)

  CRL 证书撤销列表(Certificate Revocation List)

  DIT 目录信息树系统(Directory Information Tree)

  OID 对象标识符(Object ID)

  PKI 公钥基础设施(Public key infrastructure)

  5 数字证书与 CRL

  5 . 1 概述

  数字证书具有以下的特性:

  — 任何能够获得和使用认证机构公钥的用户都可以恢复认证机构所认证的公钥;

  — 除了认证机构,没有其他机构能够更改证书,证书是不可伪造的。

  由于证书是不可伪造的,所以可以通过将其放置在目录中来发布,而不需要以后特意去保护它们。

  认证机构通过对信息集合的签名来生成用户证书,信息集合包括可辨别的用户名、公钥以及一个可选的包含用户附加信息的唯一性标识符。 唯一性标识符内容的确切格式这里未做规定,而留给认证机构去定义。 唯一性标识符可以是诸如对象标识符、证书、日期或是说明有关可辨别用户名的有效性的证书的其他形式。 具体地说,如果一个用户证书的可辨别名为 A,唯一性标识符为 UA,并且该证书是由名为 CA,其唯一性标识符为 UCA 的认证机构生成的,则用户证书具有下列的形式:

  CA<>=CA{V, SN, AI, CA, UCA, A, UA, Ap, TA}

  这里 V 为证书版本;SN 为证书序列号;AI 为用来签署证书的算法标识符;UCA 为 CA 的可选的唯

  一性标识符;UA 为用户 A 的可选的唯一性标识符;Ap 为用户 A 的公钥;TA 表示证书的有效期,由两

  个日期组成,两者之间的时间段即是证书的有效期。 证书有效期是一个时间区间,在这个时间区间里,

  CA应保证维护该证书的状态信息,也就是发布有关撤销的信息数据。由于假定 TA 在不小于 24 h 的周期内变化,要求系统以格林威治时间为基准时间。证书上的签名可被任何知道 CA 公钥 CAp 的用户

  用来验证证书的有效性。

  CRL是 CA对撤销的证书而签发的一个列表文件,该文件可用于应用系统鉴别用户证书的有效性 。CRL遵循 X. 509V2 标准的证书撤销列表格式。

  5 . 2 数字证书格式

  5 . 2 . 1 综述

  本标准采用 GB/T 16262 . 1—2006 的特定编码规则(DER)对下列证书项中的各项信息进行编码,

  GB/T 20518—2018

  组成特定的证书数据结构。 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 或者 v3

  subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,

  --如果出现,version必须是 v2 或者 v3

  extensions [3] EXPLICIT Extensions OPTIONAL 扩展项

  --如果出现,version 必须是 v3

  }

  Version : : = INTEGER { v1 ( 0 ) , v2 ( 1 ) , v3 ( 2 ) }

  CertificateSerialNumber : : = INTEGER

  Validity : : = SEQUENCE {

  notBefore Time ,

  notAfter Time }

  Time : : = CHOICE {

  utcTime UTCTime,

  generalTime GeneralizedTime }

  UniqueIdentifier : : = BIT STRING

  SubjectPublicKeyInfo : : = SEQUENCE {

  algorithm AlgorithmIdentifier,

  subjectPublicKey BIT STRING }

  Extensions : : = SEQUENCE SIZE (1 . . MAX) OF Extension

  Extension : : = SEQUENCE {

  extnID OBJECT IDENTIFIER,

  critical BOOLEAN DEFAULT FALSE,

  extnValue OCTET STRING }

  上述的证书数据结构由 tbsCertificate, signatureAlgorithm 和 signatureValue 三个域构成。这些

  域的含义如下:

  tbsCertificate域包含了主体名称和签发者名称、主体的公钥、证书的有效期以及其他的相关信息。

  GB/T 20518—2018

  signatureAlgorithm 域包含证书签发机构签发该证书所使用的密码算法的标识符。一个算法标识

  符的 ASN . 1 结构如下:

  AlgorithmIdentifier : : = SEQUENCE {

  algorithm OBJECT IDENTIFIER,

  parameters ANY DEFINED BY algorithm OPTIONAL}

  算法标识符用来标识一个密码算法,其中的 OBJECT IDENTIFIER 部分标识了具体的算法。其中可选参数的内容完全依赖于所标识的算法。该域的算法标识符应与 tbsCertificate 中的 signature 标识

  的签名算法项相同。 如果签名算法为 SM2,无参数。

  signatureValue域包含了对 tbsCertificate域进行数字签名的结果。采用 ASN.1 DER 编码的 tbs- Certificate作为数字签名的输入,而签名的结果则按照 ASN .1 编码成 BIT STRING类型并保存在证书

  签名值域内。 如果签名算法为 SM2 , SM2 密码算法签名数据格式见 GB/T 35276 。

  5 .2 .3 TBscertificate数据结构

  5 .2 .3 . 1 版本 version

  本项描述了编码证书的版本号。

  5 .2 .3 .2 序列号 serialnumber

  序列号是 CA分配给每个证书的一个正整数,一个 CA 签发的每张证书的序列号应是唯一的(这样,通过签发者的名字和序列号就可以唯一地确定一张证书),CA 应保证序列号是非负整数。 序列号可以是长整数,证书用户应能够处理长达 20 个 8 比特字节的序列号值。 CA应确保不使用大于 20 个 8比特字节的序列号。

  5.2.3.3 签名算法 signature

  本项包含 CA签发该证书所使用的密码算法的标识符,这个算法标识符应与证书中 signatureAlgo- rithm 项的算法标识符相同。可选参数的内容完全依赖所标识的具体算法,可以支持用户定义的签名

  算法。

  5 .2 .3 .4 颁发者 Issuer

  本项标识 了证 书签名和证 书颁发 的实体。它应包含一个非空 的甄别名称 (DN-distinguished name)。该项被定义为 Name类型,其 ASN.1 的结构如下:

  Name : : = CHOICE { RDNSequence }

  RDNSequence : : = SEQUENCE OF RelativeDistinguishedName

  RelativeDistinguishedName : : = SET OF AttributeTypeAndValue

  AttributeTypeAndValue : : = SEQUENCE {

  type AttributeType,

  value AttributeValue }

  AttributeType : : = OBJECT IDENTIFIER

  AttributeValue : : = ANY DEFINED BY AttributeType

  DirectoryString : : = CHOICE {

  teletexString TeletexString (SIZE (1..MAX)) ,

  printableString PrintableString (SIZE (1..MAX)) ,

  universalString UniversalString (SIZE (1..MAX)) ,

  GB/T 20518—2018

  utf8String UTF8String (SIZE (1..MAX)) ,

  bmpString BMPString (SIZE (1..MAX)) }

  Name描述了由一些属性组成的层次结构的名称,如国家名、相应的值,如“国家= CN”。其中 At- tributeValue部分的类型是由 AttributeType 确定的,通常它是一个 DirectoryString类型。

  DirectoryString类型被定义为 PrintableString, TeletexString, BMPString, UTF8String 和 Uni- versalString类型之一。UTF8String 编码是首选的编码。

  5.2.3.5 有效期 validity

  5 . 2 . 3 . 5 . 1 概述

  证书有效期是一个时间段,在这个时间段内,CA担保它将维护关于证书状态的信息。 该项被表示

  成一个具有两个时间值的 SEQUENCE类型数据:证书有效期的起始时间(notBefore)和证书有效期的终止时间 (notAfter)。NotBefore 和 notAfter 这两个时间都可以作为 UTCTime 类型或者 General- izedTime类型进行编码。

  5 . 2 . 3 . 5 . 2 编码类型要求

  遵循本标准的 CA 在 2049 年之前(包括 2049 年)应将该时间编码为 UTCTime 类型,在 2050 年之后,编码为 GeneralizedTime类型。

  5 . 2 . 3 . 5 . 3 世界时间 UTCTime

  本项是为国际应用设立的一个标准 ASN .1 类型,在这里只有本地时间是不够的。UTCTime 通过两个低位数确定年,时间精确到一分钟或一秒钟。UTCTime包含 Z(用于 Zulu,或格林威治标准时间)

  或时间差。

  在本标准中,UTCTime值应用格林威治标准时间(Zulu)表示,并且应包含秒,即使秒的数值为零

  (即时间格式为 YYMMDDH HMMSSZ) 。 系统对年字段(YY)应如下解释:

  当 YY 大于等于 50,年应解释为 19YY;当 YY 不到 50,年应解释为 20YY。

  5 .2 .3 .5 .4 通用时间类型 GeneralizedTime

  本项是一个标准 ASN .1 类型,表示时间的可变精确度。GeneralizedTime 字段能包含一个本地和

  格林威治标准时间之间的时间差。

  本标准中,GeneralizedTime值应使用格林威治标准时间表示,且应包含秒,即使秒的数值为零(即时间格式为 YYYYMMDDH HMMSSZ)。GeneralizedTime值绝不能包含小数秒(fractional seconds)。

  5.2.3.6 主体 subject

  主体项描述了与主体公钥项中的公钥相对应的实体。 主体名称可以出现在主体项和/或主体可选

  替换名称扩展项中(subjectAltName)。如果主体是一个 CA,那么主体项应是一个非空的与签发者项的内容相匹配的甄别名称(distinguished name)。如果主体的命名信息只出现在主体可选替换名称扩展项中(例如密钥只与一个 Email地址或者 URL绑定),那么主体名称应是一个空序列,且主体可选替

  换名称扩展项应被标识成关键的。

  当主体项非空时,这个项应包含一个 X. 500 的甄别名称(DN) ,一个 CA 认证的每个主体实体的甄别名称应是唯一的。 一个 CA 可以为同一个主体实体以相同的甄别名称签发多个证书。

  主体名称扩展项被定义成 GB/T 16264 . 8—2005 的名字类型。

  GB/T 20518—2018

  5.2.3.7 主体公钥信息 subjectpublickeyInfo

  本项用来标识公钥和相应的公钥算法。公钥算法使用算法标识符 AlgorithmIdentifier 结构来

  表示。

  当公钥算法为 SM2 时,AlgorithmIdentifier 结构定义见 GB/T 35275;当公钥算法为 RSA 时,Al- gorithmIdentifier结构定义见 PKCS # 7。

  5.2.3.8 颁发者唯一标识符 issueruniqueID

  本项主要用来处理主体或者颁发者名称的重用问题。本标准建议不同的实体名称不要重用,In- ternet 网的证书不要使用唯一标识符。遵循本标准的证书签发机构应不生成带有颁发者唯一标识符的

  证书,但是在应用过程中应能够解析该项并进行对比。

  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)以及策略映射扩展。

  GB/T 20518—2018

  5 . 2 . 4 . 2 标准扩展

  5 . 2 . 4 . 2 . 1 综述

  5 . 2 . 4 . 2 定义数字证书的标准证书扩展,每个扩展与 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 35}

  AuthorityKeyIdentifier : : = 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 扩

  GB/T 20518—2018

  展的值一致,如果证书的颁发者的证书没有 SubjectKeyIdetifier扩展,则可以使用文中介绍的两种方法

  之一来产生。

  结构中的 keyIdentifier, authorityCertSerialNumber建议为必选,但本扩展应是非关键的。

  5.2.4.2.3 主体密钥标识符 subjectkeyIdentifier

  主体密钥标识符扩展提供一种识别包含有一个特定公钥的证书的方法。 此扩展标识了被认证的公开密钥。 它能够区分同一主体使用的不同密钥(例如,当密钥更新发生时)。此项定义如下:

  id-ce-subjectKeyIdentifier OBJECT IDENTIFIER : : = { id-ce 14}

  SubjectKeyIdentifier: : =KeyIdentifier

  对于使用密钥标识符的主体的各个密钥标识符而言,每一个密钥标识符均应是唯一的。 此扩展项总是非关键的。

  所有的 CA证书应包括本扩展;而且 CA 签发证书时应把 CA 证书中本扩展的值赋给终端实体证

  书 AuthorityKeyIdentifier 扩展中的 KeyIdentifier项。CA证书的主体密钥标识符应从公钥或生成唯一

  值的方法中导出。 终端实体证书的主体密钥标识符应从公钥中导出。 有两种通用的方法从公钥中生成密钥标识符。

  5.2.4.2.4 密钥用法 keyusage

  此扩展指示已认证的公开密钥用于何种用途,该项定义如下:

  id-ce-keyUsage OBJECT IDENTIFIER : : = { id-ce 15}

  KeyUsage: : =BIT STRING{

  digitalSignature (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 和基本限制扩展存在于同一证

  GB/T 20518—2018

  书之中,那么,此扩展的 CA成分的值应被置为 TRUE。CA还可使用 keyUsag 中定义的其他密钥用法位,例如,提供鉴别和在线管理事务完整性的 digitalSignature。

  若缺少 keyAgreement 位,则不定义 encipherOnly 位的含义。若确定 encipherOnly 位,且 key- Agreement位也被确定时,主体公钥可只用于加密数据,同时执行密钥协议。

  若缺少 keyAgreement 位,则不定义 decipherOnly 位的含义。若确定 decipherOnly 位,且 key- Agreement位也被确定时,主体公钥可只用于脱密数据,同时执行密钥协议。

  所有的 CA证书应包括本扩展,而且应包含 keyertSign 这一用法。此扩展可以定义为关键的或非

  关键的,由证书签发者选择。

  如果此扩展标记为关键的,那么该证书应只用于相应密钥用法位置为“1”的用途。

  如果此扩展标记为非关键的,那么它指明此密钥的预期的用途或多种用途,并可用于查找具有多密钥/证书的实体的正确密钥/证书。 它是一个咨询项,并不意指此密钥的用法限于指定的用途。 置为“0”的位指明此密钥不是预期的这一用途。 如果所有位均为“0”,它指明此密钥预期用于所列用途之外的某 种用途。

  在应用中,使用该扩展项对证书类型的进行区别,当设置了 c)、d)、h)、i)位中的一位时,表示该证书为加密证书;当设置了 a)、b)位中的一位时,表示该证书为签名证书。

  5.2.4.2.5 扩展密钥用途 extkeyusage

  此项指明已验证的公开密钥可以用于一种用途或多种用途,它们可作为对密钥用法扩展项中指明的基本用途的补充或替代。 此项定义如下:

  id-ce-extKeyUsage OBJECT IDENTIFIER : : { id-ce 37}

  ExtKeyUsageSyntax : : =SEQUENCE SIZE (1..MAX) OF KeyPurposeId

  KeyPurposeId: : =OBJECT IDENTIFIER

  密钥的 用 途 可 由 有 此 需 要 的 任 何 组 织 定 义 。 用 来 标 识 密 钥 用 途 的 客 体 标 识 符 应 按 照GB/T 17969 . 1—2015来分配 。

  由证书签发者确定此扩展是关键的或非关键的。

  如果此扩展标记为关键的,那么,此证书应只用于所指示的用途之一 。

  如果此扩展标记为非关键的,那么,它指明此密钥的预期用途或一些用途,并可用于查找多密钥/证书的实体的正确密钥/证书。 它是一个咨询项,并不表示认证机构将此密钥的用法限于所指示的用途。然而,进行应用的证书仍然可以要求指明特定的用途,以便证书为此应用接受。

  如果证书包含关键的密钥用途项和关键的扩展密钥项,那么,两个项应独立地处理,并且证书应只用于与两个项一致的用途。 如果没有与两个项一致的用途,那么,此证书不能用于任何用途。

  本标准定义下列密钥用途:

  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 }

  GB/T 20518—2018

  --E-mail保护

  --Key usage 可以设置为 digitalSignature, nonRepudiation 和/或(keyEncipherment 或 keyAgree-

  ment)

  --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 16}

  PrivateKeyUsagePeriod: : =SEQUENCE{

  notBefore [0] GeneralizedTime OPTIONAL ,

  notAfter [1] GeneralizedTime OPTIONAL}

  notBefore字段指明私有密钥可能用于签名的最早 日期和时间。如果没有 notBefere 字段,那么不提供有关私有密钥有效使用期何时开始的信息。NotAfter 字段指明私有密钥可以用于签名的最迟 日期和时间。如果没有 notAfter字段,那么,不提供有关私有密钥有效使用期何时结束的信息。

  这个扩展总是为非关键的。

  注 1 :私有密钥有效使用期可以与证书有效性周期指明的已验证的公开密钥有效性不同。 就数字签名密钥而言,签名的私有密钥使用期一般比验证公开密钥的时间短。

  注 2:数字签名的验证者想要检查直到验证时刻此密钥是否未被撤销,例如,由于密钥泄露,那么,在验证时,对公开

  密钥而言的有效证方仍存在。 在公开密钥的证书期满之后,签名验证者不能依赖 CRL所通知的协议。

  5 .2 .4 .2 .7 证书策略 certificatepolicies

  本项列出了由颁发的 CA所认可的证书策略,这些策略适用于证书以及关于这些证书策略的任选的限定符信息。

  证书策略扩展包含了一系列策略信息条目,每个条目都有一个 OID 和一个可选的限定条件。 这个可选的限定条件不要改变策略的定义。

  在用户证书中,这些策略信息条目描述了证书发放所依据的策略以及证书的应用 目 的;在 CA 证书中,这些策略条目指定了包含这个证书的验证路径的策略集合。 具有特定策略需求的应用系统应拥有它们将接受的策略的列表,并把证书中的策略 OID 与该列表进行比较。 如果该扩展是关键的,则路径有效性软件应能够解释该扩展(包括选择性限定语),否则应拒绝该证书。

  为了提高互操作性,本标准建议策略信息条目中只包含一个 OID,如果一个 OID不够,建议使用本章定义的限定语。

  id-ce-certificatePolicies OBJECT IDENTIFIER : : = { id-ce 32 }

  certificatePolicies : : =SEQUENCE SIZE (1..MAX) OF PolicyInformation

  PolicyInformation: : =SEQUENCE{

  policyIdentifier CertPolicyId,

  GB/T 20518—2018

  policyQualifiers SEQUENCE SIZE (1..MAX) OF

  PolicyQualifierInfo OPTIONAL}

  CertPolicyId: : =OBJECT IDENTIFIER

  PolicyQualifierInfo : : =SEQUENCE{

  policyQualifierId PolicyQualifierId,

  qualifier ANY DEFINED BY policyQualifierId }

  --policyQualifierIds for Internet policy qualifiers

  id-qt OBJECT IDENTIFIER : : = { id-pkix 2 }

  id-qt-cps OBJECT IDENTIFIER : : = { id-qt 1 }

  id-qt-unotice OBJECT IDENTIFIER : : = { id-qt 2 }

  PolicyQualifierId : : =OBJECT IDENTIFIER(id-qt-cps|id-qt-unotice)

  Qualifier : : =CHOICE {

  cPSuri CPSuri ,

  userNotice UserNotice }

  CPSuri : : = IA5String

  UserNotice : : =SEQUENCE {

  noticeRef NoticeReference OPTIONAL ,

  explicitText DisplayText OPTIONAL }

  NoticeReference : : = SEQUENCE {

  organization DisplayText,

  noticeNumbers SEQUENCE OF INTEGER }

  DisplayText : : = CHOICE {

  visibleString VisibleString (SIZE (1 …200)) ,

  bmpString BMPString (SIZE (1 …200)) ,

  utf8String UTF8String (SIZE (1 …200)) }

  本项定义了两种策略限定语,以供证书策略制定者和证书签发者使用。限定语类型为 CPS Pointer

  和 User Notice 限定语。

  CPS Pointer 限定语包含一个 CA 发布的 CPS ( Certification Practice Statement) ,指示字的形式为 URI。

  User notice有两种可选字段:noticeRef字段和 explicitText 字段。NoticeRef 字段命名一个团体,并通过记数识别该团体所做的一个专用文本声明。ExplicitText 字段在证书内直接包括文本声明,该字段是一个最多含有 200 字符的串。如果 noticeRef 和 explicitText 选项都在同一个限定语中,且如果应用软件可以找出由 noticeRef选项指明的通知文本,则应展示该文本,否则应展示 explicitText 串。

  5.2.4.2.8 策略映射 policyMappings

  本扩展只用于 CA 证书。它列出一个或多个 OID 对,每对包括一个 issuerDomainPolicy 和一个subjectDomainPolicy。这种成对形式表明,发行方 CA 认为其 issuerDomainPolicy 与主体 CA 的 sub- jectDomainPolicy是等效的。发行方 CA 的用户可以为某应用接收一个 issuerDomainPolicy。策略映

  射告知发行方 CA 的用户,哪些同 CA有关的策略可以与他们接收到的策略是等效的。 此项定义如下:

  id-ce-policyMappings OBJECT IDENTIFIER : : = { id-ce 33 }

  GB/T 20518—2018

  PolicyMappingsSyntax: : =SEQUENCE SIZE(1..MAX) OF SEQUENCE{

  issuerDomainPolicy CertPolicyId,

  subjectDomainPolicy CertPolicyId}

  策略不会被映射到或来自特殊的值 anyPolicy。

  该扩展可由 CA 和/或应用支持。 证书签发者可以将该扩展选择为关键或非关键的。 本标准推荐为关键的,否则一个证书用户就不能正确解释发布的 CA设定的规则。

  注 1 :政策映射的一个例子如:美国政府可有一个称之为加拿大贸易的政策,加拿大政府可有一个称之为美国贸易的政策。 当两个政策可有区别地被标识并被定义时,两国政府之间可有个协定:就相关的用途,在两个政策所隐含的规则之内,允许认证路径延伸过境。

  注 2:政策映射意味着作出有关决策时会耗费显著的管理开销和涉及相当大的劳动和委任人员。 一般而言,最好的办法是同意使用比应用政策映射更广的全球的公共政策。 在上述例子中,美国,加拿大和墨西哥同意一项公共政策,用于北美贸易将是最好的。

  注 3:预计政策映射实际上只能用于政策声明非常简单的有限环境。

  5.2.4.2.9 主体替换名称 subjectAltName

  本项包含一个或多个可选替换名(可使用多种名称形式中的任一个)供实体使用,CA 把该实体与认证的公开密钥绑定在一起。

  主体可选替换名扩展允许把附加身份加到证书的主体上。 所定义的选项包括因特网电子邮件地址、DNS名称、IP 地址和统一资源标识符(URI) 。 还有一些纯本地定义的选项。 可以包括多名称形式和每个名称形式的多个范例。 当这样的身份被附加到一个证书中时,应使用主体选择名称或颁发者选择名称扩展。 由于主体可替换名被认为是与公钥绑在一起的,主体可选替换名的所有部分应由 CA 认证 。此项定义如下:

  id-ce-subjectAltName OBJECT IDENTIFIER : : = { id-ce 17 }

  SubjectAltName : : = GeneralNames

  GeneralNames : : =SEQUENCE SIZE(1 . . MAX) OF GeneralName

  OTHERNAME : : =SEQUENCE {

  type-id OBJECT IDENTIFIER,

  value [0] EXPLICIT ANY DEFINED BY type-id }

  EDIPartyName: : =SEQUENCE{

  nameAssigner [0] DirectoryString OPTIONAL, partyName [1] DirectoryString }

  GeneralName类型中可替换的值是下列各种形式的名称:

  GB/T 20518—2018

  a) otherName是按照 OTHER-NAME信息客体类别实例定义的任一种形式的名称;

  b ) rfc822Name是 Internet 电子邮件地址 ;

  c) dNSName 是 Internet域名 ;

  d) x400Address 是 O/R 地址 ;

  e) directoryName是目录名称;

  f) ediPartyName 是通信的电子数据交换双方之间商定的形式名称;nameAssigner 成分标识了分配 partyName 中唯一名称值的机构;

  g) uniformResourceIdentifier是用于 WWW 的 UniformRAesourceIdentifier, RFC1738 中定义的URL语法和编码规则;

  h ) iPAddress 是用二进制串表示的 Internet Protocol 地址 ;

  i) registeredID是对注册的客体分配的标识符。

  CA 不应签发带有 subjectAltNames 却包含空 GeneralName项的证书。如果证书中的唯一主体身份是一个选择名称格式(如一个电子邮件地址),则主体的甄别名应是空的(一个空序列),且 subject- AltName扩展应存在。如果主体字段包括一个空序列,则 subjectAltName 扩展应标识为关键性的。如果出现 subjectAltName扩展,则序列应至少包含一个条目。

  对 GeneralName类型中使用的每个名称形式,应有一个名称注册系统,以保证所使用的任何名称

  能向证书颁发者和证书使用者无歧义地标识一个实体。

  此扩展可以是关键的或非关键的,由证书签发者选择。 不要求支持此扩展的实现能处理所有名称形式。 如果此扩展标记为关键的,那么,至少应能识别和处理存在的名称形式之一,否则,应认为此证书无效。 除先前的限制以外,允许证书使用系统不理睬具有不能识别的或不被支持的名称形式的任何名称 。倘若,证书的主体项包含无二义地标识主体的目录名称,推荐将此项标记为非关键的。

  注 1 : TYPE-IDENTIFIER类别的使用在 GB/T 16262 . 2—2006 的附录 A 和附录 C 中描述。

  注 2:如果存在此扩展并标记为关键的,证书的 subject项可以包含空名称(例如,相关可甄别名的一个“0”序列),在

  此情况下,主体只能用此扩展中的名称或一些扩展名称来标识。

  5 .2 .4 .2 . 10 颁发者替换名称 issuerAltName

  此项包含一个或多个替换名称(可使用多种名称形式中的任一个),以供证书或 CRL 颁发者使用。此项定义如下:

  id-ce-issuerAltName OBJECT IDENTIFIER : : = { id-ce 18 }

  IssuerAltName : : =GeneralNames

  此项可以是关键的或非关键的,由证书或 CRL颁发者选择。 不要求支持此扩展的实际应用能处理所有名称形式。 如果此扩展标记为关键的,那么至少应能识别和处理存在的名称形式之一,否则,应认为此证书无效。 除先前的限制以外,允许证书使用系统不理睬具有不能识别的或不支持的名称形式的任何名称。 倘若,证书或 CRL 的颁发者项包含了一个明确标识颁发机构的 目录名称,推荐将此项标记为非关键的。

  如果存在此扩展,并标记为关键的,证书或 CRL 的 issuer 项可以包含空名称(例如,对应可甄别名

  的一个 “0”序列),在此情况下,颁发者只能用名称或此扩展中的一些名称来标识。

  5.2.4.2. 1 1 主体目录属性 subjectDirectoryAttributes

  本项为证书主体传送其期望的任何目录属性值。 此项定义如下:

  id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER : : = { id-ce 9 }

  SubjectDirectoryAttributes : : = SEQUENCE SIZE (1..MAX ) OF Attribute

  AttributesSyntax: : =SEQUENCE SIZE (1..MAX) OF Attribute

  GB/T 20518—2018

  该扩展总是非关键的。

  5 .2 .4 .2 . 12 基本限制 basicconstraints

  本扩展项用来标识证书的主体是否是一个 CA,通过该 CA 可能存在的认证路径有多长。 此项定义如下:

  id-ce-basicConstraints OBJECT IDENTIFIER : : = { id-ce 19 }

  BasicConstraintsSyntax: : =SEQUENCE{

  CA BOOLEAN DEFAULT FALSE,

  pathLenConstraint INTEGER (0..MAX) OPTIONAL}

  CA 字段标识此公钥证书是否可用来验证证书签名。

  PathLenConstraint 字段仅在 CA设置为 TRUE 时才有意义。它给出此证书之后认证路径中最多的 CA证书数目。0 值表明在路径中只可以向终端实体签发证书,而不可以签发下级 CA 证书。Path- LenConstraint字段出现时应大于或等于 0。如果在认证路径的任何证书中未出现 pathLenConstraint

  字段,则对认证路径的允许长度没有限制。

  CA证书中应包括本扩展,而且应是关键的,否则,未被授权为 CA 的实体可以签发证书,同时证书使用系统会在不知情的情况下使用这样的证书。

  如果此扩展存在,并标记为关键的,那么:

  a) 如果 CA字段的值置为 FALSE,则密钥用法不能包含 keyCertSign这一用法,其公开密钥应不能用来验证证书签名;

  b) 如果 CA字段的值置为 TRUE,并且 pathLen Constraint存在,则证书使用系统应检查被处理的认证路径是否与 pathLenConstraint 的值一致。

  注 1 :如果此扩展不存在或标记为非关键项的并且未被证书使用系统认可,该证书被系统视为终端用户证书,并且不能用来验证证书签名。

  注 2:为限制一证书主体只是一个端实体,即,不是 CA,颁发者可以在扩展中只包含一个空 SEQUENCE 值的扩

  展项。

  5 .2 .4 .2 . 13 名称限制 nameconstraints

  本项应只用于 CA证书,它指示了一个名称空间,在此空间设置了认证路径中后续证书中的所有主体名称。 此项定义如下:

  id-ce-nameConstraints OBJECT IDENTIFIER : : = { id-ce 30 }

  NameConstraintsSyntax: : =SEQUENCE{

  GeneralSubtrees : : =SEQUENCE SIZE (1 . . MAX) OF GeneralSubtree

  GeneralSubtree : : =SEQUENCE{

  GB/T 20518—2018

  BaseDistance : : =INTEGER( 0 . . MAX)

  如果存在 permittedSubtrees 和 excludedSubtrees 字段,则他们每个都规定一个或多个命名子树,

  每个由此子树的根的名称或以任选处于其子树内的任意节点名称来定义,子树范围是一个由上界和/或

  下界限定的区域。如果 permittedSubtrees 存在,由主体 CA 和认证路径中下级 CA 颁发的所有证书中,只有那些在子树中具有与 permittedSubtrees 字段规定主体名称相同的证书才是可接受的。如果excludedSubtrees存在,由主体 CA 或认证路径中后继的 CA 颁发的所有证书中,同 excludedSubtrees规定主体名称相同的任何证书都是不可接受的。如果 PermittedSutrees 和 excluded Subtrees 都存在并且名称空间重叠,则优先选用排斥声明(exclusion statement) 。

  通过 GeneralName字段定义的命名格式,需要那些具有良好定义的分层结构的名称形式用于这些字段,Directory Name名称形式满足这种要求;使用这些命名格式命名 的子树对应于 DIT 子树。在应

  用中不需要检查和识别所有可能的命名格式。 如果此扩展标记为关键项,并且证书使用中不能识别用

  于 base项的命名格式,应视同遇到未识别的关键项扩展那样来处理此证书。如果此扩展标记为非关键的,并且证书使用中不能识别用于 base项的命名格式,那么,可以不理睬此子树规范。当证书主体具有同一名称形式的多个名称时(在 directory Name 名称形式情况下,包括证书主体项中的名称,如果非

  “0”),那么,对与此名称形式的名称限制一致性而言应检验所有这些名称。

  可以对主体名称或主体选择名称进行限制。 只有当确定的名称格式出现时才应用限制。 如果证书中没有类型的名称,则证书是可以接受的。 当对于命名格式限制的一致性测试证书主体名称时,即使扩展中标识为非关键项也应予以处理。

  Minimum 字段规定了子树内这一区域的上边界。最后的命名形式在规定的级别之上的所有名称不包含在此区域内。等于“0”(默认)的 minimum 值对应于此基部(base),即,子树的顶节点。例如,如果 minimum置为“1”,则命名子树不包含根节点而只包含下级节点。

  Maximun字段规定了子树内这一区域的下边界。最后的命名形式在规定的级别之下所有名称不包含在此区域内。最大值“0”对应于此基部(base) ,即,子树的顶。不存在的 maximun 字段指出不应把下限值施加到子树内的此区域上。例如,如果 maximun置为“1”,那么,命名子树不包含除子树根节点

  及其直接下级外的所有节点。

  本标准建议将它标记为关键项,否则,证书用户不能检验认证路径中的后续证书是否位于签发 CA指定的命名域中。

  如果此扩展存在,并标记为关键的,则证书用户系统应检验所处理的认证路径与此扩展中的值是否一致。

  本标准中,任何名称格式都不使用最小和最大字段,最小数总为 0,最大数总是空缺的。

  5.2.4.2. 14 策略限制 policyconstraints

  策略限制扩展用于向 CA颁发的证书中。 本扩展以两种方式限制路径确认。 它可以用来禁止策略映射或要求路径中的每个证书包含一个认可的策略标示符。 本项定义如下:

  id-ce-policyConstraints OBJECT IDENTIFIER : : = { id-ce 36 }

  PolicyConstraints : : =SEQUENCE{

  requireExplicitPolicy [0]SkipCertsOPTIONAL,

  inhibitPolicyMapping [1]SkipCertsOPTIONAL}

  SkipCerts : : =INTEGER(0..MAX)

  如果 requireExplicitPolicy字段存在,并且证书路径包含一个由指定 CA 签发的证书,所有在此路

  径中的证书都有必要在证书扩展项中包含合适的策略标识符。 合适的策略标识符是由用户在证书策略

  GB/T 20518—2018

  中定义的标识符,或声明通过策略映射与其等价的策略的标识符。 指定的 CA 指包含此扩展信息的认

  证机构(如果 requireExplicitpolicy 的值为“0”)或是认证路径中后续认证机构 CA(由非“0”值指示的)。

  如果 inhibitPolicyMapping 字段存在,它表明在认证路径中从所指定的 CA 开始直到认证路径结束为止的所有证书中,不允许策略映射。指定的 CA 指包含此扩展信息的认证机构(如果 inhibitPolicy- Mapping 的值为“0”)或是认证路径中后续认证机构 CA(由非“0”值指示的)。

  SkipCerts类型的值表示在某一限制成为有效之前应在认证路径中需要跳过的证书的个数。

  此扩展由证书签发者选择是关键的还是非关键的。 证书签发者宜标记为关键的,否则证书用户可能不能正确地解释认证机构 CA设定的规则。

  5 .2 .4 .2 . 15 证书撤销列表分发点 CRLDistributionpoints

  CRL分发点扩展用来标识如何获得 CRL 信息,本扩展仅作为证书扩展使用。 它可用于认证机构证书,终端实体公钥证书以及属性证书中。 本项指定了 CRL分发点或证书用户的查阅点以确定证书是否已被撤销。 证书用户能从可用分发点获得一个 CRL,或者它可以从认证机构 目 录项获得当前完整的 CRL。

  该项定义如下:

  id-ce-CRLDistributionPoints OBJECT IDENTIFIER : : = { id-ce 31 }

  cRLDistributionPoits : : = { CRLDistPointsSyntax}

  CRLDistPointsSyntax: : =SEQUENCE SIZE (1..MAX) OF DistributionPoint

  DistributionPoint : : =SEQUENCE{

  DistributionPointName : : =CHOICE{

  ReasonFlags : : =BITSTRING{

  unused (0) ,

  keyCompromise (1) ,

  CACompromise (2) ,

  affiliationChanged (3) ,

  superseded (4) ,

  cessationOfOperation (5) ,

  certificate Hold (6)}

  distributionPoint 字段标识如何能够获得 CRL 的位置。如果此字段缺省,分发点名称默认为 CRL

  颁发者的名称。

  当使用 fullName替代名称或应用默认时,分发点名称可以有多种名称形式。同一名称(至少用其名称形式之一)应存在于颁发 CRL 的分发点扩展的 distrubutionPoint 字段中。不要求证书使用系统能

  处理所有名称形式。 它可以只处理分发点提供的诸多名称形式中的一种。 如果不能处理某一分发点的任何名称形式,若能从另一个信任源得到必要的撤销信息,例如另一个分发点或 CA 目 录项,则证书应

  GB/T 20518—2018

  用系统仍能使用该证书。

  如果 CRL分发点被赋于一个直接从属于 CRL颁发者的 目录名称的 目录名,则只能使用 nameRel- ativeToCRLIssuer字段。此时,nameRelativeToCRLIssuer字段传送与 CRL颁发者目录名称有关的可

  甄别名。

  Reasons 字段指明由此 CRL所包含的撤销原因。如果没有 reasons 字段,相应的 CRL分发点发布包含此证书(如果此证书已被撤销)的项的 CRL,而不管撤销原因。否则,reasons 值指明相应的 CRL

  分发点所包含的那些撤销原因。

  CRLIssuer 字段标识颁发和签署 CRL 的机构。如果没有此字段,CRL 颁发者的名称默认为证书

  签发者的名称。

  此扩展可以是关键的或非关键的,由证书颁发者选择,建议该扩展设置为非关键的,但 CA 和应用应支持该扩展。

  如果该扩展标记为关键,CA则要保证分发点包含所用的撤销原因代码 keyCompromise 和/或 CA- Compromise。若没有首先从一个包含了原因代码 keyCompromise(对终端实体证书)或 CACompromise(对

  CA证书)的指定的分发点检索和核对 CRL,证书使用系统将不使用该证书。 在分配点为所有撤销原因

  代码和由 CA(包括作为关键扩展的 CRLDistributionPoint)发布的所有证书分配 CRL 信息的项中,CA

  不需要在 CA项发布一个完整的 CRL。

  如果此扩展标记为非关键的,当证书使用系统未能识别此扩展项类型时,则只有在下列情况中,该系统使用此证书:

  a) 它能从 CA 获得一份完整 CRL 并检查它(通过在 CRL 中设有发布点扩展项来指示最近的CRL是完整的);

  b) 根据本地策略不要求撤销检查;或

  c) 用其他手段完成撤销检查。

  注 1 :一个以上的 CRL分发者对应一个证书 CRL签发者是可能的。 这些 CRL 分发者和签发 CA 的协调是 CA 策略的一个方面。

  注 2:证书撤销列表 CRL 的应用,参照 RFC 5280 。

  5.2.4.2. 16 限制所有策略 inhibitAnypolicy

  本扩展指定了一个限制,它指出了任何策略,对于从指定 CA 开始的认证路径中的所有证书的证书

  策略,都认为不是显式匹配。指定的 CA 要么是包含这个扩展的证书的主体 CA(如果 inhitanyPolicy

  值为 0) ,要么是认证路径(由非 0 值指定)中后继认证机构 CA。

  id-ce-inhibitAnyPolicy OBJECT IDENTIFIER : : = { id-ce 54}

  InhibitAnyPolicy : : =SkipCerts

  SkipCerts : : =INTEGER(0..MAX)

  本扩展由证书颁发者选择关键项还是非关键项。 建议它标记为关键项,否则证书用户可能不能正确地解释认证机构 CA设定的规则。

  5 .2 .4 .2 . 17 最新证书撤销列表 freshestcRL

  最新 CRL 扩展只被作为证书扩展使用,或在发给认证机构和用户的证书中使用。 该项标识了

  CRL,对 CRL来说证书用户应包含最新的撤销信息(例如:最新的 dCRL)。

  该项定义如下:

  id-ce-CRLfreshestCRL OBJECT IDENTIFIER : : = { id-ce 46}

  freshestCRL: : ={CRLDistPointsSyntax}

  根据证书颁发者的选择,这个扩展可能是关键的,也可能是非关键的。 如果最新的 CRL 扩展是关

  GB/T 20518—2018

  键的,那么证书使用系统不使用没有首先进行撤销和核对的最新 CRL 的证书。 如果扩展被标记为不关键的,证书使用系统能使用本地方法来决定是否需要检查最新的 CRL。

  5.2.4.2. 18 个人身份标识码 identifycode

  个人身份证号码用于表示个人身份证件的号码,其定义如下:

  id-IdentifyCode OBJECT IDENTIFIER : : = { 1.2.156.10260.4.1.1 }

  IdentifyCode : : =SET {

  residenterCardNumber [0]PrintableString OPTIONAL,

  militaryOfficerCardNumber [1] UTF8String OPTIONAL,

  passportNumber [2]PrintableString OPTIONAL,

  ...

  }

  此扩展项标记为非关键的。

  5 .2 .4 .2 . 19 个人社会保险号 insuranceNumber

  个人社会保险号扩展项用于表示个人社会保险号码,其定义如下:

  ID-InsuranceNumber OBJECT IDENTIFIER : : = { 1 . 2 . 156 . 10260 . 4 . 1 . 2 }

  InsuranceNumber: : = PrintableString

  此扩展项标记为非关键的。

  5.2.4.2.20 企业工商注册号 icRegistrationNumber

  企业工商注册号扩展项用于表示企业工商注册号码,其定义如下:

  ID-ICRegistrationNumber OBJECT IDENTIFIER : : = { 1.2.156.10260.4.1.3 }

  ICRegistrationNumber: : = PrintableString

  此扩展项标记为非关键的。

  5.2.4.2.2 1 企业组织机构代码 organizationcode

  企业组织机构代码号扩展项用于表示企业组织机构代码,其定义如下:

  ID-OrganizationCode OBJECT IDENTIFIER : : = { 1.2.156.10260.4.1.4 }

  OrganizationCode: : = PrintableString

  此扩展项标记为非关键的。

  5 .2 .4 .2 .22 企业税号 taxationNumeber

  企业税号扩展项用于表示企业税号码,其定义如下:

  ID-TaxationNumeber OBJECT IDENTIFIER : : = { 1 . 2 . 156 . 10260 . 4 . 1 . 5}

  TaxationNumeber: : = PrintableString

  此扩展项标记为非关键的。

  5.2.4.3 专用因特网扩展 privateInternetExtensionsid-pkix

  5 . 2 . 4 . 3 . 1 综述

  5 . 2 . 4 . 3 定义了两个应用于因特网公钥基础结构(PKI) 的新扩展,用于指导应用以识别一个支持

  GB/T 20518—2018

  CA 的在线验证服务。 其对象标识符如下

  id-pkix OBJECT IDENTIFIER : : =

  { iso(1) identified-organization(3) dod(6) internet(1)

  security(5) mechanisms(5) pkix(7) }

  id-pe OBJECT IDENTIFIER : : = { id-pkix 1 }

  每个扩展是一个 IA5String 值的序列,每个值分别代表一个 URI 。URI 直接确定信息的位置和格

  式以及获得信息的方式。

  5.2.4.3.2 机构信息访问 authorityInfoAccess

  本扩展项描述了包含该扩展的证书的签发者如何访问 CA 的信息以及服务。 包括在线验证服务和CA 策略数据。 该扩展可包括在用户证书和 CA证书中,且应为非关键的。

  id-pe-authorityInfoAccess OBJECT IDENTIFIER : : = { id-pe 1 }

  AuthorityInfoAccessSyntax : : =

  SEQUENCE SIZE (1..MAX) OF AccessDescription AccessDescription : : = SEQUENCE {

  accessMethod OBJECT IDENTIFIER,

  accessLocation GeneralName }

  id-ad OBJECT IDENTIFIER : : = { id-pkix 48 }

  id-ad-caIssuers OBJECT IDENTIFIER : : = { id-ad 2 }

  id-ad-ocsp OBJECT IDENTIFIER : : = { id-ad 1 }

  序列 AuthorityInforAccessSyntax 中的每个入口描述有关颁发含有该扩展的证书的 CA 附加信息格式和位置。信息的类型和格式由 accessMethod 字段说明;信息的位置由 accessLocation 字段说明。检索机制可以由 accessMethod表明或由 acessLocaion说明。

  本标准定义用于 accessMethod 的一个 OID。当附加的信息列出了发行证书的 CA 高于发行该扩展的证书 CA 时,使用 id-ad-caIssuers OID。

  当 id-ad-caIssuers 以 accessInfoType 出现时,acessLocaion 字段说明参考的描述服务器及获得参考描述的访问协议。AcessLocaion字段定义为 GeneralName,它可有几种形式:当信息可以通过 http, ftp 或 ldap 获得时,acessLocaion 应是一个 uniformResourceIdentifier 类型。当信息可以通过目录访问协议获得时,acessLocaion应是一个 directoryName 类型。当信息可以通过电子邮件获得时,acessLo-

  caion应是一个 rfc822Name类型。

  5.2.4.3.3 主体信息访问 subjectInformationAccess

  本扩展描述了证书主体如何访问信息和服务。 如果主体是 CA,则包括证书验证服务和 CA 策略数据,主体是用户,则描述了提供的服务的类型以及如何访问它们,在这种情况下,扩展域/项中的内容在所支持的服务的协议的说明中定义。 这个扩展项应被定义为非关键的。

  id-pe-SubjectInformationAccess OBJECT IDENTIFIER : : = { id-pe 11 }

  SubjectInfoAccessSyntax : : =

  SEQUENCE SIZE (1..MAX) OF AccessDescription

  AccessDescription : : = SEQUENCE {

  accessMethod OBJECT IDENTIFIER,

  accessLocation GeneralName }

  另外附录 A 中规定了证书的结构,附录 B 中列举出数字证书结构实例,并制定了数据项的关键程度,附录 C 中规定了证书撤销列表内容表,附录 D 中提供了数字证书编码举例。

  GB/T 20518—2018

  5 . 3 CRL格式

  5 . 3 . 1 综述

  本标准采用 GB/T 16262 . 1—2006 的特定编码规则(DER)对下列证书撤销列表项中的各项信息进行编码,组成特定的证书撤销列表数据结构。 ASN . 1 DER 编码是关于每个元素的标记、长度和值的编码系统。

  5 . 3 . 2 CRL的数据结构

  CRL数据结构的 ASN . 1 描述如下:

  CertificateList : : = SEQUENCE {

  tbsCertList TBSCertList ,

  signatureAlgorithm AlgorithmIdentifier,

  signatureValue BIT STRING

  }

  TBSCertList : : = SEQUENCE {

  version Version OPTIONAL ,

  --如果出现,必须是 v2

  signature AlgorithmIdentifier,

  issuer Name ,

  thisUpdate Time,

  nextUpdate Time OPTIONAL,

  revokedCertificates SEQUENCE OF SEQUENCE {

  userCertificate CertificateSerialNumber ,

  revocationDate Time ,

  crlEntryExtensions Extensions OPTIONAL

  --如果出现,version必须是 v2

  } OPTIONAL,

  crlExtensions [0] EXPLICIT Extensions OPTIONAL

  --如果出现,version必须是 v2

  }

  上述的 CRL数据结构由 tbsCertList、signatureAlgorithm 和 signatureValue 三个域构成。这些域

  的含义如下:

  a) tbsCertList域包含了主体名称和颁发者名称、颁发 日期、撤销的证书信息和 CRL 的扩展信息。

  b) signatureAlgorithm 域包含 CA 签发该 CRL所使用的算法标识符。一个算法标识符的 ASN. 1 结构如下:

  AlgorithmIdentifier : : = SEQUENCE

  {

  algorithm OBJECT IDENTIFIER,

  parametersANY DEFINED BY algorithm OPTIONAL

  }

  算法标识符用来标识一个密码算法,其中的 OBJECT IDENTIFIER 部分标识了具体的算法。

  GB/T 20518—2018

  其中可选参数的内容完全依赖于所标识的算法。该域的算法标识符应与 tbsCertList 中 的signature标识的签名算法项相同。如果签名算法为 SM2,无参数。

  c) signatureValue域包含了对 tbsCertList 域进行数字签名的结果。采用 ASN. 1 DER 编码的tbsCertList作为数字签名的输入,而签名的结果则按照 ASN . 1 编码成 BIT STRING 类型并保存 在 CRL 签 名 值 域 内 。 如 果 签 名 算 法 为 SM2 , SM2 密 码 算 法 签 名 数 据 格 式 见GB/T 35276 。

  5 . 3 . 3 TBscertList数据结构

  5 .3 .3 . 1 版本 version

  本可选项描述了编码 CRL 的版本号。如果使用了 Extensions 项,则应存在此项,且其值应是 ver- sion 2(用整

29140971129
下载排行 | 下载帮助 | 下载声明 | 信息反馈 | 网站地图  360book | 联系我们谢谢