信息安全技术 公钥基础设施 在线证书状态协议_第1页
信息安全技术 公钥基础设施 在线证书状态协议_第2页
信息安全技术 公钥基础设施 在线证书状态协议_第3页
信息安全技术 公钥基础设施 在线证书状态协议_第4页
信息安全技术 公钥基础设施 在线证书状态协议_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS35.030

CCSL80

中华人民共和国国家标准

GB/TXXXXX—XXXX

代替GB/T19713—2005

`

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

在线证书状态协议

Informationsecuritytechnology—Publickeyinfrastructure—

Onlinecertificatestatusprotocol

(征求意见稿)

(本稿完成日期:2023-3-10)

在提交反馈意见时,请将您知道的相关专利连同支持性文件一并附上。

XXXX-XX-XX发布XXXX-XX-XX实施

GB/TXXXXX—XXXX

前言

本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定

起草。

本文件代替GB/T19713—2005《信息技术安全技术公钥基础设施在线证书状态协议》,与GB/T

19713—2005相比,主要技术变化如下:

a)更改了“revoked(已撤销)”状态的使用范围,允许对从未签发过的证书使用此响应状态

(见5.3);

b)更改了“unauthorized(未授权)”错误响应的使用范围(见5.4);

c)增加了“revocationTime(撤销时间)”语义的定义(见5.5);

d)增加SM2、SM3算法的支持(见7.3);

e)更改了相关描述阐明了响应者何时被视为授权响应者(见);

f)更改了相关描述阐明了ResponderID字段对应于OCSP响应者签名证书(见);

g)增加了OCSP响应器按照GM/T0014—2012要求从CA获得证书发布的状态(见.2);

h)增加了Nonce的ASN.1语法,而且对Nonce的长度范围作出了规定(见7.4.2);

i)增加了“优先的签名算法”扩展,该扩展可包含在请求消息中,以指定客户端希望响应器使

用的签名算法,建议优先算法使用SM3withSM2(见7.4.8);

j)增加了“扩展撤销定义”扩展,该扩展表明响应器支持对第5.3节中定义的未签发证书的

“revoked(已撤销)”响应的扩展使用(见7.4.9);

k)增加了基于HTTP的轻量级OCSP请求及响应格式(见附录A.2);

l)更改了使用ASN.1的2008语法的ASN.1模块,增加支持使用SM2、SM3算法(见附录B.2);

m)增加了使用ASN.1的OCSP请求及响应格式示例,支持使用SM2、SM3算法的使用示例(见附录

C);

n)把正文的“安全考虑”改为附录D(见附录D)。

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

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

本文件起草单位:普华诚信信息技术有限公司、上海信息安全基础设施研究中心有限责任公司、

上海市数字证书认证中心有限公司、国家密码管理局商用密码检测中心、北京数字认证股份有限公

司、郑州信大捷安信息技术股份有限公司、格尔软件股份有限公司、深圳市电子商务安全证书管理有

限公司、中电科网络安全科技股份有限公司、数安时代科技股份有限公司、华为技术有限公司。

本文件主要起草人:梁佐泉、顾青、田文晋、王亚红、冯四风、高五星、张子鸣、付丽丽、王志

威、高阳、陈荦祺、赵鹰侠、张绍博、张永强、刘为华、郑强、郑会涛、岳小阳、杜志强、曾光。

本文件所代替文件的历次版本发布情况为:

——2005年首次发布为GB/T19713—2005;

——本次为第一次修订。

II

GB/TXXXXX—XXXX

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

在线证书状态协议

1范围

本文件规定了面向公钥基础设施的在线证书状态协议(OCSP),此协议是一种无需请求证书撤销

列表(CRL)即可查询数字证书状态的协议,包括总则、功能要求、具体协议等。

本文件适用于公钥基础设施的建设以及应用在线证书状态协议的依赖方等。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文

件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适

用于本文件。

GB/T16263.1—2006信息技术ASN.1编码规则第1部分:基本编码规则(BER)、正则编码规则

(CER)和非典型编码规则(DER)规范

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

GB/T25069—2022信息安全技术术语

GB/T32905—2016信息安全技术SM3密码杂凑算法

GB/T32915—2016信息安全技术二元序列随机性检测方法

GB/T33560—2017信息安全技术密码应用标识规范

GB/T35276—2017信息安全技术SM2密码算法使用规范

GB/T37092—2018信息安全技术密码模块安全要求

GM/T0014—2012数字证书认证系统密码协议规范

3术语和定义

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

3.1

数字证书digitalcertificate

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

可信的数字化文件。

[来源:GB/T25069—2022,3.579]

3.2

证书序列号certificateserialnumber

在某一证书认证机构所签发的证书中用于唯一标识数字证书的一个整数。

[来源:GB/T25069—2022,3.788]

3.3

请求者requester

申请在线证书状态查询服务的实体或设备。

注:根据上下文语境不同,在本文件部分章节中也使用“客户端”,二者同义。

3.4

响应者responder

提供在线证书状态查询服务的实体或设备。

注:根据上下文语境不同,在本文件部分章节中也使用“响应器”,二者同义。

1

GB/TXXXXX—XXXX

3.5

在线证书状态协议OnlineCertificateStatusProtocol

一种无需请求证书撤销列表(CRL)即可查询数字证书状态的协议。

4缩略语

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

CA:证书认证机构(CertificationAuthority)

CRL:证书撤销列表(CertificateRevocationList)

HTTP:超文本传输协议(HyperTextTransferProtocol)

LDAP:轻量级目录访问协议(LightweightDirectoryAccessProtocol)

OCSP:在线证书状态协议(OnlineCertificateStatusProtocol)

OID:对象标识符(ObjectID)

PKI:公钥基础设施(PublicKeyInfrastructure)

SMTP:简单邮件传输协议(SimpleMailTransferProtocol)

URI:统一资源描述符(UniformResourceIdentify)

URL:统一资源定位符(UniformResourceLocator)

5总则

5.1概述

OCSP作为查询CRL的替代方法或补充方法,对需实时获得数字证书撤销状态相关信息的,OCSP是必

不可少的。

OCSP能使应用程序获得某个目标证书的撤销状态,OCSP可提供比检查CRL更实时的撤销状态信息,

还可提供附加的状态信息。OCSP客户端向OCSP响应器发出一个状态请求时,需暂停接受待验证的证

书,直到响应器提供响应为止。

本文件规定了查验证书状态的应用程序和提供证书状态查询的响应器之间需要交换的数据。

5.2请求

本节指明了OCSP请求包括的数据内容及响应器接受请求时对请求数据格式的要求。

a)OCSP请求包含以下数据:

1)协议版本;

2)服务请求;

3)目标证书标识符;

4)OCSP响应器可处理的可选扩展,比如:OCSP客户端的签名、随机数。

b)在接受到请求时,OCSP响应器应确定:

1)报文格式是否正确;

2)响应器是否配置了所要求的服务;

3)请求是否包含了响应器需要的信息。

如果上述任一条件不满足,OCSP响应器将返回一个错误信息;否则,将返回一个明确的响

应。

5.3响应

OCSP响应由响应类型和响应实体两部分组成,根据实际情况,响应可有不同类型。

a)所有确定的响应报文都应进行数字签名,用于响应签名的密钥应符合下列条件之一:

1)签发待验证证书的CA密钥;

2)CA指定的响应器(即授权的响应器,见)的密钥,该响应器拥有一个CA直接签发

的带有扩展密钥用法id-kp-OCSPSigning(见GB/T20518—2018.5)的证书,

该扩展项指明该响应器可为CA签发OCSP响应;

2

GB/TXXXXX—XXXX

3)可信赖的响应器密钥,即客户端信任该响应器的密钥。

b)响应消息由如下内容组成:

1)响应语法的版本;

2)响应者的标识符;

3)生成响应的时间;

4)对请求中每个证书的响应;

5)可选择的扩展;

6)签名算法的OID;

7)响应的数字签名。

c)对请求中证书的响应由如下内容组成:

1)目标证书标识符;

2)证书状态值;

3)响应有效间隔;

4)可选的扩展。

d)本文件对证书状态值规定了如下响应标识符:

1)good(在用):表示证书是有效的在用证书。此响应表示在其有效期内所请求证书序列

号的证书没有被撤销,但并不一定意味着该证书曾经被签发过,或产生响应的时间是在

证书有效性期内。另外,响应扩展可提供关于证书状态信息的附加声明,例如已签发、

有效期等;

2)revoked(已撤销):表示证书已被冻结(撤销原因是冻结)或永久的撤销。如果相关联

的CA没有签发所请求证书的记录,也可能返回此状态;

3)unknown(未知):表示响应器不能鉴别待验证状态的证书。通常是因为该响应器无法识

别验证请求所包含的颁发者。

注:“已撤销”状态表示应拒绝所请求证书序列号的证书,而“未知”状态表示响应器无法确定状态,从而允许

客户端决定是否要尝试其他状态信息源(例如CRL)。“已撤销”响应适用于未签发的证书,其中响应器的目

的是引导客户端拒绝证书,而不是尝试其他状态信息源。例如,响应器可能不知道请求序列号是否已签发的

证书,或者在响应器提供预先产生的响应时,不能为所有未签发的证书序列号提供签名响应。

e)当响应器向未签发证书的状态请求发送“已撤销”响应时,响应器应在响应中包含扩展

撤销定义(见7.4.9),从而表明OCSP响应器支持“已撤销”状态的扩展定义,以涵盖未

签发的证书。另外,未签发证书与SingleResponse结构字段(见7.3.1)相关。“已撤

销”响应应符合以下要求:

1)应明确指出撤销原因是冻结;

2)应明确指出撤销时间是1970年1月1日;

3)不能包括CRL引用扩展(见7.4.3)或任何CRL条目扩展(见7.4.6)。

5.4异常情况

当出现错误时,OCSP响应器应返回某个错误消息,且不需要对错误消息进行签名,错误可分

为以下几类:

a)malformedRequest(请求格式错误):OCSP响应器接收到的请求不符合OCSP语法;

b)internalError(内部错误):OCSP响应器处于非协调的工作状态,应当向另一个响应器再次

进行查询;

c)tryLater(稍后重试):OCSP响应器正处于运行状态,不能返回所请求证书的状态,即表明

存在所需的服务,但是暂时不能响应;

d)sigRequired(应对请求签名):响应器要求客户端对请求签名;

e)unauthorized(请求未被授权):该查询是由未授权请求者向响应器提出的,或者响应器没

有能力进行授权响应。

5.5时间语义

本文件中定义的响应可包含thisUpdate、nextUpdate、ProducedAt和revocationTime四个时间,

这些时间的语义分别是:

3

GB/TXXXXX—XXXX

a)thisUpdate:生效时间,响应器可以确认证书状态的最新时间;

b)nextUpdate:下次更新时间,表示证书在此时间之前,状态是正常的,并且在此时间可再次

获得证书状态更新的信息;

c)producedAt:签发时间,OCSP响应器产生该响应的时间;

d)revocationTime:撤销时间,证书被撤销或者冻结的时间。

5.6预产生响应

为说明某一特定时间内某些证书的状态,OCSP响应器可预先生成某些签名响应。签名响应中的

thisUpdate字段表示证书状态被认为是合法的时间;nextUpdate字段表示证书状态再次更新的时间;

ProduceAt字段表示产生响应的时间。

5.7OCSP签名机构的委托

签名证书状态信息的密钥不必与签发证书的密钥相同。证书颁发者通过签发包含扩展密钥用法为

id-kp-OCSPSigning的OCSP签名者证书来指派OCSP签名机构,此证书应由认可的CA直接签发给响应器

(见)。

5.8CA密钥泄漏

如果OCSP响应器知道某个CA的私钥已被泄漏,则它可为该CA发布的所有证书返回撤销状态。

6功能要求

6.1证书内容要求

为向OCSP客户端提供OCSP响应器的访问位置,CA应该在证书扩展项中提供用于访问OCSP响应

器的机构信息访问(AIA),且证书扩展符合GB/T20518—2018的要求;或者,在OCSP客户端本地

配置OCSP响应器的访问地址。

对于提供OCSP服务的CA,不管是在本地实现还是由授权的OCSP响应器实现,都应在机构信息访

问中包括OID值为id-ad-ocsp的访问方法和访问OCSP响应器的URI。

待验证证书中访问地址值定义了访问OCSP响应器的信息传输方式(如HTTP),该值中包含其

他的信息(如一个URL)。

6.2签名响应的接收要求

在将证书的签名响应视为有效之前,OCSP客户端应确认:

a)响应中所鉴别的证书与对应请求中所查验的证书一致;

b)响应方的签名是有效的;

c)响应方的签名者身份应和请求的预定接收者保持一致;

d)签名者已被授权为查验证书提供签名响应;

e)指明证书状态的时间(thisUpdate)应为当前最近的时间;

f)如果设置了nextUpdate字段,此时间应该晚于客户端当前时间。

7具体协议

7.1约定

本文件按照GB/T16263.1—2006的非典型编码规则(DER)对OCSP请求、响应的信息项进行编

码,组成特定的请求、响应数据结构。如果无特殊说明,默认使用ASN.1显式标记。

OCSPASN1语法的signature、Extensions、CertificateSerialNumber、

SubjectPublicKeyInfo、Name、AlgorithmIdentifier和CRLReason等字段引用GB/T20518—2018

的语法。

本文件中的SM2算法标识符符合GB/T33560—2017的要求。signature域签名的结果则按照

ASN.1编码成BITSTRING类型并保存在签名值域内。如果签名算法为SM2,SM2密码算法签名数据

4

GB/TXXXXX—XXXX

格式符合GB/T35276—2017的要求。

7.2请求

7.2.1OCSP请求语法

本条规定了请求的ASN.1语法。根据所使用的传输机制(HTTP、SMTP、LDAP等),实际的消息格

式可能会发生相应的变化。

OCSP请求的ASN.1数据结构(完整的OCSPRequest结构见附录B.1)为:

OCSPRequest::=SEQUENCE{

tbsRequestTBSRequest,

optionalSignature[0]EXPLICITSignatureOPTIONAL}

TBSRequest::=SEQUENCE{

version[0]EXPLICITVersionDEFAULTv1,

requestorName[1]EXPLICITGeneralNameOPTIONAL,

requestListSEQUENCEOFRequest,

requestExtensions[2]EXPLICITExtensionsOPTIONAL}

Signature::=SEQUENCE{

signatureAlgorithmAlgorithmIdentifier,

signatureBITSTRING,

certs[0]EXPLICITSEQUENCEOFCertificateOPTIONAL}

Version::=INTEGER{v1(0)}

Request::=SEQUENCE{

reqCertCertID,

singleRequestExtensions[0]EXPLICITExtensionsOPTIONAL}

CertID::=SEQUENCE{

hashAlgorithmAlgorithmIdentifier

{DIGEST-ALGORITHM,{...}},

issuerNameHashOCTETSTRING,--颁发者证书主题(DN)的杂凑值

issuerKeyHashOCTETSTRING,--颁发者证书公钥的杂凑值

serialNumberCertificateSerialNumber--证书序列号

}

OCSPRequest结构中各域的含义是:

——tbsRequest域是包括查验证书和请求者等信息,OCSP请求信息中的可选签名值的原文信息;

——optionalSignature域包含签名算法中的算法标识符和任何相关的算法参数、签名中的签名

值、响应器验证签名所需的客户端证书(证书为可选项,通常不包括客户端的根证书)。

TBSRequest结构中各域的含义是:

——version域表示协议版本,依据本文件的请求消息协议版本为v1(0);

——requestorName域表示OCSP请求者的名称,为可选项;

——requestList域包含一个或多个证书状态请求;

——requestExtensions域是可选项,包括适用于reqCert域中的请求扩展项(见7.4)。

Request结构中各域的含义是:

——reqCert域包含待查验证书的标识;

5

GB/TXXXXX—XXXX

——singleRequestExtensions域是可选项,包括适用于单个证书状态请求的扩展项(见7.4

节)。

CertID结构中各域的含义是:

——hashalgalgorithm域是用来生成issuerNameHash值和issuerKeyHash值的杂凑算法;

——issuerNameHash域是颁发者证书主题(DN)的杂凑值,该值应根据所查验证书中的颁发者名

字字段的DER编码进行计算;

——issuerKeyHash域是颁发者证书公钥的杂凑值,该值根据颁发者证书中主体公钥字段的值(不

包括标签和长度)进行计算;

——serialNumber域是正在请求其状态的证书的序列号。

7.2.2OCSP请求语法的注解

请求语法的注解包括:

a)除了使用CA名称的杂凑值之外,同时又使用CA公钥值的杂凑来标识颁发者的主要原因是两个

CA可能使用相同的名称(虽然推荐名称的唯一性,但并不强制),但两个CA的公开密钥是不

可能相同的,除非两者都决定共享私钥,或者一方的密钥发生泄漏;

b)对任何特殊扩展域的支持是可选项,不应将这些扩展域设置为关键性的。7.4章节提出了许多

有用的扩展域。在其他标准中会定义其他的附加扩展域,应忽略那些不能识别的扩展域(除

非它们有关键性的标志并且不被理解);

c)客户端可选择对OCSP请求进行签名,签名时以tbsRequest结构作为原文来进行签名。如果请

求被签名,客户端应在requestorName域中指定其名称;对于已签名的请求,客户端可在签名

的证书字段中包含OCSP响应器验证客户端签名所需要的证书。signature域签名的结果则按照

ASN.1编码成BITSTRING类型并保存在签名值域内。如果签名算法为SM2,SM2密码算法签名数

据格式应符合GB/T35276—2017的要求;

d)在轻量级OCSP时,客户端可以简化请求的结构(见附录B.2),简化的结构为:

1)OCSPRequest结构在OCSPRequest.RequestList域中只能包含一个请求;

2)OCSPRequest结构中不宜包含singleRequestExtensions域,如果包含该结构,建议仅包

含nonce扩展(id-pkix-ocsp-nonce);

3)客户端优先使用SM3作为CertID.issuerNameHash值和CertID.issuerKeyHash值的杂凑算

法;

4)客户端不宜发送签名的ocsp请求,因为响应器可能会忽略OCSP请求上的签名。当请求不

签名时,客户端不应该在OCSPRequest结构中包含requestorName域,但OCSP响应器可支

持即包含requestorName域又未签名OCSP请求;

5)如果客户端发送签名的OCSP请求,客户端应在OCSPRequest.requestorName域中指定其名

称。

7.3响应

7.3.1OCSP响应

本条规定了确定响应的ASN.1语法。根据所使用的传输机制(HTTP、SMTP、LDAP等),实际的消

息格式可能会发生相应的变化。

OCSP响应的ASN.1结构(完整的OCSPResponse结构见附录B.1)为:

OCSPResponse::=SEQUENCE{

responseStatusOCSPResponseStatus,

responseBytes[0]EXPLICITResponseBytesOPTIONAL}

OCSPResponseStatus::=ENUMERATED{

successful(0),--响应被有效确认

malformedRequest(1),--请求格式错误

internalError(2),--内部错误

6

GB/TXXXXX—XXXX

tryLater(3),--稍候重试

sigRequired(4),--应对请求签名

unauthorized(5)--请求未被授权

}

OCSP响应至少由responseStatus域构成,如果responseStatus域的值是某个错误条件之一,则不

设置responseBytes域。

ResponseBytes结构由一个对象标识符和回复数据组成,该回复数据编码为OCTECTSTRING。

ResponseBytes::=SEQUENCE{

responseTypeOBJECTIDENTIFIER,

responseOCTETSTRING}

id-pkix-ocspOBJECTIDENTIFIER::={id-ad-ocsp}

id-pkix-ocsp-basicOBJECTIDENTIFIER::={id-pkix-ocsp1}

OCSP响应器应能产生id-pkix-ocsp-basic类型的响应,相应地,OCSP客户端也应该能接收并

处理此类响应。

Response字段的值应为BasicOCSPResponse结构的DER编码。

BasicOCSPResponse::=SEQUENCE{

tbsResponseDataResponseData,

signatureAlgorithmAlgorithmIdentifier,

signatureBITSTRING,

certs[0]EXPLICITSEQUENCEOFCertificateOPTIONAL}

signature域包含了对ResponseData结构进行数字签名的结果。采用ASN.1DER编码的

ResponseData作为数字签名的输入,而签名的结果则按照ASN.1编码成BITSTRING类型并保存。如果

签名算法为SM2,SM2密码算法签名数据格式符合GB/T35276—2017的要求。响应器可以在

BasicOCSPResponse结构的certs域中设置响应器证书,方便OCSP客户端验证响应器签名,如果不

包含证书,则不包括证书域。

ResponseData::=SEQUENCE{

version[0]EXPLICITVersionDEFAULTv1,

responderIDResponderID,

producedAtGeneralizedTime,

responsesSEQUENCEOFSingleResponse,

responseExtensions[1]EXPLICITExtensionsOPTIONAL}

ResponderID::=CHOICE{

byName[1]Name,

byKey[2]KeyHash}

KeyHash::=OCTETSTRING--响应器公开密钥的杂凑值(不包括标签和长度),杂凑算法采

用OCSPRequest中CertID的hashAlgorithm算法。

SingleResponse::=SEQUENCE{

certIDCertID,

certStatusCertStatus,

thisUpdateGeneralizedTime,

nextUpdate[0]EXPLICITGeneralizedTimeOPTIONAL,

singleExtensions[1]EXPLICITExtensionsOPTIONAL}

7

GB/TXXXXX—XXXX

CertStatus::=CHOICE{

good[0]IMPLICITNULL,

revoked[1]IMPLICITRevokedInfo,

unknown[2]IMPLICITUnknownInfo}

RevokedInfo::=SEQUENCE{

revocationTimeGeneralizedTime,

revocationReason[0]EXPLICITCRLReasonOPTIONAL}

Unknownlnfo::=NULL

7.3.2OCSP响应的注解

时间

响应结构可包含thisUpdate、nextUpdate、ProducedAt和revocationTime四个时间字段域,这四

个字段的定义见5.5。GeneralizedTime字段的格式符合GB/T20518—2018的第.4节要求。

thisUpdate和nextUpdate两个字段定义了有效时间间隔,该时间间隔和CRL中的

{thisUpdate,nextUpdate}间隔相对应。响应中若NextUpdate值比本地系统时间早,则响应无

效;响应中ThisUpdate值比本地系统时间晚,则该响应也无效。

如果未设置nextUpdate字段,则响应器认为比较新的响应始终可用。

在轻量级OCSP环境下,客户端不应在OCSPRequest结构中包含requestExtensions字段,为了确

保OCSP响应是最新的,客户端应检查nextUpdate字段是否存在,并且应确保当前时间(以GMT时间

表示)介于thisUpdate和nextUpdate时间之间。如果nextUpdate字段不存在,则客户端应拒绝响

应。客户端可允许在nextUpdate之后配置一个小的容忍期来接受响应,以处理相对于响应器和高速缓

存的微小时钟差异,此容忍期应根据调用应用程序环境的时间同步技术的准确性和精度来选择。

授权的响应器

.1授权响应器的证书要求

对证书状态信息签名的密钥不必与签发证书的密钥相同,但应确保对状态信息签名的实体是

经过授权的,因此,证书的颁发者应执行以下操作之一:

a)证书的颁发者直接对OCSP响应签名;

b)授权另一个实体对OCSP响应签名。

授权响应器的证书应由请求中标识的CA直接签发,且签发的证书中应包含id-kp-OCSPSigning

扩密钥,id-kp-OCSPSigning的定义为:

id-kp-OCSPSigningOBJECTIDENTIFIER::={id-kp9}

CA签发OCSP响应器证书的密钥,应与待验证证书的颁发者证书密钥相同。依赖于OCSP响应的

系统应确认OCSP响应器证书的颁发者与待验证证书的颁发者一致,应验证其颁发者密钥相同。

.2客户端对授权响应器证书的检查

客户端通过在本地配置一个或多个OCSP签名权威实体以及信任这些权威实体的CA,可检测并使

用id-kp-OCSPSigning值(见.1),实现对授权响应器证书的验证。如果授权响应器证书不

能满足以下任一标准,响应应被拒绝:

a)本地配置的OCSP响应器证书与待验证证书的颁发者相匹配;

b)签发待验证证书的CA证书;

c)在extendedKeyUsage扩展中含有id-ad-ocspSigning值,并且由签发待验证证书的CA签

发。

其他的接受或拒绝条件可应用于响应自身,或应用于验证签名响应的证书。

8

GB/TXXXXX—XXXX

.3授权响应器的撤销检查

一个授权权威OCSP响应器可为一个或多个CA提供状态信息,因此,OCSP客户端需要检查授权权威

响应器的证书是否已被撤销。以下三种方法CA可任选其一进行检查:

a)CA可指定OCSP客户端在响应器证书的整个生存期内信任该响应器。CA通过在响应器证书中包

含id-pkix-ocsp-nocheck扩展来完成该指定,该扩展属于非关键性的扩展,扩展值可为空。

然而,对于证书的有效期,上述响应器密钥的泄密同签发CRL的CA密钥的泄密所带来的后果一

样严重,因此,CA可选择签发一种有效期很短并且经常更新的证书,也就是短生命周期的证

书,此项定义为:

id-pkix-ocspOBJECTIDENTIFIER::={id-ad-ocsp}

id-pkix-ocsp-nocheckOBJECTIDENTIFIER::={id-pkix-ocsp5}

b)CA可指定检查响应器证书是否被撤销的方法。如果指定使用CRL检查方式,则需使用CRL分发

点;如果指定其他检查方式,则需使用授权信息访问,有关上述两种机制的说明详见GB/T

20518-2018。在轻量级OCSP环境下,OCSP响应程序的证书中宜包含id-pkix-ocsp-nocheck扩

展,以向客户端表明不需要检查证书状态。另外,在OCSP响应器证书中不宜包含授权信息访

问和CRL分发点扩展。因此,响应器证书应该相对较短,并定期更新;

c)CA可选择不指定检查响应器证书撤销状态的方法,在这种情况下,可根据OCSP客户端的本地

安全策略来决定是否对证书进行撤销检查。

.4证书状态发布

OCSP响应器按照GM/T0014—2012的第5.5.1要求从CA获得证书发布的状态。

基础响应

基础响应的注解有以下内容。

a)基本的响应类型包含:

1)响应语法的版本,对于此版本的基本响应语法,响应语法应为v1(0);

2)响应者名称或响应者公钥的杂凑值作为ResponderID字段值;

3)响应生成的时间;

4)对请求中的每个证书的响应;

5)可选的扩展;

6)由响应的杂凑值计算得到签名值;

7)签名算法OID。

b)ResponderID字段信息的用途是允许客户端查找签署签名OCSP响应的证书。因此,该信息应与

签署响应的证书相对应。

c)响应器可在BasicOCSPResponse结构的证书字段中包括有助于OCSP客户端验证响应器签名的证

书。

d)请求中每个证书的响应包括:

1)提供撤销状态信息的证书的标识(即目标证书);

2)证书的撤销状态(在用、已撤销或未知);如果证书已撤销,则应说明撤销证书的时

间,也可说明撤销证书的原因;

3)响应的有效间隔;

4)可选扩展。

注:响应应为请求中的每个证书包含一个SingleResponse结构。

e)对于轻量级OCSP环境下的响应,关于OCSPResponse结构应注意以下几点:

1)对于轻量级OCSP响应,ResponseData.responses结构中只能有一个SingleResponse字

段,而且响应中不应包括任何其他的SingleResponse信息;但是,在有必要提高响应预

生成性能或缓存效率的情况下,预先生成状态响应的OCSP响应器可能会包括附加的

SingleResponse信息;

2)响应中不包含responseExtensions结构,客户端应忽略响应中无法识别的非关键响应扩

展;

9

GB/TXXXXX—XXXX

3)若OCSP请求中包含响应器无法支持的选项时,响应器尽可能返回最完整的响应,例如,

响应器只支持预先生成的响应,并且无法响应包含nonce的OCSP请求,则它应该返回不包

含nonce的响应;

4)即使响应不包含nonce时,客户端应忽略响应nonce,并且应根据准确的时间确定OCSP响

应是最新;

5)OCSP请求中包含响应器无法支持的选项(例如nonce)时,响应器可将请求转发给可以提

供响应的响应器;

6)响应器可包括singleResponse.singleExtensions扩展结构。

7.4扩展

7.4.1概述

本章节定义了请求和响应的扩展语法,这些扩展符合X.509V3版本证书的扩展项语法,证书

扩展语法符合GB/T20518—2018的要求。对客户端和响应器而言,所有扩展均为可选项。对于每

个扩展,本节对扩展语法以及需OCSP响应器或客户端执行的操作要求进行了定义。

7.4.2Nonce(一次性随机数)

Nonce是OCSPRequest结构或OCSPResponse结构中的一个字段,在使用时以加密的方式绑定请求

和响应,以防止重放攻击。在请求中,Nonce字段作为请求结构中的一个requestExtension包含在

请求中,而在响应中则作为响应结构中的一个responseExtension包含在响应中。在请求和响应

中,nonce字段将由对象标识符id-pkix-ocsp-nonce标识,extnValue为Nonce的值。如果存在

nonce扩展,则nonce字段的长度至少为1个字节,最多可为32个字节。

响应器应拒绝任何在nonce字段扩展中有长度为0个字节或大于32字节nonce,在拒绝的响应

中,OCSPResponseStatus返回malformedRequest的结果(见7.3.1)。

nonce的值应是由符合GB/T37092—2018要求的密码模块生成,随机数质量符合GB/T32915—

2016的要求。定义最小的nonce长度为1字节,需要兼容GB/T19713—2005的客户端,支持本文档

的较新的OCSP客户端应在nonce扩展中使用长度为32个字节nonce。OCSP响应器宜接受至少16个字

节长度的nonce值,对于nonce长度小于16个字节的请求,可选择忽略nonce扩展。此项定义如下:

id-pkix-ocspOBJECTIDENTIFIER::={id-ad-ocsp}

id-pkix-ocsp-nonceOBJECTIDENTIFIER::={id-pkix-ocsp2}

Nonce::=OCTETSTRING(SIZE(1..32))

7.4.3CRL引用

对于OCSP响应器来说,可在CRL上指出一个已撤销的或已冻结的证书,该方式在OCSP中作为存储

库和审计机制使用时非常有用。CRL可能由一个URL(CRL可从这个URL处获得),一个序列号(CRL

序列号)或一个时间点(创建相应的CRL的时间点)指定,这些扩展被确定为singleExtensions,

该扩展的标识符为id-pkix-ocsp-crl,值为CrlID。此项定义如下:

id-pkix-ocsp-crlOBJECTIDENTIFIER::={id-pkix-ocsp3}

CrlID::=SEQUENCE{

crlUrl[0]EXPLICITIA5StringOPTIONAL,

crlNum[1]EXPLICITINTEGEROPTIONAL,

crlTime[2]EXPLICITGeneralizedTimeOPTIONAL}

可选项crlUrl指定适用于有效CRL的URL,类型为IA5String;可选项crlNum指定相关CRL的CRL

序列号扩展的值,类型为INTEGER;可选项crlTime指定发布相应CRL的时间点,类型为

GeneralizedTime。

10

GB/TXXXXX—XXXX

7.4.4可接受的响应类型

OCSP客户端可能希望指定它能处理的各种响应类型,为此,OCSP客户端应该使用具有对象标

识符id-pkix-ocsp-response的扩展,其值为AcceptableResponses。该扩展作为请求中的一个

requestExtensions域,包含在AcceptableResponses域中的OID是该客户端能够接受的各种响应类

型(例如:id-pkix-ocsp-basic)的OID。该项定义如下:

id-pkix-ocsp-responseOBJECTIDENTIFIER::={id-pkix-ocsp4}

AcceptableResponses::=SEQUENCEOFOBJECTIDENTIFIER

如7.3.1所述,OCSP响应器应能够返回id-pkix-ocsp-basic类型的响应,相应的,OCSP的客户

端也能够接收和处理id-pkix-ocsp-basic类型的响应。

7.4.5存档截止

响应的producedAt时间与间隔保持值之间的差值被定义为证书的“存档截止”时间,在证书过期

后,OCSP响应器可选择在“存档截止”时间内仍保留相应的撤销信息。

OCSP客户端可使用OCSP存档截止时间,来提供数字签名是否有效的证明,即验证有效签名的

证书在生成签名时数字证书是否已过期的证明。

提供历史参考支持的OCSP响应器应该在响应中包括存档截止扩展,并把存档截止时间作为

OCSP的singleExtensions扩展,存档截止时间由id-pkix-ocsp-archive-cutoff和

GeneralizedTime语法来识别。该项定义如下:

id-pkix-ocsp-archive-cutoffOBJECTIDENTIFIER::={id-pkix-ocsp6}

ArchiveCutoff::=GeneralizedTime

举例说明,如果响应器采用7年保留策略,且produceAt值为t1,那么响应中ArchiveCutoff值为

(t1-7年)。

7.4.6CRL条目扩展

所有指定为CRL条目扩展符合GB/T20518—2018中的要求。

7.4.7服务定位器

OCSP响应器可以以路由模式运作,即响应器接收到一个请求,并将请求转发至能识别待验证

证书的OCSP响应器上。本章节为上述模式定义了serviceLocator请求扩展,该扩展作为一个

singleRequestExtensions包括在请求中。该项定义如下:

id-pkix-ocsp-service-locatorOBJECTIDENTIFIER::={id-pkix-ocsp7}

ServiceLocator::=SEQUENCE{

issuerName,

locatorAuthorityInfoAccessSyntaxOPTIONAL}

上述字段的值可从证书的相应字段中获得。

7.4.8优先使用的签名算法

概述

OCSP响应器应支持国家密码管理主管部门认可的密码算法的签名响应,但客户端没有选择算法

的相关机制,因此存在客户端不支持响应器使用非强制算法签名响应的风险。

虽然OCSP响应器可提供算法选择的规则,例如,使用CA签署CRL和证书的签名算法,但是这种规则

在下列情况下可能无效:

——签发CRL和证书的算法可能与OCSP响应器签发响应所使用的算法不一致;

——对未知证书的请求不能为响应器提供算法选择的依据。

此外,出于以下两个原因,OCSP响应器不宜使用CA签发证书和CRL所用的签名算法:

——在计算量上,响应器用于签发证书状态响应的算法比签发证书的算法要求低;

11

GB/TXXXXX—XXXX

——通过使用两个独立的签名算法可防止由于其中一个签名算法泄露而导致密钥泄露的可能性。

因此,在OCSP请求中,可允许客户端指定优先使用的签名算法扩展,反之,如果不支持指定优先

使用签名算法的扩展,客户端需选择最大限度提高成功操作概率的签名算法。

扩展语法

客户端可在OCSP请求的requestExtensions扩展字段中增加优先使用签名算法,该扩展项定义如

下:

id-pkix-ocsp-pref-sig-algsOBJECTIDENTIFIER::={id-pkix-ocsp8}

PreferredSignatureAlgorithms::=SEQUENCEOF

PreferredSignatureAlgorithm

PreferredSignatureAlgorithm::=SEQUENCE{

sigIdentifierAlgorithmIdentifier,

pubKeyAlgIdentifierAlgorithmIdentifierOPTIONAL}

sigIdentifier域指定客户端优先使用的签名算法,例如Algorithm=SM3withSM2,签名算法的参数

依赖于所选的签名算法,大多数签名算法的参数均为缺省。

pubKeyAlgIdentifier域指定客户端用于验证OCSP响应的公钥密码算法的标识符。

pubKeyAlgIdentifier是可选的,它提供了一种方法来指定公钥密码算法必要的参数,以区分公钥密码

算法的不同用法。如果公钥密码算法为SM2,无参数。

客户端应支持所有指定的优先使用签名算法,并且客户端应按照优先顺序指定算法,从最优先到

最不优先。

本文档的第节介绍了响应器选择签名算法的方法实现对OCSP响应进行签名。

响应器签名算法选择

.1动态响应

所选算法在满足OCSP响应器所有安全要求的前提下,响应器可按照以下优先顺序选择支持的签名

算法,从而最大限度地确保互操作性,下列第一个选择机制具有最高的优先级:

a)选择在客户端请求中指定为优先使用的签名算法;

b)选择证书颁发者签发证书撤销列表(CRL)所使用的签名算法,证书颁发者为请求中查验证书

的证书颁发者;

c)选择用于签发OCSP请求的签名算法;

d)选择已发布为使用带外机制的签名服务的默认签名算法;

e)选择为使用的OCSP版本指定强制或推荐的签名算法。

响应器应始终应用编号最低的选择机制,从而选择符合响应器的加密算法强度标准的已知和支持

的算法。

.2静态响应

为了提高效率,OCSP响应器在请求之前可生成静态响应。在静态响应生成期间,响应器不能使用

客户端请求数据,但可使用历史客户请求作为输入的一部分,来决定使用何种算法来签署预先生成的

响应;在选择返回预先生成的响应期间,响应器仍应使用客户端请求数据。

7.4.9扩展撤销定义

此扩展表示响应器支持“revoked”状态的扩展定义,也适应第5.3章节中描述的未签发的证书,

其主要目的之一是允许审计确定响应器的操作类型,使客户端不用解析此扩展来确定响应中证书的状

态。

当OCSP响应支持未签发证书的“revoked”状态时,则该扩展应要包含在OCSP响应中;另外,此扩

展也可能出现在其他响应中,用来表明响应器实现了扩展的撤销定义。如果响应中包含此扩展,则该

12

GB/TXXXXX—XXXX

扩展应包含在responseExtensions字段中,且不能出现在singleExtensions字段中。

该扩展由对象标识符id-pkix-ocsp-tended-revoke标识。该项定义如下:

id-pkix-ocsp-tended-revokeOBJECTIDENTIFIER::={id-pkix-ocsp9}

该扩展的值应为NULL,且不应标记为关键扩展。

13

GB/TXXXXX—XXXX

附录A

(规范性)

基于HTTP的OCSP请求和响应

A.1常规OCSP请求与响应的构造

A.1.1请求

基于HTTP的OCSP请求可以使用GET或POST方法来提交。在启用HTTP缓存时,可以通过GET方法提交

较小请求(编码后小于或等于255字节),对于不需要HTTP缓存或大于255个字节的请求,则应通过

POST方法提交。

使用GET方法的OCSP请求构造如下:

GET{url}/{DER编码的OCSPRequest二进制值进行Base64编码后再进行url-encoding编码}

其中{url}可以从正在查询状态的证书的机构信息访问扩展的值或者OCSP客户端的本地配置获得。

使用POST方法的OCSP请求构造如下:

HTTP请求头中Content-Type属性的值为“application/ocsp-request”,而消息正文是

OCSPRequest的DER编码的二进制值。

A.1.2响应

基于HTTP的OCSP响应构造如下:

HTTP响应头中Content-Type属性的值为“application/ocsp-response”,Content-Length属

性指定响应的长度,而消息正文是OCSPResponse的DER编码的二进制值。其他的不能被客户端识别的

HTTP头可能存在于响应中,可以被忽略。

A.2轻量级OCSP请求与响应的构造

A.2.1概述

高价值的电子交易或高敏感度信息和操作需要OCSP响应器为每个证书提供及时和安全的状态

查询服务,OCSP通常部署在带宽和处理能力充足不受限制的环境下,但随着PKI技术使用的不断发

展,OCSP的应用的场景也不断增加,例如在大规模的PKI环境中,从效率和成本角度出发,常规

OCSP的应用会受到限制。

为了适应在非常大规模(高容量)PKI环境或需要轻量级解决方案以最大限度地减少带宽和客

户端/响应器处理能力的PKI环境下的应用,轻量级OCSP在常规OCSP的基础上,规范了OCSP客户端

和响应器允许采用的配置和操作,允许的操作如下:

a)预生成OCSP响应;

b)减小OCSP消息大小以降低带宽使用;

c)响应消息缓存在客户端和响应器。

A.2.2请求

轻量级OCSP要求响应器应支持基于HTTP的请求和响应。当发送总共小于或等于255字节(编码

后)的请求时,客户端应使用GET方法(以启用OCSP响应缓存);当发送大于255字节的OCSP请求

时,则使用POST方法提交。

在构造GET消息时,OCSP客户端应对OCSPRequest结构进行Base64编码,并将其附加到机构信

息访问扩展中id-ad-ocsp指定的URI。客户端不得在Base64编码的字符串中包含CR或LF字符,而且

应对Base64编码的OCSPRequest结构进行url-encoding。例如:

/MEowsDVGMEYavkyaKBgggnkiG9v0TsVYAGG7spbGTKpl2dAdeJaV267ov

kYakinESVKD0mJeBarSzhv%2FVVIKLZhs%2Fg9xF8ooSizol80Mbpg%ZD%ZD

14

GB/TXXXXX—XXXX

A.2.3响应

为了支持可缓存的响应(即包含nextUpdate值的响应),响应中需包含OCSPResponse的DER编

码的二进制值,响应前应带有以下HTTP报头:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论