📄 rfc3029.txt
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:郭大刚(guodagang guodagang@tyut.edu.cn)
译文发布时间:2001-11-7
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。
Network Working Group C. Adams
Request for Comments: 3029 Entrust Technologies
Category: Experimental P. Sylvester
EdelWeb SA - Groupe ON-X Consulting
M. Zolotarev
Baltimore Technologies Pty Limited
R. Zuccherato
Entrust Technologies
February 2001
Internet X.509 公钥基础结构
数据有效性和验证服务器协议
(RFC3029——Internet X.509 Public Key Infrastructure
Data Validation and Certification Server Protocols
这个备忘录的状态
这个备忘录为Internet团体定义了一个实验协议。它并没有指定某种形式的Internet
标准。希望提出改进的建议和讨论。本备注的发行使没有限制的。
版权声明
Copyright (C) The Internet Society (2001)。版权所有。
摘要
这个文档描述了一个通用的数据有效性和验证服务器(Data Validation and
Certification Server,DVCS),以及和它通讯时使用的协议。数据有效性和验证服务器是
一个可信任的第三方,用来作为构造可靠的不可否认服务的一部分。
PKI中数据有效性和验证服务器的用处在于验证签名文档、公钥证书和数据拥有或存在
的有效性。协议产生的验证声明称做数据有效性证书(Data Validation Certificates,
DVC) 。
我们给出了如何使用数据有效性和验证服务器的例子,它们不仅扩展了签名的使用范
围,使其不局限于密钥的终止或撤消,而且质询了关于公钥证书地位的数据有效性和验证服
务器。文档包含一个完整的时间戳事物的例子。
目录
1. 介绍 2
2. DVCS提供的服务 3
2.1 数据拥有证书Certification of Possession of Data 3
2.2 数据拥有声明证书Certification of Claim of Possession of Data 4
2.3数字签名文档有效性Validation of Digitally Signed Documents 4
2.4公钥证书有效性Validation of Public Key Certificates 4
3. 数据证书服务器的使用和Scenarii. 4
4. DVCS功能需求 5
5. 数据证书服务器事务处理过程Data Certification Server Transactions 5
6. DVCS的定义 6
7. 普通数据类型 6
7.1 version类: 6
7.2 DigestInfo类: 7
7.3. 时间值 7
7.4. PKIStatusInfo 7
7.5. TargetEtcChain 7
7.6. DVCSRequestInformation 8
7.7. GeneralName 和GeneralNames 9
8. 数据有效性和证书请求 9
9. DVCS响应 11
9.1. 数据有效性证书 11
9.2. DVCS 错误通告 13
10. 传输 14
10.1 通过HTTP或HTTPS实现的DVCS协议 14
10.2 使用电子邮件的DVCS协议 14
11. 需要考虑的安全问题 14
12. 专利信息 15
13. 参考文献 15
14. 作者地址 16
附录 A - PKCS #9 属性 17
附录 B – 签名文档确认 17
B.1签名文档确认 17
附录 C – 验证公钥证书的状况 18
附录 D - MIME 注册 19
附录 E – 使用1988语法的ASN.1 模块 19
附录 F –范例 23
附录 G – 致谢 40
完整版权说明 40
致谢 40
1. 介绍
这个文档是已在IETF PKIX工作组中提议和讨论的工作的结果。作者和组中一些成员认
为提升这些还相当新的概念为标准过程还为时尚早。这里表述的概念已经稳定了一段时间,
并且有部分已经实现。大家同意发表在诸如实验性RFC刊物是一个合适的方法,以便为其它
实现提供稳定的参考文档。
这个文档中的关键词“MUST”、“MUST NOT”、“REQUIRED”、“SHOULD”、“SHOULD NOT”、
“RECOMMENDED”、“MAY”和“OPTIONAL”(如所见为大写)按照RFC2119的描述进行解释。
数据有效性和验证服务器是可信任的第三方,提供诸如数据有效性服务、声明数据签名
文档的正确性、公钥证书和数据拥有及存在的有效性服务。
作为有效性的结果,DVCS产生一个数据有效性证书(DVC)。此证书可用来构建有关一
个声称拥有数据的实体的有效性和正确性、一个实体公钥证书有效性和恢复状态和一个数字
签名文档的有效性和正确性。
DVCS提供的服务并不能取代在大型开放环境中检查公钥证书撤消使CRLs和OCSP的使
用,因为这关系到协议的可量测性。
它更应该应用于支持关于无纸文档环境的不可否认性或对更多传统服务的补充。DVC中
通过提供有效的数字签名文档或公钥证书,使数据有效性证书的存在支持不可否认性。
即使在公钥证书到期,没有或很难得到恢复信息的情况下,使公钥证书有效的DVC仍可
以使用。例如,确定一个DVC的有效性被认为是一件较为容易的事情,因为拥有DVCS的人
数远比拥有公钥证书的人少。
协议的一个重要特性是通过使用同样的协议(不需要使用相同的服务)和有效的签名文
档使DVCs生效。对于一个特定的DVC,我们可以不验证签名,也就是说,通过和一个文档
比较来确定其有效性。
响应签名文档或公钥证书有效性签名请求的数据有效性证书的产品同时也提供证据,表
明验证数据签名或公钥证书有效性的请求者执行了预期的diligence 。
这个文档定义了数据签名的使用,以确保文档和DVCs的真实性,还定义了对应的术语;
还定义了提供验证证据的其他方法,尤其是这可能取代SignedData 安全信封。
2. DVCS提供的服务
现有详述定义了四类有效性和证书服务:
- 数据拥有证书 Certification of Possession of Data (cpd),
- 数据拥有声明证书 Certification of Claim of Possession of Data (ccpd),
- 数字签名文档有效性 Validation of Digitally Signed Document (vsd),
- 公钥证书有效性 Validation of Public Key Certificates (vpkc).
DVCS必须至少支持这些服务的一个子集。DVCS可以支持有限的vsd服务,以便确认数
据有效性证书。
完成每一步后,DVCS产生一个数据有效性证书-一个包含有效性结果和可信任的时间
信息的签名文档。
2.1 数据拥有证书Certification of Possession of Data
数据拥有证书服务提供证据表明,在指定的时间请求者拥有数据以及数据有效性服务器
上是真实的数据。
2.2 数据拥有声明证书Certification of Claim of Possession
of Data
此服务除了表明请求者用的不是数据而是用消息摘要外,其他和上明的服务是一样的。
2.3数字签名文档有效性Validation of Digitally Signed
Documents
此服务用于宣称签名文档的有效性。
DVCS使用一切合适的状态信息和公钥证书来验证所有包含在签名文档中的签名。DVCS
验证所有包含在文档中签名,还检验签名实体是否可信,例如验证签名实体的整个证书路径
有可信的来源(如,DVCS's CA, 或同层的根CA)。
DVCS可能需要参考相关的CRLs或通过访问CAs更新的状态信息进行补充,例如访问
OCSP服务,可信任的目录服务或其他DVCS服务。
DVCS会对所有签名文档中的签名执行验证。一个签名验证的失败不会导致整个有效性
验证的失败,相反,如果没有足够的签名数量将可能导致全部失败。
2.4公钥证书有效性Validation of Public Key Certificates
此服务用来验证和声明在指定时间一个或多个公钥证书的有效性(根据[RFC2459])。
验证公钥证书时,DVCS验证请求中包含的证书是有效的,并在指定的时间决定它的撤
销状态。DVS从证书的发布者到一个可信任的地方,检验整个证书的路径。而且DVCS可能
会依赖于外部信息(CRL,OCSP,DVCS)。
3. 数据证书服务器的使用和Scenarii.
完全描述不同的可操作的DVCS scenarii 或用法超过了本文档的讨论范围。
参见附录B和C,一套基础范例和使用实例。
确认签名文档服务可用来支持不可否认服务,使签名文档不仅可用在公钥证书恢复或超
期,还可用在简单地将签名有效性授权给一个可信任地(公司范围)主要服务。
确认公钥证书服务可用在需要关于证书撤销状态的及时信息(如,传输很高价值资金或
高度敏感密钥)或用在需要支持不可否认的证据时。
数据有效性证书可用来简化签名证书超期或随之而来的证书撤销后签名的有效性验证:
数据有效性证书可用作一个签名中验证属性,包括一个关于在签名时使用的证书可用性的追
加声明。为了验证这样的签名,只确认数据有效性证书的有效性就足够了。
DVCS还可能在数据有效性证书中包括附加的密钥交换证书,来确认一个密钥交换证
书 ,给应用程序提供一套附加授权接受者,其会话密钥也应当被加密。例如,这可被用来
提供公司范围内恢复计划的中央管理。注意,附加证书不仅依靠请求的证书,还依靠请求者
的身份。
数据拥有声明证书服务也可称作时间戳。
数据拥有证书服务可用来声明合法的文档存放,或实现作为一个可信任第三方服务的文
档归档服务。
数据有效性和证书服务器协议可用在不同的服务范围。例如,全公司内的集中服务(签
名验证、公司证书确认)、多组织机构间合作服务、或时间戳或数据文档的通用第三方服务。
DVCS的一个重要应用是在一个所有安全考虑都基于整个公司规范的企业环境中。一个
公司的DVCS服务可以授权一个重要管理服务机构来作出所有的技术决定(如,有效路径,
确认的配置)。
不论何种情况,数据有效性和证书服务器中PKI实体具有的信任信息都会传递到数据有
效性证书的内容中(就像CA的信任信息会传递到其发布的公钥证书中一样)。
DVCS服务可以和归档和日志系统结合使用为不可否认服务提供加强的安全保障服务。
从这点考虑,DVCS可被认为是一个Evidence Recording Authority [ISO-NR]。
4. DVCS功能需求
DVCS必须:
1. 按照策略的定义,为请求者提供一个数据有效性证书形式的签名响应,或者一个错
误响应。DVCS服务的定义和策略定义了产生响应的DVCS所使用的信息中有多少将包括再数
据有效性证书中,例如,公钥证书、CRL、其他OCSP服务器响应、DVCS、或其他。
2. 数据有效性证书显示了签名文档、公钥证书或数据是否有效;如果无效,显示验证
失败的原因是什么。
3. 每个数据有效性证书中包括一个严格单调连续增长的数字。
4. 每个数据有效性证书包括一个时间值或一个时间戳标记。
5. 用密钥签署数据证书标记,此密钥被授权用作dvcs签名扩展密钥。还包括证书的说
明,作为签名的签署属性。
6. 在分发数据有效性证书前,检查其自己签名密钥和证书的有效性。如果检查没有通
过,绝对不能分发证书。
在每个数据有效性证书中,DVCS都应当包含一个策略标识符,以确定DVCS签名的可信
度和使用的有效策略。
5. 数据证书服务器事务处理过程Data Certification Server
Transactions
DVCS事务处理过程以客户端预备数据有效性和证书请求开始。请求总是包含在需要鉴
别有效性、正确性和合法性的数据中。
请求可以用安全信包封装,为请求者和服务器提供证明。请求者的证明可用CMS中描述
的集中格式归档,尤其是签名数据signedData。
DVCS客户端选择一个合适传输机制把请求传递到DVCS。还有必要选择一种传输机制,
提供机密性,尤其是为请求者提供一种DVCS证明,如TLS、CMS或S/MIME 加密法。
如果请求有效,DVCS执行所有必须的验证步骤,产生数据有效性证书,给请求者发回
一个包含DVC的响应消息。
数据有效性证书的形式是一个签名文档(CMS SignedData)。
和请求一样,也必须选择一种传输机制为承载DVC提供机密性。DVCs不一定以和请求
同样的方式来传输,比如,它们可以在通过HTTPS接收到一个在线请求后用电子邮件返回。
如果请求有效,DVCS产生一个包含适当错误通告的响应消息。
接收到响应后,请求实体应当验证其有效性,也就是说,检验其是否包含一个可接收的
时间、正确的DVCS名字、正确的请求信息和消息印记、有效签名以及令人满意的状态、服
务和策略字段。
当验证DVC有效性时,是由请求者的应有程序来检查一个DVCS签名证书是否有效。根
据使用环境,可能使用不同的在线或out of band方法,如CRLs、DVCS或OCSP。
通过所有的检查,数据有效性证书就可用来鉴别相应数据的正确性和合法性。
针对一个请求,DVCS可能返回多个DVC。在这种情况下,除了一个请求外,其余的请求
都处于全局“等待”状态。
6. DVCS的定义
为了能从dvcs中引入元素,使用以下对象标识符作为ASN.1模块标识符。
id-mod-dvcs OBJECT IDENTIFIER ::= {iso(1) identified-organization(3) dod(6)
internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) 15}
使用SignedData为DVC提供验证的DVCS 必须用密钥签署所有数据证书消息。密钥对
应的证书必须包含[RFC2459] 4.2.1.14节中定义的扩展的密钥使用字段扩展名,其中
KeyPurposeID的值为id-kp-dvcs。这个扩展被标记为关键性的。
数据有效性证书必须包含一个DVCS用来签名的ESSCertID证书鉴别属性。
id-kp-dvcs OBJECT IDENTIFIER ::= {iso(1) identified-organization(3) dod(6)
internet(1) security(5) mechanisms(5) pkix(7) kp(3) 10}
Consistent KeyUsage bits:
digitalSignature, nonRepudiation, keyCertSign, cRLSign
DVCS的证书可能包含一个授权信息访问扩展(Authority Information Access
extension [RFC2459] ),用来传送和DVCS联系的方法。扩展中的accessMethod字段必须
包含OID id-ad-dvcs:
id-ad-dvcs OBJECT IDENTIFIER ::= {iso(1) identified-organization(3) dod(6)
internet(1) security(5) mechanisms(5) pkix(7) ad(48) 4}
'accessLocation'字段的值定义了用来访问DVCS的传输方式(如,URI)。
7. 普通数据类型
请求和响应数据结构中有几种普通的数据类型。这些数据类型或在本文档中定义,或来
自其他地方。本章定义和描述了这些类型,并列举了它们的用法。
7.1 version类:
请求和响应包含一个可选的证书字段,指定数据结构的版本。在协议的这个版本中,两
个字段都为1,或者根本没有这个字段。
7.2 DigestInfo类:
这个元素在 [RFC2315]中定义。由于RFC2315是报告文档,所以在这里重复一下其定义:
DigestInfo ::= SEQUENCE {
digestAlgorithmDigestAlgorithmIdentifier,
digestDigest }
Digest ::= OCTET STRING
DigestInfo类各个字段的意思如下:
- 字段'digestAlgorithm'标识数据摘要时使用的消息摘要算法(以及相关参数)。
- 字段'digest'是消息摘要过程的结果。
DigestInfo在两个地方使用:
- 作为ccpd服务的数据部分;
- 在数据有效性证书中保持一个对应请求数据部分的摘要或一个ccpd服务数据字段的
拷贝。
7.3. 时间值
时间指示器可在请求和响应中出现。最简单的形式是,时间用格林威治时间表示,后面
是秒的分数部分。.
另一种可替换的形式是TSA时间戳标记,或来自其他第三方服务的DVC(或其他记号)。
由策略决定DVCS是解释请求中的时间值,还是确认请求中的时间值。
DVCSTime ::= CHOICE {
genTime GeneralizedTime,
timeStampTokenContentInfo }
协议的未来版本也许包含其他时间格式。
DVCS产生的时间值是渐增的,但并不是唯一的,DVC的顺序由连续的数字定义。
7.4. PKIStatusInfo
这个数据结构在[RFC2510]中定义,作为TargetEtcChain数据结构'chain'字段的组成
部分使用。PKIStatusInfo的每一次出现都是由响应的DVCS产生,反映了本地验证的结果。
7.5. TargetEtcChain
TargetEtcChain数据结构包含证书和其它指示器,或描述需要确认的信息(在cpkc服
务中的请求),或描述验证的结果,也可能包含策略和策略映射的信息。
关于如何填值和解释这个数据结构的细节在后面每个服务的含义中定义。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -