rfc9761.original | rfc9761.txt | |||
---|---|---|---|---|
OPSAWG WG T. Reddy | Internet Engineering Task Force (IETF) T. Reddy.K | |||
Internet-Draft Nokia | Request for Comments: 9761 Nokia | |||
Intended status: Standards Track D. Wing | Category: Standards Track D. Wing | |||
Expires: 24 February 2025 Citrix | ISSN: 2070-1721 Citrix | |||
B. Anderson | B. Anderson | |||
Cisco | Cisco | |||
23 August 2024 | March 2025 | |||
Manufacturer Usage Description (MUD) (D)TLS Profiles for IoT Devices | Manufacturer Usage Description (MUD) for TLS and DTLS Profiles for | |||
draft-ietf-opsawg-mud-tls-18 | Internet of Things (IoT) Devices | |||
Abstract | Abstract | |||
This memo extends the Manufacturer Usage Description (MUD) | This memo extends the Manufacturer Usage Description (MUD) | |||
specification to allow manufacturers to define (D)TLS profile | specification to allow manufacturers to define TLS and DTLS profile | |||
parameters. This allows a network security service to identify | parameters. This allows a network security service to identify | |||
unexpected (D)TLS usage, which can indicate the presence of | unexpected (D)TLS usage, which can indicate the presence of | |||
unauthorized software, malware, or security policy-violating traffic | unauthorized software, malware, or security policy-violating traffic | |||
on an endpoint. | on an endpoint. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
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 document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 24 February 2025. | 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/rfc9761. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2024 IETF Trust and the persons identified as the | Copyright (c) 2025 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Terminology | |||
3. Overview of MUD (D)TLS profiles for IoT devices . . . . . . . 5 | 3. Overview of MUD (D)TLS Profiles for IoT devices | |||
4. (D)TLS 1.3 Handshake . . . . . . . . . . . . . . . . . . . . 7 | 4. (D)TLS 1.3 Handshake | |||
4.1. Full (D)TLS 1.3 Handshake Inspection . . . . . . . . . . 7 | 4.1. Full (D)TLS 1.3 Handshake Inspection | |||
4.2. Encrypted DNS . . . . . . . . . . . . . . . . . . . . . . 8 | 4.2. Encrypted DNS | |||
5. (D)TLS Profile of a IoT device . . . . . . . . . . . . . . . 8 | 5. (D)TLS Profile of an IoT device | |||
5.1. Tree Structure of the (D)TLS profile Extension to the ACL | 5.1. Tree Structure of the (D)TLS Profile Extension to the ACL | |||
YANG Model . . . . . . . . . . . . . . . . . . . . . . . 10 | YANG Module | |||
5.2. The (D)TLS profile Extension to the ACL YANG Model . . . 10 | 5.2. The (D)TLS Profile Extension to the ACL YANG Module | |||
5.3. IANA (D)TLS profile YANG Module . . . . . . . . . . . . . 15 | 5.3. IANA (D)TLS Profile YANG Module | |||
5.4. MUD (D)TLS Profile Extension . . . . . . . . . . . . . . 19 | 5.4. MUD (D)TLS Profile Extension | |||
6. Processing of the MUD (D)TLS Profile . . . . . . . . . . . . 21 | 6. Processing of the MUD (D)TLS Profile | |||
7. MUD File Example . . . . . . . . . . . . . . . . . . . . . . 22 | 7. MUD File Example | |||
8. Software-Based ACLs and ACLs within a (D)TLS 1.3 Proxy . . . 24 | 8. Software-Based ACLs and ACLs Within a (D)TLS 1.3 Proxy | |||
9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | 9. Security Considerations | |||
9.1. Challenges in Mimicking (D)TLS 1.2 Handshakes for IoT | 9.1. Challenges in Mimicking (D)TLS 1.2 Handshakes for IoT | |||
Devices . . . . . . . . . . . . . . . . . . . . . . . . . 25 | Devices | |||
9.2. Considerations for the "iana-tls-profile" Module . . . . 25 | 9.2. Considerations for the "iana-tls-profile" Module | |||
9.3. Considerations for the "ietf-acl-tls" Module . . . . . . 26 | 9.3. Considerations for the "ietf-acl-tls" Module | |||
9.4. Considerations for the "ietf-mud-tls" Module . . . . . . 27 | 9.4. Considerations for the "ietf-mud-tls" Module | |||
10. Privacy Considerations . . . . . . . . . . . . . . . . . . . 28 | 10. Privacy Considerations | |||
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 | 11. IANA Considerations | |||
11.1. (D)TLS Profile YANG Modules . . . . . . . . . . . . . . 29 | 11.1. (D)TLS Profile YANG Modules | |||
11.2. Considerations for the iana-tls-profile Module . . . . . 30 | 11.2. Considerations for the iana-tls-profile Module | |||
11.3. ACL TLS Version registry . . . . . . . . . . . . . . . . 31 | 11.3. ACL TLS Version Registry | |||
11.4. ACL DTLS version registry . . . . . . . . . . . . . . . 31 | 11.4. ACL DTLS Version Registry | |||
11.5. ACL (D)TLS Parameters registry . . . . . . . . . . . . . 32 | 11.5. ACL (D)TLS Parameters Registry | |||
11.6. MUD Extensions registry . . . . . . . . . . . . . . . . 33 | 11.6. MUD Extensions Registry | |||
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 33 | 12. References | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | 12.1. Normative References | |||
13.1. Normative References . . . . . . . . . . . . . . . . . . 34 | 12.2. Informative References | |||
13.2. Informative References . . . . . . . . . . . . . . . . . 35 | Acknowledgments | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
Encryption is necessary to enhance the privacy of end users using IoT | Encryption is necessary to enhance the privacy of end users using | |||
devices. TLS [RFC8446] and DTLS [RFC9147] are the dominant protocols | Internet of Things (IoT) devices. TLS [RFC8446] and DTLS [RFC9147] | |||
(counting all (D)TLS versions) providing encryption for IoT device | are the dominant protocols (counting all (D)TLS versions) that | |||
traffic. Unfortunately, in conjunction with IoT applications' rise | provide encryption for IoT device traffic. Unfortunately, in | |||
of encryption, malware authors are also using encryption which | conjunction with IoT applications' rise of encryption, malware | |||
thwarts network-based analysis such as deep packet inspection (DPI). | authors are also using encryption that thwarts network-based | |||
Other mechanisms are thus needed to help detect malware running on an | analysis, such as deep packet inspection (DPI). Thus, other | |||
IoT device. | mechanisms are needed to help detect malware running on an IoT | |||
device. | ||||
Malware often reuses certain libraries, and there are notable | Malware often reuses certain libraries, and there are notable | |||
differences in how malware uses encryption compared to non-malware. | differences in how malware uses encryption compared to software that | |||
Several common patterns in the use of (D)TLS by malware include: | is not malware. Several common patterns in the use of (D)TLS by | |||
malware include: | ||||
* Use of older and weaker cryptographic parameters. | * Use of older and weaker cryptographic parameters. | |||
* TLS server name indication (SNI) extension [RFC6066] and server | * TLS server name indication (SNI) extension [RFC6066] and server | |||
certificates are composed of subjects with characteristics of a | certificates are composed of subjects with characteristics of a | |||
domain generation algorithm (DGA) (e.g., 'www.33mhwt2j.net'). | domain generation algorithm (DGA) (e.g., "www.33mhwt2j.net"). | |||
* Higher use of self-signed certificates compared with typical | * Higher use of self-signed certificates compared with typical | |||
legitimate software using certificates from a CA trusted by the | legitimate software using certificates from a certificate | |||
device. | authority (CA) trusted by the device. | |||
* Discrepancies in the SNI TLS extension and the DNS names in the | * Discrepancies in the SNI TLS extension and the DNS names in the | |||
SubjectAltName (SAN) X.509 extension in the server certificate | SubjectAltName (SAN) X.509 extension in the server certificate | |||
message. | message. | |||
* Discrepancies in the key exchange algorithm and the client public | * Discrepancies in the key exchange algorithm and the client public | |||
key length in comparison with legitimate flows. As a reminder, | key length in comparison with legitimate flows. As a reminder, | |||
the Client Key Exchange message has been removed from TLS 1.3. | the Client Key Exchange message has been removed from TLS 1.3. | |||
* Lower diversity in TLS client advertised extensions compared to | * Lower diversity in extensions advertised by TLS clients compared | |||
legitimate clients. | to legitimate clients. | |||
* Using privacy enhancing technologies like Tor, Psiphon, Ultrasurf | * Using privacy enhancing technologies like Tor, Psiphon, Ultrasurf | |||
(see [malware-tls]), and evasion techniques such as ClientHello | (see [MALWARE-TLS]), and evasion techniques such as ClientHello | |||
randomization. | randomization. | |||
* Using an alternative DNS server (via encrypted transport) to avoid | * Using an alternative DNS server (via encrypted transport) to avoid | |||
detection by malware DNS filtering services [malware-doh]. | detection by malware DNS filtering services [MALWARE-DOH]. | |||
Specifically, malware may not use the Do53 or encrypted DNS server | Specifically, malware may not use the Do53 or encrypted DNS server | |||
provided by the local network (DHCP, DNR [RFC9462] or DDR | provided by the local network (DHCP, Discovery of Network- | |||
[RFC9462]). | designated Resolvers (DNR) [RFC9462], or Discovery of Designated | |||
Resolvers (DDR) [RFC9462]). | ||||
If (D)TLS profile parameters are defined, the following functions are | If (D)TLS profile parameters are defined, the following functions | |||
possible which have a positive impact on the local network security: | that have a positive impact on the local network security are | |||
possible: | ||||
* Permit intended DTLS or TLS use and block malicious DTLS or TLS | * Permit intended DTLS or TLS use, and block malicious DTLS or TLS | |||
use. This is superior to the layers 3 and 4 Access Control Lists | use. This is superior to the layers 3 and 4 Access Control Lists | |||
(ACLs) of Manufacturer Usage Description Specification (MUD) | (ACLs) of Manufacturer Usage Description Specification (MUD) | |||
[RFC8520] which are not suitable for broad communication patterns. | [RFC8520], which are not suitable for broad communication | |||
The goal of this document is to enhance and complement the | patterns. The goal of this document is to enhance and complement | |||
existing MUD specifications, rather than to undermine them. | the existing MUD specifications rather than undermine them. | |||
* Ensure TLS certificates are valid. Several TLS deployments have | * Ensure TLS certificates are valid. Several TLS deployments have | |||
been vulnerable to active Man-In-The-Middle (MITM) attacks because | been vulnerable to active Man-In-The-Middle (MITM) attacks because | |||
of the lack of certificate validation or vulnerability in the | of the lack of certificate validation or vulnerability in the | |||
certificate validation function (see [cryto-vulnerability]). By | certificate validation function (see [CRYPTO-VULNERABILITY]). By | |||
observing (D)TLS profile parameters, a network element can detect | observing (D)TLS profile parameters, a network element can detect | |||
when the TLS SNI mismatches the SubjectAltName and when the | when the TLS SNI mismatches the SubjectAltName and when the | |||
server's certificate is invalid. In (D)TLS 1.2 | server's certificate is invalid. In (D)TLS 1.2 [RFC5246] | |||
[RFC5246][RFC6347], the ClientHello, ServerHello and Certificate | [RFC6347], the ClientHello, ServerHello, and Certificate messages | |||
messages are all sent in clear-text. This check is not possible | are all sent in cleartext. This check is not possible with (D)TLS | |||
with (D)TLS 1.3, which encrypts the Certificate message thereby | 1.3, which encrypts the Certificate message and therefore hides | |||
hiding the server identity from any intermediary. In (D)TLS 1.3, | the server identity from any intermediary. In (D)TLS 1.3, the | |||
the server certificate validation functions should be executed | server certificate validation functions should be executed within | |||
within an on-path (D)TLS proxy, if such a proxy exists. | an on-path (D)TLS proxy if such a proxy exists. | |||
* Support new communication patterns. An IoT device can learn a new | * Support new communication patterns. An IoT device can learn a new | |||
capability, and the new capability can change the way the IoT | capability, and the new capability can change the way the IoT | |||
device communicates with other devices located in the local | device communicates with other devices located in the local | |||
network and Internet. There would be an inaccurate policy if an | network and the Internet. There would be an inaccurate policy if | |||
IoT device rapidly changes the IP addresses and domain names it | an IoT device rapidly changes the IP addresses and domain names it | |||
communicates with while the MUD ACLs were slower to update (see | communicates with while the MUD ACLs were slower to update (see | |||
[clear-as-mud]). In such a case, observable (D)TLS profile | [CLEAR-AS-MUD]). In such a case, observable (D)TLS profile | |||
parameters can be used to permit intended use and to block | parameters can be used to permit intended use and block malicious | |||
malicious behavior from the IoT device. | behavior from the IoT device. | |||
The YANG module specified in Section 5.2 of this document is an | The YANG module specified in Section 5.2 of this document is an | |||
extension of YANG Data Model for Network Access Control Lists (ACLs) | extension of "YANG Data Model for Network Access Control Lists | |||
[RFC8519] to enhance MUD [RFC8520] to model observable (D)TLS profile | (ACLs)" [RFC8519] to enhance MUD [RFC8520] to model observable (D)TLS | |||
parameters. Using these (D)TLS profile parameters, an active MUD- | profile parameters. Using these (D)TLS profile parameters, an active | |||
enforcing network security service (e.g., firewall) can identify MUD | MUD-enforcing network security service (e.g., firewall) can identify | |||
non-compliant (D)TLS behavior indicating outdated cryptography or | MUD non-compliant (D)TLS behavior indicating outdated cryptography or | |||
malware. This detection can prevent malware downloads, block access | malware. This detection can prevent malware downloads, block access | |||
to malicious domains, enforce use of strong ciphers, stop data | to malicious domains, enforce use of strong ciphers, stop data | |||
exfiltration, etc. In addition, organizations may have policies | exfiltration, etc. In addition, organizations may have policies | |||
around acceptable ciphers and certificates for the websites the IoT | around acceptable ciphers and certificates for the websites the IoT | |||
devices connect to. Examples include no use of old and less secure | devices connect to. Examples include no use of old and less secure | |||
versions of TLS, no use of self-signed certificates, deny-list or | versions of TLS, no use of self-signed certificates, deny-list or | |||
accept-list of Certificate Authorities, valid certificate expiration | accept-list of Certificate Authorities, valid certificate expiration | |||
time, etc. These policies can be enforced by observing the (D)TLS | time, etc. These policies can be enforced by observing the (D)TLS | |||
profile parameters. Network security services can use the IoT | profile parameters. Network security services can use the IoT | |||
device's (D)TLS profile parameters to identify legitimate flows by | device's (D)TLS profile parameters to identify legitimate flows by | |||
observing (D)TLS sessions, and can make inferences to permit | observing (D)TLS sessions, and can make inferences to permit | |||
legitimate flows and to block malicious or insecure flows. | legitimate flows and block malicious or insecure flows. | |||
Additionally, it supports network communications adherence to | Additionally, it supports network communications adherence to | |||
security policies by ensuring that TLS certificates are valid and | security policies by ensuring that TLS certificates are valid and | |||
deprecated cipher suites are avoided. The proposed technique is also | deprecated cipher suites are avoided. The proposed technique is also | |||
suitable in deployments where decryption techniques are not ideal due | suitable in deployments where decryption techniques are not ideal due | |||
to privacy concerns, non-cooperating end-points, and expense. | to privacy concerns, non-cooperating endpoints, and expense. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119][RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
"(D)TLS" is used for statements that apply to both Transport Layer | (D)TLS: Used for statements that apply to both Transport Layer | |||
Security [RFC8446] and Datagram Transport Layer Security [RFC6347]. | Security [RFC8446] and Datagram Transport Layer Security | |||
Specific terms "TLS" and "DTLS" are used for any statement that | [RFC6347]. Specific terms "TLS" and "DTLS" are used for any | |||
applies to either protocol alone. | statement that applies to either protocol alone. | |||
'DoH/DoT' refers to DNS-over-HTTPS and/or DNS-over-TLS [RFC7858]. | DoH/DoT: Refers to DNS-over-HTTPS and/or DNS-over-TLS [RFC7858]. | |||
Middlebox: A middlebox that interacts with TLS traffic can either act | Middlebox: A middlebox that interacts with TLS traffic can either | |||
as a TLS proxy, intercepting and decrypting the traffic for | act as a TLS proxy, intercepting and decrypting the traffic for | |||
inspection, or inspect the traffic between TLS peers without | inspection, or inspect the traffic between TLS peers without | |||
terminating the TLS session. | terminating the TLS session. | |||
Endpoint Security Agent: An Endpoint Security Agent is a software | Endpoint Security Agent: An Endpoint Security Agent is a software | |||
installed on endpoint devices that protects them from security | installed on endpoint devices that protects them from security | |||
threats. It provides features such as malware protection, firewall, | threats. It provides features such as malware protection, | |||
and intrusion prevention to ensure the device's security and | firewall, and intrusion prevention to ensure the device's security | |||
integrity. | and integrity. | |||
Network Security Service: A Network Security Service refers to a set | Network Security Service: A Network Security Service refers to a set | |||
of mechanisms designed to protect network communications and | of mechanisms designed to protect network communications and | |||
resources from attacks. | resources from attacks. | |||
3. Overview of MUD (D)TLS profiles for IoT devices | 3. Overview of MUD (D)TLS Profiles for IoT devices | |||
In Enterprise networks, protection and detection are typically done | In Enterprise networks, protection and detection are typically done | |||
both on end hosts and in the network. Endpoint security agents have | both on end hosts and in the network. Endpoint security agents have | |||
deep visibility on the devices where they are installed, whereas the | deep visibility on the devices where they are installed, whereas the | |||
network has broader visibility. Installing endpoint security agents | network has broader visibility. Installing endpoint security agents | |||
may not be a viable option on IoT devices, and network security | may not be a viable option on IoT devices, and network security | |||
service is an efficient means to protect such IoT devices. If the | service is an efficient means to protect such IoT devices. If the | |||
IoT device supports a MUD (D)TLS profile, the (D)TLS profile | IoT device supports a MUD (D)TLS profile, the (D)TLS profile | |||
parameters of the IoT device can be used by a middlebox to detect and | parameters of the IoT device can be used by a middlebox to detect and | |||
block malware communication, while at the same time preserving the | block malware communication, while at the same time preserving the | |||
privacy of legitimate uses of encryption. In addition, it enforces | privacy of legitimate uses of encryption. In addition, it enforces | |||
organizational security policies, ensuring that devices comply. By | organizational security policies, ensuring that devices comply. By | |||
monitoring (D)TLS parameters, network administrators can identify and | monitoring (D)TLS parameters, network administrators can identify and | |||
mitigate the use of outdated TLS versions, cryptographic algorithms | mitigate the use of outdated TLS versions, cryptographic algorithms, | |||
and non-compliant certificates. The middlebox need not proxy (D)TLS | and non-compliant certificates. The middlebox need not proxy (D)TLS, | |||
but can passively observe the parameters of (D)TLS handshakes from | but can passively observe the parameters of (D)TLS handshakes from | |||
IoT devices and gain visibility into TLS 1.2 parameters and partial | IoT devices and gain visibility into TLS 1.2 parameters and partial | |||
visibility into TLS 1.3 parameters. | visibility into TLS 1.3 parameters. | |||
Malicious agents can try to use the (D)TLS profile parameters of | Malicious agents can try to use the (D)TLS profile parameters of | |||
legitimate agents to evade detection, but it becomes a challenge to | legitimate agents to evade detection, but it becomes a challenge to | |||
mimic the behavior of various IoT device types and IoT device models | mimic the behavior of various IoT device types and IoT device models | |||
from several manufacturers. In other words, malware developers will | from several manufacturers. In other words, malware developers will | |||
have to develop malicious agents per IoT device type, manufacturer | have to develop malicious agents per IoT device type, manufacturer | |||
and model, infect the device with the tailored malware agent and will | and model, infect the device with the tailored malware agent, and | |||
have keep up with updates to the device's (D)TLS profile parameters | will have keep up with updates to the device's (D)TLS profile | |||
over time. Furthermore, the malware's command and control server | parameters over time. Furthermore, the malware's command and control | |||
certificates need to be signed by the same certifying authorities | server certificates need to be signed by the same certifying | |||
trusted by the IoT devices. Typically, IoT devices have an | authorities trusted by the IoT devices. Typically, IoT devices have | |||
infrastructure that supports a rapid deployment of updates, and | an infrastructure that supports a rapid deployment of updates, and | |||
malware agents will have a near-impossible task of similarly | malware agents will have a near-impossible task of similarly | |||
deploying updates and continuing to mimic the TLS behavior of the IoT | deploying updates and continuing to mimic the TLS behavior of the IoT | |||
device it has infected. | device it has infected. | |||
However, if the IoT device has reached end-of-life and the IoT | However, if the IoT device has reached end-of-life (EOL) and the IoT | |||
manufacturer will not issue a firmware or software update to the IoT | manufacturer will not issue a firmware or software update to the IoT | |||
device or will not update the MUD file, the "is-supported" attribute | device or will not update the MUD file, the "is-supported" attribute | |||
defined in Section 3.6 of [RFC8520] can be used by the MUD manager to | defined in Section 3.6 of [RFC8520] can be used by the MUD manager to | |||
identify the IoT manufacturer no longer supports the device. The | identify the IoT manufacturer no longer supports the device. The EOL | |||
end-of-life (EOL) of a device, where the IoT manufacturer no longer | of a device, where the IoT manufacturer no longer supports it, does | |||
supports it, does not necessarily mean the device is defective. | not necessarily mean the device is defective. Instead, it signifies | |||
Instead, it signifies that the device is no longer receiving updates, | that the device is no longer receiving updates, support, or security | |||
support, or security patches, which necessitates replacement and | patches, which necessitates replacement and upgrading to next- | |||
upgrading to next-generation devices to ensure continued | generation devices to ensure continued functionality, security, and | |||
functionality, security, and compatibility with modern networks. The | compatibility with modern networks. The network security service | |||
network security service will have to rely on other techniques | will have to rely on other techniques discussed in Section 9 to | |||
discussed in Section 9 to identify malicious connections until the | identify malicious connections until the device is replaced. | |||
device is replaced. | ||||
Compromised IoT devices are typically used for launching DDoS attacks | Compromised IoT devices are typically used for launching DDoS attacks | |||
(Section 3 of [RFC8576]). For example, DDoS attacks like Slowloris | (Section 3 of [RFC8576]). For example, DDoS attacks like Slowloris | |||
[slowloris] and Transport Layer Security (TLS) re-negotiation can be | [SLOWLORIS] and Transport Layer Security (TLS) re-negotiation can be | |||
blocked if the victim's server certificate is not be signed by the | blocked if the victim's server certificate is not be signed by the | |||
same certifying authorities trusted by the IoT device. | same certifying authorities trusted by the IoT device. | |||
4. (D)TLS 1.3 Handshake | 4. (D)TLS 1.3 Handshake | |||
In (D)TLS 1.3, full (D)TLS handshake inspection is not possible since | In (D)TLS 1.3, full (D)TLS handshake inspection is not possible since | |||
all (D)TLS handshake messages excluding the ClientHello message are | all (D)TLS handshake messages excluding the ClientHello message are | |||
encrypted. (D)TLS 1.3 has introduced new extensions in the handshake | encrypted. (D)TLS 1.3 has introduced new extensions in the handshake | |||
record layers called Encrypted Extensions. Using these extensions | record layers called Encrypted Extensions. When using these | |||
handshake messages will be encrypted and network security services | extensions, handshake messages will be encrypted and network security | |||
(such as a firewall) are incapable of deciphering the handshake, and | services (such as a firewall) are incapable of deciphering the | |||
thus cannot view the server certificate. However, the ClientHello | handshake, and thus cannot view the server certificate. However, the | |||
and ServerHello still have some fields visible, such as the list of | ClientHello and ServerHello still have some fields visible, such as | |||
supported versions, named groups, cipher suites, signature algorithms | the list of supported versions, named groups, cipher suites, | |||
and extensions in ClientHello, and chosen cipher in the ServerHello. | signature algorithms, extensions in ClientHello, and the chosen | |||
For instance, if the malware uses evasion techniques like ClientHello | cipher in the ServerHello. For instance, if the malware uses evasion | |||
randomization, the observable list of cipher suites and extensions | techniques like ClientHello randomization, the observable list of | |||
offered by the malware agent in the ClientHello message will not | cipher suites and extensions offered by the malware agent in the | |||
match the list of cipher suites and extensions offered by the | ClientHello message will not match the list of cipher suites and | |||
legitimate client in the ClientHello message, and the middlebox can | extensions offered by the legitimate client in the ClientHello | |||
block malicious flows without acting as a (D)TLS 1.3 proxy. | message, and the middlebox can block malicious flows without acting | |||
as a (D)TLS 1.3 proxy. | ||||
4.1. Full (D)TLS 1.3 Handshake Inspection | 4.1. Full (D)TLS 1.3 Handshake Inspection | |||
To obtain more visibility into negotiated TLS 1.3 parameters, a | To obtain more visibility into negotiated TLS 1.3 parameters, a | |||
middlebox can act as a (D)TLS 1.3 proxy. A middlebox can act as a | middlebox can act as a (D)TLS 1.3 proxy. A middlebox can act as a | |||
(D)TLS proxy for the IoT devices owned and managed by the IT team in | (D)TLS proxy for the IoT devices owned and managed by the IT team in | |||
the Enterprise network and the (D)TLS proxy must meet the security | the Enterprise network and the (D)TLS proxy must meet the security | |||
and privacy requirements of the organization. In other words, the | and privacy requirements of the organization. In other words, the | |||
scope of middlebox acting as a (D)TLS proxy is restricted to | scope of a middlebox acting as a (D)TLS proxy is restricted to the | |||
Enterprise network owning and managing the IoT devices. The | Enterprise network owning and managing the IoT devices. The | |||
middlebox would have to follow the behaviour detailed in Section 9.3 | middlebox would have to follow the behavior detailed in Section 9.3 | |||
of [RFC8446] to act as a compliant (D)TLS 1.3 proxy. | of [RFC8446] to act as a compliant (D)TLS 1.3 proxy. | |||
To further increase privacy, Encrypted Client Hello (ECH) extension | To further increase privacy, the Encrypted Client Hello (ECH) | |||
[I-D.ietf-tls-esni] prevents passive observation of the TLS Server | extension [TLS-ESNI] prevents passive observation of the TLS Server | |||
Name Indication extension and other potentially sensitive fields, | Name Indication extension and other potentially sensitive fields, | |||
such as the ALPN [RFC7301]. To effectively provide that privacy | such as the Application-Layer Protocol Negotiation (ALPN) [RFC7301]. | |||
protection, ECH extension needs to be used in conjunction with DNS | To effectively provide that privacy protection, the ECH extension | |||
encryption (e.g., DoH). A middlebox (e.g., firewall) passively | needs to be used in conjunction with DNS encryption (e.g., DoH). A | |||
inspecting ECH extension cannot observe the encrypted SNI nor observe | middlebox (e.g., firewall) passively inspecting the ECH extension | |||
the encrypted DNS traffic. The middlebox acting as a (D)TLS 1.3 | cannot observe the encrypted SNI nor observe the encrypted DNS | |||
proxy that does not support ECH extension will act as if connecting | traffic. The middlebox acting as a (D)TLS 1.3 proxy that does not | |||
to the public name and it follows the behaviour discussed in | support the ECH extension will act as if it is connecting to the | |||
Section 6.1.6 of [I-D.ietf-tls-esni] to securely signal the client to | public name and follows the behavior discussed in Section 6.1.6 of | |||
disable ECH. | [TLS-ESNI] to securely signal the client to disable ECH. | |||
4.2. Encrypted DNS | 4.2. Encrypted DNS | |||
A common usage pattern for certain type of IoT devices (e.g., light | A common usage pattern for certain types of IoT devices (e.g., light | |||
bulb) is for it to "call home" to a service that resides on the | bulb) is for it to "call home" to a service that resides on the | |||
public Internet, where that service is referenced through a domain | public Internet, where that service is referenced through a domain | |||
name (A or AAAA record). As discussed in Manufacturer Usage | name (A or AAAA record). As discussed in "Manufacturer Usage | |||
Description Specification [RFC8520], because these devices tend to | Description Specification" [RFC8520], these devices tend to require | |||
require access to very few sites, all other access should be | access to very few sites. Thus, all other access should be | |||
considered suspect. This technique complements MUD policy | considered suspect. This technique complements MUD policy | |||
enforcement at the TLS level by ensuring that DNS queries are | enforcement at the TLS level by ensuring that DNS queries are | |||
monitored and filtered, thereby enhancing overall security. If an | monitored and filtered, thereby enhancing overall security. If an | |||
IoT device is pre-configured to use a DNS resolver not signaled by | IoT device is pre-configured to use a DNS resolver not signaled by | |||
the network, the MUD policy enforcement point is moved to that | the network, the MUD policy enforcement point is moved to that | |||
resolver, which cannot enforce the MUD policy based on domain names | resolver, which cannot enforce the MUD policy based on domain names | |||
(Section 8 of [RFC8520]). If the DNS query is not accessible for | (Section 8 of [RFC8520]). If the DNS query is not accessible for | |||
inspection, it becomes quite difficult for the infrastructure to | inspection, it becomes quite difficult for the infrastructure to | |||
detect any issues. Therefore, the use of a DNS resolver that is not | detect any issues. Therefore, the use of a DNS resolver that is not | |||
signaled by the network is generally incompatible with MUD. A | signaled by the network is generally incompatible with MUD. A | |||
network-designated DoH/DoT server is necessary to allow MUD policy | network-designated DoH/DoT server is necessary to allow MUD policy | |||
enforcement on the local network, for example, using the techniques | enforcement on the local network, for example, using the techniques | |||
specified in DNR[RFC9463] and DDR [RFC9462]. | specified in DNR [RFC9463] and DDR [RFC9462]. | |||
5. (D)TLS Profile of a IoT device | 5. (D)TLS Profile of an IoT device | |||
This document specifies a YANG module for representing (D)TLS | This document specifies a YANG module that represents the (D)TLS | |||
profile. This YANG module provides a means to characterize the | profile. This YANG module provides a means to characterize the | |||
(D)TLS traffic profile of a device. Network security services can | (D)TLS traffic profile of a device. Network security services can | |||
use these profiles to permit conformant traffic or to deny traffic | use these profiles to permit conformant traffic or to deny traffic | |||
from devices that deviates from it. This module uses the | from devices that deviates from it. This module uses the | |||
cryptographic types defined in [I-D.ietf-netconf-crypto-types]. See | cryptographic types defined in [RFC9640]. See [RFC7925] for (D)TLS | |||
[RFC7925] for (D)TLS 1.2 and [I-D.ietf-uta-tls13-iot-profile] for | 1.2 and [IoT-PROFILE] for DTLS 1.3 recommendations related to IoT | |||
DTLS 1.3 recommendations related to IoT devices, and [RFC9325] for | devices, and [RFC9325] for additional (D)TLS 1.2 recommendations. | |||
additional (D)TLS 1.2 recommendations. | ||||
A companion YANG module is defined to include a collection of (D)TLS | A companion YANG module is defined to include a collection of (D)TLS | |||
parameters and (D)TLS versions maintained by IANA: "iana-tls-profile" | parameters and (D)TLS versions maintained by IANA: "iana-tls-profile" | |||
(Section 5.3). | (Section 5.3). | |||
The (D)TLS parameters in each (D)TLS profile include the following: | The (D)TLS parameters in each (D)TLS profile include the following: | |||
* Profile name | * Profile name | |||
* (D)TLS versions supported by the IoT device. | * (D)TLS versions supported by the IoT device. | |||
* List of supported cipher suites (Section 11 of [RFC8446]). For | * List of supported cipher suites (Section 11 of [RFC8446]). For | |||
(D)TLS1.2, [RFC7925] recommends AEAD ciphers for IoT devices. | (D)TLS 1.2, [RFC7925] recommends Authenticated Encryption with | |||
Associated Data (AEAD) ciphers for IoT devices. | ||||
* List of supported extension types. | ||||
* List of supported extension types | ||||
* List of trust anchor certificates used by the IoT device. If the | * List of trust anchor certificates used by the IoT device. If the | |||
server certificate is signed by one of the trust anchors, the | server certificate is signed by one of the trust anchors, the | |||
middlebox continues with the connection as normal. Otherwise, the | middlebox continues with the connection as normal. Otherwise, the | |||
middlebox will react as if the server certificate validation has | middlebox will react as if the server certificate validation has | |||
failed and takes appropriate action (e.g, block the (D)TLS | failed and takes appropriate action (e.g, blocks the (D)TLS | |||
session). An IoT device can use a private trust anchor to | session). An IoT device can use a private trust anchor to | |||
validate a server's certificate (e.g., the private trust anchor | validate a server's certificate (e.g., the private trust anchor | |||
can be preloaded at manufacturing time on the IoT device and the | can be preloaded at manufacturing time on the IoT device and the | |||
IoT device fetches the firmware image from the Firmware server | IoT device fetches the firmware image from the firmware server | |||
whose certificate is signed by the private CA). This empowers the | whose certificate is signed by the private CA). This empowers the | |||
middlebox to reject TLS sessions to servers that the IoT device | middlebox to reject TLS sessions to servers that the IoT device | |||
does not trust. | does not trust. | |||
* List of pre-shared key exchange modes | * List of pre-shared key exchange modes. | |||
* List of named groups (DHE or ECDHE) supported by the client | * List of named groups (DHE or ECDHE) supported by the client. | |||
* List of signature algorithms the client can validate in X.509 | * List of signature algorithms the client can validate in X.509 | |||
server certificates | server certificates. | |||
* List of signature algorithms the client is willing to accept for | * List of signature algorithms the client is willing to accept for | |||
CertificateVerify message (Section 4.2.3 of [RFC8446]). For | the CertificateVerify message (Section 4.2.3 of [RFC8446]). For | |||
example, a TLS client implementation can support different sets of | example, a TLS client implementation can support different sets of | |||
algorithms for certificates and in TLS to signal the capabilities | algorithms for certificates and in TLS to signal the capabilities | |||
in "signature_algorithms_cert" and "signature_algorithms" | in "signature_algorithms_cert" and "signature_algorithms" | |||
extensions. | extensions. | |||
* List of supported application protocols (e.g., h3, h2, http/1.1 | * List of supported application protocols (e.g., h3, h2, http/1.1 | |||
etc.) | etc.). | |||
* List of certificate compression algorithms (defined in [RFC8879]) | * List of certificate compression algorithms (defined in [RFC8879]). | |||
* List of the distinguished names [X501] of acceptable certificate | * List of the distinguished names [X501] of acceptable certificate | |||
authorities, represented in DER-encoded format [X690] (defined in | authorities, represented in DER-encoded format [X690] (defined in | |||
Section 4.2.4 of [RFC8446]) | Section 4.2.4 of [RFC8446]). | |||
GREASE [RFC8701] defines a mechanism for TLS peers to send random | GREASE [RFC8701] defines a mechanism for TLS peers to send random | |||
values on TLS parameters to ensure future extensibility of TLS | values on TLS parameters to ensure future extensibility of TLS | |||
extensions. Similar random values might be extended to other TLS | extensions. Similar random values might be extended to other TLS | |||
parameters. Thus, the (D)TLS profile parameters defined in the YANG | parameters. Thus, the (D)TLS profile parameters defined in the YANG | |||
module by this document MUST NOT include the GREASE values for | module by this document MUST NOT include the GREASE values for | |||
extension types, named groups, signature algorithms, (D)TLS versions, | extension types, named groups, signature algorithms, (D)TLS versions, | |||
pre-shared key exchange modes, cipher suites and for any other TLS | pre-shared key exchange modes, cipher suites, and any other TLS | |||
parameters defined in future RFCs. | parameters defined in future RFCs. | |||
The (D)TLS profile does not include parameters like compression | The (D)TLS profile does not include parameters like compression | |||
methods for data compression, [RFC9325] recommends disabling TLS- | methods for data compression. [RFC9325] recommends disabling TLS- | |||
level compression to prevent compression-related attacks. In TLS | level compression to prevent compression-related attacks. In TLS | |||
1.3, only the "null" compression method is allowed (Section 4.1.2 of | 1.3, only the "null" compression method is allowed (Section 4.1.2 of | |||
[RFC8446]). | [RFC8446]). | |||
5.1. Tree Structure of the (D)TLS profile Extension to the ACL YANG | 5.1. Tree Structure of the (D)TLS Profile Extension to the ACL YANG | |||
Model | Module | |||
This document augments the "ietf-acl" ACL YANG module defined in | This document augments the "ietf-acl" ACL YANG module defined in | |||
[RFC8519] for signaling the IoT device (D)TLS profile. This document | [RFC8519] for signaling the IoT device (D)TLS profile. This document | |||
defines the YANG module "ietf-acl-tls". The meaning of the symbols | defines the YANG module "ietf-acl-tls". The meaning of the symbols | |||
in the YANG tree diagram are defined in [RFC8340] and it has the | in the YANG tree diagram are defined in [RFC8340] and it has the | |||
following tree structure: | following tree structure: | |||
module: ietf-acl-tls | module: ietf-acl-tls | |||
augment /acl:acls/acl:acl/acl:aces/acl:ace/acl:matches: | augment /acl:acls/acl:acl/acl:aces/acl:ace/acl:matches: | |||
+--rw client-profiles {match-on-tls-dtls}? | +--rw client-profiles {match-on-tls-dtls}? | |||
skipping to change at page 10, line 51 ¶ | skipping to change at line 466 ¶ | |||
| ianatp:signature-algorithm | | ianatp:signature-algorithm | |||
+--rw application-protocol* | +--rw application-protocol* | |||
| ianatp:application-protocol | | ianatp:application-protocol | |||
+--rw cert-compression-algorithm* | +--rw cert-compression-algorithm* | |||
| ianatp:cert-compression-algorithm | | ianatp:cert-compression-algorithm | |||
| {tls13 or dtls13}? | | {tls13 or dtls13}? | |||
+--rw certificate-authorities* | +--rw certificate-authorities* | |||
certificate-authority | certificate-authority | |||
{tls13 or dtls13}? | {tls13 or dtls13}? | |||
5.2. The (D)TLS profile Extension to the ACL YANG Model | 5.2. The (D)TLS Profile Extension to the ACL YANG Module | |||
<CODE BEGINS> file "ietf-acl-tls@2024-01-23.yang" | ||||
<CODE BEGINS> file "ietf-acl-tls@2025-03-10.yang" | ||||
module ietf-acl-tls { | module ietf-acl-tls { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-acl-tls"; | namespace "urn:ietf:params:xml:ns:yang:ietf-acl-tls"; | |||
prefix acl-tls; | prefix acl-tls; | |||
import iana-tls-profile { | import iana-tls-profile { | |||
prefix ianatp; | prefix ianatp; | |||
reference | reference | |||
"RFC XXXX: Manufacturer Usage Description (MUD) (D)TLS | "RFC 9761: Manufacturer Usage Description (MUD) for TLS and | |||
Profiles for IoT Devices"; | DTLS Profiles for Internet of Things (IoT) Devices"; | |||
} | } | |||
import ietf-crypto-types { | import ietf-crypto-types { | |||
prefix ct; | prefix ct; | |||
reference | reference | |||
"draft-ietf-netconf-crypto-types: YANG Data Types and Groupings | "RFC 9640: YANG Data Types and Groupings for Cryptography"; | |||
for Cryptography"; | ||||
} | } | |||
import ietf-access-control-list { | import ietf-access-control-list { | |||
prefix acl; | prefix acl; | |||
reference | reference | |||
"RFC 8519: YANG Data Model for Network Access | "RFC 8519: YANG Data Model for Network Access | |||
Control Lists (ACLs)"; | Control Lists (ACLs)"; | |||
} | } | |||
organization | organization | |||
"IETF OPSAWG (Operations and Management Area Working Group)"; | "IETF OPSAWG (Operations and Management Area Working Group)"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/opsawg/> | "WG Web: <https://datatracker.ietf.org/wg/opsawg/> | |||
WG List: opsawg@ietf.org | WG List: opsawg@ietf.org | |||
Author: Konda, Tirumaleswar Reddy | Author: Tirumaleswar Reddy.K | |||
kondtir@gmail.com | kondtir@gmail.com | |||
"; | "; | |||
description | description | |||
"This YANG module defines a component that augments the | "This YANG module defines a component that augments the | |||
IETF description of an access list to allow (D)TLS profile | IETF description of an access list to allow (D)TLS profiles | |||
as matching criteria. | as matching criteria. | |||
Copyright (c) 2024 IETF Trust and the persons identified as | Copyright (c) 2025 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see | ||||
This version of this YANG module is part of RFC 9761; see | ||||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
revision 2022-10-10 { | revision 2025-03-10 { | |||
description | description | |||
"Initial revision"; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: Manufacturer Usage Description (MUD) (D)TLS | "RFC 9761: Manufacturer Usage Description (MUD) for TLS and | |||
Profiles for IoT Devices"; | DTLS Profiles for Internet of Things (IoT) Devices"; | |||
} | } | |||
feature tls12 { | feature tls12 { | |||
description | description | |||
"TLS Protocol Version 1.2 is supported."; | "TLS Protocol Version 1.2 is supported."; | |||
reference | reference | |||
"RFC 5246: The Transport Layer Security (TLS) Protocol | "RFC 5246: The Transport Layer Security (TLS) Protocol | |||
Version 1.2"; | Version 1.2"; | |||
} | } | |||
skipping to change at page 12, line 43 ¶ | skipping to change at line 556 ¶ | |||
"DTLS Protocol Version 1.2 is supported."; | "DTLS Protocol Version 1.2 is supported."; | |||
reference | reference | |||
"RFC 6347: Datagram Transport Layer Security | "RFC 6347: Datagram Transport Layer Security | |||
Version 1.2"; | Version 1.2"; | |||
} | } | |||
feature dtls13 { | feature dtls13 { | |||
description | description | |||
"DTLS Protocol Version 1.3 is supported."; | "DTLS Protocol Version 1.3 is supported."; | |||
reference | reference | |||
"RFC 9147: Datagram Transport Layer | "RFC 9147: Datagram Transport Layer Security 1.3"; | |||
Security 1.3"; | ||||
} | } | |||
feature match-on-tls-dtls { | feature match-on-tls-dtls { | |||
description | description | |||
"The networking device can support matching on | "The networking device can support matching on | |||
(D)TLS parameters."; | (D)TLS parameters."; | |||
} | } | |||
typedef spki-pin-set { | typedef spki-pin-set { | |||
type binary; | type binary; | |||
description | description | |||
"Subject Public Key Info pin set as discussed in | "Subject Public Key Info pin set as discussed in | |||
Section 2.4 of RFC7469."; | Section 2.4 of RFC 7469."; | |||
} | } | |||
typedef certificate-authority { | typedef certificate-authority { | |||
type string; | type string; | |||
description | description | |||
"Distinguished Name of Certificate authority as discussed | "Distinguished Name of Certificate authority as discussed | |||
in Section 4.2.4 of RFC8446."; | in Section 4.2.4 of RFC 8446."; | |||
} | } | |||
augment "/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches" { | augment "/acl:acls/acl:acl/acl:aces/acl:ace/acl:matches" { | |||
if-feature "match-on-tls-dtls"; | if-feature "match-on-tls-dtls"; | |||
description | description | |||
"(D)TLS specific matches."; | "(D)TLS specific matches."; | |||
container client-profiles { | container client-profiles { | |||
description | description | |||
"A grouping for (D)TLS profiles."; | "A grouping for (D)TLS profiles."; | |||
list tls-dtls-profile { | list tls-dtls-profile { | |||
key "name"; | key "name"; | |||
description | description | |||
"A list of (D)TLS version profiles supported by | "A list of (D)TLS version profiles supported by | |||
the client."; | the client."; | |||
leaf name { | leaf name { | |||
type string { | type string { | |||
length "1..64"; | length "1..64"; | |||
} | ||||
description | ||||
"The name of (D)TLS profile; space and special | ||||
characters are not allowed."; | ||||
} | } | |||
description | leaf-list supported-tls-version { | |||
"The name of (D)TLS profile; space and special | type ianatp:tls-version; | |||
characters are not allowed."; | description | |||
"TLS versions supported by the client."; | ||||
} | } | |||
leaf-list supported-tls-version { | leaf-list supported-dtls-version { | |||
type ianatp:tls-version; | ||||
description | ||||
"TLS versions supported by the client."; | ||||
} | ||||
leaf-list supported-dtls-version { | ||||
type ianatp:dtls-version; | type ianatp:dtls-version; | |||
description | description | |||
"DTLS versions supported by the client."; | "DTLS versions supported by the client."; | |||
} | } | |||
leaf-list cipher-suite { | leaf-list cipher-suite { | |||
type ianatp:cipher-algorithm; | type ianatp:cipher-algorithm; | |||
description | description | |||
"A list of Cipher Suites supported by the client."; | "A list of Cipher Suites supported by the client."; | |||
} | ||||
} | leaf-list extension-type { | |||
leaf-list extension-type { | ||||
type ianatp:extension-type; | type ianatp:extension-type; | |||
description | description | |||
"A list of Extension Types supported by the client."; | "A list of Extension Types supported by the client."; | |||
} | } | |||
leaf-list accept-list-ta-cert { | leaf-list accept-list-ta-cert { | |||
type ct:trust-anchor-cert-cms; | type ct:trust-anchor-cert-cms; | |||
description | description | |||
"A list of trust anchor certificates used by the client."; | "A list of trust anchor certificates used by the | |||
} | client."; | |||
leaf-list psk-key-exchange-mode { | } | |||
if-feature "tls13 or dtls13"; | leaf-list psk-key-exchange-mode { | |||
type ianatp:psk-key-exchange-mode; | if-feature "tls13 or dtls13"; | |||
description | type ianatp:psk-key-exchange-mode; | |||
description | ||||
"pre-shared key exchange modes."; | "pre-shared key exchange modes."; | |||
} | } | |||
leaf-list supported-group { | leaf-list supported-group { | |||
type ianatp:supported-group; | type ianatp:supported-group; | |||
description | description | |||
"A list of named groups supported by the client."; | "A list of named groups supported by the client."; | |||
} | } | |||
leaf-list signature-algorithm-cert { | leaf-list signature-algorithm-cert { | |||
if-feature "tls13 or dtls13"; | if-feature "tls13 or dtls13"; | |||
type ianatp:signature-algorithm; | type ianatp:signature-algorithm; | |||
description | description | |||
"A list signature algorithms the client can validate | "A list signature algorithms the client can validate | |||
in X.509 certificates."; | in X.509 certificates."; | |||
} | } | |||
leaf-list signature-algorithm { | leaf-list signature-algorithm { | |||
type ianatp:signature-algorithm; | type ianatp:signature-algorithm; | |||
description | description | |||
"A list signature algorithms the client can validate | "A list signature algorithms the client can validate | |||
in the CertificateVerify message."; | in the CertificateVerify message."; | |||
} | } | |||
leaf-list application-protocol { | leaf-list application-protocol { | |||
type ianatp:application-protocol; | type ianatp:application-protocol; | |||
description | description | |||
"A list application protocols supported by the client."; | "A list application protocols supported by the client."; | |||
} | } | |||
leaf-list cert-compression-algorithm { | leaf-list cert-compression-algorithm { | |||
if-feature "tls13 or dtls13"; | if-feature "tls13 or dtls13"; | |||
type ianatp:cert-compression-algorithm; | type ianatp:cert-compression-algorithm; | |||
description | description | |||
"A list certificate compression algorithms | "A list certificate compression algorithms | |||
supported by the client."; | supported by the client."; | |||
} | } | |||
leaf-list certificate-authorities { | leaf-list certificate-authorities { | |||
if-feature "tls13 or dtls13"; | if-feature "tls13 or dtls13"; | |||
type certificate-authority; | type certificate-authority; | |||
description | description | |||
"A list of the distinguished names of certificate authorities | "A list of the distinguished names of certificate | |||
acceptable to the client."; | authorities acceptable to the client."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
5.3. IANA (D)TLS profile YANG Module | 5.3. IANA (D)TLS Profile YANG Module | |||
The TLS and DTLS IANA registries are available from | The TLS and DTLS IANA registries are available from | |||
https://www.iana.org/assignments/tls-parameters/tls-parameters.txt | <https://www.iana.org/assignments/tls-parameters> and | |||
and https://www.iana.org/assignments/tls-extensiontype-values/tls- | <https://www.iana.org/assignments/tls-extensiontype-values>. Changes | |||
extensiontype-values.txt. Changes to TLS and DTLS related IANA | to TLS- and DTLS-related IANA registries are discussed in [RFC8447]. | |||
registries are discussed in [RFC8447]. | ||||
The values for all the parameters in the "iana-tls-profile" YANG | The values for all the parameters in the "iana-tls-profile" YANG | |||
module are defined in the TLS and DTLS IANA registries excluding the | module are defined in the TLS and DTLS IANA registries excluding the | |||
tls-version, dtls-version, spki-pin-set, and certificate-authority | tls-version, dtls-version, spki-pin-set, and certificate-authority | |||
parameters. The values of spki-pin-set and certificate-authority | parameters. The values of spki-pin-set and certificate-authority | |||
parameters will be specific to the IoT device. | parameters will be specific to the IoT device. | |||
The TLS and DTLS IANA registries do not maintain (D)TLS version | The TLS and DTLS IANA registries do not maintain (D)TLS version | |||
numbers. In (D)TLS 1.2 and below, "legacy_version" field in the | numbers. In (D)TLS 1.2 and below, the "legacy_version" field in the | |||
ClientHello message is used for version negotiation. However, in | ClientHello message is used for version negotiation. However, in | |||
(D)TLS 1.3, the "supported_versions" extension is used by the client | (D)TLS 1.3, the "supported_versions" extension is used by the client | |||
to indicate which versions of (D)TLS it supports. TLS 1.3 | to indicate which versions of (D)TLS it supports. TLS 1.3 | |||
ClientHello messages are identified as having a "legacy_version" of | ClientHello messages are identified as having a "legacy_version" of | |||
0x0303 and a "supported_versions" extension present with 0x0304 as | 0x0303 and a "supported_versions" extension present with 0x0304 as | |||
the highest version. DTLS 1.3 ClientHello messages are identified as | the highest version. DTLS 1.3 ClientHello messages are identified as | |||
having a "legacy_version" of 0xfefd and a "supported_versions" | having a "legacy_version" of 0xfefd and a "supported_versions" | |||
extension present with 0x0304 as the highest version. | extension present with 0x0304 as the highest version. | |||
In order to ease updating the "iana-tls-profile" YANG module with | In order to ease updating the "iana-tls-profile" YANG module with | |||
future (D)TLS versions, new (D)TLS version registries are defined in | future (D)TLS versions, new (D)TLS version registries are defined in | |||
Section 11.3 and Section 11.4. Whenever a new (D)TLS protocol | Section 11.3 and Section 11.4. Whenever a new (D)TLS protocol | |||
version is defined, the registry will be updated using expert review; | version is defined, the registry will be updated using expert review; | |||
the "iana-tls-profile" YANG module will be automatically updated by | the "iana-tls-profile" YANG module will be automatically updated by | |||
IANA. | IANA. | |||
Implementers or users of this specification must refer to the IANA- | Implementers or users of this specification must refer to the IANA- | |||
maintained "iana-tls-profile" YANG module available at XXXX [Note to | maintained "iana-tls-profile" YANG module available at | |||
RFC Editor to replace "XXXX" with the URL link of the IANA-maintained | <https://www.iana.org/assignments/yang-parameters>. | |||
"iana-tls-profile" YANG module]. | ||||
The initial version of the "iana-tls-profile" YANG module is defined | The initial version of the "iana-tls-profile" YANG module is defined | |||
as follows: | as follows: | |||
<CODE BEGINS> file "iana-tls-profile@2024-01-23.yang" | <CODE BEGINS> file "iana-tls-profile@2025-03-10.yang" | |||
module iana-tls-profile { | module iana-tls-profile { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:iana-tls-profile"; | namespace "urn:ietf:params:xml:ns:yang:iana-tls-profile"; | |||
prefix ianatp; | prefix ianatp; | |||
organization | organization | |||
"IANA"; | "IANA"; | |||
contact | contact | |||
" Internet Assigned Numbers Authority | " Internet Assigned Numbers Authority | |||
Postal: ICANN | Postal: ICANN | |||
12025 Waterfront Drive, Suite 300 | 12025 Waterfront Drive, Suite 300 | |||
Los Angeles, CA 90094-2536 | Los Angeles, CA 90094-2536 | |||
United States | United States | |||
Tel: +1 310 301 5800 | Tel: +1 310 301 5800 | |||
E-Mail: iana@iana.org>"; | Email: iana@iana.org>"; | |||
description | description | |||
"This module contains YANG definition for the (D)TLS profile. | "This module contains the YANG definition for the (D)TLS profile. | |||
Copyright (c) 2024 IETF Trust and the persons identified as | Copyright (c) 2025 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
All revisions of IETF and IANA published modules can be found | All revisions of IETF and IANA published modules can be found | |||
at the YANG Parameters registry | at the YANG Parameters registry | |||
(https://www.iana.org/assignments/yang-parameters). | (https://www.iana.org/assignments/yang-parameters). | |||
The initial version of this YANG module is part of RFC XXXX; | The initial version of this YANG module is part of RFC 9761; | |||
see the RFC itself for full legal notices. | see the RFC itself for full legal notices. | |||
// RFC Ed.: replace the IANA_TLS-PROFILE_URL and remove this note | ||||
The latest version of this YANG module is available at | The latest version of this YANG module is available at | |||
<IANA_TLS-PROFILE_URL>."; | https://www.iana.org/assignments/yang-parameters."; | |||
revision 2024-01-23 { | revision 2025-03-10 { | |||
description | description | |||
"Initial revision"; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: Manufacturer Usage Description (MUD) (D)TLS Profiles | "RFC 9761: Manufacturer Usage Description (MUD) for TLS and | |||
for IoT Devices"; | DTLS Profiles for Internet of Things (IoT) Devices"; | |||
} | } | |||
typedef extension-type { | typedef extension-type { | |||
type uint16; | type uint16; | |||
description | description | |||
"Extension type in the TLS ExtensionType Values registry as | "Extension type in the TLS ExtensionType Values registry as | |||
defined in Section 7 of RFC8447."; | defined in Section 7 of RFC 8447."; | |||
} | } | |||
typedef supported-group { | typedef supported-group { | |||
type uint16; | type uint16; | |||
description | description | |||
"Supported Group in the TLS Supported Groups registry as | "Supported Group in the TLS Supported Groups registry as | |||
defined in Section 9 of RFC8447."; | defined in Section 9 of RFC 8447."; | |||
} | } | |||
typedef signature-algorithm { | typedef signature-algorithm { | |||
type uint16; | type uint16; | |||
description | description | |||
"Signature algorithm in the TLS SignatureScheme registry as | "Signature algorithm in the TLS SignatureScheme registry as | |||
defined in Section 11 of RFC8446."; | defined in Section 11 of RFC 8446."; | |||
} | } | |||
typedef psk-key-exchange-mode { | typedef psk-key-exchange-mode { | |||
type uint8; | type uint8; | |||
description | description | |||
"Pre-shared key exchange mode in the TLS PskKeyExchangeMode | "Pre-shared key exchange mode in the TLS PskKeyExchangeMode | |||
registry as defined in Section 11 of RFC8446."; | registry as defined in Section 11 of RFC 8446."; | |||
} | } | |||
typedef application-protocol { | typedef application-protocol { | |||
type string; | type string; | |||
description | description | |||
"Application-Layer Protocol Negotiation (ALPN) Protocol ID | "Application-Layer Protocol Negotiation (ALPN) Protocol ID | |||
registry as defined in Section 6 of RFC7301."; | registry as defined in Section 6 of RFC 7301."; | |||
} | } | |||
typedef cert-compression-algorithm { | typedef cert-compression-algorithm { | |||
type uint16; | type uint16; | |||
description | description | |||
"Certificate compression algorithm in TLS Certificate | "Certificate compression algorithm in TLS Certificate | |||
Compression Algorithm IDs registry as defined in | Compression Algorithm IDs registry as defined in | |||
Section 7.3 of RFC8879."; | Section 7.3 of RFC 8879."; | |||
} | } | |||
typedef cipher-algorithm { | typedef cipher-algorithm { | |||
type uint16; | type uint16; | |||
description | description | |||
"Cipher suite in TLS Cipher Suites registry | "Cipher suite in TLS Cipher Suites registry | |||
as discussed in Section 11 of RFC8446."; | as discussed in Section 11 of RFC 8446."; | |||
} | } | |||
typedef tls-version { | typedef tls-version { | |||
type enumeration { | type enumeration { | |||
enum tls12 { | enum tls12 { | |||
value 1; | value 1; | |||
description | description | |||
"TLS Protocol Version 1.2. | "TLS Protocol Version 1.2. | |||
TLS 1.2 ClientHello contains | TLS 1.2 ClientHello contains | |||
skipping to change at page 19, line 44 ¶ | skipping to change at line 892 ¶ | |||
This document defines the YANG module "ietf-mud-tls", which has the | This document defines the YANG module "ietf-mud-tls", which has the | |||
following tree structure: | following tree structure: | |||
module: ietf-mud-tls | module: ietf-mud-tls | |||
augment /ietf-mud:mud: | augment /ietf-mud:mud: | |||
+--rw is-tls-dtls-profile-supported? boolean | +--rw is-tls-dtls-profile-supported? boolean | |||
The model is defined as follows: | The model is defined as follows: | |||
<CODE BEGINS> file "ietf-mud-tls@2020-10-20.yang" | <CODE BEGINS> file "ietf-mud-tls@2025-03-10.yang" | |||
module ietf-mud-tls { | module ietf-mud-tls { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-mud-tls"; | namespace "urn:ietf:params:xml:ns:yang:ietf-mud-tls"; | |||
prefix ietf-mud-tls; | prefix ietf-mud-tls; | |||
import ietf-mud { | import ietf-mud { | |||
prefix ietf-mud; | prefix ietf-mud; | |||
reference | reference | |||
"RFC 8520: Manufacturer Usage Description Specification"; | "RFC 8520: Manufacturer Usage Description Specification"; | |||
} | } | |||
organization | organization | |||
"IETF OPSAWG (Operations and Management Area Working Group)"; | "IETF OPSAWG (Operations and Management Area Working Group)"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/opsawg/> | "WG Web: <https://datatracker.ietf.org/wg/opsawg/> | |||
WG List: opsawg@ietf.org | WG List: opsawg@ietf.org | |||
Author: Konda, Tirumaleswar Reddy | Author: Tirumaleswar Reddy.K | |||
kondtir@gmail.com | kondtir@gmail.com | |||
"; | "; | |||
description | description | |||
"Extension to a MUD module to indicate (D)TLS | "Extension to a MUD module to indicate (D)TLS | |||
profile support. | profile support. | |||
Copyright (c) 2024 IETF Trust and the persons identified as | Copyright (c) 2025 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Revised BSD License | to the license terms contained in, the Revised BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC 9761; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
revision 2022-10-10 { | revision 2025-03-10 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: Manufacturer Usage Description (MUD) (D)TLS | "RFC 9761: Manufacturer Usage Description (MUD) for TLS and | |||
Profiles for IoT Devices"; | DTLS Profiles for Internet of Things (IoT) | |||
} | Devices"; | |||
} | ||||
augment "/ietf-mud:mud" { | augment "/ietf-mud:mud" { | |||
description | description | |||
"This adds an extension for a manufacturer | "This adds an extension for a manufacturer | |||
to indicate whether the (D)TLS profile is | to indicate whether the (D)TLS profile is | |||
supported by a device."; | supported by a device."; | |||
leaf is-tls-dtls-profile-supported { | leaf is-tls-dtls-profile-supported { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"This value will equal 'true' if a device supports | "This value will equal 'true' if a device supports | |||
(D)TLS profile."; | (D)TLS profile."; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | <CODE ENDS> | |||
6. Processing of the MUD (D)TLS Profile | 6. Processing of the MUD (D)TLS Profile | |||
The following text outlines the rules for a network security service | The following text outlines the rules for a network security service | |||
(e.g., firewall) to follow to process the MUD (D)TLS Profile so as to | (e.g., firewall) to follow to process the MUD (D)TLS Profile so as to | |||
avoid ossification: | avoid ossification: | |||
* If the (D)TLS parameter observed in a (D)TLS session is not | * If the (D)TLS parameter observed in a (D)TLS session is not | |||
specified in the MUD (D)TLS profile and the parameter is | specified in the MUD (D)TLS profile and the parameter is | |||
recognized by the firewall, it can identify unexpected (D)TLS | recognized by the firewall, it can identify unexpected (D)TLS | |||
usage, which can indicate the presence of unauthorized software or | usage, which can indicate the presence of unauthorized software or | |||
malware on an endpoint. The firewall can take several actions | malware on an endpoint. The firewall can take several actions, | |||
like block the (D)TLS session or raise an alert to quarantine and | such as blocking the (D)TLS session or raising an alert to | |||
remediate the compromised device. For example, if the cipher | quarantine and remediate the compromised device. For example, if | |||
suite TLS_RSA_WITH_AES_128_CBC_SHA in the ClientHello message is | the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA in the ClientHello | |||
not specified in the MUD (D)TLS profile and the cipher suite is | message is not specified in the MUD (D)TLS profile and the cipher | |||
recognized by the firewall, it can identify unexpected TLS usage. | suite is recognized by the firewall, it can identify unexpected | |||
TLS usage. | ||||
* If the (D)TLS parameter observed in a (D)TLS session is not | * If the (D)TLS parameter observed in a (D)TLS session is not | |||
specified in the MUD (D)TLS profile and the (D)TLS parameter is | specified in the MUD (D)TLS profile and the (D)TLS parameter is | |||
not recognized by the firewall, it can ignore the unrecognized | not recognized by the firewall, it can ignore the unrecognized | |||
parameter and the correct behavior is not to block the (D)TLS | parameter and the correct behavior is not to block the (D)TLS | |||
session. The behaviour is functionally equivalent to the | session. The behavior is functionally equivalent to the compliant | |||
compliant TLS middlebox description in Section 9.3 of [RFC8446] to | TLS middlebox description in Section 9.3 of [RFC8446] to ignore | |||
ignore all unrecognized cipher suites, extensions, and other | all unrecognized cipher suites, extensions, and other parameters. | |||
parameters. For example, if the cipher suite | For example, if the cipher suite TLS_CHACHA20_POLY1305_SHA256 in | |||
TLS_CHACHA20_POLY1305_SHA256 in the ClientHello message is not | the ClientHello message is not specified in the MUD (D)TLS profile | |||
specified in the MUD (D)TLS profile and the cipher suite is not | and the cipher suite is not recognized by the firewall, it can | |||
recognized by the firewall, it can ignore the unrecognized cipher | ignore the unrecognized cipher suite. This rule also ensures that | |||
suite. This rule also ensures that the network security service | the network security service will ignore the GREASE values | |||
will ignore the GREASE values advertised by TLS peers and | advertised by TLS peers and interoperate with the implementations | |||
interoperate with the implementations advertising GREASE values. | advertising GREASE values. | |||
* Deployments update at different rates, so an updated MUD (D)TLS | * Deployments update at different rates, so an updated MUD (D)TLS | |||
profile may support newer parameters. If the firewall does not | profile may support newer parameters. If the firewall does not | |||
recognize the newer parameters, an alert should be triggered to | recognize the newer parameters, an alert should be triggered to | |||
the firewall vendor and the IoT device owner or administrator. A | the firewall vendor and the IoT device owner or administrator. A | |||
firewall must be readily updatable, so that when new parameters in | firewall must be readily updatable so that when new parameters in | |||
the MUD (D)TLS profile are discovered that are not recognized by | the MUD (D)TLS profile are discovered that are not recognized by | |||
the firewall, it can be updated quickly. Most importantly, if the | the firewall, it can be updated quickly. Most importantly, if the | |||
firewall is not readily updatable, its protection efficacy to | firewall is not readily updatable, its protection efficacy to | |||
identify emerging malware will decrease with time. For example, | identify emerging malware will decrease with time. For example, | |||
if the cipher suite TLS_AES_128_CCM_8_SHA256 specified in the MUD | if the cipher suite TLS_AES_128_CCM_8_SHA256 specified in the MUD | |||
(D)TLS profile is not recognized by the firewall, an alert will be | (D)TLS profile is not recognized by the firewall, an alert will be | |||
triggered. Similarly, if the (D)TLS version specified in the MUD | triggered. Similarly, if the (D)TLS version specified in the MUD | |||
file is not recognized by the firewall, an alert will be | file is not recognized by the firewall, an alert will be | |||
triggered. | triggered. | |||
* If the MUD (D)TLS profile includes any parameters that are | * If the MUD (D)TLS profile includes any parameters that are | |||
susceptible to attacks (e.g., weaker cryptographic parameters), an | susceptible to attacks (e.g., weaker cryptographic parameters), an | |||
alert MUST be triggered to the firewall vendor and the IoT device | alert MUST be triggered to the firewall vendor and the IoT device | |||
owner or administrator. | owner or administrator. | |||
7. MUD File Example | 7. MUD File Example | |||
The example below contains (D)TLS profile parameters for a IoT device | The example below contains (D)TLS profile parameters for an IoT | |||
used to reach servers listening on port 443 using TCP transport. | device used to reach servers listening on port 443 using TCP | |||
JSON encoding of YANG modelled data [RFC7951] is used to illustrate | transport. JSON encoding of YANG-modeled data [RFC7951] is used to | |||
the example. | illustrate the example. | |||
{ | { | |||
"ietf-mud:mud": { | "ietf-mud:mud": { | |||
"mud-version": 1, | "mud-version": 1, | |||
"mud-url": "https://example.com/IoTDevice", | "mud-url": "https://example.com/IoTDevice", | |||
"last-update": "2024-08-05T03:56:40.105+10:00", | "last-update": "2024-08-05T03:56:40.105+10:00", | |||
"cache-validity": 100, | "cache-validity": 100, | |||
"extensions": [ | "extensions": [ | |||
"ietf-mud-tls" | "ietf-mud-tls" | |||
], | ], | |||
skipping to change at page 24, line 9 ¶ | skipping to change at line 1099 ¶ | |||
the MUD (D)TLS profile is not recognized by the firewall, it can | the MUD (D)TLS profile is not recognized by the firewall, it can | |||
ignore the unrecognized extension. Because the extension type | ignore the unrecognized extension. Because the extension type | |||
"token_binding" is specified in the profile, an alert will be | "token_binding" is specified in the profile, an alert will be | |||
triggered to the firewall vendor and the IoT device owner or | triggered to the firewall vendor and the IoT device owner or | |||
administrator to notify the firewall is not up-to-date. | administrator to notify the firewall is not up-to-date. | |||
* The two-byte values assigned by IANA for the cipher suites | * The two-byte values assigned by IANA for the cipher suites | |||
TLS_AES_128_GCM_SHA256 and TLS_AES_256_GCM_SHA384 are represented | TLS_AES_128_GCM_SHA256 and TLS_AES_256_GCM_SHA384 are represented | |||
in decimal format. | in decimal format. | |||
8. Software-Based ACLs and ACLs within a (D)TLS 1.3 Proxy | 8. Software-Based ACLs and ACLs Within a (D)TLS 1.3 Proxy | |||
While ACL technology is traditionally associated with fixed-length | While ACL technology is traditionally associated with fixed-length | |||
bit matching in hardware implementations, such as those found in | bit matching in hardware implementations, such as those found in | |||
TCAMs, the use of ACLs in software, like with iptables, allows for | Ternary Content-Addressable Memory (TCAM), the use of ACLs in | |||
more flexible matching criteria, including string matching. In the | software, like with iptables, allows for more flexible matching | |||
context of MUD (D)TLS profiles, the ability to match binary data and | criteria, including string matching. In the context of MUD (D)TLS | |||
strings is a deliberate choice, made to leverage the capabilities of | profiles, the ability to match binary data and strings is a | |||
software-based ACLs. This enables more dynamic and context-sensitive | deliberate choice made to leverage the capabilities of software-based | |||
access control, which is essential for the intended application of | ACLs. This enables more dynamic and context-sensitive access | |||
MUD. The DNS extension added to ACL in MUD specification [RFC8520] | control, which is essential for the intended application of MUD. The | |||
also require software-based ACLs. | DNS extension added to ACL in the MUD specification [RFC8520] also | |||
requires software-based ACLs. | ||||
Regarding the use of MUD (D)TLS ACL in a (D)TLS 1.3 proxy, the goal | Regarding the use of MUD (D)TLS ACL in a (D)TLS 1.3 proxy, the goal | |||
is for the proxy to intercept the (D)TLS handshake before applying | is for the proxy to intercept the (D)TLS handshake before applying | |||
any ACL rules. This implies that MUD (D)TLS ACL matching would need | any ACL rules. This implies that MUD (D)TLS ACL matching would need | |||
to occur after decrypting the encrypted TLS handshake messages within | to occur after decrypting the encrypted TLS handshake messages within | |||
the proxy. The proxy would inspect the handshake fields according to | the proxy. The proxy would inspect the handshake fields according to | |||
the MUD profile. ACL matching would be performed in two stages: | the MUD profile. ACL matching would be performed in two stages: | |||
first, by filtering clear-text TLS handshake message and second, by | first, by filtering clear-text TLS handshake message and second, by | |||
filtering after decrypting the TLS handshake messages. | filtering after decrypting the TLS handshake messages. | |||
skipping to change at page 25, line 6 ¶ | skipping to change at line 1145 ¶ | |||
across such diverse devices, it is not impossible. Malicious agents | across such diverse devices, it is not impossible. Malicious agents | |||
might manage to use (D)TLS profile parameters that resemble those of | might manage to use (D)TLS profile parameters that resemble those of | |||
legitimate devices. The feasibility of this depends on the nature of | legitimate devices. The feasibility of this depends on the nature of | |||
the profile parameters; for instance, parameters like certificate | the profile parameters; for instance, parameters like certificate | |||
authorities are complex to mimic, while others, such as signature | authorities are complex to mimic, while others, such as signature | |||
algorithms, may be easier to replicate. The difficulty in mimicking | algorithms, may be easier to replicate. The difficulty in mimicking | |||
these profiles correlates with the specificity of the profiles and | these profiles correlates with the specificity of the profiles and | |||
the variability in parameters used by different devices. | the variability in parameters used by different devices. | |||
Network security services should also rely on contextual network data | Network security services should also rely on contextual network data | |||
(e.g., domain name, IP address etc) to detect false negatives. For | (e.g., domain name, IP address, etc.) to detect false negatives. For | |||
example, network security services filter malcious domain names and | example, network security services filter malicious domain names and | |||
destination IP addresses with bad reputation score. Further, In | destination IP addresses with a bad reputation score. Furthermore, | |||
order to detect such malicious flows, anomaly detection (deep | in order to detect such malicious flows, anomaly detection (deep | |||
learning techniques on network data) can be used to detect malicious | learning techniques on network data) can be used to detect malicious | |||
agents using the same (D)TLS profile parameters as legitimate agent | agents using the same (D)TLS profile parameters as the legitimate | |||
on the IoT device. In anomaly detection, the main idea is to | agent on the IoT device. In anomaly detection, the main idea is to | |||
maintain rigorous learning of "normal" behavior and where an | maintain rigorous learning of "normal" behavior and where an | |||
"anomaly" (or an attack) is identified and categorized based on the | "anomaly" (or an attack) is identified and categorized based on the | |||
knowledge about the normal behavior and a deviation from this normal | knowledge about the normal behavior and a deviation from this normal | |||
behavior. Network security vendors leverage TLS parameters and | behavior. Network security vendors leverage TLS parameters and | |||
contextual network data to identify malware (for example, see [eve]). | contextual network data to identify malware (for example, see [EVE]). | |||
The efficacy of identifying malware in (D)TLS 1.3 flows will be | The efficacy of identifying malware in (D)TLS 1.3 flows will be | |||
significantly reduced without leveraging contextual network data or | significantly reduced without leveraging contextual network data or | |||
acting as a proxy, as the encryption in (D)TLS 1.3 obscures many of | acting as a proxy, as the encryption in (D)TLS 1.3 obscures many of | |||
the handshake details that could otherwise be used for detection. | the handshake details that could otherwise be used for detection. | |||
9.1. Challenges in Mimicking (D)TLS 1.2 Handshakes for IoT Devices | 9.1. Challenges in Mimicking (D)TLS 1.2 Handshakes for IoT Devices | |||
(D)TLS 1.2 generally does not require a proxy, as all fields in the | (D)TLS 1.2 generally does not require a proxy, as all fields in the | |||
(D)TLS profile are transmitted in clear text during the handshake. | (D)TLS profile are transmitted in cleartext during the handshake. | |||
While it is technically possible for an attacker to observe and mimic | While it is technically possible for an attacker to observe and mimic | |||
the handshake, an attacker would need to use a domain name and | the handshake, an attacker would need to use a domain name and | |||
destination IP address with a good reputation, obtain certificates | destination IP address with a good reputation, obtain certificates | |||
from the same CAs used by the IoT devices, and evade traffic analysis | from the same CAs used by the IoT devices, and evade traffic analysis | |||
tecniques (e.g., [eve], which detects malicious patterns in encrypted | techniques (e.g., [EVE], which detects malicious patterns in | |||
traffic without decryption). This task is particularly challenging | encrypted traffic without decryption). This task is particularly | |||
because IoT devices often have distinct (D)TLS profiles, varying | challenging because IoT devices often have distinct (D)TLS profiles | |||
between models and manufacturers. Unlike the developers of | that vary between models and manufacturers. Unlike the developers of | |||
legitimate applications, malware authors are under additional | legitimate applications, malware authors are under additional | |||
constraints such as avoiding any noticeable differences on the | constraints, such as avoiding any noticeable differences on the | |||
infected devices and the potential for take-down requests impacting | infected devices and the potential for take-down requests impacting | |||
their server infrastructure (e.g., certificate revocation by a CA | their server infrastructure (e.g., certificate revocation by a CA | |||
upon reporting). | upon reporting). | |||
9.2. Considerations for the "iana-tls-profile" Module | 9.2. Considerations for the "iana-tls-profile" Module | |||
This section follows the template defined in Section 3.7.1 of | This section follows the template defined in Section 3.7.1 of | |||
[I-D.ietf-netmod-rfc8407bis]. | [YANG-GUIDELINES]. | |||
The YANG module specified in this document defines a schema for data | The "iana-tls-profile" YANG module specified in this document defines | |||
can possibly be accessed via network management protocols such as | a schema for data can possibly be accessed via network management | |||
NETCONF [RFC6241] or RESTCONF [RFC8040]. These network management | protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. These | |||
protocols are required to use a secure transport layer and mutual | network management protocols are required to use a secure transport | |||
authentication, e.g., SSH [RFC6242] without the "none" authentication | layer and mutual authentication, e.g., SSH [RFC6242] without the | |||
option, Transport Layer Security (TLS) [RFC8446] with mutual X.509 | "none" authentication option, Transport Layer Security (TLS) | |||
authentication, and HTTPS with HTTP authentication (Section 11 of | [RFC8446] with mutual X.509 authentication, and HTTPS with HTTP | |||
[RFC9110]). | authentication (Section 11 of [RFC9110]). | |||
The Network Access Control Model (NACM) [RFC8341] provides the means | The Network Access Control Model (NACM) [RFC8341] provides the means | |||
to restrict access for particular users to a pre-configured subset of | to restrict access for particular users to a pre-configured subset of | |||
all available protocol operations and content. | all available protocol operations and content. | |||
This YANG module defines YANG enumerations, for a public IANA- | This YANG module defines YANG enumerations for a public IANA- | |||
maintained registry. | maintained registry. | |||
YANG enumerations are not security-sensitive, as they are statically | YANG enumerations are not security-sensitive, as they are statically | |||
defined in the publicly-accessible YANG module. IANA MAY deprecate | defined in the publicly-accessible YANG module. IANA MAY deprecate | |||
and/or obsolete enumerations over time as needed to address security | and/or obsolete enumerations over time as needed to address security | |||
issues. | issues. | |||
This module does not define any writable-nodes, RPCs, actions, or | This module does not define any writable-nodes, RPCs, actions, or | |||
notifications, and thus the security consideration for such is not | notifications, and thus the security consideration for such is not | |||
provided here. | provided here. | |||
9.3. Considerations for the "ietf-acl-tls" Module | 9.3. Considerations for the "ietf-acl-tls" Module | |||
This section follows the template defined in Section 3.7.1 of | This section follows the template defined in Section 3.7.1 of | |||
[I-D.ietf-netmod-rfc8407bis]. | [YANG-GUIDELINES]. | |||
The YANG module specified in this document defines a schema for data | The "ietf-acl-tls" YANG module specified in this document defines a | |||
that is designed to be accessed via network management protocols such | schema for data that is designed to be accessed via network | |||
as NETCONF [RFC6241] or RESTCONF [RFC8040]. These network management | management protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. | |||
protocols are required to use a secure transport layer and mutual | These network management protocols are required to use a secure | |||
authentication, e.g., SSH [RFC6242] without the "none" authentication | transport layer and mutual authentication, e.g., SSH [RFC6242] | |||
option, Transport Layer Security (TLS) [RFC8446] with mutual X.509 | without the "none" authentication option, Transport Layer Security | |||
authentication, and HTTPS with HTTP authentication (Section 11 of | (TLS) [RFC8446] with mutual X.509 authentication, and HTTPS with HTTP | |||
[RFC9110]). | authentication (Section 11 of [RFC9110]). | |||
The Network Access Control Model (NACM) [RFC8341] provides the means | The Network Access Control Model (NACM) [RFC8341] provides the means | |||
to restrict access for particular users to a pre-configured subset of | to restrict access for particular users to a pre-configured subset of | |||
all available protocol operations and content. | all available protocol operations and content. | |||
Please be aware that this YANG module uses groupings from other YANG | Please be aware that this YANG module uses groupings from other YANG | |||
modules that define nodes that may be considered sensitive or | modules that define nodes that may be considered sensitive or | |||
vulnerable in network environments. Please review the Security | vulnerable in network environments. Please review the Security | |||
Considerations for dependent YANG modules for information as to which | Considerations for dependent YANG modules for information as to which | |||
nodes may be considered sensitive or vulnerable in network | nodes may be considered sensitive or vulnerable in network | |||
environments. | environments. | |||
All the writable data nodes defined by this module may be considered | All the writable data nodes defined by this module may be considered | |||
sensitive or vulnerable in some network environments. For instance, | sensitive or vulnerable in some network environments. For instance, | |||
the addition or removal of references to trusted anchors, (D)TLS | the addition or removal of references to trusted anchors, (D)TLS | |||
versions, cipher suites etc., can dramatically alter the implemented | versions, cipher suites, etc., can dramatically alter the implemented | |||
security policy. For this reason, the NACM extension "default-deny- | security policy. For this reason, the NACM extension "default-deny- | |||
write" has been set for all data nodes defined in this module. | write" has been set for all data nodes defined in this module. | |||
Some of the readable data nodes defined in this YANG module may be | Some of the readable data nodes defined in this YANG module may be | |||
considered sensitive or vulnerable in some network environments. It | considered sensitive or vulnerable in some network environments. It | |||
is thus important to control read access (e.g., via get, get-config, | is thus important to control read access (e.g., via get, get-config, | |||
or notification) to these data nodes. The YANG module will provide | or notification) to these data nodes. The YANG module will provide | |||
insights into (D)TLS profiles of the IoT devices, the privacy | insights into (D)TLS profiles of the IoT devices, and the privacy | |||
considerations discussed in Section 10 needs to be taken into | considerations discussed in Section 10 need to be taken into account. | |||
account. | ||||
This module does not define any RPCs, actions, or notifications, and | This module does not define any RPCs, actions, or notifications, and | |||
thus the security consideration for such is not provided here. | thus the security consideration for such is not provided here. | |||
9.4. Considerations for the "ietf-mud-tls" Module | 9.4. Considerations for the "ietf-mud-tls" Module | |||
This section follows the template defined in Section 3.7.1 of | This section follows the template defined in Section 3.7.1 of | |||
[I-D.ietf-netmod-rfc8407bis]. | [YANG-GUIDELINES]. | |||
The YANG module specified in this document defines a schema for data | The "ietf-mud-tls" YANG module specified in this document defines a | |||
can possibly be accessed via network management protocols such as | schema for data can possibly be accessed via network management | |||
NETCONF [RFC6241] or RESTCONF [RFC8040]. These network management | protocols such as NETCONF [RFC6241] or RESTCONF [RFC8040]. These | |||
protocols are required to use a secure transport layer and mutual | network management protocols are required to use a secure transport | |||
authentication, e.g., SSH [RFC6242] without the "none" authentication | layer and mutual authentication, e.g., SSH [RFC6242] without the | |||
option, Transport Layer Security (TLS) [RFC8446] with mutual X.509 | "none" authentication option, Transport Layer Security (TLS) | |||
authentication, and HTTPS with HTTP authentication (Section 11 of | [RFC8446] with mutual X.509 authentication, and HTTPS with HTTP | |||
[RFC9110]). Note that the YANG module is not intended to be accessed | authentication (Section 11 of [RFC9110]). Note that the YANG module | |||
via NETCONF and RESTCONF. This has already been discussed in | is not intended to be accessed via NETCONF and RESTCONF. This has | |||
[RFC8520], and we are reiterating it here for the sake of | already been discussed in [RFC8520], and we are reiterating it here | |||
completeness. | for the sake of completeness. | |||
The Network Access Control Model (NACM) [RFC8341] provides the means | The Network Access Control Model (NACM) [RFC8341] provides the means | |||
to restrict access for particular users to a pre-configured subset of | to restrict access for particular users to a pre-configured subset of | |||
all available protocol operations and content. | all available protocol operations and content. | |||
Please be aware that this YANG module uses groupings from other YANG | Please be aware that this YANG module uses groupings from other YANG | |||
modules that define nodes that may be considered sensitive or | modules that define nodes that may be considered sensitive or | |||
vulnerable in network environments. Please review the Security | vulnerable in network environments. Please review the Security | |||
Considerations for dependent YANG modules for information as to which | Considerations for dependent YANG modules for information as to which | |||
nodes may be considered sensitive or vulnerable in network | nodes may be considered sensitive or vulnerable in network | |||
skipping to change at page 28, line 26 ¶ | skipping to change at line 1295 ¶ | |||
the NACM extension "default-deny-write" has been set for all data | the NACM extension "default-deny-write" has been set for all data | |||
nodes defined in this module. | nodes defined in this module. | |||
This module does not define any RPCs, actions, or notifications, and | This module does not define any RPCs, actions, or notifications, and | |||
thus the security consideration for such is not provided here. | thus the security consideration for such is not provided here. | |||
10. Privacy Considerations | 10. Privacy Considerations | |||
Privacy considerations discussed in Section 16 of [RFC8520] to not | Privacy considerations discussed in Section 16 of [RFC8520] to not | |||
reveal the MUD URL to an attacker need to be taken into | reveal the MUD URL to an attacker need to be taken into | |||
consideration. The MUD URL can be stored in Trusted Execution | consideration. The MUD URL can be stored in a Trusted Execution | |||
Environment (TEE) for secure operation, enhanced data security, and | Environment (TEE) for secure operation, enhanced data security, and | |||
prevent exposure to unauthorized software. The MUD URL MUST be | prevention of exposure to unauthorized software. The MUD URL MUST be | |||
encrypted and shared only with the authorized components in the | encrypted and shared only with the authorized components in the | |||
network (see Section 1.5 and Section 1.8 of [RFC8520]) so that an on- | network (see Sections 1.5 and 1.8 of [RFC8520]) so that an on-path | |||
path attacker cannot read the MUD URL and identify the IoT device. | attacker cannot read the MUD URL and identify the IoT device. | |||
Otherwise, it provides the attacker with guidance on what | Otherwise, it provides the attacker with guidance on what | |||
vulnerabilities may be present on the IoT device. Note that while | vulnerabilities may be present on the IoT device. Note that while | |||
protecting the MUD URL is valuable as described above, a compromised | protecting the MUD URL is valuable as described above, a compromised | |||
IoT device may be susceptible to malware performing vulnerability | IoT device may be susceptible to malware performing vulnerability | |||
analysis (and version mapping) of the legitimate software located in | analysis (and version mapping) of the legitimate software located in | |||
memory or on non-volatile storage (e.g., disk, NVRAM). However, the | memory or on non-volatile storage (e.g., disk, NVRAM). However, the | |||
malware on the IoT device is intended to be blocked from establishing | malware on the IoT device is intended to be blocked from establishing | |||
a (D)TLS connection with the C&C server to reveal this information | a (D)TLS connection with the C&C server to reveal this information | |||
because the connection would be blocked by the network security | because the connection would be blocked by the network security | |||
service supporting this specification. | service supporting this specification. | |||
Full handshake inspection (Section 4.1) requires a (D)TLS proxy | Full handshake inspection (Section 4.1) requires a (D)TLS proxy | |||
device which needs to decrypt traffic between the IoT device and its | device that needs to decrypt traffic between the IoT device and its | |||
server(s). There is a tradeoff between privacy of the data carried | server(s). There is a tradeoff between privacy of the data carried | |||
inside (D)TLS (especially e.g., personally identifiable information | inside (D)TLS (for example, personally identifiable information and | |||
and protected health information) and efficacy of endpoint security. | protected health information especially) and efficacy of endpoint | |||
The use of (D)TLS proxies is NOT RECOMMENDED whenever possible. For | security. The use of (D)TLS proxies is NOT RECOMMENDED whenever | |||
example, an enterprise firewall administrator can configure the | possible. For example, an enterprise firewall administrator can | |||
middlebox to bypass (D)TLS proxy functionality or payload inspection | configure the middlebox to bypass (D)TLS proxy functionality or | |||
for connections destined to specific well-known services. | payload inspection for connections destined to specific well-known | |||
Alternatively, a IoT device could be configured to reject all | services. Alternatively, an IoT device could be configured to reject | |||
sessions that involve proxy servers to specific well-known services. | all sessions that involve proxy servers to specific well-known | |||
In addition, mechanisms based on object security can be used by IoT | services. In addition, mechanisms based on object security can be | |||
devices to enable end-to-end security and the middlebox will not have | used by IoT devices to enable end-to-end security and the middlebox | |||
any access to the packet data. For example, Object Security for | will not have any access to the packet data. For example, Object | |||
Constrained RESTful Environments (OSCORE) [RFC8613] is a proposal | Security for Constrained RESTful Environments (OSCORE) [RFC8613] is a | |||
that protects CoAP messages by wrapping them in the COSE format | proposal that protects Constrained Application Protocol (CoAP) | |||
[RFC9052]. | messages by wrapping them in the CBOR Object Signing and Encryption | |||
(COSE) format [RFC9052]. | ||||
11. IANA Considerations | 11. IANA Considerations | |||
11.1. (D)TLS Profile YANG Modules | 11.1. (D)TLS Profile YANG Modules | |||
This document requests IANA to register the following URIs in the | IANA has registered the following URIs in the "ns" subregistry within | |||
"ns" subregistry within the "IETF XML Registry" [RFC3688]: | the "IETF XML Registry" [RFC3688]: | |||
URI: urn:ietf:params:xml:ns:yang:iana-tls-profile | URI: urn:ietf:params:xml:ns:yang:iana-tls-profile | |||
Registrant Contact: IANA. | Registrant Contact: IANA. | |||
XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
URI: urn:ietf:params:xml:ns:yang:ietf-acl-tls | URI: urn:ietf:params:xml:ns:yang:ietf-acl-tls | |||
Registrant Contact: IESG. | Registrant Contact: IESG. | |||
XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
URI: urn:ietf:params:xml:ns:yang:ietf-mud-tls | URI: urn:ietf:params:xml:ns:yang:ietf-mud-tls | |||
Registrant Contact: IESG. | Registrant Contact: IESG. | |||
XML: N/A; the requested URI is an XML namespace. | XML: N/A; the requested URI is an XML namespace. | |||
IANA is requested to create an IANA-maintained YANG Module called | IANA has created an IANA-maintained YANG module called "iana-tls- | |||
"iana-tls-profile", based on the contents of Section 5.3, which will | profile" based on the contents of Section 5.3, which allows for new | |||
allow for new (D)TLS parameters and (D)TLS versions to be added to | (D)TLS parameters and (D)TLS versions to be added to "client- | |||
"client-profile". | profile". | |||
This document requests IANA to register the following YANG modules in | IANA has registered the following YANG modules in the "YANG Module | |||
the "YANG Module Names" subregistry [RFC6020] within the "YANG | Names" registry [RFC6020] of the "YANG Parameters" registry group. | |||
Parameters" registry. | ||||
name: iana-tls-profile | Name: iana-tls-profile | |||
namespace: urn:ietf:params:xml:ns:yang:iana-tls-profile | Namespace: urn:ietf:params:xml:ns:yang:iana-tls-profile | |||
maintained by IANA: Y | Maintained by IANA: Y | |||
prefix: ianatp | Prefix: ianatp | |||
reference: RFC XXXX | Reference: RFC 9761 | |||
name: ietf-acl-tls | Name: ietf-acl-tls | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-acl-tls | Namespace: urn:ietf:params:xml:ns:yang:ietf-acl-tls | |||
maintained by IANA: N | Maintained by IANA: N | |||
prefix: ietf-acl-tls | Prefix: ietf-acl-tls | |||
reference: RFC XXXX | Reference: RFC 9761 | |||
name: ietf-mud-tls | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-mud-tls | Name: ietf-mud-tls | |||
maintained by IANA: N | Namespace: urn:ietf:params:xml:ns:yang:ietf-mud-tls | |||
prefix: ietf-mud-tls | Maintained by IANA: N | |||
reference: RFC XXXX | Prefix: ietf-mud-tls | |||
Reference: RFC 9761 | ||||
11.2. Considerations for the iana-tls-profile Module | 11.2. Considerations for the iana-tls-profile Module | |||
IANA is requested to create the initial version of the IANA- | IANA has created the initial version of the IANA-maintained YANG | |||
maintained YANG Module called "iana-tls-profile", based on the | module called "iana-tls-profile" based on the contents of | |||
contents of Section 5.3, which will allow for new (D)TLS parameters | Section 5.3, which will allow for new (D)TLS parameters and (D)TLS | |||
and (D)TLS versions to be added. IANA is requested to add this note: | versions to be added. IANA is requested to add this note: | |||
* tls-version and dtls-version values must not be directly added to | * tls-version and dtls-version values must not be directly added to | |||
the iana-tls-profile YANG module. They must instead be | the iana-tls-profile YANG module. Instead, they must be added to | |||
respectively added to the "ACL TLS Version Codes", and "ACL DTLS | the "ACL TLS Version Codes" and "ACL DTLS Version Codes" | |||
Version Codes" registries provided the new (D)TLS version has been | registries (respectively), provided the new (D)TLS version has | |||
standardized by the IETF. It allows new (D)TLS version to be | been standardized by the IETF. It allows a new (D)TLS version to | |||
added to the "iana-tls-profile" YANG Module. | be added to the "iana-tls-profile" YANG module. | |||
* (D)TLS parameters must not be directly added to the iana-tls- | * (D)TLS parameters must not be directly added to the iana-tls- | |||
profile YANG module. They must instead be added to the "ACL | profile YANG module. They must instead be added to the "ACL | |||
(D)TLS Parameters" registry if the new (D)TLS parameters can be | (D)TLS Parameters" registry if the new (D)TLS parameters can be | |||
used by a middlebox to identify a MUD non-compliant (D)TLS | used by a middlebox to identify a MUD non-compliant (D)TLS | |||
behavior. It allows new (D)TLS parameters to be added to the | behavior. It allows new (D)TLS parameters to be added to the | |||
"iana-tls-profile" YANG Module, | "iana-tls-profile" YANG module. | |||
When a 'tls-version' or 'dtls-version' value is respectively added to | When a "tls-version" or "dtls-version" value is added to the "ACL TLS | |||
the "ACL TLS Version Codes" or "ACL DTLS Version Codes" registry, a | Version Codes" or "ACL DTLS Version Codes" registry (respectively), a | |||
new "enum" statement must be added to the iana-tls-profile YANG | new "enum" statement must be added to the iana-tls-profile YANG | |||
module. The following "enum" statement, and substatements thereof, | module. The following "enum" statement, and substatements thereof, | |||
should be defined: | should be defined: | |||
"enum": Replicates the label from the registry. | "enum": Replicates the label from the registry. | |||
"value": Contains the IANA-assigned value corresponding to the | "value": Contains the IANA-assigned value corresponding to the | |||
'tls-version' or 'dtls-version'. | "tls-version" or "dtls-version". | |||
"description": Replicates the description from the registry. | "description": Replicates the description from the registry. | |||
"reference": RFC YYYY: <Title of the RFC >, where YYYY is the RFC | "reference": RFC YYYY: <Title of the RFC>, where YYYY is the RFC | |||
that added the ’tls-version’ or ‘dtls-version’ | that added the "tls-version" or "dtls-version" | |||
When a (D)TLS parameter is added to "ACL (D)TLS Parameters" registry, | When a (D)TLS parameter is added to the "ACL (D)TLS Parameters" | |||
a new "type" statement must be added to the iana-tls-profile YANG | registry, a new "type" statement must be added to the iana-tls- | |||
module. The following "type" statement, and substatements thereof, | profile YANG module. The following "type" statement, and | |||
should be defined: | substatements thereof, should be defined: | |||
"derived type": Replicates the parameter name from the registry. | "derived type": Replicates the parameter name from the registry. | |||
"built-in type": Contains the built-in YANG type. | "built-in type": Contains the built-in YANG type. | |||
"description": Replicates the description from the registry. | "description": Replicates the description from the registry. | |||
When the iana-tls-profile YANG module is updated, a new "revision" | When the iana-tls-profile YANG module is updated, a new "revision" | |||
statement must be added in front of the existing revision statements. | statement must be added in front of the existing revision statements. | |||
IANA is requested to add this note to "ACL TLS Version Codes", "ACL | IANA has added this note to "ACL TLS Version Codes", "ACL DTLS | |||
DTLS Version Codes", and "ACL (D)TLS Parameters" registries: | Version Codes", and "ACL (D)TLS Parameters" registries: | |||
When this registry is modified, the YANG module iana-tls-profile | ||||
must be updated as defined in [RFCXXXX]. | ||||
11.3. ACL TLS Version registry | When this registry is modified, the YANG module "iana-tls-profile" | |||
must be updated as defined in [RFC9761]. | ||||
IANA is requested to create a new registry titled "ACL TLS Version | 11.3. ACL TLS Version Registry | |||
Codes". Codes in this registry are used as valid values of 'tls- | ||||
version' parameter. Further assignments are to be made through | ||||
Expert Review [RFC8126]. Experts must ensure that the TLS protocol | ||||
version in a new registration is one that has been standardized by | ||||
the IETF. It is expected that the registry will be updated | ||||
infrequently, primarily when a new TLS version is standardized by the | ||||
IETF. | ||||
+-------+---------+-----------------+-----------+ | IANA has created a new registry titled "ACL TLS Version Codes". | |||
| Value | Label | Description | Reference | | Codes in this registry are used as valid values of "tls-version" | |||
| | | | | | parameter. Further assignments are to be made through Expert Review | |||
| | | | | | [RFC8126]. Experts must ensure that the TLS protocol version in a | |||
+-------+---------+-----------------+-----------+ | new registration is one that has been standardized by the IETF. It | |||
| 1 | tls12 | TLS Version 1.2 | [RFC5246] | | is expected that the registry will be updated infrequently, primarily | |||
+-------+---------+-----------------+-----------+ | when a new TLS version is standardized by the IETF. | |||
| 2 | tls13 | TLS Version 1.3 | [RFC8446] | | ||||
+-------+---------+-----------------+-----------+ | ||||
11.4. ACL DTLS version registry | +=======+=======+=================+===========+ | |||
| Value | Label | Description | Reference | | ||||
+=======+=======+=================+===========+ | ||||
| 1 | tls12 | TLS Version 1.2 | [RFC5246] | | ||||
+-------+-------+-----------------+-----------+ | ||||
| 2 | tls13 | TLS Version 1.3 | [RFC8446] | | ||||
+-------+-------+-----------------+-----------+ | ||||
IANA is requested to create a new registry titled "ACL DTLS Version | Table 1 | |||
Codes". Codes in this registry are used as valid values of 'dtls- | ||||
version' parameter. Further assignments are to be made through | ||||
Expert Review [RFC8126]. Experts must ensure that the DTLS protocol | ||||
version in a new registration is one that has been standardized by | ||||
the IETF. It is expected that the registry will be updated | ||||
infrequently, primarily when a new DTLS version is standardized by | ||||
the IETF. | ||||
+-------+---------+----------------+-----------------------+ | 11.4. ACL DTLS Version Registry | |||
| Value | Label | Description | Reference | | ||||
| | | | | | ||||
| | | | | | ||||
+-------+---------+----------------+-----------------------+ | ||||
| 1 |dtls12 |DTLS Version 1.2| [RFC6347] | | ||||
+-------+---------+----------------+-----------------------+ | ||||
| 2 |dtls13 |DTLS Version 1.3| [RFC9147| | | ||||
+-------+---------+----------------+-----------------------+ | ||||
11.5. ACL (D)TLS Parameters registry | IANA has created a new registry titled "ACL DTLS Version Codes". | |||
Codes in this registry are used as valid values of "dtls-version" | ||||
parameter. Further assignments are to be made through Expert Review | ||||
[RFC8126]. Experts must ensure that the DTLS protocol version in a | ||||
new registration is one that has been standardized by the IETF. It | ||||
is expected that the registry will be updated infrequently, primarily | ||||
when a new DTLS version is standardized by the IETF. | ||||
IANA is requested to create a new registry titled "ACL (D)TLS | +=======+========+==================+===========+ | |||
parameters". | | Value | Label | Description | Reference | | |||
+=======+========+==================+===========+ | ||||
| 1 | dtls12 | DTLS Version 1.2 | [RFC6347] | | ||||
+-------+--------+------------------+-----------+ | ||||
| 2 | dtls13 | DTLS Version 1.3 | [RFC9147] | | ||||
+-------+--------+------------------+-----------+ | ||||
The values for all the (D)TLS parameters in the registry are defined | Table 2 | |||
in the TLS and DTLS IANA registries | ||||
(https://www.iana.org/assignments/tls-parameters/tls-parameters.txt | ||||
and https://www.iana.org/assignments/tls-extensiontype-values/tls- | ||||
extensiontype-values.txt) excluding the tls-version and dtls-version | ||||
parameters. Further assignments are to be made through Expert Review | ||||
[RFC8126]. Experts must ensure that the (D)TLS parameter in a new | ||||
registration is one that has been standardized by the IETF. The | ||||
registry is expected to be updated periodically, primarily when a new | ||||
(D)TLS parameter is standardized by the IETF. The registry is | ||||
initially populated with the following parameters: | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | 11.5. ACL (D)TLS Parameters Registry | |||
| Parameter Name | YANG | JSON | | | ||||
| | Type | Type | Description | | ||||
| | | | | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| extension-type | uint16 | Number | Extension type | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| supported-group | uint16 | Number | Supported group | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| signature-algorithm | uint16 | Number | Signature algorithm | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| psk-key-exchange-mode | uint8 | Number | pre-shared key exchange mode | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| application-protocol | string | String | Application protocol | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| cert-compression-algorithm | uint16 | Number | Certificate compression algorithm | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| cipher-algorithm | uint16 | Number | Cipher Suite | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| tls-version | enumeration | String | TLS version | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
| dtls-version | enumeration | String | DTLS version | | ||||
+----------------------------+-------------+--------+---------------------------------------------+ | ||||
11.6. MUD Extensions registry | IANA has created a new registry titled "ACL (D)TLS parameters". | |||
IANA is requested to create a new MUD Extension Name "ietf-mud-tls" | The values for all the (D)TLS parameters in the registry are defined | |||
in the MUD Extensions IANA registry | in the TLS and DTLS IANA registries | |||
https://www.iana.org/assignments/mud/mud.xhtml. | (https://www.iana.org/assignments/tls-parameters/ and | |||
https://www.iana.org/assignments/tls-extensiontype-values/) excluding | ||||
the tls-version and dtls-version parameters. Further assignments are | ||||
to be made through Expert Review [RFC8126]. Experts must ensure that | ||||
the (D)TLS parameter in a new registration is one that has been | ||||
standardized by the IETF. The registry is expected to be updated | ||||
periodically, primarily when a new (D)TLS parameter is standardized | ||||
by the IETF. The registry has been populated with the following | ||||
initial parameters: | ||||
12. Acknowledgments | +============================+=============+========+==============+ | |||
| Parameter Name | YANG Type | JSON | Description | | ||||
| | | Type | | | ||||
+============================+=============+========+==============+ | ||||
| extension-type | uint16 | Number | Extension | | ||||
| | | | type | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| supported-group | uint16 | Number | Supported | | ||||
| | | | group | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| signature-algorithm | uint16 | Number | Signature | | ||||
| | | | algorithm | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| psk-key-exchange-mode | uint8 | Number | pre-shared | | ||||
| | | | key exchange | | ||||
| | | | mode | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| application-protocol | string | String | Application | | ||||
| | | | protocol | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| cert-compression-algorithm | uint16 | Number | Certificate | | ||||
| | | | compression | | ||||
| | | | algorithm | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| cipher-algorithm | uint16 | Number | Cipher Suite | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| tls-version | enumeration | String | TLS version | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
| dtls-version | enumeration | String | DTLS version | | ||||
+----------------------------+-------------+--------+--------------+ | ||||
Thanks to Flemming Andreasen, Shashank Jain, Michael Richardson, | Table 3 | |||
Piyush Joshi, Eliot Lear, Harsha Joshi, Qin Wu, Mohamed Boucadair, | ||||
Ben Schwartz, Eric Rescorla, Panwei William, Nick Lamb, Tom Petch, | ||||
Paul Wouters, Thomas Fossati and Nick Harper for the discussion and | ||||
comments. | ||||
Thanks to Xufeng Liu for YANGDOCTOR review. Thanks to Linda Dunbar | 11.6. MUD Extensions Registry | |||
for SECDIR review. Thanks to Qin Wu for OPSDIR review. Thanks to R. | ||||
Gieben for DNSDIR review. | ||||
Thanks to Roman Danyliw, Orie Steele, Éric Vyncke, Mahesh | IANA has created a new MUD Extension Name "ietf-mud-tls" in the "MUD | |||
Jethanandani, Murray Kucherawy, Zaheduzzaman Sarker and Deb Cooley | Extensions" IANA registry <https://www.iana.org/assignments/mud>. | |||
for the IESG review. | ||||
13. References | 12. References | |||
13.1. Normative References | ||||
[I-D.ietf-netconf-crypto-types] | 12.1. Normative References | |||
Watsen, K., "YANG Data Types and Groupings for | ||||
Cryptography", Work in Progress, Internet-Draft, draft- | ||||
ietf-netconf-crypto-types-34, 16 March 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-netconf- | ||||
crypto-types-34>. | ||||
[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>. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
skipping to change at page 35, line 38 ¶ | skipping to change at line 1604 ¶ | |||
[RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | [RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | |||
Ed., "HTTP Semantics", STD 97, RFC 9110, | Ed., "HTTP Semantics", STD 97, RFC 9110, | |||
DOI 10.17487/RFC9110, June 2022, | DOI 10.17487/RFC9110, June 2022, | |||
<https://www.rfc-editor.org/info/rfc9110>. | <https://www.rfc-editor.org/info/rfc9110>. | |||
[RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | |||
Datagram Transport Layer Security (DTLS) Protocol Version | Datagram Transport Layer Security (DTLS) Protocol Version | |||
1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, | 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, | |||
<https://www.rfc-editor.org/info/rfc9147>. | <https://www.rfc-editor.org/info/rfc9147>. | |||
[RFC9640] Watsen, K., "YANG Data Types and Groupings for | ||||
Cryptography", RFC 9640, DOI 10.17487/RFC9640, October | ||||
2024, <https://www.rfc-editor.org/info/rfc9640>. | ||||
[X690] ITU-T, "Information technology - ASN.1 encoding Rules: | [X690] ITU-T, "Information technology - ASN.1 encoding Rules: | |||
Specification of Basic Encoding Rules (BER), Canonical | Specification of Basic Encoding Rules (BER), Canonical | |||
Encoding Rules (CER) and Distinguished Encoding Rules | Encoding Rules (CER) and Distinguished Encoding Rules | |||
(DER)", ISO/IEC 8825-1:2002, 2002. | (DER)", ITU-T Recommendation X.690, July 2002, | |||
<https://www.itu.int/rec/T-REC-X.690-200207-S/en>. | ||||
13.2. Informative References | 12.2. Informative References | |||
[clear-as-mud] | [CLEAR-AS-MUD] | |||
"Clear as MUD: Generating, Validating and Applying IoT | Hamza, A., Ranathunga, D., Gharakheili, H. H., Roughan, | |||
Behaviorial Profiles", October 2019, | M., and V. Sivaraman, "Clear as MUD: Generating, | |||
Validating and Applying IoT Behaviorial Profiles | ||||
(Technical Report)", arXiv:1804.04358, | ||||
DOI 10.48550/arXiv.1804.04358, April 2018, | ||||
<https://arxiv.org/pdf/1804.04358.pdf>. | <https://arxiv.org/pdf/1804.04358.pdf>. | |||
[cryto-vulnerability] | [CRYPTO-VULNERABILITY] | |||
Perez, B., "Exploiting the Windows CryptoAPI | Perez, B., "Exploiting the Windows CryptoAPI | |||
Vulnerability", January 2020, | Vulnerability", January 2020, | |||
<https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/ | <https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/ | |||
CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF>. | CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF>. | |||
[eve] Cisco, "Encrypted Visibility Engine", | [EVE] Cisco, "Encrypted Visibility Engine", Cisco Secure | |||
<https://secure.cisco.com/secure-firewall/docs/encrypted- | Firewall documentation, <https://secure.cisco.com/secure- | |||
visibility-engine>. | firewall/docs/encrypted-visibility-engine>. | |||
[I-D.ietf-netmod-rfc8407bis] | ||||
Bierman, A., Boucadair, M., and Q. Wu, "Guidelines for | ||||
Authors and Reviewers of Documents Containing YANG Data | ||||
Models", Work in Progress, Internet-Draft, draft-ietf- | ||||
netmod-rfc8407bis-14, 5 July 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | ||||
rfc8407bis-14>. | ||||
[I-D.ietf-tls-esni] | ||||
Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS | ||||
Encrypted Client Hello", Work in Progress, Internet-Draft, | ||||
draft-ietf-tls-esni-20, 4 August 2024, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-tls- | ||||
esni-20>. | ||||
[I-D.ietf-uta-tls13-iot-profile] | [IoT-PROFILE] | |||
Tschofenig, H., Fossati, T., and M. Richardson, "TLS/DTLS | Tschofenig, H., Fossati, T., and M. Richardson, "TLS/DTLS | |||
1.3 Profiles for the Internet of Things", Work in | 1.3 Profiles for the Internet of Things", Work in | |||
Progress, Internet-Draft, draft-ietf-uta-tls13-iot- | Progress, Internet-Draft, draft-ietf-uta-tls13-iot- | |||
profile-09, 3 March 2024, | profile-13, 3 March 2025, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-uta- | <https://datatracker.ietf.org/doc/html/draft-ietf-uta- | |||
tls13-iot-profile-09>. | tls13-iot-profile-13>. | |||
[malware-doh] | [MALWARE-DOH] | |||
Cimpanu, C., "First-ever malware strain spotted abusing | Cimpanu, C., "First-ever malware strain spotted abusing | |||
new DoH (DNS over HTTPS) protocol", July 2019, | new DoH (DNS over HTTPS) protocol", ZDNET, July 2019, | |||
<https://www.zdnet.com/article/first-ever-malware-strain- | <https://www.zdnet.com/article/first-ever-malware-strain- | |||
spotted-abusing-new-doh-dns-over-https-protocol/>. | spotted-abusing-new-doh-dns-over-https-protocol/>. | |||
[malware-tls] | [MALWARE-TLS] | |||
Anderson, B. and D. McGrew, "TLS Beyond the Browser: | Anderson, B. and D. McGrew, "TLS Beyond the Browser: | |||
Combining End Host and Network Data to Understand | Combining End Host and Network Data to Understand | |||
Application Behavior", October 2019, | Application Behavior", IMC '19: Proceedings of the | |||
Internet Measurement Conference, pp. 379-392, | ||||
DOI 10.1145/3355369.3355601, October 2019, | ||||
<https://dl.acm.org/citation.cfm?id=3355601>. | <https://dl.acm.org/citation.cfm?id=3355601>. | |||
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | |||
the Network Configuration Protocol (NETCONF)", RFC 6020, | the Network Configuration Protocol (NETCONF)", RFC 6020, | |||
DOI 10.17487/RFC6020, October 2010, | DOI 10.17487/RFC6020, October 2010, | |||
<https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
[RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) | [RFC6066] Eastlake 3rd, D., "Transport Layer Security (TLS) | |||
Extensions: Extension Definitions", RFC 6066, | Extensions: Extension Definitions", RFC 6066, | |||
DOI 10.17487/RFC6066, January 2011, | DOI 10.17487/RFC6066, January 2011, | |||
skipping to change at page 38, line 10 ¶ | skipping to change at line 1709 ¶ | |||
[RFC8447] Salowey, J. and S. Turner, "IANA Registry Updates for TLS | [RFC8447] Salowey, J. and S. Turner, "IANA Registry Updates for TLS | |||
and DTLS", RFC 8447, DOI 10.17487/RFC8447, August 2018, | and DTLS", RFC 8447, DOI 10.17487/RFC8447, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8447>. | <https://www.rfc-editor.org/info/rfc8447>. | |||
[RFC8472] Popov, A., Ed., Nystroem, M., and D. Balfanz, "Transport | [RFC8472] Popov, A., Ed., Nystroem, M., and D. Balfanz, "Transport | |||
Layer Security (TLS) Extension for Token Binding Protocol | Layer Security (TLS) Extension for Token Binding Protocol | |||
Negotiation", RFC 8472, DOI 10.17487/RFC8472, October | Negotiation", RFC 8472, DOI 10.17487/RFC8472, October | |||
2018, <https://www.rfc-editor.org/info/rfc8472>. | 2018, <https://www.rfc-editor.org/info/rfc8472>. | |||
[RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS | ||||
(DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | ||||
<https://www.rfc-editor.org/info/rfc8484>. | ||||
[RFC8576] Garcia-Morchon, O., Kumar, S., and M. Sethi, "Internet of | [RFC8576] Garcia-Morchon, O., Kumar, S., and M. Sethi, "Internet of | |||
Things (IoT) Security: State of the Art and Challenges", | Things (IoT) Security: State of the Art and Challenges", | |||
RFC 8576, DOI 10.17487/RFC8576, April 2019, | RFC 8576, DOI 10.17487/RFC8576, April 2019, | |||
<https://www.rfc-editor.org/info/rfc8576>. | <https://www.rfc-editor.org/info/rfc8576>. | |||
[RFC8613] Selander, G., Mattsson, J., Palombini, F., and L. Seitz, | [RFC8613] Selander, G., Mattsson, J., Palombini, F., and L. Seitz, | |||
"Object Security for Constrained RESTful Environments | "Object Security for Constrained RESTful Environments | |||
(OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019, | (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019, | |||
<https://www.rfc-editor.org/info/rfc8613>. | <https://www.rfc-editor.org/info/rfc8613>. | |||
skipping to change at page 38, line 46 ¶ | skipping to change at line 1741 ¶ | |||
Jensen, "Discovery of Designated Resolvers", RFC 9462, | Jensen, "Discovery of Designated Resolvers", RFC 9462, | |||
DOI 10.17487/RFC9462, November 2023, | DOI 10.17487/RFC9462, November 2023, | |||
<https://www.rfc-editor.org/info/rfc9462>. | <https://www.rfc-editor.org/info/rfc9462>. | |||
[RFC9463] Boucadair, M., Ed., Reddy.K, T., Ed., Wing, D., Cook, N., | [RFC9463] Boucadair, M., Ed., Reddy.K, T., Ed., Wing, D., Cook, N., | |||
and T. Jensen, "DHCP and Router Advertisement Options for | and T. Jensen, "DHCP and Router Advertisement Options for | |||
the Discovery of Network-designated Resolvers (DNR)", | the Discovery of Network-designated Resolvers (DNR)", | |||
RFC 9463, DOI 10.17487/RFC9463, November 2023, | RFC 9463, DOI 10.17487/RFC9463, November 2023, | |||
<https://www.rfc-editor.org/info/rfc9463>. | <https://www.rfc-editor.org/info/rfc9463>. | |||
[slowloris] | [SLOWLORIS] | |||
Cisco, "Slowloris HTTP DoS", | ha.ckers.org security lab, "Slowloris HTTP DoS", Wayback | |||
Machine archive, March 2015, | ||||
<https://web.archive.org/web/20150315054838/ | <https://web.archive.org/web/20150315054838/ | |||
http://ha.ckers.org/slowloris/>. | http://ha.ckers.org/slowloris/>. | |||
[TLS-ESNI] Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS | ||||
Encrypted Client Hello", Work in Progress, Internet-Draft, | ||||
draft-ietf-tls-esni-23, 19 February 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-tls- | ||||
esni-23>. | ||||
[X501] "Information Technology - Open Systems Interconnection - | [X501] "Information Technology - Open Systems Interconnection - | |||
The Directory: Models", ITU-T X.501, 1993. | The Directory: Models", ITU-T Recommendation X.501, | |||
November 1993, | ||||
<https://www.itu.int/rec/T-REC-X.501-199311-S/en>. | ||||
[YANG-GUIDELINES] | ||||
Bierman, A., Boucadair, M., and Q. Wu, "Guidelines for | ||||
Authors and Reviewers of Documents Containing YANG Data | ||||
Models", Work in Progress, Internet-Draft, draft-ietf- | ||||
netmod-rfc8407bis-22, 14 January 2025, | ||||
<https://datatracker.ietf.org/doc/html/draft-ietf-netmod- | ||||
rfc8407bis-22>. | ||||
Acknowledgments | ||||
Thanks to Flemming Andreasen, Shashank Jain, Michael Richardson, | ||||
Piyush Joshi, Eliot Lear, Harsha Joshi, Qin Wu, Mohamed Boucadair, | ||||
Ben Schwartz, Eric Rescorla, Panwei William, Nick Lamb, Tom Petch, | ||||
Paul Wouters, Thomas Fossati, and Nick Harper for the discussion and | ||||
comments. | ||||
Thanks to Xufeng Liu for YANGDOCTOR review. Thanks to Linda Dunbar | ||||
for SECDIR review. Thanks to Qin Wu for OPSDIR review. Thanks to | ||||
R. Gieben for DNSDIR review. | ||||
Thanks to Roman Danyliw, Orie Steele, Éric Vyncke, Mahesh | ||||
Jethanandani, Murray Kucherawy, Zaheduzzaman Sarker, and Deb Cooley | ||||
for the IESG review. | ||||
Authors' Addresses | Authors' Addresses | |||
Tirumaleswar Reddy | Tirumaleswar Reddy.K | |||
Nokia | Nokia | |||
India | India | |||
Email: kondtir@gmail.com | Email: kondtir@gmail.com | |||
Dan Wing | Dan Wing | |||
Citrix Systems, Inc. | Citrix Systems, Inc. | |||
4988 Great America Pkwy | 4988 Great America Pkwy | |||
Santa Clara, CA 95054 | Santa Clara, CA 95054 | |||
United States of America | United States of America | |||
Email: danwing@gmail.com | Email: danwing@gmail.com | |||
End of changes. 194 change blocks. | ||||
627 lines changed or deleted | 639 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |