Network Working Group                               B. Ramsdell, Editor
Request for Comments: 2632                                    Worldtalk
Category: Standards Track                                     June 1999
        
Network Working Group                               B. Ramsdell, Editor
Request for Comments: 2632                                    Worldtalk
Category: Standards Track                                     June 1999
        

S/MIME Version 3 Certificate Handling

S/MIME版本3证书处理

Status of this Memo

本备忘录的状况

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

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

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

1. Overview
1. 概述

S/MIME (Secure/Multipurpose Internet Mail Extensions), described in [SMIME-MSG], provides a method to send and receive secure MIME messages. Before using a public key to provide security services, the S/MIME agent MUST certify that the public key is valid. S/MIME agents MUST use PKIX certificates to validate public keys as described in the Internet X.509 Public Key Infrastructure (PKIX) Certificate and CRL Profile [KEYM]. S/MIME agents MUST meet the certificate processing requirements documented in this document in addition to those stated in [KEYM].

[SMIME-MSG]中描述的S/MIME(安全/多用途Internet邮件扩展)提供了发送和接收安全MIME消息的方法。在使用公钥提供安全服务之前,S/MIME代理必须证明公钥有效。S/MIME代理必须使用PKIX证书来验证公钥,如Internet X.509公钥基础设施(PKIX)证书和CRL配置文件[KEYM]中所述。除了[KEYM]中规定的要求外,S/MIME代理还必须满足本文件中记录的证书处理要求。

This specification is compatible with the Cryptographic Message Syntax [CMS] in that it uses the data types defined by CMS. It also inherits all the varieties of architectures for certificate-based key management supported by CMS.

此规范与加密消息语法[CMS]兼容,因为它使用CMS定义的数据类型。它还继承了CMS支持的所有基于证书的密钥管理体系结构。

1.1 Definitions
1.1 定义

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

在本备忘录中,以下定义适用。

ASN.1: Abstract Syntax Notation One, as defined in ITU-T X.680-689.

ASN.1:抽象语法符号1,定义见ITU-T X.680-689。

Attribute Certificate (AC): An X.509 AC is a separate structure from a subject's public key X.509 Certificate. A subject may have multiple X.509 ACs associated with each of its public key X.509 Certificates. Each X.509 AC binds one or more Attributes with one of the subject's public key X.509 Certificates. The X.509 AC syntax is defined in [X.509]

属性证书(AC):X.509 AC是主体公钥X.509证书的独立结构。一个主体可能有多个与其公钥X.509证书相关联的X.509 ACs。每个X.509 AC将一个或多个属性与主体的公钥X.509证书之一绑定。[X.509]中定义了X.509 AC语法

BER: Basic Encoding Rules for ASN.1, as defined in ITU-T X.690.

BER:ASN.1的基本编码规则,定义见ITU-T X.690。

Certificate: A type that binds an entity's distinguished name to a public key with a digital signature. This type is defined in the Internet X.509 Public Key Infrastructure (PKIX) Certificate and CRL Profile [KEYM]. This type also contains the distinguished name of the certificate issuer (the signer), an issuer-specific serial number, the issuer's signature algorithm identifier, a validity period, and extensions also defined in that document.

证书:用数字签名将实体的可分辨名称绑定到公钥的类型。此类型在Internet X.509公钥基础设施(PKIX)证书和CRL配置文件[KEYM]中定义。此类型还包含证书颁发者(签名者)的可分辨名称、特定于颁发者的序列号、颁发者的签名算法标识符、有效期以及该文档中定义的扩展名。

Certificate Revocation List (CRL): A type that contains information about certificates whose validity an issuer has prematurely revoked. The information consists of an issuer name, the time of issue, the next scheduled time of issue, a list of certificate serial numbers and their associated revocation times, and extensions as defined in [KEYM]. The CRL is signed by the issuer. The type intended by this specification is the one defined in [KEYM].

证书吊销列表(CRL):一种类型,其中包含有关颁发者已提前吊销其有效性的证书的信息。该信息包括发行人名称、发行时间、下一个计划发行时间、证书序列号列表及其相关撤销时间,以及[KEYM]中定义的扩展名。CRL由发行人签署。本规范规定的类型为[KEYM]中定义的类型。

DER: Distinguished Encoding Rules for ASN.1, as defined in ITU-T X.690.

DER:ITU-T X.690中定义的ASN.1的特殊编码规则。

Receiving agent: software that interprets and processes S/MIME CMS objects, MIME body parts that contain CMS objects, or both.

接收代理:解释和处理S/MIME CMS对象、包含CMS对象的MIME主体部分或两者的软件。

