Internet Engineering Task Force (IETF)                       B. Ramsdell
Request for Comments: 5750                              Brute Squad Labs
Obsoletes: 3850                                                S. Turner
Category: Standards Track                                           IECA
ISSN: 2070-1721                                             January 2010
        
Internet Engineering Task Force (IETF)                       B. Ramsdell
Request for Comments: 5750                              Brute Squad Labs
Obsoletes: 3850                                                S. Turner
Category: Standards Track                                           IECA
ISSN: 2070-1721                                             January 2010
        

Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Certificate Handling

安全/多用途Internet邮件扩展(S/MIME)版本3.2证书处理

Abstract

摘要

This document specifies conventions for X.509 certificate usage by Secure/Multipurpose Internet Mail Extensions (S/MIME) v3.2 agents. S/MIME provides a method to send and receive secure MIME messages, and certificates are an integral part of S/MIME agent processing. S/MIME agents validate certificates as described in RFC 5280, the Internet X.509 Public Key Infrastructure Certificate and CRL Profile. S/MIME agents must meet the certificate processing requirements in this document as well as those in RFC 5280. This document obsoletes RFC 3850.

本文档指定了安全/多用途Internet邮件扩展(S/MIME)v3.2代理使用X.509证书的约定。S/MIME提供了一种发送和接收安全MIME消息的方法,证书是S/MIME代理处理的组成部分。S/MIME代理验证RFC 5280、Internet X.509公钥基础设施证书和CRL配置文件中所述的证书。S/MIME代理必须满足本文档以及RFC 5280中的证书处理要求。本文件淘汰了RFC 3850。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc5750.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc5750.

Copyright Notice

版权公告

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2010 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从该文档中提取的代码组件必须

include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

包括信托法律条款第4.e节中所述的简化BSD许可证文本,且不提供简化BSD许可证中所述的担保。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。

Table of Contents

目录

   1. Introduction ....................................................3
      1.1. Definitions ................................................3
      1.2. Conventions Used in This Document ..........................4
      1.3. Compatibility with Prior Practice S/MIME ...................4
      1.4. Changes from S/MIME v3 to S/MIME v3.1 ......................5
      1.5. Changes since S/MIME v3.1 ..................................5
   2. CMS Options .....................................................6
      2.1. Certificate Revocation Lists ...............................6
      2.2. Certificate Choices ........................................6
      2.3. CertificateSet .............................................7
   3. Using Distinguished Names for Internet Mail .....................8
   4. Certificate Processing ..........................................9
      4.1. Certificate Revocation Lists ..............................10
      4.2. Certificate Path Validation ...............................11
      4.3. Certificate and CRL Signing Algorithms and Key Sizes ......11
      4.4. PKIX Certificate Extensions ...............................12
   5. Security Considerations ........................................15
   6. References .....................................................17
      6.1. Reference Conventions .....................................17
      6.2. Normative References ......................................17
      6.3. Informative References ....................................19
   Appendix A. Moving S/MIME v2 Certificate Handling to Historic
               Status.................................................21
   Appendix B. Acknowledgments........................................21
        
   1. Introduction ....................................................3
      1.1. Definitions ................................................3
      1.2. Conventions Used in This Document ..........................4
      1.3. Compatibility with Prior Practice S/MIME ...................4
      1.4. Changes from S/MIME v3 to S/MIME v3.1 ......................5
      1.5. Changes since S/MIME v3.1 ..................................5
   2. CMS Options .....................................................6
      2.1. Certificate Revocation Lists ...............................6
      2.2. Certificate Choices ........................................6
      2.3. CertificateSet .............................................7
   3. Using Distinguished Names for Internet Mail .....................8
   4. Certificate Processing ..........................................9
      4.1. Certificate Revocation Lists ..............................10
      4.2. Certificate Path Validation ...............................11
      4.3. Certificate and CRL Signing Algorithms and Key Sizes ......11
      4.4. PKIX Certificate Extensions ...............................12
   5. Security Considerations ........................................15
   6. References .....................................................17
      6.1. Reference Conventions .....................................17
      6.2. Normative References ......................................17
      6.3. Informative References ....................................19
   Appendix A. Moving S/MIME v2 Certificate Handling to Historic
               Status.................................................21
   Appendix B. Acknowledgments........................................21
        
1. Introduction
1. 介绍

S/MIME (Secure/Multipurpose Internet Mail Extensions) v3.2, 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 verify 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邮件扩展)v3.2提供了发送和接收安全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) RFC 5652 [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)RFC 5652[CMS]兼容,因为它使用CMS定义的数据类型。它还继承了CMS支持的所有基于证书的密钥管理体系结构。

1.1. Definitions
1.1. 定义

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

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

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

ASN.1:ITU-T X.680[X.680]中定义的抽象语法符号1。

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 [ACAUTH].

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

Certificate: A type that binds an entity's 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]中定义的类型。

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. Conventions Used in This Document
1.2. 本文件中使用的公约

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

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

We define some additional terms here:

我们在此定义了一些附加术语:

SHOULD+ This term means the same as SHOULD. However, the authors expect that a requirement marked as SHOULD+ will be promoted at some future time to be a MUST.

SHOULD+这个词的意思与SHOULD相同。然而,作者希望标记为SHOULD+的需求将在将来的某个时候被提升为必须的。

SHOULD- This term means the same as SHOULD. However, the authors expect that a requirement marked as SHOULD- will be demoted to a MAY in a future version of this document.

应-该术语的含义与应相同。然而,作者预计,在本文档的未来版本中,标记为“应该”的需求将降级为“可能”。

MUST- This term means the same as MUST. However, the authors expect that this requirement will no longer be a MUST in a future document. Although its status will be determined at a later time, it is reasonable to expect that if a future revision of a document alters the status of a MUST-requirement, it will remain at least a SHOULD or a SHOULD-.

