这是用户在 2024-6-11 9:47 为 https://www.rfc-editor.org/rfc/rfc9150.html 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
RFC 9150 RFC 9150的 HMAC-Only Ciphers 仅限 HMAC 的密码 April 2022 2022 年 4 月
Cam-Winget & Visoky Cam-Winget 和 Visoky Informational 信息 [Page] [页面]
Status: 地位:
Informational 信息
More info: 更多信息:
Datatracker | IPR | Info page
数据跟踪器 |知识产权 |信息页面
Stream: 流:
Independent Submission 独立提交
RFC: RFC:
9150
Category: 类别:
Informational 信息
Published: 发表:
ISSN: 国际标准刊号:
2070-1721
Authors: 作者:
N. Cam-Winget N.卡姆-温格特
Cisco Systems 思科系统
J. Visoky J.维索基
ODVA ODVA的

RFC 9150 RFC 9150的

TLS 1.3 Authentication and Integrity-Only Cipher Suites
TLS 1.3 身份验证和仅完整性密码套件

Abstract 抽象

This document defines the use of cipher suites for TLS 1.3 based on Hashed Message Authentication Code (HMAC). Using these cipher suites provides server and, optionally, mutual authentication and data authenticity, but not data confidentiality. Cipher suites with these properties are not of general applicability, but there are use cases, specifically in Internet of Things (IoT) and constrained environments, that do not require confidentiality of exchanged messages while still requiring integrity protection, server authentication, and optional client authentication. This document gives examples of such use cases, with the caveat that prior to using these integrity-only cipher suites, a threat model for the situation at hand is needed, and a threat analysis must be performed within that model to determine whether the use of integrity-only cipher suites is appropriate. The approach described in this document is not endorsed by the IETF and does not have IETF consensus, but it is presented here to enable interoperable implementation of a reduced-security mechanism that provides authentication and message integrity without supporting confidentiality.
本文档定义了基于哈希消息身份验证代码 (HMAC) 的 TLS 1.3 密码套件的使用。使用这些密码套件可提供服务器以及(可选)相互身份验证和数据真实性,但不能提供数据机密性。具有这些属性的密码套件并不普遍适用,但存在一些用例,特别是在物联网 (IoT) 和受限环境中,这些用例不需要交换消息的机密性,但仍需要完整性保护、服务器身份验证和可选的客户端身份验证。本文档给出了此类用例的示例,但需要注意的是,在使用这些仅完整性密码套件之前,需要针对当前情况的威胁模型,并且必须在该模型中执行威胁分析,以确定使用仅完整性密码套件是否合适。本文档中描述的方法未得到 IETF 的认可,也没有 IETF 达成共识,但此处介绍它是为了实现可互操作的降低安全性机制,该机制在不支持机密性的情况下提供身份验证和消息完整性。¶

Status of This Memo
本备忘录的状态

This document is not an Internet Standards Track specification; it is published for informational purposes.
本文档不是 Internet 标准跟踪规范;它仅供参考。¶

This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not candidates for any level of Internet Standard; see Section 2 of RFC 7841.
这是对 RFC 系列的贡献,独立于任何其他 RFC 流。RFC 编辑选择自行决定发布此文档,并且不声明其实现或部署的价值。RFC编辑批准发布的文档不是任何级别的Internet标准的候选者;请参阅 RFC 7841 的第 2 节。¶

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9150.
有关本文档的当前状态、任何勘误表以及如何提供反馈的信息,请访问 https://www.rfc-editor.org/info/rfc9150。¶

Table of Contents
目录

1. Introduction 1. 引言

There are several use cases in which communications privacy is not strictly needed, although authenticity of the communications transport is still very important. For example, within the industrial automation space, there could be TCP or UDP communications that command a robotic arm to move a certain distance at a certain speed. Without authenticity guarantees, an attacker could modify the packets to change the movement of the robotic arm, potentially causing physical damage. However, the motion control commands are not always considered to be sensitive information, and thus there is no requirement to provide confidentiality. Another Internet of Things (IoT) example with no strong requirement for confidentiality is the reporting of weather information; however, message authenticity is required to ensure integrity of the message.
在一些用例中,通信隐私并不是严格要求的,尽管通信传输的真实性仍然非常重要。例如,在工业自动化领域,可能存在TCP或UDP通信,这些通信命令机械臂以特定速度移动一定距离。如果没有真实性保证,攻击者可以修改数据包以改变机械臂的运动,从而可能造成物理损坏。但是,运动控制命令并不总是被视为敏感信息,因此不需要提供机密性。另一个对保密性没有严格要求的物联网 (IoT) 示例是天气信息报告;但是,需要消息的真实性来确保消息的完整性。¶

There is no requirement to encrypt messages in environments where the information is not confidential, such as when there is no intellectual property associated with the processes, or where the threat model does not indicate any outsider attacks (such as in a closed system). Note, however, that this situation will not apply equally to all use cases (for example, in one case a robotic arm might be used for a process that does not involve any intellectual property but in another case might be used in a different process that does contain intellectual property). Therefore, it is important that a user or system developer carefully examine both the sensitivity of the data and the system threat model to determine the need for encryption before deploying equipment and security protections.
在信息不保密的环境中,例如没有与进程关联的知识产权,或者威胁模型未指示任何外部攻击(例如在封闭系统中),不需要对消息进行加密。但请注意,这种情况并不同样适用于所有用例(例如,在一种情况下,机械臂可能用于不涉及任何知识产权的流程,但在另一种情况下,可能用于包含知识产权的其他流程)。因此,在部署设备和安全保护之前,用户或系统开发人员必须仔细检查数据的敏感性和系统威胁模型,以确定是否需要加密。¶

Besides having a strong need for authenticity and no need for confidentiality, many of these systems also have a strong requirement for low latency. Furthermore, several classes of IoT devices (industrial or otherwise) have limited processing capability. However, these IoT systems still gain great benefit from leveraging TLS 1.3 for secure communications. Given the reduced need for confidentiality, TLS 1.3 cipher suites [RFC8446] that maintain data integrity without confidentiality are described in this document. These cipher suites are not meant for general use, as they do not meet the confidentiality and privacy goals of TLS. They should only be used in cases where confidentiality and privacy are not a concern and there are constraints on using cipher suites that provide the full set of security properties. The approach described in this document is not endorsed by the IETF and does not have IETF consensus, but it is presented here to enable interoperable implementation of a reduced-security mechanism that provides authentication and message integrity with supporting confidentiality.
除了对真实性和不需要保密性的强烈需求外,其中许多系统还对低延迟有强烈的要求。此外,几类物联网设备(工业或其他设备)的处理能力有限。但是,这些物联网系统仍然从利用 TLS 1.3 进行安全通信中获益匪浅。鉴于对机密性的需求降低,本文档介绍了在不保密的情况下保持数据完整性的 TLS 1.3 密码套件 [ RFC8446]。这些密码套件不适用于一般用途,因为它们不符合 TLS 的机密性和隐私性目标。它们只应在以下情况下使用:机密性和隐私性不是问题,并且使用提供全套安全属性的密码套件存在限制。本文档中描述的方法未得到 IETF 的认可,也没有 IETF 达成共识,但此处介绍它是为了实现降低安全性的机制的可互操作实现,该机制提供身份验证和消息完整性以及支持的机密性。¶

2. Terminology 2. 术语

This document adopts the conventions for normative language to provide clarity of instructions to the implementer. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
本文档采用规范性语言的约定,为实施者提供清晰的说明。本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应该”、“不应”、“推荐”、“不推荐”、“可以”和“可选”应按照 BCP 14 [ RFC2119][ RFC8174] 中的描述进行解释,当且仅当它们出现在所有大写字母中时,如此处所示。¶

3. Applicability Statement
3. 适用性声明

The two cipher suites defined in this document, which are based on Hashed Message Authentication Code (HMAC) SHAs [RFC6234], are intended for a small limited set of applications where confidentiality requirements are relaxed and the need to minimize the number of cryptographic algorithms is prioritized. This section describes some of those applicable use cases.
本文档中定义的两个密码套件基于哈希消息身份验证代码 (HMAC) SHA [RFC6234],适用于机密性要求放宽且需要最小化加密算法数量的一小部分有限应用程序。本节介绍其中一些适用的用例。¶

Use cases in the industrial automation industry, while requiring data integrity, often do not require confidential communications. Mainly, data communicated to unmanned machines to execute repetitive tasks does not convey private information. For example, there could be a system with a robotic arm that paints the body of a car. This equipment is used within a car manufacturing plant and is just one piece of equipment in a multi-step manufacturing process. The movements of this robotic arm are likely not a trade secret or sensitive intellectual property, although some portions of the manufacturing of the car might very well contain sensitive intellectual property. Even the mixture for the paint itself might be confidential, but the mixing is done by a completely different piece of equipment and therefore communication to/from that equipment can be encrypted without requiring the communication to/from the robotic arm to be encrypted. Modern manufacturing often has segmented equipment with different levels of risk related to intellectual property, although nearly every communication interaction has strong data authenticity requirements.
工业自动化行业的用例虽然需要数据完整性,但通常不需要保密通信。主要是,与无人机器通信以执行重复性任务的数据不会传达私人信息。例如,可能有一个带有机械臂的系统,可以对汽车的车身进行涂漆。该设备用于汽车制造厂,只是多步骤制造过程中的一件设备。这种机械臂的运动可能不是商业秘密或敏感的知识产权,尽管汽车制造的某些部分很可能包含敏感的知识产权。即使是油漆本身的混合物也可能是保密的,但混合是由完全不同的设备完成的,因此可以加密与该设备之间的通信,而无需加密与机械臂之间的通信。现代制造业通常具有与知识产权相关的不同风险级别的分段设备,尽管几乎每一次通信交互都有很强的数据真实性要求。¶