Sending agent: software that creates S/MIME CMS objects, MIME body parts that contain CMS objects, or both.

发送代理:创建S/MIME CMS对象、包含CMS对象的MIME身体部位或两者的软件。

S/MIME agent: user software that is a receiving agent, a sending agent, or both.

S/MIME代理:作为接收代理、发送代理或两者兼有的用户软件。

1.2 Compatibility with Prior Practice of S/MIME
1.2 与先前S/MIME实践的兼容性

S/MIME version 3 agents should attempt to have the greatest interoperability possible with S/MIME version 2 agents. S/MIME version 2 is described in RFC 2311 through RFC 2315, inclusive. RFC 2311 also has historical information about the development of S/MIME.

S/MIME版本3代理应尝试与S/MIME版本2代理具有尽可能大的互操作性。RFC 2311至RFC 2315中描述了S/MIME版本2。RFC2311也有关于S/MIME发展的历史信息。

1.3 Terminology
1.3 术语

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [MUSTSHOULD].

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[必须”中的说明进行解释。

2. CMS Options
2. CMS选项

The CMS message format allows for a wide variety of options in content and algorithm support. This section puts forth a number of support requirements and recommendations in order to achieve a base level of interoperability among all S/MIME implementations. Most of the CMS format for S/MIME messages is defined in [SMIME-MSG].

CMS消息格式允许在内容和算法支持方面有多种选择。本节提出了一些支持需求和建议,以实现所有S/MIME实现之间的基本互操作性。S/MIME消息的大多数CMS格式在[SMIME-MSG]中定义。

2.1 CertificateRevocationLists
2.1 证书职业列表

Receiving agents MUST support the Certificate Revocation List (CRL) format defined in [KEYM]. If sending agents include CRLs in outgoing messages, the CRL format defined in [KEYM] MUST be used.

接收代理必须支持[KEYM]中定义的证书吊销列表(CRL)格式。如果发送代理在传出消息中包含CRL,则必须使用[KEYM]中定义的CRL格式。

All agents MUST be capable of performing revocation checks using CRLs as specified in [KEYM]. All agents MUST perform revocation status checking in accordance with [KEYM]. Receiving agents MUST recognize CRLs in received S/MIME messages.

所有代理必须能够使用[KEYM]中指定的CRL执行撤销检查。所有代理必须根据[KEYM]执行撤销状态检查。接收代理必须识别接收到的S/MIME消息中的CRL。

Agents SHOULD store CRLs received in messages for use in processing later messages.

代理应该存储在消息中接收的CRL,以便在以后处理消息时使用。

Agents MUST handle multiple valid Certificate Authority (CA) certificates containing the same subject name and the same public keys but with overlapping validity intervals.

代理必须处理多个有效的证书颁发机构(CA)证书,这些证书包含相同的使用者名称和相同的公钥,但有效期间隔重叠。

2.2 CertificateChoices
2.2 证书

Receiving agents MUST support PKIX v1 and PKIX v3 certificates. See [KEYM] for details about the profile for certificate formats. End entity certificates MAY include an Internet mail address, as described in section 3.1.

接收代理必须支持PKIX v1和PKIX v3证书。有关证书格式配置文件的详细信息,请参阅[KEYM]。终端实体证书可能包括互联网邮件地址,如第3.1节所述。

Receiving agents SHOULD support X.509 attribute certificates.

接收代理应支持X.509属性证书。

2.2.1 Historical Note About CMS Certificates
2.2.1 关于CMS证书的历史注释

The CMS message format supports a choice of certificate formats for public key content types: PKIX, PKCS #6 Extended Certificates and X.509 Attribute Certificates. The PKCS #6 format is not in widespread use. In addition, PKIX certificate extensions address much of the same functionality and flexibility as was intended in the PKCS #6. Thus, sending and receiving agents MUST NOT use PKCS #6 extended certificates.

CMS消息格式支持公钥内容类型的证书格式选择:PKIX、PKCS#6扩展证书和X.509属性证书。PKCS#6格式没有得到广泛使用。此外,PKIX证书扩展解决了与PKCS#6中预期相同的功能和灵活性。因此,发送和接收代理不得使用PKCS#6扩展证书。

2.3 CertificateSet
2.3 证书集

Receiving agents MUST be able to handle an arbitrary number of certificates of arbitrary relationship to the message sender and to each other in arbitrary order. In many cases, the certificates included in a signed message may represent a chain of certification from the sender to a particular root. There may be, however, situations where the certificates in a signed message may be unrelated and included for convenience.

接收代理必须能够处理任意数量的证书,这些证书与消息发送方以及彼此之间的关系是任意的。在许多情况下,签名消息中包含的证书可能表示从发送方到特定根的证书链。然而,可能存在这样的情况,即签名消息中的证书可能是无关的,并且为了方便而包括在内。

Sending agents SHOULD include any certificates for the user's public key(s) and associated issuer certificates. This increases the likelihood that the intended recipient can establish trust in the originator's public key(s). This is especially important when sending a message to recipients that may not have access to the sender's public key through any other means or when sending a signed message to a new recipient. The inclusion of certificates in outgoing messages can be omitted if S/MIME objects are sent within a group of correspondents that has established access to each other's certificates by some other means such as a shared directory or manual certificate distribution. Receiving S/MIME agents SHOULD be able to handle messages without certificates using a database or directory lookup scheme.

发送代理应包括用户公钥和相关颁发者证书的任何证书。这增加了预期接收者对发端人公钥建立信任的可能性。当向可能无法通过任何其他方式访问发件人公钥的收件人发送邮件或向新收件人发送签名邮件时,这一点尤为重要。如果S/MIME对象是在通过共享目录或手动证书分发等其他方式建立了对彼此证书的访问权限的通信者组中发送的,则可以省略在传出消息中包含证书。接收S/MIME代理应该能够使用数据库或目录查找方案处理没有证书的消息。

A sending agent SHOULD include at least one chain of certificates up to, but not including, a Certificate Authority (CA) that it believes that the recipient may trust as authoritative. A receiving agent SHOULD be able to handle an arbitrarily large number of certificates and chains.

发送代理应包括至少一个证书链,该证书链最多包括但不包括它认为接收方可以信任为权威的证书颁发机构(CA)。接收代理应该能够处理任意数量的证书和链。

Agents MAY send CA certificates, that is, certificates that are self-signed and can be considered the "root" of other chains. Note that receiving agents SHOULD NOT simply trust any self-signed certificates as valid CAs, but SHOULD use some other mechanism to determine if this is a CA that should be trusted. Also note that in the case of DSA certificates the parameters may be located in the root certificate. This would require that the recipient possess the root certificate in order to perform a signature verification, and is a valid example of a case where transmitting the root certificate may be required.

代理可以发送CA证书,即自签名的证书,可以被视为其他链的“根”。请注意,接收代理不应该简单地将任何自签名证书作为有效CA来信任,而应该使用其他机制来确定这是否是一个应该信任的CA。还要注意,对于DSA证书,参数可能位于根证书中。这将要求接收方拥有根证书以执行签名验证,这是可能需要传输根证书的情况的有效示例。

Receiving agents MUST support chaining based on the distinguished name fields. Other methods of building certificate chains may be supported but are not currently recommended.

接收代理必须支持基于可分辨名称字段的链接。可能支持构建证书链的其他方法,但目前不推荐使用。

Receiving agents SHOULD support the decoding of X.509 attribute certificates included in CMS objects. All other issues regarding the generation and use of X.509 attribute certificates are outside of the scope of this specification.

接收代理应支持对CMS对象中包含的X.509属性证书进行解码。有关生成和使用X.509属性证书的所有其他问题不在本规范的范围内。

3. Using Distinguished Names for Internet Mail
3. 为Internet邮件使用可分辨名称

End-entity certificates MAY contain an Internet mail address as described in [RFC-822]. The address must be an "addr-spec" as defined in Section 6.1 of that specification. The email address SHOULD be in the subjectAltName extension, and SHOULD NOT be in the subject distinguished name.

终端实体证书可能包含[RFC-822]中所述的Internet邮件地址。地址必须是该规范第6.1节中定义的“地址规范”。电子邮件地址应位于subjectAltName扩展名中,而不应位于subject可分辨名称中。

Receiving agents MUST recognize email addresses in the subjectAltName field. Receiving agents MUST recognize email addresses in the Distinguished Name field in the PKCS #9 emailAddress attribute.

接收代理必须识别subjectAltName字段中的电子邮件地址。接收代理必须识别PKCS#9 emailAddress属性中可分辨名称字段中的电子邮件地址。

Sending agents SHOULD make the address in the From or Sender header in a mail message match an Internet mail address in the signer's certificate. Receiving agents MUST check that the address in the From or Sender header of a mail message matches an Internet mail address in the signer's certificate, if mail addresses are present in the certificate. A receiving agent SHOULD provide some explicit alternate processing of the message if this comparison fails, which may be to display a message that shows the recipient the addresses in the certificate or other certificate details.

发送代理应使邮件消息中“发件人”或“发件人”标题中的地址与签名者证书中的Internet邮件地址匹配。接收代理必须检查邮件消息的发件人或发件人标头中的地址是否与签名者证书中的Internet邮件地址匹配(如果证书中存在邮件地址)。如果此比较失败,则接收代理应提供一些明确的消息替代处理,这可能是显示一条消息,向收件人显示证书中的地址或其他证书详细信息。

All subject and issuer names MUST be populated (i.e. not an empty SEQUENCE) in S/MIME-compliant PKIX certificates, except that the subject DN in a user's (i.e. end-entity) certificate MAY be an empty SEQUENCE in which case the subjectAltName extension will include the subject's identifier and MUST be marked as critical.

必须在S/MIME兼容PKIX证书中填充所有使用者和颁发者名称(即非空序列),但用户(即终端实体)证书中的使用者DN可能是空序列,在这种情况下,使用者的subjectAltName扩展将包括使用者的标识符,并且必须标记为关键。

4. Certificate Processing
4. 证书处理

A receiving agent needs to provide some certificate retrieval mechanism in order to gain access to certificates for recipients of digital envelopes. There are many ways to implement certificate retrieval mechanisms. X.500 directory service is an excellent example of a certificate retrieval-only mechanism that is compatible with classic X.500 Distinguished Names. The PKIX Working Group is investigating other mechanisms such as directory servers. Another method under consideration by the IETF is to provide certificate retrieval services as part of the existing Domain Name System (DNS). Until such mechanisms are widely used, their utility may be limited by the small number of correspondent's certificates that can be

接收代理需要提供一些证书检索机制,以便为数字信封的收件人访问证书。有许多方法可以实现证书检索机制。X.500目录服务是与经典的X.500可分辨名称兼容的仅证书检索机制的一个极好示例。PKIX工作组正在调查目录服务器等其他机制。IETF正在考虑的另一种方法是作为现有域名系统(DNS)的一部分提供证书检索服务。在这些机制被广泛使用之前,它们的实用性可能会受到可以使用的少量通讯员证书的限制

retrieved. At a minimum, for initial S/MIME deployment, a user agent could automatically generate a message to an intended recipient requesting that recipient's certificate in a signed return message.

恢复。对于初始S/MIME部署,用户代理至少可以自动生成一条消息,发送给指定的收件人,在签名的返回消息中请求该收件人的证书。

Receiving and sending agents SHOULD also provide a mechanism to allow a user to "store and protect" certificates for correspondents in such a way so as to guarantee their later retrieval. In many environments, it may be desirable to link the certificate retrieval/storage mechanisms together in some sort of certificate database. In its simplest form, a certificate database would be local to a particular user and would function in a similar way as a "address book" that stores a user's frequent correspondents. In this way, the certificate retrieval mechanism would be limited to the certificates that a user has stored (presumably from incoming messages). A comprehensive certificate retrieval/storage solution may combine two or more mechanisms to allow the greatest flexibility and utility to the user. For instance, a secure Internet mail agent may resort to checking a centralized certificate retrieval mechanism for a certificate if it can not be found in a user's local certificate storage/retrieval database.

接收和发送代理还应提供一种机制,允许用户以这种方式“存储和保护”通信员的证书,以保证其以后的检索。在许多环境中,可能需要在某种证书数据库中将证书检索/存储机制链接在一起。最简单的形式是,证书数据库是特定用户的本地数据库,其功能类似于存储用户频繁通信者的“地址簿”。这样,证书检索机制将限于用户存储的证书(可能来自传入消息)。一个全面的证书检索/存储解决方案可以结合两种或两种以上的机制,以便为用户提供最大的灵活性和实用性。例如,如果在用户的本地证书存储/检索数据库中找不到证书,安全Internet邮件代理可能会求助于检查集中式证书检索机制以获取证书。

Receiving and sending agents SHOULD provide a mechanism for the import and export of certificates, using a CMS certs-only message. This allows for import and export of full certificate chains as opposed to just a single certificate. This is described in [SMIME-MSG].

接收和发送代理应使用CMS certs only消息提供证书导入和导出机制。这允许导入和导出完整的证书链,而不仅仅是单个证书。这在[SMIME-MSG]中有描述。

4.1 Certificate Revocation Lists
4.1 证书吊销列表

In general, it is always better to get the latest CRL information from a CA than to get information stored away from incoming messages. A receiving agent SHOULD have access to some certificate-revocation list (CRL) retrieval mechanism in order to gain access to certificate-revocation information when validating certificate chains. A receiving or sending agent SHOULD also provide a mechanism to allow a user to store incoming certificate-revocation information for correspondents in such a way so as to guarantee its later retrieval.

通常,从CA获取最新的CRL信息总比从传入消息中获取存储的信息要好。接收代理应该可以访问某些证书吊销列表(CRL)检索机制,以便在验证证书链时访问证书吊销信息。接收或发送代理还应提供一种机制,允许用户以这种方式为通信方存储传入的证书撤销信息,以保证其以后的检索。

Receiving and sending agents SHOULD retrieve and utilize CRL information every time a certificate is verified as part of a certificate chain validation even if the certificate was already verified in the past. However, in many instances (such as off-line verification) access to the latest CRL information may be difficult or impossible. The use of CRL information, therefore, may be dictated by the value of the information that is protected. The value of the

接收和发送代理应在每次证书作为证书链验证的一部分进行验证时检索和利用CRL信息,即使该证书在过去已经过验证。然而,在许多情况下(如离线验证),访问最新的CRL信息可能很困难或不可能。因此,CRL信息的使用可能由受保护信息的价值决定。价值

CRL information in a particular context is beyond the scope of this memo but may be governed by the policies associated with particular certificate hierarchies.

特定上下文中的CRL信息超出了本备忘录的范围,但可能受与特定证书层次结构关联的策略的管辖。

All agents MUST be capable of performing revocation checks using CRLs as specified in [KEYM]. All agents MUST perform revocation status checking in accordance with [KEYM]. Receiving agents MUST recognize CRLs in received S/MIME messages.

所有代理必须能够使用[KEYM]中指定的CRL执行撤销检查。所有代理必须根据[KEYM]执行撤销状态检查。接收代理必须识别接收到的S/MIME消息中的CRL。

4.2 Certificate Chain Validation
4.2 证书链验证

In creating a user agent for secure messaging, certificate, CRL, and certificate chain validation SHOULD be highly automated while still acting in the best interests of the user. Certificate, CRL, and chain validation MUST be performed as per [KEYM] when validating a correspondent's public key. This is necessary before using a public key to provide security services such as: verifying a signature; encrypting a content-encryption key (ex: RSA); or forming a pairwise symmetric key (ex: Diffie-Hellman) to be used to encrypt or decrypt a content-encryption key.

In creating a user agent for secure messaging, certificate, CRL, and certificate chain validation SHOULD be highly automated while still acting in the best interests of the user. Certificate, CRL, and chain validation MUST be performed as per [KEYM] when validating a correspondent's public key. This is necessary before using a public key to provide security services such as: verifying a signature; encrypting a content-encryption key (ex: RSA); or forming a pairwise symmetric key (ex: Diffie-Hellman) to be used to encrypt or decrypt a content-encryption key.translate error, please retry

Certificates and CRLs are made available to the chain validation procedure in two ways: a) incoming messages, and b) certificate and CRL retrieval mechanisms. Certificates and CRLs in incoming messages are not required to be in any particular order nor are they required to be in any way related to the sender or recipient of the message (although in most cases they will be related to the sender). Incoming certificates and CRLs SHOULD be cached for use in chain validation and optionally stored for later use. This temporary certificate and CRL cache SHOULD be used to augment any other certificate and CRL retrieval mechanisms for chain validation on incoming signed messages.

