| rfc9150.original | rfc9150.txt | |||
|---|---|---|---|---|
| TLS N. Cam-Winget | Independent Submission N. Cam-Winget | |||
| Internet-Draft Cisco Systems | Request for Comments: 9150 Cisco Systems | |||
| Intended status: Informational J. Visoky | Category: Informational J. Visoky | |||
| Expires: December 19, 2021 ODVA | ISSN: 2070-1721 ODVA | |||
| June 17, 2021 | January 2022 | |||
| TLS 1.3 Authentication and Integrity only Cipher Suites | TLS 1.3 Authentication and Integrity-Only Cipher Suites | |||
| draft-camwinget-tls-ts13-macciphersuites-12 | ||||
| Abstract | Abstract | |||
| This document defines the use of HMAC-only cipher suites for TLS 1.3, | This document defines the use of cipher suites for TLS 1.3 based on | |||
| which provides server and optionally mutual authentication and data | 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 | authenticity, but not data confidentiality. Cipher suites with these | |||
| properties are not of general applicability, but there are use cases, | properties are not of general applicability, but there are use cases, | |||
| specifically in Internet of Things (IoT) and constrained | specifically in Internet of Things (IoT) and constrained | |||
| environments, that do not require confidentiality of exchanged | environments, that do not require confidentiality of exchanged | |||
| messages while still requiring integrity protection, server | messages while still requiring integrity protection, server | |||
| authentication, and optional client authentication. This document | authentication, and optional client authentication. This document | |||
| gives examples of such use cases, with the caveat that prior to using | gives examples of such use cases, with the caveat that prior to using | |||
| these integrity-only cipher suites, a threat model for the situation | these integrity-only cipher suites, a threat model for the situation | |||
| at hand is needed, and a threat analysis must be performed within | at hand is needed, and a threat analysis must be performed within | |||
| that model to determine whether the use of integrity-only cipher | that model to determine whether the use of integrity-only cipher | |||
| suites is appropriate. The approach described in this document is | suites is appropriate. The approach described in this document is | |||
| not endorsed by the IETF and does not have IETF consensus, but is | not endorsed by the IETF and does not have IETF consensus, but it is | |||
| presented here to enable interoperable implementation of a reduced | presented here to enable interoperable implementation of a reduced- | |||
| security mechanism that provides authentication and message integrity | security mechanism that provides authentication and message integrity | |||
| without supporting confidentiality. | without supporting confidentiality. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
| provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This is a contribution to the RFC Series, independently of any other | |||
| and may be updated, replaced, or obsoleted by other documents at any | RFC stream. The RFC Editor has chosen to publish this document at | |||
| time. It is inappropriate to use Internet-Drafts as reference | its discretion and makes no statement about its value for | |||
| material or to cite them other than as "work in progress." | 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. | ||||
| This Internet-Draft will expire on December 19, 2021. | 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. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. | |||
| 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. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
| 3. Applicability Statement . . . . . . . . . . . . . . . . . . . 3 | 3. Applicability Statement | |||
| 4. Cryptographic Negotiation Using Integrity only Cipher Suites 6 | 4. Cryptographic Negotiation Using Integrity-Only Cipher Suites | |||
| 5. Record Payload Protection for Integrity only Cipher Suites . 6 | 5. Record Payload Protection for Integrity-Only Cipher Suites | |||
| 6. Key Schedule when using Integrity only Cipher Suites . . . . 8 | 6. Key Schedule when Using Integrity-Only Cipher Suites | |||
| 7. Error Alerts . . . . . . . . . . . . . . . . . . . . . . . . 8 | 7. Error Alerts | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 8. IANA Considerations | |||
| 9. Security and Privacy Considerations . . . . . . . . . . . . . 9 | 9. Security and Privacy Considerations | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 10. References | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 10.1. Normative References | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 10.2. Informative References | |||
| 11.2. Informative Reference . . . . . . . . . . . . . . . . . 11 | Acknowledgements | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| There are several use cases in which communications privacy is not | There are several use cases in which communications privacy is not | |||
| strictly needed, although authenticity of the communications | strictly needed, although authenticity of the communications | |||
| transport is still very important. For example, within the | transport is still very important. For example, within the | |||
| Industrial Automation space there could be TCP or UDP communications | industrial automation space, there could be TCP or UDP communications | |||
| which command a robotic arm to move a certain distance at a certain | that command a robotic arm to move a certain distance at a certain | |||
| speed. Without authenticity guarantees, an attacker could modify the | speed. Without authenticity guarantees, an attacker could modify the | |||
| packets to change the movement of the robotic arm, potentially | packets to change the movement of the robotic arm, potentially | |||
| causing physical damage. However, the motion control commands are | causing physical damage. However, the motion control commands are | |||
| not always considered to be sensitive information and thus there is | not always considered to be sensitive information, and thus there is | |||
| no requirement to provide confidentiality. Another Internet of | no requirement to provide confidentiality. Another Internet of | |||
| Things (IoT) example with no strong requirement for confidentiality | Things (IoT) example with no strong requirement for confidentiality | |||
| is the reporting of weather information; however, message | is the reporting of weather information; however, message | |||
| authenticity is required to ensure integrity of the message. | authenticity is required to ensure integrity of the message. | |||
| There is no requirement to encrypt messages in environments where the | There is no requirement to encrypt messages in environments where the | |||
| information is not confidential; such as when there is no | information is not confidential, such as when there is no | |||
| intellectual property associated with the processes, or where the | intellectual property associated with the processes, or where the | |||
| threat model does not indicate any outsider attacks (such as in a | threat model does not indicate any outsider attacks (such as in a | |||
| closed system). Note however, this situation will not apply equally | closed system). Note, however, that this situation will not apply | |||
| to all use cases (for example, a robotic arm might be used in one | equally to all use cases (for example, in one case a robotic arm | |||
| case for a process that does not involve any intellectual property, | might be used for a process that does not involve any intellectual | |||
| but in another case used in a different process that does contain | property but in another case might be used in a different process | |||
| intellectual property). Therefore, it is important that a user or | that does contain intellectual property). Therefore, it is important | |||
| system developer carefully examine both the sensitivity of the data | that a user or system developer carefully examine both the | |||
| and the system threat model to determine the need for encryption | sensitivity of the data and the system threat model to determine the | |||
| before deploying equipment and security protections. | need for encryption before deploying equipment and security | |||
| protections. | ||||
| Besides having a strong need for authenticity and no need for | Besides having a strong need for authenticity and no need for | |||
| confidentiality, many of these systems also have a strong requirement | confidentiality, many of these systems also have a strong requirement | |||
| for low latency. Furthermore, several classes of IoT device | for low latency. Furthermore, several classes of IoT devices | |||
| (industrial or otherwise) have limited processing capability. | (industrial or otherwise) have limited processing capability. | |||
| However, these IoT systems still gain great benefit from leveraging | However, these IoT systems still gain great benefit from leveraging | |||
| TLS 1.3 for secure communications. Given the reduced need for | TLS 1.3 for secure communications. Given the reduced need for | |||
| confidentiality, TLS 1.3 [RFC8446] cipher suites that maintain data | confidentiality, TLS 1.3 cipher suites [RFC8446] that maintain data | |||
| integrity without confidentiality are described in this document. | integrity without confidentiality are described in this document. | |||
| These cipher suites are not meant for general use as they do not meet | These cipher suites are not meant for general use, as they do not | |||
| the confidentiality and privacy goals of TLS. They should only be | meet the confidentiality and privacy goals of TLS. They should only | |||
| used in cases where confidentiality and privacy is not a concern and | be used in cases where confidentiality and privacy are not a concern | |||
| there are constraints on using cipher suites that provide the full | and there are constraints on using cipher suites that provide the | |||
| set of security properties. The approach described in this document | full set of security properties. The approach described in this | |||
| is not endorsed by the IETF and does not have IETF consensus, but is | document is not endorsed by the IETF and does not have IETF | |||
| presented here to enable interoperable implementation of a reduced | consensus, but it is presented here to enable interoperable | |||
| security mechanism that provides authentication and message integrity | implementation of a reduced-security mechanism that provides | |||
| with supporting confidentiality. | authentication and message integrity with supporting confidentiality. | |||
| 2. Terminology | 2. Terminology | |||
| This document adopts the conventions for normative language to | This document adopts the conventions for normative language to | |||
| provide clarity of instructions to the implementer. The key words | provide clarity of instructions to the implementer. The key words | |||
| "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", | "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", | |||
| "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document | "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" | |||
| are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] | in this document are to be interpreted as described in BCP 14 | |||
| when, and only when, they appear in all capitals, as shown here. | [RFC2119] [RFC8174] when, and only when, they appear in all capitals, | |||
| as shown here. | ||||
| 3. Applicability Statement | 3. Applicability Statement | |||
| The two HMAC SHA [RFC6234] based cipher suites defined in this | The two cipher suites defined in this document, which are based on | |||
| document are intended for a small limited set of applications where | 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 | confidentiality requirements are relaxed and the need to minimize the | |||
| number of cryptographic algorithms is prioritized. This section | number of cryptographic algorithms is prioritized. This section | |||
| describes some of those applicable use cases. | describes some of those applicable use cases. | |||
| Use cases in the industrial automation industry, while requiring data | Use cases in the industrial automation industry, while requiring data | |||
| integrity, often do not require confidential communications. Mainly, | integrity, often do not require confidential communications. Mainly, | |||
| information communicated to unmanned machines to execute repetitive | data communicated to unmanned machines to execute repetitive tasks | |||
| tasks does not convey private information. For example, there could | does not convey private information. For example, there could be a | |||
| be a system with a robotic arm that paints the body of a car. This | 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 | equipment is used within a car manufacturing plant and is just one | |||
| piece of equipment in a multi-step manufacturing process. The | piece of equipment in a multi-step manufacturing process. The | |||
| movements of this robotic arm are likely not a trade secret or | movements of this robotic arm are likely not a trade secret or | |||
| sensitive intellectual property, although some portions of the | sensitive intellectual property, although some portions of the | |||
| manufacturing of the car might very well contain sensitive | manufacturing of the car might very well contain sensitive | |||
| intellectual property. Even the mixture for the paint itself might | intellectual property. Even the mixture for the paint itself might | |||
| be confidential, but the mixing is done by a completely different | be confidential, but the mixing is done by a completely different | |||
| piece of equipment and therefore communication to/from that equipment | piece of equipment and therefore communication to/from that equipment | |||
| can be encrypted without requiring the communication to/from the | can be encrypted without requiring the communication to/from the | |||
| robotic arm to be encrypted. Modern manufacturing often has | robotic arm to be encrypted. Modern manufacturing often has | |||
| segmented equipment with different levels of risk on intellectual | segmented equipment with different levels of risk related to | |||
| property, although nearly every communication interaction has strong | intellectual property, although nearly every communication | |||
| data authenticity requirements. | interaction has strong data authenticity requirements. | |||
| Another use case which is closely related is that of fine-grained | Another use case that is closely related is that of fine-grained time | |||
| time updates. Motion systems often rely on time synchronization to | updates. Motion systems often rely on time synchronization to ensure | |||
| ensure proper execution. Time updates are essentially public; there | proper execution. Time updates are essentially public; there is no | |||
| is no threat from an attacker knowing the time update information. | threat from an attacker knowing the time update information. This | |||
| This should make intuitive sense to those not familiar with these | should make intuitive sense to those not familiar with these | |||
| applications; rarely if ever does time information present a serious | applications; rarely if ever does time information present a serious | |||
| attack surface dealing with privacy. However, the authenticity is | attack surface dealing with privacy. However, the authenticity is | |||
| still quite important. The consequences of maliciously modified time | still quite important. The consequences of maliciously modified time | |||
| data can vary from mere denial of service to actual physical damage, | data can vary from mere denial of service to actual physical damage, | |||
| depending on the particular situation and attacker capability. As | depending on the particular situation and attacker capability. As | |||
| these time synchronization updates are very fine-grained, it is again | these time synchronization updates are very fine-grained, it is again | |||
| important for latency to be very low. | important for latency to be very low. | |||
| A third use case deals with data related to alarms. Industrial | A third use case deals with data related to alarms. Industrial | |||
| control sensing equipment can be configured to send alarm information | control sensing equipment can be configured to send alarm information | |||
| when it meets certain conditions, for example, temperature goes above | when it meets certain conditions -- for example, temperature goes | |||
| or below a given threshold. Often times this data is used to detect | above or below a given threshold. Oftentimes, this data is used to | |||
| certain out-of-tolerance conditions, allowing an operator or | detect certain out-of-tolerance conditions, allowing an operator or | |||
| automated system to take corrective action. Once again, in many | automated system to take corrective action. Once again, in many | |||
| systems the reading of this data doesn't grant the attacker | systems the reading of this data doesn't grant the attacker | |||
| information that can be exploited, it is generally just information | information that can be exploited; it is generally just information | |||
| regarding the physical state of the system. At the same time, being | regarding the physical state of the system. At the same time, being | |||
| able to modify this data would allow an attacker to either trigger | able to modify this data would allow an attacker to either trigger | |||
| alarms falsely or to cover up evidence of an attack that might allow | alarms falsely or cover up evidence of an attack that might allow for | |||
| for detection of their malicious activity. Furthermore, sensors are | detection of their malicious activity. Furthermore, sensors are | |||
| often low powered devices that might struggle to process encrypted | often low-powered devices that might struggle to process encrypted | |||
| and authenticated data. These sensors might be very cost sensitive | and authenticated data. These sensors might be very cost sensitive | |||
| such that there is not enough processing power for data encryption. | such that there is not enough processing power for data encryption. | |||
| Sending data that is just authenticated but not encrypted eases the | Sending data that is just authenticated but not encrypted eases the | |||
| burden placed on these devices, yet still allows the data to be | burden placed on these devices yet still allows the data to be | |||
| protected against any tampering threats. A user can always choose to | protected against any tampering threats. A user can always choose to | |||
| pay more for a sensor with encryption capability, but for some, data | pay more for a sensor with encryption capability, but for some, data | |||
| authenticity will be sufficient. | authenticity will be sufficient. | |||
| A fourth use case considers the protection of commands in the railway | A fourth use case considers the protection of commands in the railway | |||
| industry. In railway control systems, no confidentiality | industry. In railway control systems, no confidentiality | |||
| requirements are applied for the command exchange between an | requirements are applied for the command exchange between an | |||
| interlocking controller and a railway equipment controller (for | interlocking controller and a railway equipment controller (for | |||
| instance, a railway point controller of a tram track where the | instance, a railway point controller of a tram track where the | |||
| position of the controlled point is publicly available). However, | position of the controlled point is publicly available). However, | |||
| protecting integrity and authenticity of those commands is vital, | protecting the integrity and authenticity of those commands is vital; | |||
| otherwise, an adversary could change the target position of the point | otherwise, an adversary could change the target position of the point | |||
| by modifying the commands, which consequently could lead to the | by modifying the commands, which consequently could lead to the | |||
| derailment of a passing train. Furthermore, requirements for | derailment of a passing train. Furthermore, requirements for | |||
| providing blackbox recording of the safety related network traffic | providing flight-data recording of the safety-related network traffic | |||
| can only be fulfilled through using authenticity-only ciphers, to be | can only be fulfilled through using authenticity-only ciphers as, | |||
| able to provide the safety related commands to a third party, which | typically, the recording is used by a third party responsible for the | |||
| is responsible for the analysis after an accident. | 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 | The fifth use case deals with data related to civil aviation | |||
| airplanes and ground communication. Pilots can send and receive | airplanes and ground communication. Pilots can send and receive | |||
| messages to/from ground control such as airplane route-of-flight | messages to/from ground control, such as airplane route-of-flight | |||
| update, weather information, controller and pilot communication, and | updates, weather information, controller and pilot communication, and | |||
| airline back office communication. Similarly, the Aviation Traffic | airline back-office communication. Similarly, the Air Traffic | |||
| Control (ATC) use air to ground communication to receive the | Control (ATC) service uses air-to-ground communication to receive the | |||
| surveillance data that relies on (is dependent on) downlink reports | surveillance data that relies on (is dependent on) downlink reports | |||
| from an airplane's avionics. This communication occurs automatically | from an airplane's avionics. This communication occurs automatically | |||
| in accordance with contracts established between the ATC ground | in accordance with contracts established between the ATC ground | |||
| system and the airplane's avionics. Reports can be sent whenever | system and the airplane's avionics. Reports can be sent whenever | |||
| specific events occur, or specific time intervals are reached. In | specific events occur or specific time intervals are reached. In | |||
| many systems the reading of this data doesn't grant the attacker | many systems, the reading of this data doesn't grant the attacker | |||
| information that can be exploited, it is generally just information | information that can be exploited; it is generally just information | |||
| regarding the airplane states, controller pilot communication, | regarding the states of the airplane, controller pilot communication, | |||
| meteorological information etc. At the same time, being able to | meteorological information, etc. At the same time, being able to | |||
| modify this data would allow an attacker to either put aircraft in | modify this data would allow an attacker to either put aircraft in | |||
| the wrong flight trajectory or to provide false information to ground | the wrong flight trajectory or provide false information to ground | |||
| control that might delay flights and damage properties or harm life. | control that might delay flights, damage property, or harm life. | |||
| Sending data that is not encrypted but is authenticated, allows the | Sending data that is not encrypted but is authenticated allows the | |||
| data to be protected against any tampering threats. Data | data to be protected against any tampering threats. Data | |||
| authenticity is sufficient for the air traffic, weather and | authenticity is sufficient for the air traffic, weather, and | |||
| surveillance information exchange between airplanes and the ground | surveillance information exchanges between airplanes and the ground | |||
| systems. | systems. | |||
| The above use cases describe the requirements where confidentiality | The above use cases describe the requirements where confidentiality | |||
| is not needed and/or interferes with other requirements. Some of | is not needed and/or interferes with other requirements. Some of | |||
| these use cases are based on devices that come with a small runtime | these use cases are based on devices that come with a small runtime | |||
| memory footprint and reduced processing power therefore the need to | memory footprint and reduced processing power; therefore, the need to | |||
| minimize the number of cryptographic algorithms used is a priority. | minimize the number of cryptographic algorithms used is a priority. | |||
| Despite this, it is noted that memory, performance, and processing | Despite this, it is noted that memory, performance, and processing | |||
| power implications of any given algorithm or set of algorithms is | power implications of any given algorithm or set of algorithms are | |||
| highly dependent on hardware and software architecture. Therefore, | highly dependent on hardware and software architecture. Therefore, | |||
| although these cipher suites may provide performance benefits, they | although these cipher suites may provide performance benefits, they | |||
| will not necessarily provide these benefits in all cases on all | will not necessarily provide these benefits in all cases on all | |||
| platforms. Furthermore, in some use cases third party inspection of | platforms. Furthermore, in some use cases, third-party inspection of | |||
| data is specifically needed, which is also supported through the lack | data is specifically needed, which is also supported through the lack | |||
| of confidentiality mechanisms. | of confidentiality mechanisms. | |||
| 4. Cryptographic Negotiation Using Integrity only Cipher Suites | 4. Cryptographic Negotiation Using Integrity-Only Cipher Suites | |||
| The cryptographic negotiation as specified in [RFC8446] Section 4.1.1 | The cryptographic negotiation as specified in [RFC8446], | |||
| remains the same, with the inclusion of the following cipher suites: | Section 4.1.1 remains the same, with the inclusion of the following | |||
| cipher suites: | ||||
| TLS_SHA256_SHA256 {0xC0, 0xB4} | TLS_SHA256_SHA256 {0xC0,0xB4} | |||
| TLS_SHA384_SHA384 {0xC0, 0xB5} | TLS_SHA384_SHA384 {0xC0,0xB5} | |||
| As defined in [RFC8446], TLS 1.3 cipher suites denote the AEAD | As defined in [RFC8446], TLS 1.3 cipher suites denote the | |||
| algorithm for record protection and the hash algorithm to use with | Authenticated Encryption with Associated Data (AEAD) algorithm for | |||
| the HKDF. These cipher suites are defined in a similar way, but | record protection and the hash algorithm to use with the HMAC-based | |||
| using the HMAC authentication tag to model the AEAD interface, as | Key Derivation Function (HKDF). The cipher suites provided by this | |||
| only an HMAC is provided for record protection (without encryption). | document are defined in a similar way, but they use the HMAC | |||
| These cipher suites allow the use of SHA-256 or SHA-384 as the Hashed | authentication tag to model the AEAD interface, as only an HMAC is | |||
| Message Authentication Code (HMAC) for data integrity protection as | provided for record protection (without encryption). These cipher | |||
| well as its use for HMAC-based Key Derivation Function (HKDF). The | 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 | authentication mechanisms remain unchanged with the intent to only | |||
| update the cipher suites to relax the need for confidentiality. | update the cipher suites to relax the need for confidentiality. | |||
| Given that these cipher suites do not support confidentiality, they | Given that these cipher suites do not support confidentiality, they | |||
| MUST NOT be used with authentication and key exchange methods that | MUST NOT be used with authentication and key exchange methods that | |||
| rely on confidentiality. | rely on confidentiality. | |||
| 5. Record Payload Protection for Integrity only Cipher Suites | 5. Record Payload Protection for Integrity-Only Cipher Suites | |||
| The record payload protection as defined in [RFC8446] is retained in | Record payload protection as defined in [RFC8446] is retained in | |||
| modified form when integrity only cipher suites are used. Note that | modified form when integrity-only cipher suites are used. Note that | |||
| due to the purposeful use of hash algorithms, instead of AEAD | due to the purposeful use of hash algorithms, instead of AEAD | |||
| algorithms, the confidentiality protection of the record payload is | algorithms, confidentiality protection of the record payload is not | |||
| not provided. This section describes the mapping of record payload | provided. This section describes the mapping of record payload | |||
| structures when integrity only cipher suites are employed. | structures when integrity-only cipher suites are employed. | |||
| Given that there is no encryption to be done at the record layer, the | Given that there is no encryption to be done at the record layer, the | |||
| operations "Protect" and "Unprotect" take the place of "AEAD-Encrypt" | operations "Protect" and "Unprotect" take the place of "AEAD-Encrypt" | |||
| and "AEAD-Decrypt", respectively, as referenced in [RFC8446] | and "AEAD-Decrypt" [RFC8446], respectively. | |||
| As integrity protection is provided over the full record, the | As integrity protection is provided over the full record, the | |||
| encrypted_record in the TLSCiphertext along with the additional_data | encrypted_record in the TLSCiphertext along with the additional_data | |||
| input to protected_data (termed AEADEncrypted data in [RFC8446]) as | input to protected_data (termed AEADEncrypted data in [RFC8446]) as | |||
| defined in Section 5.2 of [RFC8446] remain the same. The | defined in Section 5.2 of [RFC8446] remain the same. The | |||
| TLSCiphertext.length for the integrity cipher suites will be: | TLSCiphertext.length for the integrity cipher suites will be: | |||
| TLS_SHA256_SHA256: TLSCiphertext.length = TLSPlaintext.length + 1 | TLS_SHA256_SHA256: | |||
| (type field) + length_of_padding + 32 (HMAC) = | TLSCiphertext.length = TLSInnerPlaintext_length + 32 | |||
| TLSInnerPlaintext_length + 32 (HMAC) | ||||
| TLS_SHA384_SHA384: TLSCiphertext.length = TLSPlaintext.length + 1 | TLS_SHA384_SHA384: | |||
| (type field) + length_of_padding + 48 (HMAC) = | TLSCiphertext.length = TLSInnerPlaintext_length + 48 | |||
| TLSInnerPlaintext_length + 48 (HMAC) | ||||
| Note that TLSInnerPlaintext_length is not defined as an explicit | Note that TLSInnerPlaintext_length is not defined as an explicit | |||
| field in [RFC8446]; this refers to the length of the encoded | field in [RFC8446]; this refers to the length of the encoded | |||
| TLSInnterPlaintext structure | TLSInnerPlaintext structure. | |||
| The resulting protected_record is the concatenation of the | The resulting protected_record is the concatenation of the | |||
| TLSInnerPlaintext with the resulting HMAC. Note this analogous to | TLSInnerPlaintext with the resulting HMAC. Note that this is | |||
| the "encrypted_record" of [RFC8446], although it is referred to as a | analogous to the "encrypted_record" as defined in [RFC8446], although | |||
| "protected_record" because of the lack of confidentiality via | it is referred to as a "protected_record" because of the lack of | |||
| encryption. With this mapping, the record validation order as | confidentiality via encryption. With this mapping, the record | |||
| defined in Section 5.2 of [RFC8446] remains the same. That is, | validation order as defined in Section 5.2 of [RFC8446] remains the | |||
| encrypted_record field of TLSCiphertext is set to: | same. That is, the encrypted_record field of TLSCiphertext is set | |||
| to: | ||||
| encrypted_record = TLS13-HMAC-Protected = TLSInnerPlaintext || | encrypted_record = TLS13-HMAC-Protected = TLSInnerPlaintext || | |||
| HMAC(write_key, nonce || additional_data || TLSInnerPlaintext) | HMAC(write_key, nonce || additional_data || TLSInnerPlaintext) | |||
| Here "nonce" refers to the per-record nonce described in section 5.3 | Here, "nonce" refers to the per-record nonce described in Section 5.3 | |||
| of [RFC8446]. | of [RFC8446]. | |||
| For DTLS 1.3, the DTLSCiphertext is set to: | For DTLS 1.3, the DTLSCiphertext is set to: | |||
| encrypted_record = DTLS13-HMAC-Protected = DTLSInnerPlaintext || | encrypted_record = DTLS13-HMAC-Protected = DTLSInnerPlaintext || | |||
| HMAC(write_key, nonce || additional_data || DTLSInnerPlaintext) | HMAC(write_key, nonce || additional_data || DTLSInnerPlaintext) | |||
| The DTLS "nonce" refers to the per-record nonce described in section | The DTLS "nonce" refers to the per-record nonce described in | |||
| 4.2.2 of [DTLS13]. | Section 4.2.2 of [DTLS13]. | |||
| The Protect and Unprotect operations provide the integrity protection | The Protect and Unprotect operations provide the integrity protection | |||
| using HMAC SHA-256 or HMAC SHA-384 as described in [RFC6234]. | using HMAC SHA-256 or HMAC SHA-384 as described in [RFC6234]. | |||
| Due to the lack of encryption of the plaintext, record padding does | Due to the lack of encryption of the plaintext, record padding does | |||
| not provide any obfuscation as to the plaintext size, although it can | not provide any obfuscation as to the plaintext size, although it can | |||
| be optionally included. | be optionally included. | |||
| 6. Key Schedule when using Integrity only Cipher Suites | 6. Key Schedule when Using Integrity-Only Cipher Suites | |||
| The key derivation process for Integrity only Cipher Suites remains | The key derivation process for integrity-only cipher suites remains | |||
| the same as defined in [RFC8446]. The only difference is that the | the same as that defined in [RFC8446]. The only difference is that | |||
| keys used to protect the tunnel apply to the negotiated HMAC SHA-256 | the keys used to protect the tunnel apply to the negotiated HMAC | |||
| or HMAC SHA-384 ciphers. Note that the traffic key material | SHA-256 or HMAC SHA-384 ciphers. Note that the traffic key material | |||
| (client_write_key, client_write_iv, server_write_key and | (client_write_key, client_write_iv, server_write_key, and | |||
| server_write_iv) MUST be calculated as per RFC 8446, section 7.3. | server_write_iv) MUST be calculated as per [RFC8446], Section 7.3. | |||
| The key lengths and IVs for these cipher suites are according to the | The key lengths and Initialization Vectors (IVs) for these cipher | |||
| hash output lengths. In other words, the following key lengths and | suites are according to the hash output lengths. In other words, the | |||
| IV lengths SHALL be: | following key lengths and IV lengths SHALL be: | |||
| +-------------------+------------+-----------+ | +===================+============+===========+ | |||
| | Cipher Suite | Key Length | IV Length | | | Cipher Suite | Key Length | IV Length | | |||
| +-------------------+------------+-----------+ | +===================+============+===========+ | |||
| | TLS_SHA256_SHA256 | 32 Bytes | 32 Bytes | | | TLS_SHA256_SHA256 | 32 Bytes | 32 Bytes | | |||
| +-------------------+------------+-----------+ | ||||
| | TLS_SHA384_SHA384 | 48 Bytes | 48 Bytes | | | TLS_SHA384_SHA384 | 48 Bytes | 48 Bytes | | |||
| +-------------------+------------+-----------+ | +-------------------+------------+-----------+ | |||
| Table 1 | ||||
| 7. Error Alerts | 7. Error Alerts | |||
| The error alerts as defined by [RFC8446] remains the same, in | The error alerts as defined by [RFC8446] remain the same; in | |||
| particular: | particular: | |||
| bad_record_mac: This alert can also occur for a record whose message | bad_record_mac: This alert can also occur for a record whose message | |||
| authentication code can not be validated. Since these cipher suites | authentication code cannot be validated. Since these cipher | |||
| do not involve record encryption this alert will only occur when the | suites do not involve record encryption, this alert will only | |||
| HMAC fails to verify. | occur when the HMAC fails to verify. | |||
| decrypt_error: This alert as described in [RFC8446] Section 6.2 | decrypt_error: This alert, as described in [RFC8446], Section 6.2, | |||
| occurs when the signature or message authentication code can not be | occurs when the signature or message authentication code cannot be | |||
| validated. Note that this error is only sent during the handshake, | validated. Note that this error is only sent during the | |||
| not for an error in validating record HMACs. | handshake, not for an error in validating record HMACs. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| IANA has granted registration the following specifically for this | IANA has registered the following cipher suites, defined by this | |||
| document within the TLS Cipher Suites Registry: | document, in the "TLS Cipher Suites" registry: | |||
| TLS_SHA256_SHA256 {0xC0, 0xB4} cipher suite and TLS_SHA384_SHA384 | ||||
| {0xC0, 0xB5} cipher suite. | ||||
| Note that both of these cipher suites are registered with the DTLS-OK | +===========+===================+=========+=============+ | |||
| column set to Y and the Recommended column set to N | | Value | Description | DTLS-OK | Recommended | | |||
| +===========+===================+=========+=============+ | ||||
| | 0xC0,0xB4 | TLS_SHA256_SHA256 | Y | N | | ||||
| +-----------+-------------------+---------+-------------+ | ||||
| | 0xC0,0xB5 | TLS_SHA384_SHA384 | Y | N | | ||||
| +-----------+-------------------+---------+-------------+ | ||||
| No further IANA action is requested by this document. | Table 2 | |||
| 9. Security and Privacy Considerations | 9. Security and Privacy Considerations | |||
| In general, except for confidentiality and privacy, the security | In general, except for confidentiality and privacy, the security | |||
| considerations detailed in [RFC8446] and in [RFC5246] apply to this | considerations detailed in [RFC8446] and [RFC5246] apply to this | |||
| document. Furthermore, as the cipher suites described in this | document. Furthermore, as the cipher suites described in this | |||
| document do not provide any confidentiality, it is important that | document do not provide any confidentiality, it is important that | |||
| they only be used in cases where there are no confidentiality or | they only be used in cases where there are no confidentiality or | |||
| privacy requirements and concerns; and the runtime memory | privacy requirements and concerns; the runtime memory requirements | |||
| requirements can accommodate support for authenticity-only | can accommodate support for authenticity-only cryptographic | |||
| cryptographic constructs. | constructs. | |||
| With the lack of data encryption specified in this specification, no | With the lack of data encryption specified in this specification, no | |||
| confidentiality or privacy is provided for the data transported via | confidentiality or privacy is provided for the data transported via | |||
| the TLS session. That is, the record layer is not encrypted when | the TLS session. That is, the record layer is not encrypted when | |||
| using these cipher suite, and the handshake also is not encrypted. | using these cipher suites, nor is the handshake. To highlight the | |||
| To highlight the loss of privacy, the information carried in the TLS | loss of privacy, the information carried in the TLS handshake, which | |||
| handshake, which includes both the Server and Client certificates, | includes both the server and client certificates, while integrity | |||
| while integrity protected, will be sent unencrypted. Similarly, | protected, will be sent unencrypted. Similarly, other TLS extensions | |||
| other TLS extensions that may be carried in the Server's | that may be carried in the server's EncryptedExtensions message will | |||
| EncryptedExtensions message will only be integrity protected without | only be integrity protected without provisions for confidentiality. | |||
| provisions for confidentiality. Furthermore, with this lack of | Furthermore, with this lack of confidentiality, any private Pre- | |||
| confidentiality, any private PSK data MUST NOT be sent in the | Shared Key (PSK) data MUST NOT be sent in the handshake while using | |||
| handshake while using these cipher suites. However, as PSKs may be | these cipher suites. However, as PSKs may be loaded externally, | |||
| loaded externally, these cipher suites can be used with the 0-RTT | these cipher suites can be used with the 0-RTT handshake defined in | |||
| handshake defined in [RFC8446], with the same security implications | [RFC8446], with the same security implications discussed therein | |||
| discussed there applied. | applied. | |||
| Application protocols which build on TLS or DTLS for protection (e.g. | Application protocols that build on TLS or DTLS for protection (e.g., | |||
| HTTP) may have implicit assumptions of data confidentiality. Any | HTTP) may have implicit assumptions of data confidentiality. Any | |||
| assumption of data confidentiality is invalidated by the use of these | assumption of data confidentiality is invalidated by the use of these | |||
| cipher suites, as no data confidentiality is provided. This applies | cipher suites, as no data confidentiality is provided. This applies | |||
| to any data sent over the application-data channel (e.g. bearer | to any data sent over the application-data channel (e.g., bearer | |||
| tokens in HTTP), as data requiring confidentiality MUST NOT be sent | tokens in HTTP), as data requiring confidentiality MUST NOT be sent | |||
| using these cipher suites. | using these cipher suites. | |||
| Limits on key usage for AEAD-based ciphers are described in | Limits on key usage for AEAD-based ciphers are described in | |||
| [RFC8446]. However, as the cipher suites discussed here are not | [RFC8446]. However, as the cipher suites discussed here are not | |||
| AEAD, those same limits do not apply. The general security | AEAD, those same limits do not apply. The general security | |||
| properties of HMACs discussed in [RFC2104] and [BCK1] apply. | properties of HMACs discussed in [RFC2104] and [BCK1] apply. | |||
| Additionally, security considerations on the algorithm's strength | Additionally, security considerations on the algorithm's strength | |||
| based on the HMAC key length and trunction length further described | based on the HMAC key length and truncation length further described | |||
| in [RFC4868] also apply. Until further cryptanalysis demonstrate | in [RFC4868] also apply. Until further cryptanalysis demonstrates | |||
| limitations on key usage for HMACs, general practice for key usage | limitations on key usage for HMACs, general practice for key usage | |||
| recommends that implementations place limits on the lifetime of the | recommends that implementations place limits on the lifetime of the | |||
| HMAC keys and invoke a key update as described in [RFC8446] prior to | HMAC keys and invoke a key update as described in [RFC8446] prior to | |||
| reaching this limit. | reaching this limit. | |||
| DTLS 1.3 defines a mechanism for encrypting the DTLS record sequence | DTLS 1.3 defines a mechanism for encrypting the DTLS record sequence | |||
| numbers. However, as these cipher suites do not utilize encryption, | numbers. However, as these cipher suites do not utilize encryption, | |||
| the record sequence numbers are sent unencrypted. That is, the | the record sequence numbers are sent unencrypted. That is, the | |||
| procedure for DTLS record sequence number protection is to apply no | procedure for DTLS record sequence number protection is to apply no | |||
| protection for these cipher suites. | protection for these cipher suites. | |||
| Given the lack of confidentiality, these cipher suites MUST NOT be | Given the lack of confidentiality, these cipher suites MUST NOT be | |||
| enabled by default. As these cipher suites are meant to serve the | 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 | IoT market, it is important that any IoT endpoint that uses them be | |||
| explicitly configured with a policy of non-confidential | explicitly configured with a policy of non-confidential | |||
| communications. | communications. | |||
| 10. Acknowledgements | 10. References | |||
| 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. | ||||
| 11. References | ||||
| 11.1. Normative References | 10.1. Normative References | |||
| [BCK1] Bellare, M., Canetti, R., and H. Krawczyk, "Keyed Hash | [BCK1] Bellare, M., Canetti, R., and H. Krawczyk, "Keying Hash | |||
| Functions and Message Authentication", | Functions for Message Authentication", | |||
| <https://cseweb.ucsd.edu/~mihir/papers/kmd5.pdf>. | DOI 10.1007/3-540-68697-5_1, 1996, | |||
| <https://link.springer.com/ | ||||
| chapter/10.1007/3-540-68697-5_1>. | ||||
| [DTLS13] IETF Internet Drafts editor, | [DTLS13] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | |||
| "https://tools.ietf.org/id/draft-ietf-tls-dtls13-38.txt". | Datagram Transport Layer Security (DTLS) Protocol Version | |||
| 1.3", RFC 9147, DOI 10.17487/RFC9147, January 2022, | ||||
| <https://www.rfc-editor.org/info/rfc9147>. | ||||
| [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | |||
| Hashing for Message Authentication", RFC 2104, | Hashing for Message Authentication", RFC 2104, | |||
| DOI 10.17487/RFC2104, February 1997, | DOI 10.17487/RFC2104, February 1997, | |||
| <https://www.rfc-editor.org/info/rfc2104>. | <https://www.rfc-editor.org/info/rfc2104>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 11, line 18 ¶ | skipping to change at line 489 ¶ | |||
| <https://www.rfc-editor.org/info/rfc6234>. | <https://www.rfc-editor.org/info/rfc6234>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
| Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
| <https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
| 11.2. Informative Reference | 10.2. Informative References | |||
| [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security | |||
| (TLS) Protocol Version 1.2", RFC 5246, | (TLS) Protocol Version 1.2", RFC 5246, | |||
| DOI 10.17487/RFC5246, August 2008, | DOI 10.17487/RFC5246, August 2008, | |||
| <https://www.rfc-editor.org/info/rfc5246>. | <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. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Nancy Cam-Winget | Nancy Cam-Winget | |||
| Cisco Systems | Cisco Systems | |||
| 3550 Cisco Way | 3550 Cisco Way | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | United States of America | |||
| Email: ncamwing@cisco.com | Email: ncamwing@cisco.com | |||
| Jack Visoky | Jack Visoky | |||
| ODVA | ODVA | |||
| 1 Allen Bradley Dr | 1 Allen Bradley Dr | |||
| Mayfield Heights, OH 44124 | Mayfield Heights, OH 44124 | |||
| USA | United States of America | |||
| Email: jmvisoky@ra.rockwell.com | Email: jmvisoky@ra.rockwell.com | |||
| End of changes. 78 change blocks. | ||||
| 222 lines changed or deleted | 233 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||