在线证书状态协议报批稿.docx

上传人:b****5 文档编号:8236414 上传时间:2023-01-30 格式:DOCX 页数:20 大小:37.51KB
下载 相关 举报
在线证书状态协议报批稿.docx_第1页
第1页 / 共20页
在线证书状态协议报批稿.docx_第2页
第2页 / 共20页
在线证书状态协议报批稿.docx_第3页
第3页 / 共20页
在线证书状态协议报批稿.docx_第4页
第4页 / 共20页
在线证书状态协议报批稿.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

在线证书状态协议报批稿.docx

《在线证书状态协议报批稿.docx》由会员分享,可在线阅读,更多相关《在线证书状态协议报批稿.docx(20页珍藏版)》请在冰豆网上搜索。

在线证书状态协议报批稿.docx

在线证书状态协议报批稿

发布

国家质量监督检验检疫总局发布

××××-××-××实施

××××-××-××发布

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

在线证书状态协议

Informationtechnology-Securitytechniques-Publickeyinfrastructure-

Onlinecertificatestatusprotocol

(报批稿)

GB/T××××—××××

中华人民共和国国家标准

ICS35.100.70

L79

目次

前言II

1范围1

2规范性引用文件1

3术语和定义1

4缩略语2

5总则2

5.1概述2

5.2请求2

5.3响应2

5.4异常情况3

5.5thisUpdate、nextUpdate和producedAt的语义3

5.6预产生响应4

5.7OCSP签名机构的委托4

5.8CA密钥泄漏4

6功能要求4

6.1证书内容4

6.2签名响应的接收要求4

7具体协议4

7.1约定4

7.2请求4

7.3响应6

7.4强制的密码算法和可选的密码算法9

7.5扩展9

8安全考虑10

附录A(资料性附录)HTTP上的OCSP12

附录B(规范性附录)采用ASN.1定义的OCSP13

1前言

本标准主要参考IEFT(互联网工程特别工作组)RFC2560文件制定,其中对某些功能项的实施方法,结合实际经验提出了一些特别的建议。

本标准中凡涉及密码算法相关内容,按国家有关法规执行。

本标准的附录B为规范性附录,附录A为资料性附录。

本标准由中华人民共和国信息产业部提出。

本标准由全国信息安全标准化技术委员会(TC260)归口。

本标准主要起草单位:

国家信息安全基础设施研究中心、国家信息安全工程技术研究中心、中国电子技术标准化研究所、国瑞数码安全系统有限公司。

本标准主要起草人:

顾青、吴志刚、邓琳、陈刚、王于、苏恒、李跃、黄峰、郭晓雷、

袁文恭、李丹、上官晓丽、王利。

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

在线证书状态协议

11 范围

本标准规定了一种无需请求证书撤销列表(CRL)即可查询数字证书状态的机制(即在线证书状态协议—OCSP)。

该机制可代替CRL或作为周期性检查CRL的一种补充方式,以便及时获得证书撤销状态的有关信息。

本标准主要描述了以下内容:

a)具体描述了在线证书状态协议的请求形式;

b)具体描述了在线证书状态协议的响应形式;

c)分析了处理在线证书状态协议响应时可能出现的各种异常情况;

d)说明了在线证书状态协议基于超文本传输协议(HTTP)的应用方式;

e)提供了采用抽象语法记法1(ASN.1)描述的在线证书状态协议。

本标准适用于各类基于公开密钥基础设施的应用程序和计算环境。

12 

13 规范性引用文件

下列文件中的条款通过本标准的应用而成为本标准的条款。

凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。

凡是不注日期的引用文件,其最新版本适用于本标准。

GB/T16262.1-200X抽象语法记法一(ASN.1)第1部分:

基本记忆规范(ISO/IEC8824-1:

2002,IDT)

RFC2459因特网X.509公开密钥基础设施证书和证书撤销列表框架

RFC2616超文本传输协议(HTTP1.1)

14 术语和定义

下列术语和定义适用于本标准。

14.1 

证书扩展项extensions

在证书的结构中,该域定义了证书的一些扩展信息。

14.2 

证书序列号certificateserialnumber

为每个证书分配的唯一整数值,在CA颁发的证书范围内,此整数值与该CA所颁发的证书相关联一一对应。

14.3 

请求者requester

申请在线证书状态查询服务的主体。

14.4 

响应者responder

提供在线证书状态查询服务的主体。

15 缩略语

下列缩略语适用于本标准。

CA证书认证机构

CAs证书认证机构群体

CRL证书撤销列表

HTTP超文本传输协议

OCSP在线证书状态协议

OID对象标识符

PKI公钥基础设施

16 总则

16.1 概述