证书和CRL以两种方式提供给链验证过程:a)传入消息,b)证书和CRL检索机制。传入邮件中的证书和CRL不需要按任何特定顺序排列,也不需要以任何方式与邮件的发件人或收件人相关(尽管在大多数情况下,它们将与发件人相关)。传入的证书和CRL应缓存以用于链验证,并可选择存储以供以后使用。此临时证书和CRL缓存应用于增强任何其他证书和CRL检索机制,以便对传入的签名消息进行链验证。

4.3 Certificate and CRL Signing Algorithms
4.3 证书和CRL签名算法

Certificates and Certificate-Revocation Lists (CRLs) are signed by the certificate issuer. A receiving agent MUST be capable of verifying the signatures on certificates and CRLs made with id-dsa-with-sha1 [DSS].

证书和证书吊销列表(CRL)由证书颁发者签名。接收代理必须能够验证使用id-dsa-with-sha1[DSS]生成的证书和CRL上的签名。

A receiving agent SHOULD be capable of verifying the signatures on certificates and CRLs made with md2WithRSAEncryption, md5WithRSAEncryption and sha-1WithRSAEncryption signature algorithms with key sizes from 512 bits to 2048 bits described in [PKCS#1V2].

接收代理应能够验证证书和CRL上的签名,这些证书和CRL采用MD2WithRSAConyption、MD5WithRSAConyption和sha-1WithRSAConyption签名算法,密钥大小从512位到2048位,如[PKCS#1V2]所述。

4.4 PKIX Certificate Extensions
4.4 PKIX证书扩展

PKIX describes an extensible framework in which the basic certificate information can be extended and how such extensions can be used to control the process of issuing and validating certificates. The PKIX Working Group has ongoing efforts to identify and create extensions which have value in particular certification environments. Further, there are active efforts underway to issue PKIX certificates for business purposes. This document identifies the minumum required set of certificate extensions which have the greatest value in the S/MIME environment. The syntax and semantics of all the identified extensions are defined in [KEYM].

PKIX描述了一个可扩展的框架,其中可以扩展基本证书信息,以及如何使用这些扩展来控制证书的颁发和验证过程。PKIX工作组正在努力确定和创建在特定认证环境中具有价值的扩展。此外,正在积极努力为商业目的颁发PKIX证书。本文档确定了在S/MIME环境中具有最大价值的最小所需证书扩展集。[KEYM]中定义了所有已识别扩展的语法和语义。

Sending and receiving agents MUST correctly handle the Basic Constraints Certificate Extension, the Key Usage Certificate Extension, authorityKeyID, subjectKeyID, and the subjectAltNames when they appear in end-user certificates. Some mechanism SHOULD exist to handle the defined certificate extensions when they appear in intermediate or CA certificates.

当基本约束证书扩展、密钥使用证书扩展、authorityKeyID、subjectKeyID和SubjectAltName出现在最终用户证书中时,发送和接收代理必须正确处理它们。当定义的证书扩展出现在中间证书或CA证书中时,应该存在一些机制来处理这些扩展。

Certificates issued for the S/MIME environment SHOULD NOT contain any critical extensions (extensions that have the critical field set to TRUE) other than those listed here. These extensions SHOULD be marked as non-critical unless the proper handling of the extension is deemed critical to the correct interpretation of the associated certificate. Other extensions may be included, but those extensions SHOULD NOT be marked as critical.

为S/MIME环境颁发的证书不应包含此处列出的以外的任何关键扩展(关键字段设置为TRUE的扩展)。这些扩展应标记为非关键扩展,除非正确处理扩展对相关证书的正确解释至关重要。可以包括其他扩展,但不应将这些扩展标记为关键扩展。

Interpretation and syntax for all extensions MUST follow [KEYM], unless otherwise specified here.

除非此处另有规定,否则所有扩展的解释和语法必须遵循[KEYM]。

4.4.1 Basic Constraints Certificate Extension
4.4.1 基本约束证书扩展

The basic constraints extension serves to delimit the role and position of an issuing authority or end-entity certificate plays in a chain of certificates.

基本约束扩展用于定义证书链中颁发机构或最终实体证书的角色和位置。

For example, certificates issued to CAs and subordinate CAs contain a basic constraint extension that identifies them as issuing authority certificates. End-entity certificates contain an extension that constrains the certificate from being an issuing authority certificate.

例如,颁发给CA和下级CA的证书包含一个基本约束扩展,该扩展将它们标识为颁发机构证书。终端实体证书包含一个扩展,该扩展限制证书为颁发机构证书。

Certificates SHOULD contain a basicConstraints extension in CA certificates, and SHOULD NOT contain that extension in end entity certificates.

证书应在CA证书中包含basicConstraints扩展,而不应在最终实体证书中包含该扩展。

4.4.2 Key Usage Certificate Extension
4.4.2 密钥使用证书扩展

The key usage extension serves to limit the technical purposes for which a public key listed in a valid certificate may be used. Issuing authority certificates may contain a key usage extension that restricts the key to signing certificates, certificate revocation lists and other data.

密钥使用扩展用于限制有效证书中列出的公钥可用于的技术目的。颁发机构证书可能包含密钥使用扩展,该扩展将密钥限制为签名证书、证书吊销列表和其他数据。

For example, a certification authority may create subordinate issuer certificates which contain a keyUsage extension which specifies that the corresponding public key can be used to sign end user certs and sign CRLs.

例如,证书颁发机构可以创建从属颁发者证书,该证书包含密钥使用扩展,该扩展指定相应的公钥可用于签署最终用户证书和签署CRL。

If a key usage extension is included in a PKIX certificate, then it MUST be marked as critical.

如果PKIX证书中包含密钥使用扩展,则必须将其标记为关键。

4.4.2.1 Key Usage in Diffie-Hellman Key Exchange Certificates
4.4.2.1 Diffie-Hellman密钥交换证书中的密钥使用

For Diffie-Hellman key exchange certificates (certificates in which the subject public key algorithm is dhpublicnumber), if the keyUsage keyAgreement bit is set to 1 AND if the public key is to be used to form a pairwise key to decrypt data, then the S/MIME agent MUST only use the public key if the keyUsage encipherOnly bit is set to 0. If the keyUsage keyAgreement bit is set to 1 AND if the key is to be used to form a pairwise key to encrypt data, then the S/MIME agent MUST only use the public key if the keyUsage decipherOnly bit is set to 0.

对于Diffie-Hellman密钥交换证书(其中主题公钥算法为dhpublicnumber的证书),如果keyUsage keyAgreement位设置为1,并且如果公钥用于形成成对密钥以解密数据,则S/MIME代理必须仅在keyUsage EncryppherOnly位设置为0时才使用公钥。如果keyUsage keyAgreement位设置为1,并且如果要使用该密钥形成成对密钥来加密数据,则S/MIME代理必须仅在keyUsage decipherOnly位设置为0时使用公钥。

4.4.3 Subject Alternative Name Extension
4.4.3 主题替代名称扩展名

The subject alternative name extension is used in S/MIME as the preferred means to convey the RFC-822 email address(es) that correspond to the entity for this certificate. Any RFC-822 email addresses present MUST be encoded using the rfc822Name CHOICE of the GeneralName type. Since the SubjectAltName type is a SEQUENCE OF GeneralName, multiple RFC-822 email addresses MAY be present.

subject alternative name extension在S/MIME中用作传递与此证书的实体相对应的RFC-822电子邮件地址的首选方式。必须使用GeneralName类型的rfc822Name选项对存在的任何RFC-822电子邮件地址进行编码。由于SubjectAltName类型是GeneralName的序列,因此可能存在多个RFC-822电子邮件地址。

5. Security Considerations
5. 安全考虑

All of the security issues faced by any cryptographic application must be faced by a S/MIME agent. Among these issues are protecting the user's private key, preventing various attacks, and helping the user avoid mistakes such as inadvertently encrypting a message for the wrong recipient. The entire list of security considerations is beyond the scope of this document, but some significant concerns are listed here.

任何加密应用程序所面临的所有安全问题都必须由S/MIME代理来解决。这些问题包括保护用户的私钥、防止各种攻击以及帮助用户避免错误,例如无意中为错误的收件人加密消息。整个安全注意事项列表超出了本文档的范围,但此处列出了一些重要的注意事项。

When processing certificates, there are many situations where the processing might fail. Because the processing may be done by a user agent, a security gateway, or other program, there is no single way to handle such failures. Just because the methods to handle the failures has not been listed, however, the reader should not assume that they are not important. The opposite is true: if a certificate is not provably valid and associated with the message, the processing software should take immediate and noticable steps to inform the end user about it.

在处理证书时,有许多情况下处理可能会失败。由于处理可能由用户代理、安全网关或其他程序完成,因此没有单一的方法来处理此类故障。然而,仅仅因为没有列出处理故障的方法,读者就不应该认为它们不重要。反之亦然:如果证书不可证明有效且与消息关联,则处理软件应立即采取可注意的步骤通知最终用户。

Some of the many places where signature and certificate checking might fail include:

签名和证书检查可能失败的许多地方包括:

- no Internet mail addresses in a certificate match the sender of a message - no certificate chain leads to a trusted CA - no ability to check the CRL for a certificate - an invalid CRL was received - the CRL being checked is expired - the certificate is expired - the certificate has been revoked

- 证书中没有与消息发件人匹配的Internet邮件地址-没有证书链导致受信任的CA-无法检查证书的CRL-收到无效的CRL-正在检查的CRL已过期-证书已过期-证书已吊销

There are certainly other instances where a certificate may be invalid, and it is the responsibility of the processing software to check them all thoroughly, and to decide what to do if the check fails.

当然,在其他情况下,证书可能是无效的,处理软件有责任彻底检查所有证书,并决定如果检查失败怎么办。

A. References

A.参考资料

[CERTV2] Dusse, S., Hoffman, P. and B. Ramsdell,"S/MIME Version 2 Certificate Handling", RFC 2312, March 1998.

[CERTV2]Dusse,S.,Hoffman,P.和B.Ramsdell,“S/MIME版本2证书处理”,RFC 2312,1998年3月。

[CMS] Housley, R., "Cryptographic Message Syntax", RFC 2630, June 1999.

[CMS]Housley,R.,“加密消息语法”,RFC 2630,1999年6月。

[DSS] NIST FIPS PUB 186, "Digital Signature Standard", 18 May 1994.

[DSS]NIST FIPS PUB 186,“数字签名标准”,1994年5月18日。

[KEYM] Housley, R., Ford, W., Polk, W. and D. Solo, "Internet X.509 Public Key Infrastructure Certificate and CRL Profile", RFC 2459, January 1999.

[KEYM]Housley,R.,Ford,W.,Polk,W.和D.Solo,“互联网X.509公钥基础设施证书和CRL配置文件”,RFC 2459,1999年1月。

[MUSTSHOULD] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[MUSTSHOULD]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[PKCS#1V2] Kaliski, B., "PKCS #1: RSA Cryptography Specifications Version 2.0", RFC 2437, October 1998.

[PKCS#1V2]Kaliski,B.,“PKCS#1:RSA加密规范2.0版”,RFC 2437,1998年10月。

[RFC-822] Crocker, D., "Standard For The Format Of ARPA Internet Text Messages", STD 11, RFC 822, August 1982.

[RFC-822]Crocker,D.,“ARPA互联网文本信息格式标准”,STD 11,RFC 822,1982年8月。

[SMIME-MSG] Ramsdell, B., Editor, "S/MIME Version 3 Message Specification", RFC 2633, June 1999.

[SMIME-MSG]Ramsdell,B.,编辑,“S/MIME版本3消息规范”,RFC 2633,1999年6月。

[X.500] ITU-T Recommendation X.500 (1997) | ISO/IEC 9594-1:1997, Information technology - Open Systems Interconnection - The Directory: Overview of concepts, models and services.

[X.500]ITU-T建议X.500(1997)| ISO/IEC 9594-1:1997,信息技术-开放系统互连-目录:概念、模型和服务概述。

[X.501] ITU-T Recommendation X.501 (1997) | ISO/IEC 9594-2:1997, Information technology - Open Systems Interconnection - The Directory: Models.

[X.501]ITU-T建议X.501(1997)| ISO/IEC 9594-2:1997,信息技术-开放系统互连-目录:模型。

[X.509] ITU-T Recommendation X.509 (1997) | ISO/IEC 9594-8:1997, Information technology - Open Systems Interconnection - The Directory: Authentication framework.

[X.509]ITU-T建议X.509(1997)| ISO/IEC 9594-8:1997,信息技术-开放系统互连-目录:认证框架。

[X.520] ITU-T Recommendation X.520 (1997) | ISO/IEC 9594-6:1997, Information technology - Open Systems Interconnection - The Directory: Selected attribute types.

[X.520]ITU-T建议X.520(1997)| ISO/IEC 9594-6:1997,信息技术-开放系统互连-目录:选定属性类型。

B. Acknowledgements

B.致谢

Many thanks go out to the other authors of the S/MIME v2 RFC: Steve Dusse, Paul Hoffman and Jeff Weinstein. Without v2, there wouldn't be a v3.

非常感谢S/MIME v2 RFC的其他作者:史蒂夫·杜塞、保罗·霍夫曼和杰夫·温斯坦。没有v2,就不会有v3。

A number of the members of the S/MIME Working Group have also worked very hard and contributed to this document. Any list of people is doomed to omission and for that I apologize. In alphabetical order, the following people stand out in my mind due to the fact that they made direct contributions to this document.

S/MIME工作组的一些成员也非常努力地工作,为本文件作出了贡献。任何人的名单都注定会被遗漏,对此我深表歉意。按字母顺序排列,以下人员在我心目中脱颖而出,因为他们对本文件作出了直接贡献。

Bill Flanigan Elliott Ginsburg Paul Hoffman Russ Housley Michael Myers John Pawling Denis Pinkas Jim Schaad

比尔·弗拉尼根·艾略特·金斯堡·保罗·霍夫曼·罗斯·霍斯利·迈克尔·迈尔斯·约翰·波林·丹尼斯·平卡斯·吉姆·沙德

Editor's Address

编辑地址

Blake Ramsdell Worldtalk 17720 NE 65th St Ste 201 Redmond, WA 98052

布雷克·拉姆斯代尔世界谈话17720东北65街201号雷德蒙德,华盛顿州98052

   Phone: +1 425 376 0225
   EMail: blaker@deming.com
        
   Phone: +1 425 376 0225
   EMail: blaker@deming.com
        

Full Copyright Statement

完整版权声明

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

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

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.

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

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。