Network Working Group                                       B. Kaliski
Request for Comments: 2314                       RSA Laboratories East
Category: Informational                                     March 1998
        
Network Working Group                                       B. Kaliski
Request for Comments: 2314                       RSA Laboratories East
Category: Informational                                     March 1998
        

PKCS #10: Certification Request Syntax Version 1.5

PKCS#10:认证请求语法版本1.5

Status of this Memo

本备忘录的状况

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

本备忘录为互联网社区提供信息。它没有规定任何类型的互联网标准。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (1998). All Rights Reserved.

版权所有(C)互联网协会(1998年)。版权所有。

Overview

概述

This document describes a syntax for certification requests.

本文档描述了认证请求的语法。

1. Scope
1. 范围

A certification request consists of a distinguished name, a public key, and optionally a set of attributes, collectively signed by the entity requesting certification. Certification requests are sent to a certification authority, who transforms the request to an X.509 public-key certificate, or a PKCS #6 extended certificate. (In what form the certification authority returns the newly signed certificate is outside the scope of this document. A PKCS #7 message is one possibility.)

认证请求由可分辨名称、公钥和可选的一组属性组成,这些属性由请求认证的实体共同签名。证书请求被发送到证书颁发机构,后者将请求转换为X.509公钥证书或PKCS#6扩展证书。(证书颁发机构以何种形式返回新签署的证书不在本文档范围内。PKCS#7消息是一种可能性。)

The intention of including a set of attributes is twofold: to provide other information about a given entity, such as the postal address to which the signed certificate should be returned if electronic mail is not available, or a "challenge password" by which the entity may later request certificate revocation; and to provide attributes for a PKCS #6 extended certificate. A non-exhaustive list of attributes is given in PKCS #9.

包含一组属性的目的有两个:提供关于给定实体的其他信息,例如,如果电子邮件不可用,签名证书应返回到的邮政地址,或者实体稍后可以通过“质询密码”请求证书撤销;以及为PKCS#6扩展证书提供属性。PKCS#9中给出了一个非详尽的属性列表。

Certification authorities may also require non-electronic forms of request and may return non-electronic replies. It is expected that descriptions of such forms, which are outside the scope of this document, will be available from the certification authority.

认证机构还可以要求非电子形式的请求,并可以返回非电子形式的答复。预计认证机构将提供不在本文件范围内的此类表格的说明。

The preliminary intended application of this document is to support PKCS #7 cryptographic messages, but is expected that other applications will be developed.

本文档的初步预期应用是支持PKCS#7加密消息,但预计将开发其他应用程序。

2. References
2. 工具书类

PKCS #1 RSA Laboratories. PKCS #1: RSA Encryption Standard. Version 1.5, November 1993.

PKCS#1 RSA实验室。PKCS#1:RSA加密标准。1.5版,1993年11月。

PKCS #6 RSA Laboratories. PKCS #6: Extended-Certificate Syntax. Version 1.5, November 1993.

PKCS#6 RSA实验室。PKCS#6:扩展证书语法。1.5版,1993年11月。

PKCS #7 RSA Laboratories. PKCS #7: Cryptographic Message Syntax. Version 1.5, November 1993.

PKCS#7 RSA实验室。PKCS#7:加密消息语法。1.5版,1993年11月。

PKCS #9 RSA Laboratories. PKCS #9: Selected Attribute Types. Version 1.1, November 1993.

PKCS#9 RSA实验室。PKCS#9:选定的属性类型。1.1版,1993年11月。

RFC 1424 Kaliski, B., "Privacy Enhancement for Internet Electronic Mail: Part IV: Key Certification and Related Services," RFC 1424, February 1993.

RFC 1424 Kaliski,B.,“互联网电子邮件的隐私增强:第四部分:关键认证和相关服务”,RFC 1424,1993年2月。

X.208 CCITT. Recommendation X.208: Specification of Abstract Syntax Notation One (ASN.1). 1988.

X.208 CCITT。建议X.208:抽象语法符号1(ASN.1)的规范。1988

X.209 CCITT. Recommendation X.209: Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1). 1988.

X.209 CCITT。建议X.209:抽象语法符号1(ASN.1)的基本编码规则规范。1988

X.500 CCITT. Recommendation X.500: The Directory-- Overview of Concepts, Models and Services. 1988.

X.500 CCITT。建议X.500:目录——概念、模型和服务概述。1988

X.501 CCITT. Recommendation X.501: The Directory-- Models. 1988.

X.501 CCITT。建议X.501:目录--模型。1988