必须-该术语的含义与必须相同。然而,作者希望这一要求在未来的文件中不再是必须的。尽管其状态将在稍后确定,但可以合理预期,如果未来的文件修订改变了必须要求的状态,则至少应保持为应该或应该。

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

S/MIME version 3.2 agents ought to attempt to have the greatest interoperability possible with agents for prior versions of S/MIME.

S/MIME版本3.2代理应该尝试与S/MIME早期版本的代理具有尽可能大的互操作性。

S/MIME version 2 is described in RFC 2311 through RFC 2315 inclusive [SMIMEv2], S/MIME version 3 is described in RFC 2630 through RFC 2634 inclusive and RFC 5035 [SMIMEv3], and S/MIME version 3.1 is described in RFC 3850, RFC 3851, RFC 3852, RFC 2634, and RFC 5035 [SMIMEv3.1]. RFC 2311 also has historical information about the development of S/MIME.

S/MIME版本2在RFC 2311至RFC 2315(含)中描述[SMIMEv2],S/MIME版本3在RFC 2630至RFC 2634(含)和RFC 5035[SMIMEv3]中描述,S/MIME版本3.1在RFC 3850、RFC 3851、RFC 3852、RFC 2634和RFC 5035[SMIMEv3.1]中描述。RFC2311也有关于S/MIME发展的历史信息。

1.4. Changes from S/MIME v3 to S/MIME v3.1
1.4. 从S/MIME v3到S/MIME v3.1的更改

Version 1 and version 2 CRLs MUST be supported.

必须支持版本1和版本2 CRL。

Multiple certification authority (CA) certificates with the same subject and public key, but with overlapping validity periods, MUST be supported.

必须支持具有相同主题和公钥但有效期重叠的多个证书颁发机构(CA)证书。

Version 2 attribute certificates SHOULD be supported, and version 1 attributes certificates MUST NOT be used.

应支持版本2属性证书,不得使用版本1属性证书。

The use of the MD2 digest algorithm for certificate signatures is discouraged, and security language was added.

不鼓励对证书签名使用MD2摘要算法,并添加了安全语言。

Clarified use of email address use in certificates. Certificates that do not contain an email address have no requirements for verifying the email address associated with the certificate.

澄清了证书中电子邮件地址的使用。不包含电子邮件地址的证书不需要验证与证书关联的电子邮件地址。

Receiving agents SHOULD display certificate information when displaying the results of signature verification.

接收代理在显示签名验证结果时应显示证书信息。

Receiving agents MUST NOT accept a signature made with a certificate that does not have the digitalSignature or nonRepudiation bit set.

接收代理不得接受使用未设置数字签名或不可否认位的证书进行的签名。

Clarifications for the interpretation of the key usage and extended key usage extensions.

解释密钥用法和扩展密钥用法扩展的说明。

1.5. Changes since S/MIME v3.1
1.5. 自S/MIME v3.1以来的更改

Conventions Used in This Document: Moved to Section 1.2. Added definitions for SHOULD+, SHOULD-, and MUST-.

本文件中使用的约定:移至第1.2节。增加了SHOULD+、SHOULD-和MUST-的定义。

Section 1.1: Updated ASN.1 definition and reference.

第1.1节:更新的ASN.1定义和参考。

Section 1.3: Added text about v3.1 RFCs.

第1.3节:添加了关于v3.1 RFC的文本。

Section 3: Aligned email address text with RFC 5280. Updated note to indicate emailAddress IA5String upper bound is 255 characters. Added text about matching email addresses.

第3节:与RFC 5280对齐的电子邮件地址文本。更新了说明,表明emailAddress IA5String的上限为255个字符。添加了有关匹配电子邮件地址的文本。

Section 4.2: Added text to indicate how S/MIME agents locate the correct user certificate.

第4.2节:添加文本以指示S/MIME代理如何定位正确的用户证书。