Another use case that is closely related is that of fine-grained time updates. Motion systems often rely on time synchronization to ensure proper execution. Time updates are essentially public; there is no threat from an attacker knowing the time update information. This should make intuitive sense to those not familiar with these applications; rarely if ever does time information present a serious attack surface dealing with privacy. However, the authenticity is still quite important. The consequences of maliciously modified time data can vary from mere denial of service to actual physical damage, depending on the particular situation and attacker capability. As these time synchronization updates are very fine-grained, it is again important for latency to be very low.
另一个密切相关的用例是细粒度时间更新。运动系统通常依靠时间同步来确保正确执行。时间更新基本上是公开的;知道时间更新信息的攻击者不会构成威胁。对于那些不熟悉这些应用程序的人来说,这应该是直观的;时间信息很少(如果有的话)会成为处理隐私的严重攻击面。但是,真实性仍然非常重要。恶意修改时间数据的后果可能从单纯的拒绝服务到实际的物理损害不等,具体取决于特定情况和攻击者的能力。由于这些时间同步更新非常细粒度,因此延迟非常低也很重要。¶

A third use case deals with data related to alarms. Industrial control sensing equipment can be configured to send alarm information when it meets certain conditions -- for example, temperature goes above or below a given threshold. Oftentimes, this data is used to detect certain out-of-tolerance conditions, allowing an operator or automated system to take corrective action. Once again, in many systems the reading of this data doesn't grant the attacker information that can be exploited; it is generally just information regarding the physical state of the system. At the same time, being able to modify this data would allow an attacker to either trigger alarms falsely or cover up evidence of an attack that might allow for detection of their malicious activity. Furthermore, sensors are often low-powered devices that might struggle to process encrypted and authenticated data. These sensors might be very cost sensitive such that there is not enough processing power for data encryption. Sending data that is just authenticated but not encrypted eases the burden placed on these devices yet still allows the data to be protected against any tampering threats. A user can always choose to pay more for a sensor with encryption capability, but for some, data authenticity will be sufficient.
第三个用例处理与警报相关的数据。工业控制传感设备可以配置为在满足特定条件时发送报警信息,例如,温度高于或低于给定阈值。通常,这些数据用于检测某些超出公差的情况,使操作员或自动化系统能够采取纠正措施。同样,在许多系统中,读取此数据不会向攻击者提供可被利用的信息;它通常只是有关系统物理状态的信息。同时,如果能够修改这些数据,攻击者可以错误地触发警报,或者掩盖可能允许检测其恶意活动的攻击证据。此外,传感器通常是低功耗设备,可能难以处理加密和经过身份验证的数据。这些传感器可能对成本非常敏感,因此没有足够的处理能力进行数据加密。发送仅经过身份验证但未加密的数据可以减轻这些设备的负担,但仍可以保护数据免受任何篡改威胁。用户始终可以选择为具有加密功能的传感器支付更多费用,但对于某些人来说,数据真实性就足够了。¶

A fourth use case considers the protection of commands in the railway industry. In railway control systems, no confidentiality requirements are applied for the command exchange between an interlocking controller and a railway equipment controller (for instance, a railway point controller of a tram track where the position of the controlled point is publicly available). However, protecting the integrity and authenticity of those commands is vital; otherwise, an adversary could change the target position of the point by modifying the commands, which consequently could lead to the derailment of a passing train. Furthermore, requirements for providing flight-data recording of the safety-related network traffic can only be fulfilled through using authenticity-only ciphers as, typically, the recording is used by a third party responsible for the analysis after an accident. The analysis requires such third party to extract the safety-related commands from the recording.
第四个用例考虑了铁路行业中的命令保护。在铁路控制系统中,联锁控制器和铁路设备控制器(例如,电车轨道的铁路点控制器,其中控制点的位置是公开的)之间的命令交换不适用保密要求。但是,保护这些命令的完整性和真实性至关重要;否则,对手可以通过修改命令来改变该点的目标位置,从而导致经过的火车脱轨。此外,提供与安全相关的网络流量的飞行数据记录的要求只能通过使用仅真实性的密码来满足,因为通常,记录由负责事故后分析的第三方使用。该分析要求此类第三方从录音中提取与安全相关的命令。¶