X.509 CCITT. Recommendation X.509: The Directory-- Authentication Framework. 1988.

X.509 CCITT。建议X.509:目录--身份验证框架。1988

3. Definitions
3. 定义

For the purposes of this document, the following definitions apply.

在本文件中,以下定义适用。

AlgorithmIdentifier: A type that identifies an algorithm (by object identifier) and any associated parameters. This type is defined in X.509.

AlgorithmIdentifier:识别算法(通过对象标识符)和任何相关参数的类型。该类型在X.509中定义。

Attribute: A type that contains an attribute type (specified by object identifier) and one or more attribute values. This type is defined in X.501.

属性:包含属性类型(由对象标识符指定)和一个或多个属性值的类型。该类型在X.501中定义。

ASN.1: Abstract Syntax Notation One, as defined in X.208.

ASN.1:抽象语法符号1,如X.208中所定义。

BER: Basic Encoding Rules, as defined in X.209.

BER:基本编码规则,如X.209中所定义。

Certificate: A type that binds an entity's distinguished name to a public key with a digital signature. This type is defined in X.509. This type also contains the distinguished name of the certificate issuer (the signer), an issuer- specific serial number, the issuer's signature algorithm identifier, and a validity period.

证书:用数字签名将实体的可分辨名称绑定到公钥的类型。该类型在X.509中定义。此类型还包含证书颁发者(签名者)的可分辨名称、特定于颁发者的序列号、颁发者的签名算法标识符和有效期。

DER: Distinguished Encoding Rules for ASN.1, as defined in X.509, Section 8.7.

DER:ASN.1的特殊编码规则,如X.509第8.7节所定义。

Name: A type that uniquely identifies or "distinguishes" objects in a X.500 directory. This type is defined in X.501. In an X.509 certificate, the type identifies the certificate issuer and the entity whose public key is certified.

名称:唯一标识或“区分”X.500目录中对象的类型。该类型在X.501中定义。在X.509证书中,该类型标识证书颁发者和其公钥被认证的实体。

4. Symbols and abbreviations
4. 符号和缩写

No symbols or abbreviations are defined in this document.

本文件中未定义任何符号或缩写。

5. General overview
5. 概述

The next section specifies certification request syntax.

下一节将指定证书请求语法。

This document exports one type, CertificationRequest.

此文档导出一种类型CertificationRequest。

6. Certification request syntax
6. 证书请求语法

This section gives the syntax for certification requests.

本节给出了认证请求的语法。

A certification request consists of three parts: "certification request information," a signature algorithm identifier, and a digital signature on the certification request information. The certification request information consists of the entity's distinguished name, the entity's public key, and a set of attributes providing other information about the entity.

认证请求由三部分组成:“认证请求信息”、签名算法标识符和认证请求信息上的数字签名。认证请求信息由实体的可分辨名称、实体的公钥和一组提供实体其他信息的属性组成。

The process by which a certification request is constructed involves the following steps:

构建认证请求的过程包括以下步骤:

1. A CertificationRequestInfo value containing a distinguished name, a public key, and optionally a set of attributes is constructed by an entity.

1. 实体构造包含可分辨名称、公钥和可选属性集的CertificationRequestInfo值。

2. The CertificationRequestInfo value is signed with the entity's private key. (See Section 6.2.)

2. CertificationRequestInfo值使用实体的私钥签名。(见第6.2节。)

3. The CertificationRequestInfo value, a signature algorithm identifier, and the entity's signature are collected together into a CertificationRequest value, defined below.

3. CertificationRequestInfo值、签名算法标识符和实体的签名一起收集为CertificationRequest值,定义如下。

A certification authority fulfills the request by verifying the entity's signature, and, if it is valid, constructing a X.509 certificate from the distinguished name and public key, as well as an issuer name, serial number, validity period, and signature algorithm of the certification authority's choice. If the certification request contains a PKCS #9 extended-certificate-attributes attribute, the certification authority also constructs a PKCS #6 extended certificate from the X.509 certificate and the extended-certificate-attributes attribute value.

证书颁发机构通过验证实体的签名来满足请求,如果签名有效,则根据可分辨名称和公钥以及证书颁发机构选择的颁发者名称、序列号、有效期和签名算法来构造X.509证书。如果证书请求包含PKCS#9扩展证书属性,则证书颁发机构还将根据X.509证书和扩展证书属性值构造PKCS#6扩展证书。