Section 4.3: RSA with SHA-256 (PKCS #1 v1.5) added as MUST; DSA with SHA-256 added as SHOULD+; RSA with SHA-1, DSA with SHA-1, and RSA with MD5 changed to SHOULD-; and RSASSA-PSS with SHA-256 added as SHOULD+. Updated key sizes and changed pointer to PKIX RFCs.

第4.3节:必须添加带有SHA-256(PKCS#1 v1.5)的RSA;添加SHA-256的DSA应为+;带有SHA-1的RSA、带有SHA-1的DSA和带有MD5的RSA更改为“应”;和RSASSA-PSS,应添加SHA-256+。更新了密钥大小并更改了指向PKIX RFC的指针。

Section 4.4.1: Aligned with PKIX on use of basic constraints extension in CA certificates. Clarified which extension is used to constrain end entities from using their keys to perform issuing authority operations.

第4.4.1节:在CA证书中使用基本约束扩展时与PKIX保持一致。阐明了用于约束终端实体使用其密钥执行颁发机构操作的扩展。

Section 5: Updated security considerations.

第5节:更新的安全注意事项。

Section 7: Moved references from Appendix B to Section 6. Updated the references.

第7节:将参考文件从附录B移至第6节。更新了参考资料。

Appendix A: Moved Appendix A to Appendix B. Added Appendix A to move S/MIME v2 Certificate Handling to Historic Status.

附录A:将附录A移至附录B。添加附录A以将S/MIME v2证书处理移至历史状态。

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. Certificate Revocation Lists
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. In all cases, both v1 and v2 CRLs MUST be supported.

接收代理必须支持[KEYM]中定义的证书吊销列表(CRL)格式。如果发送代理在传出消息中包含CRL,则必须使用[KEYM]中定义的CRL格式。在所有情况下,必须同时支持v1和v2 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,以便在以后处理消息时使用。

2.2. Certificate Choices
2.2. 证书选择

Receiving agents MUST support v1 X.509 and v3 X.509 certificates as profiled in [KEYM]. End-entity certificates MAY include an Internet mail address, as described in Section 3.

接收代理必须支持[KEYM]中描述的v1 X.509和v3 X.509证书。终端实体证书可能包括互联网邮件地址,如第3节所述。

Receiving agents SHOULD support X.509 version 2 attribute certificates. See [ACAUTH] for details about the profile for attribute certificates.

接收代理应支持X.509版本2属性证书。有关属性证书的配置文件的详细信息,请参见[ACAUTH]。

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 [PKCS6], and PKIX attribute certificates.

CMS消息格式支持公钥内容类型的证书格式选择:PKIX、PKCS#6扩展证书[PKCS6]和PKIX属性证书。

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.

PKCS#6格式没有得到广泛使用。此外,PKIX证书扩展解决了与PKCS#6中预期相同的功能和灵活性。因此,发送和接收代理不得使用PKCS#6扩展证书。

X.509 version 1 attribute certificates are also not widely implemented, and have been superseded with version 2 attribute certificates. Sending agents MUST NOT send version 1 attribute certificates.

X.509版本1属性证书也没有得到广泛实施,已被版本2属性证书取代。发送代理不能发送版本1属性证书。

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 certification authority (CA) that it believes that the recipient may trust as authoritative. A receiving agent MUST be able to handle an arbitrarily large number of certificates and chains.

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

Agents MAY send CA certificates, that is, cross-certificates, self-issued certificates, and self-signed certificates. 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 when certificates contain Digital Signature Algorithm (DSA) public keys the parameters may be located in the root certificate. This would require that the recipient possess both the end-entity certificate and the root certificate 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.

接收代理必须支持基于可分辨名称字段的链接。可以支持构建证书链的其他方法。

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. One specification that addresses attribute certificate use is defined in [SECLABEL].

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

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

End-entity certificates MAY contain an Internet mail address as described in [KEYM], Section 4.2.1.6. The email address SHOULD be in the subjectAltName extension, and SHOULD NOT be in the subject distinguished name.

终端实体证书可能包含[KEYM]第4.2.1.6节所述的互联网邮件地址。电子邮件地址应位于subjectAltName扩展名中,而不应位于subject可分辨名称中。

Receiving agents MUST recognize and accept certificates that contain no email address. Agents are allowed to provide an alternative mechanism for associating an email address with a certificate that does not contain an email address, such as through the use of the agent's address book, if available. 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 [PKCS9] emailAddress attribute:

接收代理必须识别并接受不包含电子邮件地址的证书。允许代理提供将电子邮件地址与不包含电子邮件地址的证书相关联的替代机制,例如通过使用代理的通讯簿(如果可用)。接收代理必须识别subjectAltName字段中的电子邮件地址。接收代理必须识别PKCS#9[PKCS9]emailAddress属性中可分辨名称字段中的电子邮件地址:

   pkcs-9-at-emailAddress OBJECT IDENTIFIER ::=
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) 1 }
        
   pkcs-9-at-emailAddress OBJECT IDENTIFIER ::=
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) 1 }
        

Note that this attribute MUST be encoded as IA5String and has an upper bound of 255 characters. The right side of the email address SHOULD be treated as ASCII-case-insensitive.

请注意,此属性必须编码为IA5String,并具有255个字符的上限。电子邮件地址的右侧应视为ASCII,不区分大小写。

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, if present, 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邮件地址(如果存在)匹配(如果证书中存在邮件地址)。如果此比较失败,则接收代理应提供一些明确的消息替代处理,这可能是显示一条消息,向收件人显示证书中的地址或其他证书详细信息。

A receiving agent SHOULD display a subject name or other certificate details when displaying an indication of successful or unsuccessful signature verification.

当显示签名验证成功或失败的指示时,接收代理应显示主题名称或其他证书详细信息。

