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.