In what form the certification authority returns the new certificate is outside the scope of this document. One possibility is a PKCS #7 cryptographic message with content type signedData, following the degenerate case where there are no signers. The return message may include a certification path from the new certificate to the certification authority. It may also include other certificates such as cross-certificates that the certification authority considers helpful, and it may include certificate-revocation lists (CRLs). Another possibility is that the certification authority inserts the new certificate into a central database.

证书颁发机构以何种形式返回新证书不在本文件范围内。一种可能性是内容类型为signedData的PKCS#7加密消息,在没有签名者的退化情况下。返回消息可以包括从新证书到证书颁发机构的证书路径。它还可能包括证书颁发机构认为有用的其他证书,如交叉证书,并且可能包括证书吊销列表(CRL)。另一种可能性是证书颁发机构将新证书插入中央数据库。

This section is divided into two parts. The first part describes the certification-request-information type CertificationRequestInfo, and the second part describes the top-level type CertificationRequest.

本节分为两部分。第一部分描述了认证请求信息类型CertificationRequestInfo,第二部分描述了顶级类型CertificationRequest。

Notes.

笔记。

1. An entity would typically send a certification request after generating a public-key/private-key pair, but may also do so after a change in the entity's distinguished name.

1. 实体通常会在生成公钥/私钥对后发送认证请求,但也可能在实体的可分辨名称发生更改后发送认证请求。

2. The signature on the certification request prevents an entity from requesting a certificate with another party's public key. Such an attack would give the entity the minor ability to pretend to be the originator of any message signed by the other party. This attack is significant only if the entity does not know the message being signed, and the signed part of the message does not identify the signer. The entity would still not be able to decrypt messages intended for the other party, of course.

2. 证书请求上的签名可防止实体使用另一方的公钥请求证书。这样的攻击将使实体具有假装是另一方签署的任何消息的发起人的次要能力。只有当实体不知道正在签名的消息,且消息的签名部分未识别签名者时,此攻击才具有重要意义。当然,该实体仍然无法解密打算发送给另一方的消息。

3. How the entity sends the certification request to a certification authority is outside the scope of this document. Both paper and electronic forms are possible.

3. 实体向认证机构发送认证请求的方式超出了本文件的范围。纸质和电子形式都可以。

4. This document is not compatible with the certification request syntax for Privacy-Enhanced Mail, as described in RFC 1424. The syntax in this document differs in three respects: It allows a set of attributes; it does not include issuer name, serial number, or validity period; and it does not require an "innocuous" message to be signed. The syntax in this document is designed to minimize request size, an important constraint for those certification authorities accepting requests on paper.

4. 如RFC 1424所述,本文档与隐私增强邮件的认证请求语法不兼容。本文档中的语法在三个方面有所不同:它允许一组属性;不包括发行人名称、序列号或有效期;而且它不需要签署“无害”的消息。本文档中的语法旨在最小化请求大小,这是那些接受书面请求的认证机构的一个重要限制。

6.1 CertificationRequestInfo
6.1 CertificationRequestInfo

Certification request information shall have ASN.1 type CertificationRequestInfo:

认证申请信息应具有ASN.1类型认证申请信息:

   CertificationRequestInfo ::= SEQUENCE {
     version Version,
     subject Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     attributes [0] IMPLICIT Attributes }
        
   CertificationRequestInfo ::= SEQUENCE {
     version Version,
     subject Name,
     subjectPublicKeyInfo SubjectPublicKeyInfo,
     attributes [0] IMPLICIT Attributes }
        
   Version ::= INTEGER
        
   Version ::= INTEGER
        
   Attributes ::= SET OF Attribute
        
   Attributes ::= SET OF Attribute
        

The fields of type CertificationRequestInfo have the following meanings:

CertificationRequestInfo类型的字段具有以下含义:

o version is the version number, for compatibility with future revisions of this document. It shall be 0 for this version of the document.

o 版本是版本号,用于与本文档的未来版本兼容。此版本的文件应为0。

o subject is the distinguished name of the certificate subject (the entity whose public key is to be certified).

o subject是证书主体(其公钥将被认证的实体)的可分辨名称。

o subjectPublicKeyInfo contains information about the public key being certified. The information identifies the entity's public-key algorithm (and any associated parameters); examples of public-key algorithms include X.509's rsa and PKCS #1's rsaEncryption. The information also includes a bit-string representation of the entity's public key. For both public-key algorithms just mentioned, the bit string contains the BER encoding of a value of X.509/PKCS #1 type RSAPublicKey.