OCSP作为检查定期CRL的替代方法或补充方法,在必须及时获得证书撤销状态的相关信息的情况下,是必不可少的。

OCSP能够使应用程序确定某个标识证书的(撤销)状态。

OCSP可以用来满足那些需要提供比检查CRL更及时的撤销信息的操作要求,还可以用来获得附加的状态信息。

OCSP请求者向OCSP响应器发出一个状态请求,并延缓接受待查询的证书,直到响应器提供响应为止。

本标准规定了检查证书状态的应用程序和提供证书状态查询的服务器之间需要交换的数据。

16.2 请求

OCSP请求包含以下数据:

a)协议版本;

b)服务请求;

c)目标证书标识符;

d)OCSP响应器可处理的可选扩展,比如:

OCSP请求者的签名、随机数。

对某个请求的回应,OCSP响应器应确定:

a)报文格式是否正确;

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

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

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

16.3 响应

OCSP响应可以有不同类型,且响应由响应类型和响应实体两部分组成。

本标准只规定了一种所有OCSP请求者和响应器都必须支持的OCSP基本响应类型。

对所有明确的响应报文都应进行数字签名。

用于响应签名的密钥必须满足下列条件之一:

a)签发待查询证书的CA;

b)可信赖的响应器,即请求者信任该响应器的公钥;

c)CA指定的响应器(即授权的响应器),该响应器拥有一个CA直接发布的带有特殊标记扩展项的证书,该特殊标记扩展项指明该响应器可以为CA发布OCSP响应。

明确的响应消息由如下内容组成:

a)响应语法的版本;

b)响应器的名称;

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

d)可选择的扩展;

e)签名算法的OID;

f)响应的哈希签名。

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

a)目标证书标识符;

b)证书状态值;

c)响应有效期限;

d)可选的扩展。

本标准对证书状态值规定了如下明确的响应标识符:

a)good(好):

表示对状态查询的肯定响应。

如果客户端没有使用时间戳服务器和有限期验证的安全策略,肯定的响应只能说明证书未被撤销,但并不能说明证书已被发布或产生响应的时间是在证书有效性时间范围内。

响应扩展可用于传输响应器作出的关于证书状态信息的附加声明,例如发布的肯定声明、有效性等。

b)revoked(已撤销):

表示证书已被(永久地或临时地)撤销。

c)unknown(未知):

表明响应器不能鉴别待验证状态的证书(包括OCSP响应器证书与待验证状态的证书不是同一CA签发的情况)。

16.4 异常情况

当出现错误时,OCSP响应器返回某个错误消息。

这些消息不能被签名。

错误可以是下列几类:

a)malformedRequest(不完整的申请):

OCSP响应器(服务器)接收到的请求没有遵循OCSP语法;

b)internalError(内部错误):

OCSP响应器处于非协调的工作状态,应当向另一个响应器再次进行询问;

c)tryLater(以后再试):

OCSP响应器正处于运行状态,不能返回所请求证书的状态,即表明存在所需的服务,但是暂时不能响应;

d)sigRequired(需要签名):

响应器要求请求者对请求签名;

e)unauthorized(未授权):

该查询是由未授权请求者向响应器提出的。

16.5 thisUpdate、nextUpdate和producedAt的语义

各响应中可包含三个时间字段,即thisUpdate、nextUpdate和producedAt。

这些字段的语义分别是:

a)thisUpdate:

此次更新时间,所要求指明的状态是正确的时间;

b)nextUpdate:

下次更新时间,表示证书在此时间之前,状态是正确的,并且在此时间可以再次获得证书状态更新的信息;

c)producedAt:

签发时间,OCSP响应器签署该响应的时间。

如果未设置nextUpdate,响应器要指明随时可以获得更新的撤销信息。

鉴于OCSP是实时更新有关证书的状态,本标准建议可不设置nextUpdate字段;thisUpdate定义为CA签发证书状态的时间;producedAt为OCSP签发响应的时间。

16.6 预产生响应

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

证书状态被认为合法的特定时刻应该就是响应的thisUpdate字段;关于状态再次更新的时间应反映在响应中的nextUpdate字段;而产生响应的时间应反映在响应中的ProduceAt字段。

本标准建议:

鉴于OCSP在线服务,强调其实时性,并防重放攻击,建议可不采用预产生响应。

预响应也不能对客户请求时产生的随机数作出反应。

16.7 OCSP签名机构的委托

签署证书状态信息的密钥不必与签署证书的密钥相同。

证书的发布者通过发布一个含有extendedKeyUsage唯一值的证书,并作为OCSP响应器的签名证书,来明确指派OCSP响应器签名机构。

此证书必须由认可的CA直接签发给响应器。