The fifth use case deals with data related to civil aviation airplanes and ground communication. Pilots can send and receive messages to/from ground control, such as airplane route-of-flight updates, weather information, controller and pilot communication, and airline back-office communication. Similarly, the Air Traffic Control (ATC) service uses air-to-ground communication to receive the surveillance data that relies on (is dependent on) downlink reports from an airplane's avionics. This communication occurs automatically in accordance with contracts established between the ATC ground system and the airplane's avionics. Reports can be sent whenever specific events occur or specific time intervals are reached. In many systems, the reading of this data doesn't grant the attacker information that can be exploited; it is generally just information regarding the states of the airplane, controller pilot communication, meteorological information, etc. At the same time, being able to modify this data would allow an attacker to either put aircraft in the wrong flight trajectory or provide false information to ground control that might delay flights, damage property, or harm life. Sending data that is not encrypted but is authenticated allows the data to be protected against any tampering threats. Data authenticity is sufficient for the air traffic, weather, and surveillance information exchanges between airplanes and the ground systems.
第五个用例涉及与民用航空、飞机和地面通信相关的数据。飞行员可以向地面控制发送和接收消息,例如飞机飞行路线更新、天气信息、管制员和飞行员通信以及航空公司后台通信。同样,空中交通管制 (ATC) 服务使用空对地通信来接收依赖于(依赖于)来自飞机航空电子设备的下行链路报告的监视数据。这种通信是根据ATC地面系统与飞机航空电子设备之间建立的合同自动进行的。每当发生特定事件或达到特定时间间隔时,都可以发送报告。在许多系统中,读取此数据不会向攻击者授予可利用的信息;它通常只是有关飞机状态、管制员飞行员通信、气象信息等的信息。同时,能够修改这些数据将允许攻击者将飞机置于错误的飞行轨迹或向地面控制提供虚假信息,从而可能延误航班、损坏财产或伤害生命。发送未加密但经过身份验证的数据可以保护数据免受任何篡改威胁。数据真实性足以满足飞机和地面系统之间的空中交通、天气和监视信息交换。¶

The above use cases describe the requirements where confidentiality is not needed and/or interferes with other requirements. Some of these use cases are based on devices that come with a small runtime memory footprint and reduced processing power; therefore, the need to minimize the number of cryptographic algorithms used is a priority. Despite this, it is noted that memory, performance, and processing power implications of any given algorithm or set of algorithms are highly dependent on hardware and software architecture. Therefore, although these cipher suites may provide performance benefits, they will not necessarily provide these benefits in all cases on all platforms. Furthermore, in some use cases, third-party inspection of data is specifically needed, which is also supported through the lack of confidentiality mechanisms.
上述用例描述了不需要保密和/或干扰其他要求的要求。其中一些用例基于运行时内存占用小且处理能力降低的设备;因此,当务之急是尽量减少使用的加密算法的数量。尽管如此,需要注意的是,任何给定算法或一组算法的内存、性能和处理能力影响都高度依赖于硬件和软件架构。因此,尽管这些密码套件可能会提供性能优势,但它们不一定在所有平台上的所有情况下都提供这些优势。此外,在某些用例中,特别需要第三方检查数据,这也通过缺乏保密机制得到支持。¶

4. Cryptographic Negotiation Using Integrity-Only Cipher Suites
4. 使用仅完整性密码套件进行加密协商

The cryptographic negotiation as specified in [RFC8446], Section 4.1.1 remains the same, with the inclusion of the following cipher suites:
[ RFC8446] 第 4.1.1 节中指定的加密协商保持不变,但包含以下密码套件: ¶

As defined in [RFC8446], TLS 1.3 cipher suites denote the Authenticated Encryption with Associated Data (AEAD) algorithm for record protection and the hash algorithm to use with the HMAC-based Key Derivation Function (HKDF). The cipher suites provided by this document are defined in a similar way, but they use the HMAC authentication tag to model the AEAD interface, as only an HMAC is provided for record protection (without encryption). These cipher suites allow the use of SHA-256 or SHA-384 as the HMAC for data integrity protection as well as its use for the HKDF. The authentication mechanisms remain unchanged with the intent to only update the cipher suites to relax the need for confidentiality.
如 [ RFC8446] 中所定义,TLS 1.3 密码套件表示用于记录保护的带关联数据的身份验证加密 (AEAD) 算法,以及用于基于 HMAC 的密钥派生函数 (HKDF) 的哈希算法。本文档提供的密码套件以类似的方式定义,但它们使用 HMAC 身份验证标记对 AEAD 接口进行建模,因为仅提供 HMAC 用于记录保护(不加密)。这些密码套件允许使用 SHA-256 或 SHA-384 作为 HMAC 来保护数据完整性,并将其用于 HKDF。身份验证机制保持不变,目的是仅更新密码套件以放宽对机密性的需求。¶

Given that these cipher suites do not support confidentiality, they MUST NOT be used with authentication and key exchange methods that rely on confidentiality.
鉴于这些密码套件不支持机密性,因此不得将它们与依赖于机密性的身份验证和密钥交换方法一起使用。¶

5. Record Payload Protection for Integrity-Only Cipher Suites
5. 记录仅完整性密码套件的有效负载保护

Record payload protection as defined in [RFC8446] is retained in modified form when integrity-only cipher suites are used. Note that due to the purposeful use of hash algorithms, instead of AEAD algorithms, confidentiality protection of the record payload is not provided. This section describes the mapping of record payload structures when integrity-only cipher suites are employed.
当使用仅完整性密码套件时,[ RFC8446] 中定义的记录有效负载保护将以修改后的形式保留。请注意,由于有目的地使用哈希算法而不是 AEAD 算法,因此不提供记录有效负载的机密性保护。本节介绍使用仅完整性密码套件时记录有效负载结构的映射。¶

Given that there is no encryption to be done at the record layer, the operations "Protect" and "Unprotect" take the place of "AEAD-Encrypt" and "AEAD-Decrypt" [RFC8446], respectively.
鉴于在记录层没有加密,操作“保护”和“取消保护”分别取代了“AEAD-Encrypt”和“AEAD-Decrypt”[RFC8446]。¶

As integrity protection is provided over the full record, the encrypted_record in the TLSCiphertext along with the additional_data input to protected_data (termed AEADEncrypted data in [RFC8446]) as defined in Section 5.2 of [RFC8446] remain the same. The TLSCiphertext.length for the integrity cipher suites will be:
由于在整个记录上提供了完整性保护,因此 TLSCiphertext 中的encrypted_record以及 [ RFC8446] 第 5.2 节中定义的 protected_data additional_data输入(在 [ RFC8446] 中称为 AEADEncrypted 数据)保持不变。完整性密码套件的 TLSCiphertext.length 将为: ¶

TLS_SHA256_SHA256:
   TLSCiphertext.length = TLSInnerPlaintext_length + 32
TLS_SHA256_SHA256:TLSCiphertext.length = TLSInnerPlaintext_length + 32

TLS_SHA384_SHA384: TLSCiphertext.length = TLSInnerPlaintext_length + 48
TLS_SHA384_SHA384:TLSCiphertext.length = TLSInnerPlaintext_length + 48

Note that TLSInnerPlaintext_length is not defined as an explicit field in [RFC8446]; this refers to the length of the encoded TLSInnerPlaintext structure.
请注意,TLSInnerPlaintext_length 未在 [ RFC8446] 中定义为显式字段;这是指编码的 TLSInnerPlaintext 结构的长度。¶

The resulting protected_record is the concatenation of the TLSInnerPlaintext with the resulting HMAC. Note that this is analogous to the "encrypted_record" as defined in [RFC8446], although it is referred to as a "protected_record" because of the lack of confidentiality via encryption. With this mapping, the record validation order as defined in Section 5.2 of [RFC8446] remains the same. That is, the encrypted_record field of TLSCiphertext is set to:
生成的protected_record是 TLSInnerPlaintext 与生成的 HMAC 的串联。请注意,这类似于 [ RFC8446] 中定义的“encrypted_record”,尽管它被称为“protected_record”,因为缺乏加密的机密性。使用此映射,[ RFC8446] 第 5.2 节中定义的记录验证顺序保持不变。也就是说,TLSCiphertext 的 encrypted_record 字段设置为: ¶

   encrypted_record = TLS13-HMAC-Protected = TLSInnerPlaintext ||
   HMAC(write_key, nonce || additional_data || TLSInnerPlaintext)

encrypted_record=TLS13-HMAC-Protected=TLSInnerPlaintext|| HMAC(write_key, 随机数 || additional_data ||TLSInnerPlaintext)

Here, "nonce" refers to the per-record nonce described in Section 5.3 of [RFC8446].
在这里,“nonce”是指 [ RFC8446] 的第 5.3 节中描述的每条记录的随机数。¶

For DTLS 1.3, the DTLSCiphertext is set to:
对于 DTLS 1.3,DTLSCiphertext 设置为: ¶

   encrypted_record = DTLS13-HMAC-Protected = DTLSInnerPlaintext ||
   HMAC(write_key, nonce || additional_data || DTLSInnerPlaintext)

encrypted_record=DTLS13-HMAC-Protected=DTLSInnerPlaintext|| HMAC(write_key, 随机数 || additional_data ||DTLSInnerPlaintext)

The DTLS "nonce" refers to the per-record nonce described in Section 4.2.2 of [DTLS13].
DTLS“随机数”是指 [ DTLS13] 第 4.2.2 节中描述的每条记录随机数。¶

The Protect and Unprotect operations provide the integrity protection using HMAC SHA-256 or HMAC SHA-384 as described in [RFC6234].
“保护”和“取消保护”操作使用 HMAC SHA-256 或 HMAC SHA-384 提供完整性保护,如 [ RFC6234] 中所述。¶

Due to the lack of encryption of the plaintext, record padding does not provide any obfuscation as to the plaintext size, although it can be optionally included.
由于缺乏对明文的加密,记录填充不会对明文大小进行任何混淆,尽管它可以选择包含。¶

6. Key Schedule when Using Integrity-Only Cipher Suites
6. 使用仅完整性密码套件时的密钥调度

The key derivation process for integrity-only cipher suites remains the same as that defined in [RFC8446]. The only difference is that the keys used to protect the tunnel apply to the negotiated HMAC SHA-256 or HMAC SHA-384 ciphers. Note that the traffic key material (client_write_key, client_write_iv, server_write_key, and server_write_iv) MUST be calculated as per [RFC8446], Section 7.3. The key lengths and Initialization Vectors (IVs) for these cipher suites are according to the hash output lengths. In other words, the following key lengths and IV lengths SHALL be:
仅完整性密码套件的密钥派生过程与 [ RFC8446] 中定义的过程相同。唯一的区别是,用于保护隧道的密钥适用于协商的 HMAC SHA-256 或 HMAC SHA-384 密码。请注意,流量密钥材料(client_write_key、client_write_iv、server_write_key 和 server_write_iv)必须按照 [ RFC8446] 第 7.3 节进行计算。这些密码套件的密钥长度和初始化向量 (IV) 取决于哈希输出长度。换言之,以下密钥长度和 IV 长度应为: ¶

Table 1 表1
Cipher Suite 密码套件 Key Length 密钥长度 IV Length IV 长度
TLS_SHA256_SHA256 32 Bytes 32 字节 32 Bytes 32 字节
TLS_SHA384_SHA384 48 Bytes 48 字节 48 Bytes 48 字节

7. Error Alerts
7. 错误警报

The error alerts as defined by [RFC8446] remain the same; in particular:
[ RFC8446] 定义的错误警报保持不变;特别是: ¶

bad_record_mac: bad_record_mac:
This alert can also occur for a record whose message authentication code cannot be validated. Since these cipher suites do not involve record encryption, this alert will only occur when the HMAC fails to verify.
对于无法验证消息身份验证代码的记录,也可能发生此警报。由于这些密码套件不涉及记录加密,因此仅当 HMAC 无法验证时才会发生此警报。¶
decrypt_error: decrypt_error:
This alert, as described in [RFC8446], Section 6.2, occurs when the signature or message authentication code cannot be validated. Note that this error is only sent during the handshake, not for an error in validating record HMACs.
如 [ RFC8446], 第 6.2 节所述,当无法验证签名或消息身份验证代码时,会发生此警报。请注意,此错误仅在握手期间发送,而不是在验证记录 HMAC 时出错。¶

8. IANA Considerations
8. IANA 注意事项

IANA has registered the following cipher suites, defined by this document, in the "TLS Cipher Suites" registry:
IANA 已在“TLS 密码套件”注册表中注册了本文档定义的以下密码套件: ¶

Table 2 表2
Value 价值 Description 描述 DTLS-OK Recommended 推荐
0xC0,0xB4 TLS_SHA256_SHA256 Y N
0xC0,0xB5 TLS_SHA384_SHA384 Y N

9. Security and Privacy Considerations
9. 安全和隐私注意事项

In general, except for confidentiality and privacy, the security considerations detailed in [RFC8446] and [RFC5246] apply to this document. Furthermore, as the cipher suites described in this document do not provide any confidentiality, it is important that they only be used in cases where there are no confidentiality or privacy requirements and concerns; the runtime memory requirements can accommodate support for authenticity-only cryptographic constructs.
一般而言,除保密和隐私外,[ RFC8446] 和 [ RFC5246] 中详述的安全注意事项适用于本文档。此外,由于本文档中描述的密码套件不提供任何机密性,因此重要的是仅在没有机密性或隐私要求和关注的情况下使用它们;运行时内存要求可以支持仅真实性加密构造。¶