All subject and issuer names MUST be populated (i.e., not an empty SEQUENCE) in S/MIME-compliant X.509 certificates, except that the subject distinguished name (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兼容的X.509证书中填充所有使用者和颁发者名称(即,非空序列),但用户(即终端实体)证书中的使用者可分辨名称(DN)可能是空序列,在这种情况下,使用者的subjectAltName扩展将包括使用者的标识符,并且必须标记为关键。

4. Certificate Processing
4. 证书处理

S/MIME agents need 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. 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 the correspondent's certificates that can be retrieved. At a minimum, for initial S/MIME deployment, a user agent could automatically generate a message to an intended recipient requesting the recipient's certificate in a signed return message.

S/MIME代理需要提供一些证书检索机制,以便为数字信封的收件人获取证书。有许多方法可以实现证书检索机制。[X.500]目录服务是与经典的X.500可分辨名称兼容的仅证书检索机制的一个极好示例。IETF正在考虑的另一种方法是作为现有域名系统(DNS)的一部分提供证书检索服务。在这些机制被广泛使用之前,它们的实用性可能会受到可检索的少量通信方证书的限制。对于初始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 an

接收和发送代理还应提供一种机制,允许用户以这种方式“存储和保护”通信员的证书,以保证其以后的检索。在许多环境中,可能需要在某种证书数据库中将证书检索/存储机制链接在一起。在其最简单的形式中,证书数据库将是特定用户的本地数据库,并将以与证书数据库类似的方式运行

"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 cannot 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]中有描述。

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

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

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 CRL retrieval mechanism in order to gain access to certificate revocation information when validating certification paths. 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 certification path 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 information in a particular context is beyond the scope of this specification but may be governed by the policies associated with particular certification paths.

接收和发送代理应在每次证书作为证书路径验证的一部分进行验证时检索和利用CRL信息,即使该证书在过去已经过验证。然而,在许多情况下(如离线验证),访问最新的CRL信息可能很困难或不可能。因此,CRL信息的使用可能由受保护信息的价值决定。特定上下文中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 Path Validation
4.2. 证书路径验证

In creating a user agent for secure messaging, certificate, CRL, and certification path validation SHOULD be highly automated while still acting in the best interests of the user. Certificate, CRL, and path 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 (e.g., RSA), or forming a pairwise symmetric key (e.g., Diffie-Hellman) to be used to encrypt or decrypt a content-encryption key.

在创建用于安全消息传递的用户代理时,证书、CRL和证书路径验证应该高度自动化,同时仍然符合用户的最佳利益。验证通信方的公钥时,必须按照[KEYM]执行证书、CRL和路径验证。这在使用公钥提供安全服务之前是必要的,例如验证签名、加密内容加密密钥(例如RSA)或形成用于加密或解密内容加密密钥的成对对称密钥(例如Diffie Hellman)。

Certificates and CRLs are made available to the path 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 path 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 path validation on incoming signed messages.

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

When verifying a signature and the certificates that are included in the message, if a signingCertificate attribute from RFC 2634 [ESS] or a signingCertificateV2 attribute from RFC 5035 [ESS] is found in an S/MIME message, it SHALL be used to identify the signer's certificate. Otherwise, the certificate is identified in an S/MIME message, either using the issuerAndSerialNumber, which identifies the signer's certificate by the issuer's distinguished name and the certificate serial number, or the subjectKeyIdentifier, which identifies the signer's certificate by a key identifier.

验证消息中包含的签名和证书时,如果在S/MIME消息中发现来自RFC 2634[ESS]的signingCertificate属性或来自RFC 5035[ESS]的signingCertificateV2属性,则应使用该属性来标识签名者的证书。否则,证书将在S/MIME消息中标识,或者使用issuerAndSerialNumber(通过颁发者的可分辨名称和证书序列号标识签名者的证书),或者使用subjectKeyIdentifier(通过密钥标识符标识签名者的证书)。

When decrypting an encrypted message, if a SMIMEEncryptionKeyPreference attribute is found in an encapsulating SignedData, it SHALL be used to identify the originator's certificate found in OriginatorInfo. See [CMS] for the CMS fields that reference the originator's and recipient's certificates.

解密加密邮件时,如果在封装的SignedData中发现SMIMEEncryptionKeyPreference属性,则应使用该属性标识在OriginatorInfo中找到的发端人证书。参见[CMS],了解引用发端人和接收方证书的CMS字段。

4.3. Certificate and CRL Signing Algorithms and Key Sizes
4.3. 证书和CRL签名算法和密钥大小

Certificates and Certificate Revocation Lists (CRLs) are signed by the certificate issuer. Receiving agents:

证书和证书吊销列表(CRL)由证书颁发者签名。接收代理:

- MUST support RSA with SHA-256

- 必须支持带有SHA-256的RSA

- SHOULD+ support DSA with SHA-256

- 应+支持带有SHA-256的DSA

- SHOULD+ support RSASSA-PSS with SHA-256

- 应+支持带有SHA-256的RSASSA-PSS

- SHOULD- support RSA with SHA-1

- 应该-支持带有SHA-1的RSA

- SHOULD- support DSA with SHA-1

- 应-支持带有SHA-1的DSA

- SHOULD- support RSA with MD5

- 应该-支持带有MD5的RSA

The following are the RSA and RSASSA-PSS key size requirements for S/MIME receiving agents during certificate and CRL signature verification:

以下是证书和CRL签名验证期间S/MIME接收代理的RSA和RSASSA-PSS密钥大小要求:

           key size <= 1023 : MAY  (see Section 5)
   1024 <= key size <= 4096 : MUST (see Section 5)
   4096 <  key size         : MAY  (see Section 5)
        
           key size <= 1023 : MAY  (see Section 5)
   1024 <= key size <= 4096 : MUST (see Section 5)
   4096 <  key size         : MAY  (see Section 5)
        

The following are the DSA key size requirements for S/MIME receiving agents during certificate and CRL signature verification:

以下是证书和CRL签名验证期间S/MIME接收代理的DSA密钥大小要求:

            key size <= 1023 : MAY  (see Section 5)
    1024 <= key size <= 3072 : MUST (see Section 5)
        
            key size <= 1023 : MAY  (see Section 5)
    1024 <= key size <= 3072 : MUST (see Section 5)
        

For 512-bit RSA with SHA-1 see [KEYMALG] and [FIPS186-2] without Change Notice 1, for 512-bit RSA with SHA-256 see [RSAOAEP] and [FIPS186-2] without Change Notice 1, for 1024-bit through 3072-bit RSA with SHA-256 see [RSAOAEP] and [FIPS186-2] with Change Notice 1, and for 4096-bit RSA with SHA-256 see [RSAOAEP] and [PKCS1]. In either case, the first reference provides the signature algorithm's object identifier and the second provides the signature algorithm's definition.

对于带有SHA-1的512位RSA,见[KEYMALG]和[FIPS186-2],无更改通知1;对于带有SHA-256的512位RSA,见[RSAOEP]和[FIPS186-2],无更改通知1;对于带有SHA-256的1024位到3072位RSA,见[RSAOEP]和[FIPS186-2],有更改通知1;对于带有SHA-256的4096位RSA,见[RSAOEP]和[PKCS1]。在这两种情况下,第一个引用提供签名算法的对象标识符,第二个引用提供签名算法的定义。

For 512-bit DSA with SHA-1 see [KEYMALG] and [FIPS186-2] without Change Notice 1, for 512-bit DSA with SHA-256 see [KEYMALG2] and [FIPS186-2] without Change Notice 1, for 1024-bit DSA with SHA-1 see [KEYMALG] and [FIPS186-2] with Change Notice 1, for 1024-bit through 3072 DSA with SHA-256 see [KEYMALG2] and [FIPS186-3]. In either case, the first reference provides the signature algorithm's object identifier and the second provides the signature algorithm's definition.

对于带SHA-1的512位DSA,见[KEYMALG]和[FIPS186-2],无更改通知1;对于带SHA-256的512位DSA,见[KEYMALG2]和[FIPS186-2],无更改通知1;对于带SHA-1的1024位DSA,见[KEYMALG]和[FIPS186-2],有更改通知1;对于带SHA-256的1024位至3072位DSA,见[KEYMALG2]和[FIPS186-3]。在这两种情况下,第一个引用提供签名算法的对象标识符,第二个引用提供签名算法的定义。

For RSASSA-PSS with SHA-256 see [RSAPSS].

有关带有SHA-256的RSASSA-PSS,请参见[RSASSS]。

4.4. PKIX Certificate Extensions
4.4. PKIX证书扩展

PKIX describes an extensible framework in which the basic certificate information can be extended and describes 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

PKIX描述了一个可扩展的框架,其中可以扩展基本证书信息,并描述了如何使用这些扩展来控制证书的颁发和验证过程。PKIX工作组正在努力确定和创建

extensions that have value in particular certification environments. Further, there are active efforts underway to issue PKIX certificates for business purposes. This document identifies the minimum required set of certificate extensions that have the greatest value in the S/MIME environment. The syntax and semantics of all the identified extensions are defined in [KEYM].

在特定认证环境中具有价值的扩展。此外,正在积极努力为商业目的颁发PKIX证书。本文档确定了在S/MIME环境中具有最大价值的最小所需证书扩展集。[KEYM]中定义了所有已识别扩展的语法和语义。

Sending and receiving agents MUST correctly handle the basic constraints, key usage, authority key identifier, subject key identifier, and subject alternative names certificate extensions when they appear in end-entity and CA certificates. Some mechanism SHOULD exist to gracefully handle other certificate extensions when they appear in end-entity or CA certificates.

当基本约束、密钥使用、权限密钥标识符、使用者密钥标识符和使用者替代名称证书扩展出现在最终实体和CA证书中时,发送和接收代理必须正确处理这些约束、密钥使用、权限密钥标识符、使用者密钥标识符和使用者替代名称证书扩展。当其他证书扩展出现在最终实体或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
4.4.1. 基本约束条件

The basic constraints extension serves to delimit the role and position that an issuing authority or end-entity certificate plays in a certification path.

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

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 the key usage extension that restrains end entities from using the key when performing issuing authority operations (see Section 4.4.2).

例如,颁发给CA和下级CA的证书包含一个基本约束扩展,该扩展将它们标识为颁发机构证书。终端实体证书包含密钥使用扩展,该扩展限制终端实体在执行颁发机构操作时使用密钥(参见第4.4.2节)。

As per [KEYM], certificates MUST contain a basicConstraints extension in CA certificates, and SHOULD NOT contain that extension in end-entity certificates.

根据[KEYM],证书必须在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 that contain a key usage extension that specifies that the corresponding public key can be used to sign end user certificates and sign CRLs.

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

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

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

S/MIME receiving agents MUST NOT accept the signature of a message if it was verified using a certificate that contains the key usage extension without either the digitalSignature or nonRepudiation bit set. Sometimes S/MIME is used as a secure message transport for applications beyond interpersonal messaging. In such cases, the S/MIME-enabled application can specify additional requirements concerning the digitalSignature or nonRepudiation bits within this extension.

如果使用包含密钥使用扩展且未设置digitalSignature或nonRepudiation位的证书对消息进行验证,则S/MIME接收代理不得接受消息的签名。有时,S/MIME被用作人际消息传递以外的应用程序的安全消息传输。在这种情况下,支持S/MIME的应用程序可以指定与此扩展中的数字签名或不可否认性位有关的附加要求。

If the key usage extension is not specified, receiving clients MUST presume that the digitalSignature and nonRepudiation bits are set.

如果未指定密钥使用扩展,则接收客户端必须假定设置了数字签名和非否认位。

4.4.3. Subject Alternative Name
4.4.3. 主题替代名称

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

subject alternative name extension在S/MIME中用作传递与此证书的实体相对应的电子邮件地址的首选方式。必须使用[KEYM]第4.2.1.6节中所述的通用名称类型的RFC822名称选择对存在的任何电子邮件地址进行编码。由于SubjectAltName类型是GeneralName的序列,因此可能存在多个电子邮件地址。

4.4.4. Extended Key Usage Extension
4.4.4. 扩展密钥使用扩展

The extended key usage extension also serves to limit the technical purposes for which a public key listed in a valid certificate may be used. The set of technical purposes for the certificate therefore are the intersection of the uses indicated in the key usage and extended key usage extensions.

扩展密钥使用扩展还用于限制有效证书中列出的公钥可用于的技术目的。因此,证书的技术用途集是密钥使用和扩展密钥使用扩展中指示的用途的交叉点。

For example, if the certificate contains a key usage extension indicating digital signature and an extended key usage extension that includes the email protection OID, then the certificate may be used for signing but not encrypting S/MIME messages. If the certificate contains a key usage extension indicating digital signature but no extended key usage extension, then the certificate may also be used to sign but not encrypt S/MIME messages.

例如,如果证书包含指示数字签名的密钥使用扩展和包括电子邮件保护OID的扩展密钥使用扩展,则该证书可用于签名但不加密S/MIME消息。如果证书包含指示数字签名的密钥使用扩展,但没有扩展密钥使用扩展,则该证书也可用于签名但不加密S/MIME消息。

If the extended key usage extension is present in the certificate, then interpersonal message S/MIME receiving agents MUST check that it contains either the emailProtection or the anyExtendedKeyUsage OID as defined in [KEYM]. S/MIME uses other than interpersonal messaging MAY require the explicit presence of the extended key usage extension or other OIDs to be present in the extension or both.

如果证书中存在扩展密钥使用扩展,则人际消息S/MIME接收代理必须检查它是否包含[KEYM]中定义的emailProtection或anyExtendedKeyUsage OID。除人际消息传递之外的S/MIME使用可能要求扩展密钥使用扩展显式存在或扩展中存在其他OID,或两者都存在。

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 have 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 noticeable 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, if the certificate contains at least one mail address

- 如果证书至少包含一个邮件地址,则证书中没有与邮件发件人匹配的Internet邮件地址

- no certificate chain leads to a trusted CA

- 没有证书链指向受信任的CA

- no ability to check the CRL for a certificate

- 无法检查CRL的证书

- an invalid CRL was received

- 收到无效的CRL

- the CRL being checked is expired

- 正在检查的CRL已过期

- the certificate is expired

- 证书过期了

- the certificate has been revoked

- 证书已被吊销

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.

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

It is possible for there to be multiple unexpired CRLs for a CA. If an agent is consulting CRLs for certificate validation, it SHOULD make sure that the most recently issued CRL for that CA is consulted, since an S/MIME message sender could deliberately include an older unexpired CRL in an S/MIME message. This older CRL might not include recently revoked certificates, which might lead an agent to accept a certificate that has been revoked in a subsequent CRL.

CA可能存在多个未过期的CRL。如果代理正在咨询CRL以进行证书验证,则应确保咨询该CA最近发布的CRL,因为S/MIME消息发送方可能有意在S/MIME消息中包含较旧的未过期CRL。此旧CRL可能不包括最近吊销的证书,这可能导致代理接受在后续CRL中已吊销的证书。

When determining the time for a certificate validity check, agents have to be careful to use a reliable time. Unless it is from a trusted agent, this time MUST NOT be the SigningTime attribute found in an S/MIME message. For most sending agents, the SigningTime attribute could be deliberately set to direct the receiving agent to check a CRL that could have out-of-date revocation status for a certificate, or cause an improper result when checking the Validity field of a certificate.

在确定证书有效性检查的时间时,代理必须小心使用可靠的时间。除非它来自受信任的代理,否则此时间不能是S/MIME消息中的SigningTime属性。对于大多数发送代理,可以故意设置SigningTime属性,以指示接收代理检查CRL,该CRL可能具有证书的过期吊销状态,或者在检查证书的有效性字段时导致不正确的结果。

In addition to the Security Considerations identified in [KEYM], caution should be taken when processing certificates that have not first been validated to a trust anchor. Certificates could be manufactured by untrusted sources for the purpose of mounting denial of service or other attacks. For example, keys selected to require excessive cryptographic processing, or extensive lists of CRL Distribution Point (CDP) and/or Authority Information Access (AIA) addresses in the certificate, could be used to mount denial-of-service attacks. Similarly, attacker-specified CDP and/or AIA addresses could be included in fake certificates to allow the originator to detect receipt of the message even if signature verification fails.

除了[KEYM]中确定的安全注意事项外,在处理尚未首先验证到信任锚的证书时,还应小心。证书可能由不受信任的来源制造,用于实施拒绝服务或其他攻击。例如,选择需要过度加密处理的密钥,或证书中CRL分发点(CDP)和/或授权信息访问(AIA)地址的广泛列表,可用于发起拒绝服务攻击。类似地,攻击者指定的CDP和/或AIA地址可能包含在假证书中,以允许发端人检测到消息的接收,即使签名验证失败。

The 4096-bit RSA key size requirement for certificate and CRL verification is larger than the 2048-bit RSA key sizes for message signature generation/verification or message encryption/decryption in [SMIME-MSG] because many root CAs included in certificate stores have already issued root certificates with the 4096-bit key. The standard that defines comparable key sizes for DSA is not yet available. In particular, [FIPS186-2] without Change Notice 1 allowed DSA key sizes between 512 and 1024 bits, [FIPS186-2] with Change Notice 1 only allowed DSA key sizes of 1024 bits, and [FIPS186-3] allowed DSA key sizes from 1024 to 3072 bits. Further, 4096-bit keys are normally only used by Root certificates and not by subordinate CA certificates, thereby lengthening the root CA certificate's validity period.

证书和CRL验证的4096位RSA密钥大小要求大于[SMIME-MSG]中用于消息签名生成/验证或消息加密/解密的2048位RSA密钥大小,因为证书存储中包含的许多根CA已使用4096位密钥颁发根证书。为DSA定义可比密钥大小的标准尚不可用。特别是,[FIPS186-2]未经更改通知1允许的DSA密钥大小介于512位和1024位之间,[FIPS186-2]经更改通知1仅允许的DSA密钥大小为1024位,[FIPS186-3]允许的DSA密钥大小介于1024位和3072位之间。此外,4096位密钥通常仅由根证书使用,而不由从属CA证书使用,从而延长了根CA证书的有效期。

RSA and DSA keys of less than 1024 bits are now considered by many experts to be cryptographically insecure (due to advances in computing power), and should no longer be used to sign certificates or CRLs. Such keys were previously considered secure, so processing previously received signed and encrypted mail may require processing certificates or CRLs signed with weak keys. Implementations that wish to support previous versions of S/MIME or process old messages need to consider the security risks that result from accepting certificates and CRLs with smaller key sizes (e.g., spoofed certificates) versus the costs of denial of service. If an implementation supports verification of certificates or CRLs generated with RSA and DSA keys of less than 1024 bits, it MUST warn the user. Implementers should consider providing a stronger warning for weak signatures on certificates and CRLs associated with newly received messages than the one provided for certificates and CRLs associated with previously stored messages. Server implementations (e.g., secure mail list servers) where user warnings are not appropriate SHOULD reject messages with weak cryptography.

许多专家现在认为,小于1024位的RSA和DSA密钥在加密方面是不安全的(由于计算能力的提高),不应再用于签署证书或CRL。这些密钥以前被认为是安全的,因此处理以前收到的签名和加密邮件可能需要处理使用弱密钥签名的证书或CRL。希望支持以前版本的S/MIME或处理旧消息的实现需要考虑从接受证书和具有较小密钥大小的CRLs(例如,欺骗的证书)导致的安全风险与拒绝服务的成本。如果实现支持验证使用小于1024位的RSA和DSA密钥生成的证书或CRL,则必须警告用户。实施者应该考虑对与新接收的消息相关联的证书和CRL上的弱签名提供更强的警告,而不是与先前存储的消息相关联的证书和CRL所提供的警告。用户警告不适用的服务器实现(例如,secure mail list服务器)应拒绝加密较弱的邮件。

If an implementation is concerned about compliance with National Institute of Standards and Technology (NIST) key size recommendations, then see [SP800-57].

如果实施涉及符合国家标准与技术研究所(NIST)关键尺寸建议,请参见[SP800-57]。

6. References
6. 工具书类
6.1. Reference Conventions
6.1. 参考约定

[CMS] refers to [RFC5652].

[CMS]指[RFC5652]。

[ESS] refers to [RFC2634] and [RFC5035].

[ESS]指[RFC2634]和[RFC5035]。

[SMIMEv2] refers to [RFC2311], [RFC2312], [RFC2313], [RFC2314], and [RFC2315].

[SMIMEv2]指[RFC2311]、[RFC2312]、[RFC2313]、[RFC2314]和[RFC2315]。

[SMIMEv3] refers to [RFC2630], [RFC2631], [RFC2632], [RFC2633], [RFC2634], and [RFC5035].

[SMIMEv3]指[RFC2630]、[RFC2631]、[RFC2632]、[RFC2633]、[RFC2634]和[RFC5035]。

[SMIMv3.1] refers to [RFC2634], [RFC3850], [RFC3851], [RFC3852], and [RFC5035].

[SMIMv3.1]指[RFC2634]、[RFC3850]、[RFC3851]、[RFC3852]和[RFC5035]。

6.2. Normative References
6.2. 规范性引用文件

[ACAUTH] Farrell, S., Housley, R., and S. Turner, "An Internet Attribute Certificate Profile for Authorization", RFC 5755, January 2010.

[ACAUTH]Farrell,S.,Housley,R.,和S.Turner,“授权的互联网属性证书配置文件”,RFC 57552010年1月。

[RFC2634] Hoffman, P., Ed., "Enhanced Security Services for S/MIME", RFC 2634, June 1999.

[RFC2634]Hoffman,P.,Ed.“S/MIME的增强安全服务”,RFC 2634,1999年6月。

[RFC5035] Schaad, J., "Enhanced Security Services (ESS) Update: Adding CertID Algorithm Agility", RFC 5035, August 2007.

[RFC5035]Schaad,J.,“增强安全服务(ESS)更新:添加CertID算法敏捷性”,RFC 5035,2007年8月。

[RFC5652] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 5652, September 2009.

[RFC5652]Housley,R.,“加密消息语法(CMS)”,RFC 56522009年9月。

[FIPS186-2] National Institute of Standards and Technology (NIST), "Digital Signature Standard (DSS)", FIPS Publication 186-3, January 2000. [With Change Notice 1]

[FIPS186-2]国家标准与技术研究所(NIST),“数字签名标准(DSS)”,FIPS出版物186-3,2000年1月。[附更改通知1]

[FIPS186-3] National Institute of Standards and Technology (NIST), FIPS Publication 186-3: Digital Signature Standard, June 2009.

[FIPS186-3]国家标准与技术研究所(NIST),FIPS出版物186-3:数字签名标准,2009年6月。

[KEYM] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, May 2008.

[KEYM]Cooper,D.,Santesson,S.,Farrell,S.,Boeyen,S.,Housley,R.,和W.Polk,“互联网X.509公钥基础设施证书和证书撤销列表(CRL)概要”,RFC 52802008年5月。

[KEYMALG] Bassham, L., Polk, W., and R. Housley, "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279, April 2002.

[KEYMALG]Bassham,L.,Polk,W.,和R.Housley,“互联网X.509公钥基础设施证书和证书撤销列表(CRL)配置文件的算法和标识符”,RFC 3279,2002年4月。

[KEYMALG2] Dang, Q., Santesson, S., Moriarty, K., Brown, D., and T. Polk, "Internet X.509 Public Key Infrastructure: Additional Algorithms and Identifiers for DSA and ECDSA", RFC 5758, January 2010.

[KEYMALG2]Dang,Q.,Santesson,S.,Moriarty,K.,Brown,D.,和T.Polk,“互联网X.509公钥基础设施:DSA和ECDSA的附加算法和标识符”,RFC 5758,2010年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月。

[PKCS1] Jonsson, J. and B. Kaliski, "Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1", RFC 3447, February 2003.

[PKCS1]Jonsson,J.和B.Kaliski,“公钥密码标准(PKCS)#1:RSA密码规范版本2.1”,RFC 3447,2003年2月。

[PKCS9] Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object Classes and Attribute Types Version 2.0", RFC 2985, November 2000.

[PKCS9]Nystrom,M.和B.Kaliski,“PKCS#9:选定对象类和属性类型版本2.0”,RFC 29852000年11月。

[RSAPSS] Schaad, J., "Use of the RSASSA-PSS Signature Algorithm in Cryptographic Message Syntax (CMS)", RFC 4056, June 2005.

[RSASPS]Schaad,J.,“在加密消息语法(CMS)中使用RSASSA-PSS签名算法”,RFC 4056,2005年6月。

[RSAOAEP] Schaad, J., Kaliski, B., and R. Housley, "Additional Algorithms and Identifiers for RSA Cryptography for use in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 4055, June 2005.

[RSAOAEP]Schaad,J.,Kaliski,B.,和R.Housley,“互联网X.509公钥基础设施证书和证书撤销列表(CRL)配置文件中使用的RSA加密的其他算法和标识符”,RFC 4055,2005年6月。

[SMIME-MSG] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.2 Message Specification", RFC 5751, January 2010.

[SMIME-MSG]Ramsdell,B.和S.Turner,“安全/多用途Internet邮件扩展(S/MIME)版本3.2消息规范”,RFC 57512010年1月。

[X.680] ITU-T Recommendation X.680 (2002) | ISO/IEC 8824-1:2002. Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation.

[X.680]ITU-T建议X.680(2002)| ISO/IEC 8824-1:2002。信息技术.抽象语法符号1(ASN.1):基本符号规范。

6.3. Informative References
6.3. 资料性引用

[PKCS6] RSA Laboratories, "PKCS #6: Extended-Certificate Syntax Standard", November 1993.

[PKCS6]RSA实验室,“PKCS#6:扩展证书语法标准”,1993年11月。

[SECLABEL] Nicolls, W., "Implementing Company Classification Policy with the S/MIME Security Label", RFC 3114, May 2002.

[SECLABEL]Nicols,W.“使用S/MIME安全标签实施公司分类政策”,RFC3114,2002年5月。

[RFC2311] Dusse, S., Hoffman, P., Ramsdell, B., Lundblade, L., and L. Repka, "S/MIME Version 2 Message Specification", RFC 2311, March 1998.

[RFC2311]Dusse,S.,Hoffman,P.,Ramsdell,B.,Lundblade,L.,和L.Repka,“S/MIME版本2消息规范”,RFC 23111998年3月。

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

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

[RFC2313] Kaliski, B., "PKCS #1: RSA Encryption Version 1.5", RFC 2313, March 1998.

[RFC2313]Kaliski,B.,“PKCS#1:RSA加密版本1.5”,RFC 2313,1998年3月。

[RFC2314] Kaliski, B., "PKCS #10: Certification Request Syntax Version 1.5", RFC 2314, March 1998.

[RFC2314]Kaliski,B.,“PKCS#10:认证请求语法版本1.5”,RFC 2314,1998年3月。

[RFC2315] Kaliski, B., "PKCS #7: Cryptographic Message Syntax Version 1.5", RFC 2315, March 1998.

[RFC2315]Kaliski,B.,“PKCS#7:加密消息语法版本1.5”,RFC 2315,1998年3月。

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

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

[RFC2631] Rescorla, E., "Diffie-Hellman Key Agreement Method", RFC 2631, June 1999.

[RFC2631]Rescorla,E.,“Diffie-Hellman密钥协商方法”,RFC 26311999年6月。

[RFC2632] Ramsdell, B., Ed., "S/MIME Version 3 Certificate Handling", RFC 2632, June 1999.

[RFC2632]Ramsdell,B.,Ed.,“S/MIME版本3证书处理”,RFC 2632,1999年6月。

[RFC2633] Ramsdell, B., Ed., "S/MIME Version 3 Message Specification", RFC 2633, June 1999.

[RFC2633]Ramsdell,B.,Ed.,“S/MIME版本3消息规范”,RFC 2633,1999年6月。

[RFC3850] Ramsdell, B., Ed., "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Certificate Handling", RFC 3850, July 2004.

[RFC3850]Ramsdell,B.,Ed.,“安全/多用途Internet邮件扩展(S/MIME)版本3.1证书处理”,RFC 38502004年7月。

[RFC3851] Ramsdell, B., Ed., "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification", RFC 3851, July 2004.

[RFC3851]Ramsdell,B.,编辑,“安全/多用途Internet邮件扩展(S/MIME)版本3.1消息规范”,RFC 38512004年7月。

[RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3852, July 2004.

[RFC3852]Housley,R.,“加密消息语法(CMS)”,RFC3852,2004年7月。

[SP800-57] National Institute of Standards and Technology (NIST), Special Publication 800-57: Recommendation for Key Management, August 2005.

[SP800-57]国家标准与技术研究所(NIST),专门出版物800-57:关键管理建议,2005年8月。

[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,信息技术-开放系统互连-目录:概念、模型和服务概述。

Appendix A. Moving S/MIME v2 Certificate Handling to Historic Status

附录A.将S/MIME v2证书处理移动到历史状态

The S/MIME v3 [SMIMEv3], v3.1 [SMIMEv3.1], and v3.2 (this document) are backwards compatible with the S/MIME v2 Certificate Handling Specification [SMIMEv2], with the exception of the algorithms (dropped RC2/40 requirement and added DSA and RSASSA-PSS requirements). Therefore, it is recommended that RFC 2312 [SMIMEv2] be moved to Historic status.

S/MIME v3[SMIMEv3]、v3.1[SMIMEv3.1]和v3.2(本文档)与S/MIME v2证书处理规范[SMIMEv2]向后兼容,但算法除外(删除了RC2/40要求,增加了DSA和RSASSA-PSS要求)。因此,建议将RFC 2312[SMIMEv2]移至历史状态。

Appendix B. Acknowledgments
附录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, v3.1, or v3.2.

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

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 because they made direct contributions to this document.

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

Bill Flanigan, Trevor Freeman, Elliott Ginsburg, Alfred Hoenes, Paul Hoffman, Russ Housley, David P. Kemp, Michael Myers, John Pawling, Denis Pinkas, and Jim Schaad.

比尔·弗拉尼根、特雷弗·弗里曼、艾略特·金斯堡、阿尔弗雷德·霍恩斯、保罗·霍夫曼、罗斯·霍斯利、大卫·P·肯普、迈克尔·迈尔斯、约翰·帕林、丹尼斯·平卡斯和吉姆·沙德。

Authors' Addresses

作者地址

Blake Ramsdell Brute Squad Labs, Inc.

布莱克·拉姆斯代尔野蛮小队实验室有限公司。

   EMail: blaker@gmail.com
        
   EMail: blaker@gmail.com
        

Sean Turner IECA, Inc. 3057 Nutley Street, Suite 106 Fairfax, VA 22031 USA

Sean Turner IECA,Inc.美国弗吉尼亚州费尔法克斯市努特利街3057号106室,邮编22031

   EMail: turners@ieca.com
        
   EMail: turners@ieca.com