16.8 CA密钥泄漏

如果OCSP响应器知道一个特定CA的私钥已被泄漏,则它可以使所有由该CA发布的证书都返回撤销状态。

17 功能要求

17.1 证书内容

为向OCSP客户端请求者提供OCSP响应器的访问位置,CA应该在证书扩展项中提供用于OCSP访问的AuthorityInfoAccess值(访问授权信息)(详见RFC2459中的4.2.2.1);或者,OCSP响应器的accessLocation(访问地址)可在OCSP客户端进行本地配置。

提供OCSP服务的CA,不管是在本地实现还是由指定的OCSP响应器实现,都必须在AccessDescriptionSEQUENCE中包含uniformResourceIndicator(URI)accessLocation值和对象标识符id-ad-ocsp。

主体证书中的accessLocation(访问地址)字段的值详细说明了访问OCSP响应器的信息传输路径(如HTTP),也可以包含其它的信息(如一个URL)。

17.2 签名响应的接收要求

a)在把OCSP响应视作有效之前,OCSP客户端应确认;

b)收到的响应中所鉴别的证书应和请求中的证书一致;

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

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

e)签名者已被授权对响应进行签名;

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

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

18 

19 具体协议

19.1 约定

本标准采用抽象语法记法1(ASN.1)来描述具体协议内容,ASN.1语法引用一些RFC2459定义的术语,完整的OCSP协议描述见附录B。

支持HTTP的OCSP请求格式和响应格式见RFC2616和参见附录A。

对于签名计算来说,要签名的数据是用ASN.1的可辨别编码规则(DER)来编码的。

如果无特殊说明,默认使用ASN.1显式标记。

引用的其它术语还有:

Extensions,CertificateSerialNumber,SubjectPublicKeyInfo,Name,AlgorithmIdentifier,CRLReason。

19.2 请求

本条规定了确定请求的ASN.1规范。

根据所使用的传输机制(HTTP、SMTP、LDAP等),实际的消息格式可能会发生相应的变化。

19.2.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]EXPLICITSEQUENCEOFCertificate

OPTIONAL}

Version:

:

=INTEGER{v1(0)}

Request:

:

=SEQUENCE{

reqCertCertID,

singleRequestExtensions[0]EXPLICITExtensionsOPTIONAL}

CertID:

:

=SEQUENCE{

hashAlgorithmAlgorithmIdentifier,

issuerNameHashOCTETSTRING,--发布者名称的哈希

issuerKeyHashOCTETSTRING,--发布者公开密钥的哈希

serialNumberCertificateSerialNumber}

issuerNameHash是发布者唯一名称的哈希值。

该值对所检查证书的发布者名称字段的DER编码进行计算。

issuerKeyHash是发布者公钥的哈希值。

该值将通过对发布者证书中的主体公钥字段(不含标记和长度)进行计算。

hashAlgorithm字段用来指明这些哈希计算所使用的哈希算法。

serialNumber是请求其状态的证书的序列号。

19.2.2 请求语法的注解

既使用CA公开密钥的哈希值又使用CA名称的哈希值来标识某个发布者的主要原因,是两个CA可能使用相同的名称(虽然推荐名称的唯一性,但并不强制)。

但是,两个CA的公开密钥是不可能相同的,除非两者都决定共享私钥,或一方的密钥发生泄漏。

对任何特殊扩展域的支持是个可选项。

不应将这些扩展域设置为关键性的。

7.5提出了许多有用的扩展域。

在其它标准中会定义其它的附加扩展域。

必须忽略那些不能识别的扩展域(除非它们有关键性的标志并且不被理解)。

请求者可以选择对OCSP请求进行签名。

这种情况下,将针对tbsRequest结构来验证签名。

如果请求被签名,请求者应在requestorName中指定其名称。

同时,对于已签名的请求,请求者可在Signature的certs字段中包含有助于OCSP响应器验证请求者签名的那些证书。

19.3 响应

本条规定了确定响应的ASN.1规范。

根据所使用的传输机制(HTTP、SMTP、LDAP等),实际的消息格式可能会发生相应的变化。

19.3.1 响应语法

一个OCSP响应至少由一个指明先前请求的处理状态的responseStatus字段构成。

如果responseStatus的值是某个错误条件,则不设置responseBytes。

OCSPResponse:

:

=SEQUENCE{

responseStatusOCSPResponseStatus,

responseBytes[0]EXPLICITResponseBytesOPTIONAL}

OCSPResponseStatus:

:

=ENUMERATED{

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

malformedRequest

(1),--非法确认请求

internalError

(2),--发布者内部错误

tryLater(3),--稍候重试

sigRequired(4),--必须对请求签名

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

}