o subjectPublicKeyInfo包含有关正在认证的公钥的信息。该信息标识实体的公钥算法(以及任何相关参数);公钥算法的例子包括X.509的rsa和PKCS#1的rsa加密。该信息还包括实体公钥的位字符串表示。对于刚才提到的两种公钥算法,位字符串包含值为X.509/PKCS#1类型RSAPublicKey的BER编码。

o attributes is a set of attributes providing additional information about the subject of the certificate. Some attribute types that might be useful here are defined in PKCS #9. An example is the challenge-password attribute, which specifies a password by which the entity may request that the certificate revocation. Another example is the extended-certificate-attributes attribute, which specifies attributes for a PKCS #6 extended certificate.

o 属性是一组属性,提供有关证书主题的附加信息。PKCS#9中定义了一些可能有用的属性类型。质询密码属性就是一个例子,它指定了一个密码,实体可以通过该密码请求证书撤销。另一个示例是extended certificate attributes属性,它指定PKCS#6扩展证书的属性。

6.2 CertificationRequest
6.2 认证请求

A certification request shall have ASN.1 type CertificationRequest:

认证申请应具有ASN.1类型认证申请:

   CertificationRequest ::= SEQUENCE {
     certificationRequestInfo CertificationRequestInfo,
     signatureAlgorithm SignatureAlgorithmIdentifier,
     signature Signature }
        
   CertificationRequest ::= SEQUENCE {
     certificationRequestInfo CertificationRequestInfo,
     signatureAlgorithm SignatureAlgorithmIdentifier,
     signature Signature }
        
   SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
        
   SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
        
   Signature ::= BIT STRING
        
   Signature ::= BIT STRING
        

The fields of type CertificationRequest have the following meanings:

CertificationRequest类型的字段具有以下含义:

o certificateRequestInfo is the "certification request information." It is the value being signed.

o certificateRequestInfo是“认证请求信息”。它是正在签名的值。

o signatureAlgorithm identifies the signature algorithm (and any associated parameters) under which the certification-request information is signed. Examples include PKCS #1's md2WithRSAEncryption and md5WithRSAEncryption.

o signatureAlgorithm标识签名算法(以及任何相关参数),在该算法下对认证请求信息进行签名。示例包括PKCS#1的MD2 with rsa encryption和MD5 with rsa encryption。

o signature is the result of signing the certification request information with the certification request subject's private key.

o 签名是使用认证请求主体的私钥对认证请求信息进行签名的结果。

The signature process consists of two steps:

签名过程包括两个步骤:

1. The value of the certificationRequestInfo field is DER encoded, yielding an octet string.

1. certificationRequestInfo字段的值经过DER编码,产生一个八位字节字符串。

2. The result of step 1 is signed with the certification request subject's private key under the specified signature algorithm, yielding a bit string, the signature.

2. 在指定的签名算法下,使用认证请求主体的私钥对步骤1的结果进行签名,生成一个位字符串,即签名。

Note. The syntax for CertificationRequest could equivalently be written with the X.509 SIGNED macro:

笔记CertificationRequest的语法可以等效地用X.509签名宏编写:

   CertificationRequest ::= SIGNED CertificateRequestInfo
        
   CertificationRequest ::= SIGNED CertificateRequestInfo
        

Security Considerations

安全考虑

Security issues are discussed throughout this memo.

本备忘录中讨论了安全问题。

Revision history

修订历史

Version 1.0

版本1.0

Version 1.0 is the initial version.

版本1.0是初始版本。

Acknowledgements

致谢

This document is based on a contribution of RSA Laboratories, a division of RSA Data Security, Inc. Any substantial use of the text from this document must acknowledge RSA Data Security, Inc. RSA Data Security, Inc. requests that all material mentioning or referencing this document identify this as "RSA Data Security, Inc. PKCS #10".

本文档基于RSA Data Security,Inc.旗下RSA Laboratories的贡献。任何对本文档中文本的实质性使用都必须承认RSA Data Security,Inc.RSA Data Security,Inc.要求提及或引用本文档的所有材料将其标识为“RSA Data Security,Inc.PKCS#10”。

Author's Address

作者地址

Burt Kaliski RSA Laboratories East 20 Crosby Drive Bedford, MA 01730

Burt Kaliski RSA Laboratories East 20 Crosby Drive Bedford,马萨诸塞州01730

Phone: (617) 687-7000 EMail: burt@rsa.com

电话:(617)687-7000电子邮件:burt@rsa.com

Full Copyright Statement

完整版权声明

Copyright (C) The Internet Society (1998). All Rights Reserved.

版权所有(C)互联网协会(1998年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。