With the lack of data encryption specified in this specification, no confidentiality or privacy is provided for the data transported via the TLS session. That is, the record layer is not encrypted when using these cipher suites, nor is the handshake. To highlight the loss of privacy, the information carried in the TLS handshake, which includes both the server and client certificates, while integrity protected, will be sent unencrypted. Similarly, other TLS extensions that may be carried in the server's EncryptedExtensions message will only be integrity protected without provisions for confidentiality. Furthermore, with this lack of confidentiality, any private Pre-Shared Key (PSK) data MUST NOT be sent in the handshake while using these cipher suites. However, as PSKs may be loaded externally, these cipher suites can be used with the 0-RTT handshake defined in [RFC8446], with the same security implications discussed therein applied.
由于本规范中缺少指定的数据加密,因此不会为通过 TLS 会话传输的数据提供机密性或隐私性。也就是说,使用这些密码套件时,记录层不会加密,握手也不会加密。为了突出隐私的损失,TLS握手中携带的信息(包括服务器和客户端证书)虽然受到完整性保护,但将以未加密的方式发送。同样,服务器的 EncryptedExtensions 消息中可能携带的其他 TLS 扩展将仅受完整性保护,而没有机密性规定。此外,由于缺乏机密性,在使用这些密码套件时,不得在握手时发送任何私有预共享密钥 (PSK) 数据。但是,由于 PSK 可以在外部加载,因此这些密码套件可以与 [ RFC8446] 中定义的 0-RTT 握手一起使用,并应用了其中讨论的相同安全含义。¶

Application protocols that build on TLS or DTLS for protection (e.g., HTTP) may have implicit assumptions of data confidentiality. Any assumption of data confidentiality is invalidated by the use of these cipher suites, as no data confidentiality is provided. This applies to any data sent over the application-data channel (e.g., bearer tokens in HTTP), as data requiring confidentiality MUST NOT be sent using these cipher suites.
基于 TLS 或 DTLS 进行保护的应用程序协议(例如 HTTP)可能具有隐含的数据机密性假设。由于没有提供数据机密性,因此使用这些密码套件使任何数据机密性假设无效。这适用于通过应用程序数据通道发送的任何数据(例如,HTTP 中的持有者令牌),因为不得使用这些密码套件发送需要保密的数据。¶

Limits on key usage for AEAD-based ciphers are described in [RFC8446]. However, as the cipher suites discussed here are not AEAD, those same limits do not apply. The general security properties of HMACs discussed in [RFC2104] and [BCK1] apply. Additionally, security considerations on the algorithm's strength based on the HMAC key length and truncation length further described in [RFC4868] also apply. Until further cryptanalysis demonstrates limitations on key usage for HMACs, general practice for key usage recommends that implementations place limits on the lifetime of the HMAC keys and invoke a key update as described in [RFC8446] prior to reaching this limit.
[ RFC8446] 中描述了基于 AEAD 的密码的密钥使用限制。但是,由于此处讨论的密码套件不是 AEAD,因此这些相同的限制不适用。[ RFC2104] 和 [ BCK1] 中讨论的 HMAC 的一般安全属性适用。此外,基于 HMAC 密钥长度和 [ RFC4868] 中进一步描述的截断长度的算法强度的安全考虑也适用。在进一步的加密分析证明 HMAC 的密钥使用存在限制之前,密钥使用的一般做法建议实现对 HMAC 密钥的生存期进行限制,并在达到此限制之前调用 [ RFC8446] 中所述的密钥更新。¶

DTLS 1.3 defines a mechanism for encrypting the DTLS record sequence numbers. However, as these cipher suites do not utilize encryption, the record sequence numbers are sent unencrypted. That is, the procedure for DTLS record sequence number protection is to apply no protection for these cipher suites.
DTLS 1.3 定义了一种用于加密 DTLS 记录序列号的机制。但是,由于这些密码套件不使用加密,因此记录序列号是以未加密的方式发送的。也就是说,DTLS 记录序列号保护的过程是不对这些密码套件应用任何保护。¶

Given the lack of confidentiality, these cipher suites MUST NOT be enabled by default. As these cipher suites are meant to serve the IoT market, it is important that any IoT endpoint that uses them be explicitly configured with a policy of non-confidential communications.
由于缺乏机密性,默认情况下不得启用这些密码套件。由于这些密码套件旨在服务于 IoT 市场,因此使用它们的任何 IoT 端点都必须显式配置非机密通信策略。¶

10. References 10. 参考资料

10.1. Normative References
10.1. 规范性参考