responseBytes的值由一个对象标识符和响应语法组成,该响应语法由按照OCTECTSTRING编码的OID来标识。

ResponseBytes:

:

=SEQUENCE{

responseTypeOBJECTIDENTIFIER,

responseOCTETSTRING}

对于基本的OCSP响应器,responseType应为id-pkix-ocsp-basic.

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的值应该基于DER编码的ResponseData哈希值计算得到。

ResponseData:

:

=SEQUENCE{

version[0]EXPLICITVersionDEFAULTv1,

responderIDResponderID,

producedAtGeneralizedTime,

responsesSEQUENCEOFSingleResponse,

responseExtensions[1]EXPLICITExtensionsOPTIONAL}

ResponderID:

:

=CHOICE{

byName[1]Name,

byKey[2]KeyHash}

KeyHash:

:

=OCTETSTRING--响应器公开密钥的SHA-1哈希

(不包括tag和length字段)

SingleResponse:

:

=SEQUENCE{

certIDCertID,

certStatusCertStatus,

thisUpdateGeneralizedTime,

nextUpdate[0]EXPLICITGeneralizedTimeOPTIONAL,

singleExtensions[1]EXPLICITExtensionsOPTIONAL}

CertStatus:

:

=CHOICE{

good[0]IMPLICITNULL,

revoked[1]IMPLICITRevokedInfo,

unknown[2]IMPLICITUnknownInfo}

RevokedInfo:

:

=SEQUENCE{

revocationTimeGeneralizedTime,

revocationReason[0]EXPLICITCRLReasonOPTIONAL}

UnknownInfo:

:

=NULL--此处可用枚举替代

19.3.2 响应语法的注解

19.3.2.1 时间

thisUpdate和nextUpdate两个字段定义了有效时间间隔。

这个时间间隔是和CRLs中的{thisUpdate,nextUpdate}间隔相对应。

NextUpdate值比本地系统时间早的响应应被认为无效。

ThisUpdate值比本地系统时间晚的响应也应被认为无效。

未提供nextUpdate值的响应和未提供nextUpdate值的CRL意义相同。

producedAt时间是响应被签名的时间。

19.3.2.2 授权的响应器

对证书状态信息签名的密钥和签发证书的密钥不必相同。

但必须确保对该信息进行签名的实体是经过授权的。

因此,证书的签发者直接对OCSP响应签名,或明确地指派授权给另一个实体对OCSP响应签名。

CA通过在OCSP响应器证书的extendedKeyUsage扩展中包含id-kp-OCSPSigning来指派OCSP响应器对响应进行签名。

OCSP响应器证书必须直接由CA发布,该CA还发布了需要验证状态的证书。

id-kp-OCSPSigningOBJECTIDENTIFIER:

:

={id-kp9}

依赖于OCSP响应的系统或应用必须能够检测并使用上述的id-ad-ocspSigning值,它们可以提供一种方法在本地配置一个或多个OCSP签名权威实体以及信任这些权威实体的CA。

如果用来验证响应上的签名所需的证书不能满足以下任何标准,响应必须被拒绝:

a)本地配置的OCSP签名权威实体中包含了与待验证状态的证书相匹配的证书;

b)或是签发待验证状态证书的CA证书;

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

附加的接受或拒绝标准可以应用于响应自身,或应用于验证响应签名的证书。

19.3.2.2.1 授权响应器的撤销检查

既然一个授权权威OCSP响应器可以为一个或多个CA提供状态信息,OCSP客户端就需要知道如何去检查授权权威响应器的证书是否已被撤销。

CA可任选以下三种方法之一来解决这个问题:

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

CA通过在响应器证书中包含id-pkix-ocsp-nocheck扩展来完成该指定。

这应该是一个非关键性的扩展。

扩展值应为空。

至少对于证书的有效期而言,发布这样一个证书的CA应认识到响应器密钥的泄密同用来签发CRL的CA密钥的泄密所带来的后果一样严重。

CA可以选择发布一种有效期很短并且经常更新的证书,也就是短生命周期的证书。

id-pkix-ocsp-nocheckOBJECTIDENTIFIER:

:

={id-pkix-ocsp5}

b)CA可以指定如何检查响应器证书是否已被撤销。

假如是使用CRLs或CRL分布点来检查的话,就能够使用CRL的分布点来完成,假如是用其它的方法来检查,就要用到权威实体信息访问(AuthorityInfoAccess扩展)。

在RFC2459中有这两种机制的详细说明。

c)CA可选择不指定检查响应器证书是否已被撤销的方法。

在此情况下,将遵循OCSP客户端的本地安全策略来决定是否做这项检查工作。

19.4 强制的密码算法和可选的密码算法

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1