[BCK1]
Bellare, M., Canetti, R., and H. Krawczyk, "Keying Hash Functions for Message Authentication", DOI 10.1007/3-540-68697-5_1, , <https://link.springer.com/chapter/10.1007/3-540-68697-5_1>.
Bellare, M.、Canetti, R. 和 H. Krawczyk,“用于消息身份验证的键控哈希函数”,DOI 10.1007/3-540-68697-5_1,1996 年,< https://link.springer.com/chapter/10.1007/3-540-68697-5_1>。
[DTLS13] [DTLS13号]
Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security (DTLS) Protocol Version 1.3", RFC 9147, DOI 10.17487/RFC9147, , <https://www.rfc-editor.org/info/rfc9147>.
Rescorla, E.、Tschofenig, H. 和 N. Modadugu,“数据报传输层安全 (DTLS) 协议版本 1.3”,RFC 9147,DOI 10.17487/RFC9147,2022 年 4 月,< https://www.rfc-editor.org/info/rfc9147>。
[RFC2104]
Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, DOI 10.17487/RFC2104, , <https://www.rfc-editor.org/info/rfc2104>.
Krawczyk, H.、Bellare, M. 和 R. Canetti,“HMAC:用于消息身份验证的密钥哈希”,RFC 2104,DOI 10.17487/RFC2104,1997 年 2 月,< https://www.rfc-editor.org/info/rfc2104>。
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
Bradner, S.,“在 RFC 中使用用于指示需求级别的关键词”,BCP 14,RFC 2119,DOI 10.17487/RFC2119,1997 年 3 月,< https://www.rfc-editor.org/info/rfc2119>。
[RFC4868]
Kelly, S. and S. Frankel, "Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec", RFC 4868, DOI 10.17487/RFC4868, , <https://www.rfc-editor.org/info/rfc4868>.
Kelly, S. 和 S. Frankel,“将 HMAC-SHA-256、HMAC-SHA-384 和 HMAC-SHA-512 与 IPsec 配合使用”,RFC 4868,DOI 10.17487/RFC4868,2007 年 5 月,第 < https://www.rfc-editor.org/info/rfc4868> 页。
[RFC6234]
Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)", RFC 6234, DOI 10.17487/RFC6234, , <https://www.rfc-editor.org/info/rfc6234>.
Eastlake 3rd, D. 和 T. Hansen,“美国安全哈希算法(基于 SHA 和 SHA 的 HMAC 和 HKDF)”,RFC 6234,DOI 10.17487/RFC6234,2011 年 5 月,< https://www.rfc-editor.org/info/rfc6234>。
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
Leiba, B.,“RFC 2119 关键字中大写与小写的歧义”,BCP 14,RFC 8174,DOI 10.17487/RFC8174,2017 年 5 月,第 < https://www.rfc-editor.org/info/rfc8174> 页。
[RFC8446]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, , <https://www.rfc-editor.org/info/rfc8446>.
Rescorla, E.,“传输层安全 (TLS) 协议版本 1.3”,RFC 8446,DOI 10.17487/RFC8446,2018 年 8 月,< https://www.rfc-editor.org/info/rfc8446>。

10.2. Informative References
10.2. 信息参考

[RFC5246]
Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/RFC5246, , <https://www.rfc-editor.org/info/rfc5246>.
Dierks, T. 和 E. Rescorla,“传输层安全 (TLS) 协议 1.2 版”,RFC 5246,DOI 10.17487/RFC5246,2008 年 8 月,第 < https://www.rfc-editor.org/info/rfc5246> 页。

Acknowledgements 确认

The authors would like to acknowledge the work done by Industrial Communications Standards Groups (such as ODVA) as the motivation for this document. We would also like to thank Steffen Fries for providing a fourth use case and Madhu Niraula for a fifth use case. In addition, we are grateful for the advice and feedback from Joe Salowey, Blake Anderson, David McGrew, Clement Zeller, and Peter Wu.
作者要感谢工业通信标准组织(如ODVA)所做的工作,这是本文档的动机。我们还要感谢 Steffen Fries 提供了第四个用例,并感谢 Madhu Niraula 提供了第五个用例。此外,我们感谢 Joe Salowey、Blake Anderson、David McGrew、Clement Zeller 和 Peter Wu 的建议和反馈。¶

Authors' Addresses 作者地址

Nancy Cam-Winget 南希·卡姆-温吉特
Cisco Systems 思科系统
3550 Cisco Way 3550思科方式
San Jose, CA 95134
加利福尼亚州圣何塞 95134
United States of America 美国
Jack Visoky 杰克·维索基
ODVA ODVA的
1 Allen Bradley Dr 1艾伦·布拉德利博士
Mayfield Heights, OH 44124
俄亥俄州梅菲尔德高地 44124
United States of America 美国