| rfc9761xml2.original.xml | rfc9761.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='UTF-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
| <?rfc toc="yes"?> | ||||
| <?rfc tocompact="yes"?> | ||||
| <?rfc tocdepth="3"?> | ||||
| <?rfc tocindent="yes"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?rfc sortrefs="yes"?> | ||||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <rfc category="std" docName="draft-ietf-opsawg-mud-tls-18" ipr="trust200902"> | ||||
| <front> | ||||
| <title abbrev="MUD (D)TLS Profile for IoT devices">Manufacturer Usage | ||||
| Description (MUD) (D)TLS Profiles for IoT Devices</title> | ||||
| <author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy"> | <!DOCTYPE rfc [ | |||
| <organization>Nokia</organization> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | ||||
| <!ENTITY nbhy "‑"> | ||||
| <!ENTITY wj "⁠"> | ||||
| ]> | ||||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ie | ||||
| tf-opsawg-mud-tls-18" number="9761" ipr="trust200902" obsoletes="" updates="" su | ||||
| bmissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" consensus="true | ||||
| " symRefs="true" sortRefs="true" version="3"> | ||||
| <front> | ||||
| <title abbrev="MUD (D)TLS Profile for IoT devices">Manufacturer Usage | ||||
| Description (MUD) for TLS and DTLS Profiles for Internet of Things (IoT) Dev | ||||
| ices</title> | ||||
| <seriesInfo name="RFC" value="9761"/> | ||||
| <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K"> | ||||
| <organization>Nokia</organization> | ||||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | ||||
| <country>India</country> | <country>India</country> | |||
| </postal> | </postal> | |||
| <email>kondtir@gmail.com</email> | <email>kondtir@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Dan Wing" initials="D." surname="Wing"> | <author fullname="Dan Wing" initials="D." surname="Wing"> | |||
| <organization abbrev="Citrix">Citrix Systems, Inc.</organization> | <organization abbrev="Citrix">Citrix Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>4988 Great America Pkwy</street> | <street>4988 Great America Pkwy</street> | |||
| <city>Santa Clara</city> | <city>Santa Clara</city> | |||
| <region>CA</region> | <region>CA</region> | |||
| <code>95054</code> | <code>95054</code> | |||
| <country>United States of America</country> | ||||
| <country>USA</country> | ||||
| </postal> | </postal> | |||
| <email>danwing@gmail.com</email> | <email>danwing@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Blake Anderson" initials="B." surname="Anderson"> | <author fullname="Blake Anderson" initials="B." surname="Anderson"> | |||
| <organization abbrev="Cisco">Cisco Systems, Inc.</organization> | <organization abbrev="Cisco">Cisco Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>170 West Tasman Dr</street> | <street>170 West Tasman Dr</street> | |||
| <city>San Jose</city> | <city>San Jose</city> | |||
| <region>CA</region> | <region>CA</region> | |||
| <code>95134</code> | <code>95134</code> | |||
| <country>United States of America</country> | ||||
| <country>USA</country> | ||||
| </postal> | </postal> | |||
| <email>blake.anderson@cisco.com</email> | <email>blake.anderson@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="April" year="2025"/> | ||||
| <area>OPS</area> | ||||
| <workgroup>opsawg</workgroup> | ||||
| <date /> | <keyword>Network Security Access Control Lists (ACLs)</keyword> | |||
| <keyword>Firewall Policies</keyword> | ||||
| <workgroup>OPSAWG WG</workgroup> | <keyword>Certificate Validation</keyword> | |||
| <keyword>Unauthorized Software Detection</keyword> | ||||
| <keyword>Malware Detection</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This memo extends the Manufacturer Usage Description (MUD) | <t>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 unauthorized | unexpected (D)TLS usage, which can indicate the presence of unauthorized | |||
| software, malware, or security policy-violating traffic on an | software, malware, or security policy-violating traffic on an | |||
| endpoint.</t> | endpoint.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="intro" title="Introduction"> | <section anchor="intro" numbered="true" toc="default"> | |||
| <t>Encryption is necessary to enhance the privacy of end users using IoT | <name>Introduction</name> | |||
| devices. TLS <xref target="RFC8446"></xref> and DTLS <xref | <t>Encryption is necessary to enhance the privacy of end users using Inter | |||
| target="RFC9147"></xref> are the dominant protocols (counting all (D)TLS | net of Things (IoT) | |||
| versions) providing encryption for IoT device traffic. Unfortunately, in | devices. TLS <xref target="RFC8446" format="default"/> and DTLS <xref targ | |||
| et="RFC9147" format="default"/> are the dominant protocols (counting all (D)TLS | ||||
| versions) that provide encryption for IoT device traffic. Unfortunately, i | ||||
| n | ||||
| conjunction with IoT applications' rise of encryption, malware authors | conjunction with IoT applications' rise of encryption, malware authors | |||
| are also using encryption which thwarts network-based analysis such as | are also using encryption that thwarts network-based analysis, such as | |||
| deep packet inspection (DPI). Other mechanisms are thus needed to help | deep packet inspection (DPI). Thus, other mechanisms are needed to help | |||
| detect malware running on an IoT device.</t> | detect malware running on an IoT device.</t> | |||
| <t>Malware often reuses certain libraries, and there are notable | <t>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 is no | |||
| Several common patterns in the use of (D)TLS by malware include: <list | t malware. | |||
| style="symbols"> | Several common patterns in the use of (D)TLS by malware include: </t> | |||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>Use of older and weaker cryptographic parameters.</t> | <t>Use of older and weaker cryptographic parameters.</t> | |||
| </li> | ||||
| <t>TLS server name indication (SNI) extension <xref | <li> | |||
| target="RFC6066"></xref> and server certificates are composed of | <t>TLS server name indication (SNI) extension <xref target="RFC6066" f | |||
| ormat="default"/> and server certificates are composed of | ||||
| subjects with characteristics of a domain generation algorithm (DGA) | subjects with characteristics of a domain generation algorithm (DGA) | |||
| (e.g., 'www.33mhwt2j.net').</t> | (e.g., "www.33mhwt2j.net").</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Higher use of self-signed certificates compared with typical | <t>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 authority (C A) trusted by the | |||
| device.</t> | device.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Discrepancies in the SNI TLS extension and the DNS names in the | <t>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.</t> | message.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Discrepancies in the key exchange algorithm and the client public | <t>Discrepancies in the key exchange algorithm and the client public | |||
| key length in comparison with legitimate flows. As a reminder, the | key length in comparison with legitimate flows. As a reminder, the | |||
| Client Key Exchange message has been removed from TLS 1.3.</t> | Client Key Exchange message has been removed from TLS 1.3.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Lower diversity in TLS client advertised extensions compared to | <t>Lower diversity in extensions advertised by TLS clients compared to | |||
| legitimate clients.</t> | legitimate clients.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Using privacy enhancing technologies like Tor, Psiphon, Ultrasurf | <t>Using privacy enhancing technologies like Tor, Psiphon, Ultrasurf | |||
| (see <xref target="malware-tls"></xref>), and evasion techniques | (see <xref target="MALWARE-TLS" format="default"/>), and evasion techn iques | |||
| such as ClientHello randomization.</t> | such as ClientHello randomization.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Using an alternative DNS server (via encrypted transport) to | <t>Using an alternative DNS server (via encrypted transport) to | |||
| avoid detection by malware DNS filtering services <xref | avoid detection by malware DNS filtering services <xref target="MALWAR | |||
| target="malware-doh"></xref>. Specifically, malware may not use the | E-DOH" format="default"/>. Specifically, malware may not use the | |||
| Do53 or encrypted DNS server provided by the local network (DHCP, | Do53 or encrypted DNS server provided by the local network (DHCP, | |||
| DNR <xref target="RFC9462"></xref> or DDR <xref | Discovery of Network-designated Resolvers (DNR) <xref target="RFC9463" | |||
| target="RFC9462"></xref>).</t> | format="default"/>, or Discovery of Designated Resolvers (DDR) <xref target="RF | |||
| </list></t> | C9462" format="default"/>).</t> | |||
| </li> | ||||
| <t>If (D)TLS profile parameters are defined, the following functions are | </ul> | |||
| possible which have a positive impact on the local network security:</t> | <t>If (D)TLS profile parameters are defined, the following functions that | |||
| have a positive impact on the local network security are possible:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>Permit intended DTLS or TLS use, and block malicious DTLS or | ||||
| TLS use. | ||||
| <t><list style="symbols"> | This is superior to the Access Control Lists | |||
| <t>Permit intended DTLS or TLS use and block malicious DTLS or TLS | (ACLs) of Layers 3 and 4 in "Manufacturer Usage Description Specificat | |||
| use. This is superior to the layers 3 and 4 Access Control Lists | ion" <xref | |||
| (ACLs) of Manufacturer Usage Description Specification (MUD) <xref | target="RFC8520" format="default"/>, which are not suitable for broad | |||
| target="RFC8520"></xref> which are not suitable for broad | ||||
| communication patterns. The goal of this document is to enhance and | communication patterns. The goal of this document is to enhance and | |||
| complement the existing MUD specifications, rather than to undermine | complement the existing MUD specifications rather than undermine | |||
| them.</t> | them.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Ensure TLS certificates are valid. Several TLS deployments have | <t>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 <xref | certificate validation function (see <xref target="CRYPTO-VULNERABILIT | |||
| target="cryto-vulnerability"></xref>). By observing (D)TLS profile | Y" format="default"/>). By observing (D)TLS profile | |||
| parameters, a network element can detect when the TLS SNI mismatches | parameters, a network element can detect when the TLS SNI mismatches | |||
| the SubjectAltName and when the server's certificate is invalid. In | the SubjectAltName and when the server's certificate is invalid. In | |||
| (D)TLS 1.2 <xref target="RFC5246"></xref><xref | (D)TLS 1.2 <xref target="RFC5246" format="default"/> <xref target="RFC | |||
| target="RFC6347"></xref>, the ClientHello, ServerHello and | 6347" format="default"/>, the ClientHello, ServerHello, and | |||
| Certificate messages are all sent in clear-text. This check is not | Certificate messages are all sent in cleartext. This check is not | |||
| possible with (D)TLS 1.3, which encrypts the Certificate message | possible with (D)TLS 1.3, which encrypts the Certificate message and | |||
| thereby hiding the server identity from any intermediary. In (D)TLS | therefore hides the server identity from any intermediary. In (D)TLS | |||
| 1.3, the server certificate validation functions should be executed | 1.3, the server certificate validation functions should be executed | |||
| within an on-path (D)TLS proxy, if such a proxy exists.</t> | within an on-path (D)TLS proxy if such a proxy exists.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Support new communication patterns. An IoT device can learn a new | <t>Support new communication patterns. An IoT device can learn a new | |||
| capability, and the new capability can change the way the IoT device | capability, and the new capability can change the way the IoT device | |||
| communicates with other devices located in the local network and | communicates with other devices located in the local network and the | |||
| Internet. There would be an inaccurate policy if an IoT device | Internet. There would be an inaccurate policy if an IoT device | |||
| rapidly changes the IP addresses and domain names it communicates | rapidly changes the IP addresses and domain names it communicates | |||
| with while the MUD ACLs were slower to update (see <xref | with while the MUD ACLs were slower to update (see <xref target="CLEAR | |||
| target="clear-as-mud"></xref>). In such a case, observable (D)TLS | -AS-MUD" format="default"/>). In such a case, observable (D)TLS | |||
| profile parameters can be used to permit intended use and to block | profile parameters can be used to permit intended use and block | |||
| malicious behavior from the IoT device.</t> | malicious behavior from the IoT device.</t> | |||
| </list></t> | </li> | |||
| </ul> | ||||
| <t>The YANG module specified in <xref target="YANG2"></xref> of this | <t>The YANG module specified in <xref target="YANG2" format="default"/> of | |||
| document is an extension of YANG Data Model for Network Access Control | this | |||
| Lists (ACLs) <xref target="RFC8519"></xref> to enhance MUD <xref | document is an extension of "YANG Data Model for Network Access Control | |||
| target="RFC8520"></xref> to model observable (D)TLS profile parameters. | Lists (ACLs)" <xref target="RFC8519" format="default"/> to enhance MUD <xr | |||
| ef target="RFC8520" format="default"/> to model observable (D)TLS profile parame | ||||
| ters. | ||||
| Using these (D)TLS profile parameters, an active MUD-enforcing network | Using these (D)TLS profile parameters, an active MUD-enforcing network | |||
| security service (e.g., firewall) can identify MUD non-compliant (D)TLS | security service (e.g., firewall) can identify MUD non-compliant (D)TLS | |||
| behavior indicating outdated cryptography or malware. This detection can | behavior indicating outdated cryptography or malware. This detection can | |||
| prevent malware downloads, block access to malicious domains, enforce | prevent malware downloads, block access to malicious domains, enforce | |||
| use of strong ciphers, stop data exfiltration, etc. In addition, | use of strong ciphers, stop data exfiltration, etc. In addition, | |||
| organizations may have policies around acceptable ciphers and | organizations may have policies around acceptable ciphers and | |||
| certificates for the websites the IoT devices connect to. Examples | certificates for the websites the IoT devices connect to. Examples | |||
| include no use of old and less secure versions of TLS, no use of | include no use of old and less secure versions of TLS, no use of | |||
| self-signed certificates, deny-list or accept-list of Certificate | self-signed certificates, deny-list or accept-list of Certificate | |||
| Authorities, valid certificate expiration time, etc. These policies can | Authorities, valid certificate expiration time, etc. These policies can | |||
| be enforced by observing the (D)TLS profile parameters. Network security | be enforced by observing the (D)TLS profile parameters. Network security | |||
| services can use the IoT device's (D)TLS profile parameters to identify | services can use the IoT device's (D)TLS profile parameters to identify | |||
| legitimate flows by observing (D)TLS sessions, and can make inferences | legitimate flows by observing (D)TLS sessions, and can make inferences | |||
| to permit legitimate flows and to block malicious or insecure flows. | to permit legitimate flows and block malicious or insecure flows. | |||
| Additionally, it supports network communications adherence to security | Additionally, it supports network communications adherence to security | |||
| policies by ensuring that TLS certificates are valid and deprecated | policies by ensuring that TLS certificates are valid and deprecated | |||
| cipher suites are avoided. The proposed technique is also suitable in | cipher suites are avoided. The proposed technique is also suitable in | |||
| deployments where decryption techniques are not ideal due to privacy | deployments where decryption techniques are not ideal due to privacy | |||
| concerns, non-cooperating end-points, and expense.</t> | concerns, non-cooperating endpoints, and expense.</t> | |||
| </section> | </section> | |||
| <section anchor="notation" numbered="true" toc="default"> | ||||
| <name>Terminology</name> | ||||
| <t> | ||||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
| IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
| RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| <section anchor="notation" title="Terminology"> | <dl newline="false" spacing="normal"> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <dt>(D)TLS:</dt><dd>Used for statements that apply to both | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | Transport Layer Security <xref target="RFC8446" format="default"/> | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14 | and Datagram Transport Layer Security <xref target="RFC6347" | |||
| <xref target="RFC2119"></xref><xref target="RFC8174"></xref> when, and | format="default"/>. Specific terms "TLS" and "DTLS" are used for any | |||
| only when, they appear in all capitals, as shown here.</t> | statement that applies to either protocol alone.</dd> | |||
| <dt>DoH/DoT:</dt><dd>Refers to DNS-over-HTTPS <xref target="RFC8484" | ||||
| <t>"(D)TLS" is used for statements that apply to both Transport Layer | format="default"/> and/or DNS-over-TLS <xref target="RFC7858" | |||
| Security <xref target="RFC8446"></xref> and Datagram Transport Layer | format="default"/>.</dd> | |||
| Security <xref target="RFC6347"></xref>. Specific terms "TLS" and "DTLS" | <dt>Middlebox:</dt><dd>A middlebox that interacts with TLS traffic | |||
| are used for any statement that applies to either protocol alone.</t> | can either act as a TLS proxy, intercepting and decrypting the | |||
| traffic for inspection, or inspect the traffic between TLS peers | ||||
| <t>'DoH/DoT' refers to DNS-over-HTTPS and/or DNS-over-TLS <xref | without terminating the TLS session.</dd> | |||
| target="RFC7858"></xref>.</t> | <dt>Endpoint Security Agent:</dt><dd>An Endpoint Security Agent is a | |||
| software installed on endpoint devices that protects them from | ||||
| <t>Middlebox: A middlebox that interacts with TLS traffic can either act | security threats. It provides features such as malware protection, | |||
| as a TLS proxy, intercepting and decrypting the traffic for inspection, | firewall, and intrusion prevention to ensure the device's security | |||
| or inspect the traffic between TLS peers without terminating the TLS | and integrity.</dd> | |||
| session.</t> | <dt>Network Security Service:</dt><dd>A Network Security Service | |||
| refers to a set of mechanisms designed to protect network | ||||
| <t>Endpoint Security Agent: An Endpoint Security Agent is a software | communications and resources from attacks.</dd> | |||
| installed on endpoint devices that protects them from security threats. | </dl> | |||
| It provides features such as malware protection, firewall, and intrusion | ||||
| prevention to ensure the device's security and integrity.</t> | ||||
| <t>Network Security Service: A Network Security Service refers to a set | ||||
| of mechanisms designed to protect network communications and resources | ||||
| from attacks.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Overview of MUD (D)TLS profiles for IoT devices"> | <name>Overview of MUD (D)TLS Profiles for IoT devices</name> | |||
| <t>In Enterprise networks, protection and detection are typically done | <t>In Enterprise networks, protection and detection are typically done | |||
| both on end hosts and in the network. Endpoint security agents have deep | both on end hosts and in the network. Endpoint security agents have deep | |||
| visibility on the devices where they are installed, whereas the network | visibility on the devices where they are installed, whereas the network | |||
| has broader visibility. Installing endpoint security agents may not be a | has broader visibility. Installing endpoint security agents may not be a | |||
| viable option on IoT devices, and network security service is an | viable option on IoT devices, and network security service is an | |||
| efficient means to protect such IoT devices. If the IoT device supports | efficient means to protect such IoT devices. If the IoT device supports | |||
| a MUD (D)TLS profile, the (D)TLS profile parameters of the IoT device | a MUD (D)TLS profile, the (D)TLS profile parameters of the IoT device | |||
| can be used by a middlebox to detect and block malware communication, | can be used by a middlebox to detect and block malware communication, | |||
| while at the same time preserving the privacy of legitimate uses of | while at the same time preserving the privacy of legitimate uses of | |||
| encryption. In addition, it enforces organizational security policies, | encryption. In addition, it enforces organizational security policies, | |||
| ensuring that devices comply. By monitoring (D)TLS parameters, network | ensuring that devices comply. By monitoring (D)TLS parameters, network | |||
| administrators can identify and mitigate the use of outdated TLS | administrators can identify and mitigate the use of outdated TLS | |||
| versions, cryptographic algorithms and non-compliant certificates. The | versions, cryptographic algorithms, and non-compliant certificates. The | |||
| middlebox need not proxy (D)TLS but can passively observe the parameters | middlebox need not proxy (D)TLS, but can passively observe the parameters | |||
| of (D)TLS handshakes from IoT devices and gain visibility into TLS 1.2 | of (D)TLS handshakes from IoT devices and gain visibility into TLS 1.2 | |||
| parameters and partial visibility into TLS 1.3 parameters.</t> | parameters and partial visibility into TLS 1.3 parameters.</t> | |||
| <t>Malicious agents can try to use the (D)TLS profile parameters of | <t>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 have | from several manufacturers. In other words, malware developers will have | |||
| to develop malicious agents per IoT device type, manufacturer and model, | to develop malicious agents per IoT device type, manufacturer and model, | |||
| infect the device with the tailored malware agent and will have keep up | infect the device with the tailored malware agent, and will have keep up | |||
| with updates to the device's (D)TLS profile parameters over time. | with updates to the device's (D)TLS profile parameters over time. | |||
| Furthermore, the malware's command and control server certificates need | Furthermore, the malware's command and control server certificates need | |||
| to be signed by the same certifying authorities trusted by the IoT | to be signed by the same certifying authorities trusted by the IoT | |||
| devices. Typically, IoT devices have an infrastructure that supports a | devices. Typically, IoT devices have an infrastructure that supports a | |||
| rapid deployment of updates, and malware agents will have a | rapid deployment of updates, and malware agents will have a | |||
| near-impossible task of similarly deploying updates and continuing to | near-impossible task of similarly deploying updates and continuing to | |||
| mimic the TLS behavior of the IoT device it has infected.</t> | mimic the TLS behavior of the IoT device it has infected.</t> | |||
| <t>However, if the IoT device has reached end-of-life and the IoT | <t>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 | |||
| device or will not update the MUD file, the "is-supported" attribute | will not update the MUD file, the "is-supported" attribute defined in <xref targ | |||
| defined in Section 3.6 of <xref target="RFC8520"></xref> can be used by | et="RFC8520" sectionFormat="of" | |||
| the MUD manager to identify the IoT manufacturer no longer supports the | section="3.6"/> can be used by the MUD manager to indicate that the IoT | |||
| device. The end-of-life (EOL) of a device, where the IoT manufacturer no | manufacturer no longer supports the device. The EOL of a device, where the IoT | |||
| longer supports it, does not necessarily mean the device is defective. | manufacturer no longer supports it, does not necessarily mean the device is | |||
| Instead, it signifies that the device is no longer receiving updates, | defective. Instead, it signifies that the device is no longer receiving | |||
| support, or security patches, which necessitates replacement and | updates, support, or security patches, which necessitates replacement and | |||
| upgrading to next-generation devices to ensure continued functionality, | upgrading to next-generation devices to ensure continued functionality, | |||
| security, and compatibility with modern networks. The network security | security, and compatibility with modern networks. The network security service | |||
| service will have to rely on other techniques discussed in <xref | will have to rely on other techniques discussed in <xref target="Security" | |||
| target="Security"></xref> to identify malicious connections until the | format="default"/> to identify malicious connections until the device is | |||
| device is replaced.</t> | replaced.</t> <t>Compromised IoT devices are typically used for launching DDoS | |||
| attacks (<xref target="RFC8576" sectionFormat="of" section="3"/>). For | ||||
| <t>Compromised IoT devices are typically used for launching DDoS attacks | example, DDoS attacks like Slowloris <xref target="SLOWLORIS" | |||
| (Section 3 of <xref target="RFC8576"></xref>). For example, DDoS attacks | format="default"/> and Transport Layer Security (TLS) re-negotiation can be | |||
| like Slowloris <xref target="slowloris"></xref> and Transport Layer | blocked if the victim's server certificate is not be signed by the same | |||
| Security (TLS) re-negotiation can be blocked if the victim's server | certifying authorities trusted by the IoT device.</t> | |||
| certificate is not be signed by the same certifying authorities trusted | ||||
| by the IoT device.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="(D)TLS 1.3 Handshake"> | <name>(D)TLS 1.3 Handshake</name> | |||
| <t>In (D)TLS 1.3, full (D)TLS handshake inspection is not possible since | <t>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 extensions, | |||
| handshake messages will be encrypted and network security services (such | handshake messages will be encrypted and network security services (such | |||
| as a firewall) are incapable of deciphering the handshake, and thus | as a firewall) are incapable of deciphering the handshake, and thus | |||
| cannot view the server certificate. However, the ClientHello and | cannot view the server certificate. However, the ClientHello and | |||
| ServerHello still have some fields visible, such as the list of | ServerHello still have some fields visible, such as the list of | |||
| supported versions, named groups, cipher suites, signature algorithms | supported versions, named groups, cipher suites, signature algorithms, | |||
| and extensions in ClientHello, and chosen cipher in the ServerHello. For | extensions in ClientHello, and the chosen cipher in the ServerHello. For | |||
| instance, if the malware uses evasion techniques like ClientHello | instance, if the malware uses evasion techniques like ClientHello | |||
| randomization, the observable list of cipher suites and extensions | randomization, the observable list of cipher suites and extensions | |||
| offered by the malware agent in the ClientHello message will not match | offered by the malware agent in the ClientHello message will not match | |||
| the list of cipher suites and extensions offered by the legitimate | the list of cipher suites and extensions offered by the legitimate | |||
| client in the ClientHello message, and the middlebox can block malicious | client in the ClientHello message, and the middlebox can block malicious | |||
| flows without acting as a (D)TLS 1.3 proxy.</t> | flows without acting as a (D)TLS 1.3 proxy.</t> | |||
| <section anchor="full" numbered="true" toc="default"> | ||||
| <section anchor="full" title="Full (D)TLS 1.3 Handshake Inspection"> | <name>Full (D)TLS 1.3 Handshake Inspection</name> | |||
| <t>To obtain more visibility into negotiated TLS 1.3 parameters, a | <t>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 and | the Enterprise network and the (D)TLS proxy must meet the security and | |||
| privacy requirements of the organization. In other words, the scope of | privacy requirements of the organization. In other words, the scope of | |||
| middlebox acting as a (D)TLS proxy is restricted to Enterprise network | a middlebox acting as a (D)TLS proxy is restricted to the Enterprise net work | |||
| owning and managing the IoT devices. The middlebox would have to | owning and managing the IoT devices. The middlebox would have to | |||
| follow the behaviour detailed in Section 9.3 of <xref | follow the behavior detailed in <xref target="RFC8446" sectionFormat="of | |||
| target="RFC8446"></xref> to act as a compliant (D)TLS 1.3 proxy.</t> | " section="9.3"/> to act as a compliant (D)TLS 1.3 proxy.</t> | |||
| <t>To further increase privacy, the Encrypted Client Hello (ECH) extensi | ||||
| <t>To further increase privacy, Encrypted Client Hello (ECH) extension | on | |||
| <xref target="I-D.ietf-tls-esni"></xref> prevents passive observation | <xref target="I-D.ietf-tls-esni" format="default"/> prevents passive obs | |||
| ervation | ||||
| of the TLS Server Name Indication extension and other potentially | of the TLS Server Name Indication extension and other potentially | |||
| sensitive fields, such as the ALPN <xref target="RFC7301"></xref>. To | sensitive fields, such as the Application-Layer Protocol Negotiation (AL | |||
| effectively provide that privacy protection, ECH extension needs to be | PN) <xref target="RFC7301" format="default"/>. To | |||
| effectively provide that privacy protection, the ECH extension needs to | ||||
| be | ||||
| used in conjunction with DNS encryption (e.g., DoH). A middlebox | used in conjunction with DNS encryption (e.g., DoH). A middlebox | |||
| (e.g., firewall) passively inspecting ECH extension cannot observe the | (e.g., firewall) passively inspecting the ECH extension cannot observe t he | |||
| encrypted SNI nor observe the encrypted DNS traffic. The middlebox | encrypted SNI nor observe the encrypted DNS traffic. The middlebox | |||
| acting as a (D)TLS 1.3 proxy that does not support ECH extension will | acting as a (D)TLS 1.3 proxy that does not support the ECH extension wil | |||
| act as if connecting to the public name and it follows the behaviour | l | |||
| discussed in Section 6.1.6 of <xref target="I-D.ietf-tls-esni"></xref> | act as if it is connecting to the public name and follows the behavior | |||
| discussed in <xref target="I-D.ietf-tls-esni" sectionFormat="of" section | ||||
| ="6.1.6"/> | ||||
| to securely signal the client to disable ECH.</t> | to securely signal the client to disable ECH.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Encrypted DNS"> | <name>Encrypted DNS</name> | |||
| <t>A common usage pattern for certain type of IoT devices (e.g., light | <t>A common usage pattern for certain types of IoT devices (e.g., | |||
| bulb) is for it to "call home" to a service that resides on the public | light bulb) is for it to "call home" to a service that resides on the | |||
| Internet, where that service is referenced through a domain name (A or | public Internet, where that service is referenced through a domain | |||
| AAAA record). As discussed in Manufacturer Usage Description | name (A or AAAA record). As discussed in "Manufacturer Usage | |||
| Specification <xref target="RFC8520"></xref>, because these devices | Description Specification" <xref target="RFC8520" format="default"/>, | |||
| tend to require access to very few sites, all other access should be | these devices tend to require access to very few sites. Thus, all | |||
| considered suspect. This technique complements MUD policy enforcement | other access should be considered suspect. This technique complements | |||
| at the TLS level by ensuring that DNS queries are monitored and | MUD policy enforcement at the TLS level by ensuring that DNS queries | |||
| filtered, thereby enhancing overall security. If an IoT device is | are monitored and filtered, thereby enhancing overall security. If an | |||
| pre-configured to use a DNS resolver not signaled by the network, the | IoT device is pre-configured to use a DNS resolver not signaled by the | |||
| MUD policy enforcement point is moved to that resolver, which cannot | network, the MUD policy enforcement point is moved to that resolver, | |||
| enforce the MUD policy based on domain names (Section 8 of <xref | which cannot enforce the MUD policy based on domain names (<xref | |||
| target="RFC8520"></xref>). If the DNS query is not accessible for | target="RFC8520" sectionFormat="of" section="8"/>). If the DNS query | |||
| inspection, it becomes quite difficult for the infrastructure to | is not accessible for inspection, it becomes quite difficult for the | |||
| detect any issues. Therefore, the use of a DNS resolver that is not | infrastructure to detect any issues. Therefore, the use of a DNS | |||
| signaled by the network is generally incompatible with MUD. A | resolver that is not signaled by the network is generally incompatible | |||
| network-designated DoH/DoT server is necessary to allow MUD policy | with MUD. A network-designated DoH/DoT server is necessary to allow | |||
| enforcement on the local network, for example, using the techniques | MUD policy enforcement on the local network, for example, using the | |||
| specified in DNR<xref target="RFC9463"> </xref> and DDR <xref | techniques specified in DNR <xref target="RFC9463" format="default"> | |||
| target="RFC9462"></xref>.</t> | </xref> and DDR <xref target="RFC9462" format="default"/>.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="YANG" numbered="true" toc="default"> | ||||
| <section anchor="YANG" title="(D)TLS Profile of a IoT device"> | <name>(D)TLS Profile of an IoT device</name> | |||
| <t>This document specifies a YANG module for representing (D)TLS | <t>This document specifies a YANG module that represents the (D)TLS | |||
| profile. This YANG module provides a means to characterize the (D)TLS | profile. This YANG module provides a means to characterize the (D)TLS | |||
| traffic profile of a device. Network security services can use these | traffic profile of a device. Network security services can use these | |||
| profiles to permit conformant traffic or to deny traffic from devices | profiles to permit conformant traffic or to deny traffic from devices | |||
| that deviates from it. This module uses the cryptographic types defined | that deviates from it. This module uses the cryptographic types defined | |||
| in <xref target="I-D.ietf-netconf-crypto-types"></xref>. See <xref | in <xref target="RFC9640" format="default"/>. See <xref target="RFC7925" f | |||
| target="RFC7925"></xref> for (D)TLS 1.2 and <xref | ormat="default"/> for (D)TLS 1.2 and <xref target="I-D.ietf-uta-tls13-iot-profil | |||
| target="I-D.ietf-uta-tls13-iot-profile"></xref> for DTLS 1.3 | e" format="default"/> for DTLS 1.3 | |||
| recommendations related to IoT devices, and <xref | recommendations related to IoT devices, and <xref target="RFC9325" format= | |||
| target="RFC9325"></xref> for additional (D)TLS 1.2 recommendations.</t> | "default"/> for additional (D)TLS 1.2 recommendations.</t> | |||
| <t>A companion YANG module is defined to include a collection of (D)TLS | <t>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" | |||
| (<xref target="yang-iana"></xref>).</t> | (<xref target="yang-iana" format="default"/>).</t> | |||
| <t>The (D)TLS parameters in each (D)TLS profile include the | <t>The (D)TLS parameters in each (D)TLS profile include the | |||
| following:<list style="symbols"> | following:</t> | |||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>Profile name</t> | <t>Profile name</t> | |||
| </li> | ||||
| <li> | ||||
| <t>(D)TLS versions supported by the IoT device.</t> | <t>(D)TLS versions supported by the IoT device.</t> | |||
| </li> | ||||
| <t>List of supported cipher suites (Section 11 of <xref | <li> | |||
| target="RFC8446"></xref>). For (D)TLS1.2, <xref | <t>List of supported cipher suites (<xref target="RFC8446" sectionForm | |||
| target="RFC7925"></xref> recommends AEAD ciphers for IoT | at="of" section="11"/>). For (D)TLS 1.2, <xref target="RFC7925" format="default" | |||
| /> recommends Authenticated Encryption with Associated Data (AEAD) ciphers for I | ||||
| oT | ||||
| devices.</t> | devices.</t> | |||
| </li> | ||||
| <t>List of supported extension types</t> | <li> | |||
| <t>List of supported extension types.</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>List of trust anchor certificates used by the IoT device. If the | <t>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 session). | failed and takes appropriate action (e.g, blocks the (D)TLS session). | |||
| An IoT device can use a private trust anchor to validate a server's | An IoT device can use a private trust anchor to validate a server's | |||
| certificate (e.g., the private trust anchor can be preloaded at | certificate (e.g., the private trust anchor can be preloaded at | |||
| manufacturing time on the IoT device and the IoT device fetches the | manufacturing time on the IoT device and the IoT device fetches the | |||
| firmware image from the Firmware server whose certificate is signed | firmware image from the firmware server whose certificate is signed | |||
| by the private CA). This empowers the middlebox to reject TLS | by the private CA). This empowers the middlebox to reject TLS | |||
| sessions to servers that the IoT device does not trust.</t> | sessions to servers that the IoT device does not trust.</t> | |||
| </li> | ||||
| <t>List of pre-shared key exchange modes</t> | <li> | |||
| <t>List of pre-shared key exchange modes.</t> | ||||
| <t>List of named groups (DHE or ECDHE) supported by the client</t> | </li> | |||
| <li> | ||||
| <t>List of named groups (DHE or ECDHE) supported by the client.</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>List of signature algorithms the client can validate in X.509 | <t>List of signature algorithms the client can validate in X.509 | |||
| server certificates</t> | server certificates.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>List of signature algorithms the client is willing to accept for | <t>List of signature algorithms the client is willing to accept for | |||
| CertificateVerify message (Section 4.2.3 of <xref | the CertificateVerify message (<xref target="RFC8446" | |||
| target="RFC8446"></xref>). For example, a TLS client implementation | sectionFormat="of" section="4.2.3"/>). For example, a TLS client | |||
| can support different sets of algorithms for certificates and in TLS | implementation can support different sets of algorithms for | |||
| to signal the capabilities in "signature_algorithms_cert" and | certificates, and it can signal the capabilities in the | |||
| "signature_algorithms" extensions.</t> | "signature_algorithms_cert" and "signature_algorithms" | |||
| extensions.</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>List of supported application protocols (e.g., h3, h2, http/1.1 | <t>List of supported application protocols (e.g., h3, h2, http/1.1 | |||
| etc.)</t> | etc.).</t> | |||
| </li> | ||||
| <t>List of certificate compression algorithms (defined in <xref | <li> | |||
| target="RFC8879"></xref>)</t> | <t>List of certificate compression algorithms (defined in <xref target | |||
| ="RFC8879" format="default"/>).</t> | ||||
| <t>List of the distinguished names <xref target="X501"></xref> of | </li> | |||
| <li> | ||||
| <t>List of the distinguished names <xref target="X501" format="default | ||||
| "/> of | ||||
| acceptable certificate authorities, represented in DER-encoded | acceptable certificate authorities, represented in DER-encoded | |||
| format <xref target="X690"> </xref> (defined in Section 4.2.4 of | format <xref target="X690" format="default"> </xref> (defined in <xref | |||
| <xref target="RFC8446"></xref>)</t> | target="RFC8446" sectionFormat="of" section="4.2.4"/>).</t> | |||
| </list></t> | </li> | |||
| </ul> | ||||
| <t><xref target="RFC8701">GREASE</xref> defines a mechanism for TLS | <t><xref target="RFC8701" format="default">GREASE</xref> defines a mechani | |||
| sm for TLS | ||||
| peers to send random values on TLS parameters to ensure future | peers to send random values on TLS parameters to ensure future | |||
| extensibility of TLS extensions. Similar random values might be extended | extensibility of TLS extensions. Similar random values might be extended | |||
| to other TLS parameters. Thus, the (D)TLS profile parameters defined in | to other TLS parameters. Thus, the (D)TLS profile parameters defined in | |||
| the YANG module by this document MUST NOT include the GREASE values for | the YANG module by this document <bcp14>MUST NOT</bcp14> include the GREAS E 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.</t> | parameters defined in future RFCs.</t> | |||
| <t>The (D)TLS profile does not include parameters like compression | <t>The (D)TLS profile does not include parameters like compression | |||
| methods for data compression, <xref target="RFC9325"></xref> recommends | methods for data compression. <xref target="RFC9325" format="default"/> re commends | |||
| disabling TLS-level compression to prevent compression-related attacks. | disabling TLS-level compression to prevent compression-related attacks. | |||
| In TLS 1.3, only the "null" compression method is allowed (Section 4.1.2 | In TLS 1.3, only the "null" compression method is allowed (<xref target="R | |||
| of <xref target="RFC8446"></xref>).</t> | FC8446" sectionFormat="of" section="4.1.2"/>).</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Tree Structure of the (D)TLS profile Extension to the ACL | <name>Tree Structure of the (D)TLS Profile Extension to the ACL YANG Mod | |||
| YANG Model"> | ule</name> | |||
| <t>This document augments the "ietf-acl" ACL YANG module defined in | <t>This document augments the "ietf-acl" ACL YANG module defined in | |||
| <xref target="RFC8519"></xref> for signaling the IoT device (D)TLS | <xref target="RFC8519" format="default"/> for signaling the IoT device ( D)TLS | |||
| profile. This document defines the YANG module "ietf-acl-tls". The | profile. This document defines the YANG module "ietf-acl-tls". The | |||
| meaning of the symbols in the YANG tree diagram are defined in <xref | meaning of the symbols in the YANG tree diagram are defined in <xref tar | |||
| target="RFC8340"></xref> and it has the following tree structure:</t> | get="RFC8340" format="default"/> and it has the following tree structure:</t> | |||
| <sourcecode name="" type="yangtree"><![CDATA[ | ||||
| <t><figure> | module: ietf-acl-tls | |||
| <artwork><![CDATA[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}? | |||
| +--rw tls-dtls-profile* [name] | +--rw tls-dtls-profile* [name] | |||
| +--rw name string | +--rw name string | |||
| +--rw supported-tls-version* ianatp:tls-version | +--rw supported-tls-version* ianatp:tls-version | |||
| +--rw supported-dtls-version* ianatp:dtls-version | +--rw supported-dtls-version* ianatp:dtls-version | |||
| +--rw cipher-suite* ianatp:cipher-algorithm | +--rw cipher-suite* ianatp:cipher-algorithm | |||
| +--rw extension-type* | +--rw extension-type* | |||
| | ianatp:extension-type | | ianatp:extension-type | |||
| +--rw accept-list-ta-cert* | +--rw accept-list-ta-cert* | |||
| skipping to change at line 470 ¶ | skipping to change at line 457 ¶ | |||
| +--rw signature-algorithm* | +--rw signature-algorithm* | |||
| | 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}? | |||
| ]]></sourcecode> | ||||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| <section anchor="YANG2" numbered="true" toc="default"> | ||||
| <section anchor="YANG2" | <name>The (D)TLS Profile Extension to the ACL YANG Module</name> | |||
| title="The (D)TLS profile Extension to the ACL YANG Model"> | <sourcecode name="ietf-acl-tls@2025-03-10.yang" type="yang" markers="tru | |||
| <t><figure> | e"><![CDATA[ | |||
| <artwork><![CDATA[<CODE BEGINS> file "ietf-acl-tls@2024-01-23.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 | |||
| Author: Dan Wing | ||||
| danwing@gmail.com | ||||
| Author: Blake Anderson | ||||
| blake.anderson@cisco.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 line 566 ¶ | skipping to change at line 555 ¶ | |||
| "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> | ]]></sourcecode> | |||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| <section anchor="yang-iana" numbered="true" toc="default"> | ||||
| <name>IANA (D)TLS Profile YANG Module</name> | ||||
| <section anchor="yang-iana" title="IANA (D)TLS profile YANG Module"> | <t>The TLS and DTLS IANA registries are available from <eref target="https://www | |||
| <t>The TLS and DTLS IANA registries are available from <eref | .iana.org/assignments/tls-parameters" brackets="angle" /> | |||
| target="https://www.iana.org/assignments/tls-parameters/tls-parameters.t | and <eref target="https://www.iana.org/assignments/tls-extensiontype-val | |||
| xt"></eref> | ues" brackets="angle" />. | |||
| and <eref | Changes to TLS- and DTLS-related IANA registries are discussed in <xref | |||
| target="https://www.iana.org/assignments/tls-extensiontype-values/tls-ex | target="RFC8447" format="default"/>.</t> | |||
| tensiontype-values.txt"></eref>. | ||||
| Changes to TLS and DTLS related IANA registries are discussed in <xref | ||||
| target="RFC8447"></xref>.</t> | ||||
| <t>The values for all the parameters in the "iana-tls-profile" YANG | <t>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.</t> | parameters will be specific to the IoT device.</t> | |||
| <t>The TLS and DTLS IANA registries do not maintain (D)TLS version | <t>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 ClientHello | to indicate which versions of (D)TLS it supports. TLS 1.3 ClientHello | |||
| messages are identified as having a "legacy_version" of 0x0303 and a | messages are identified as having a "legacy_version" of 0x0303 and a | |||
| "supported_versions" extension present with 0x0304 as the highest | "supported_versions" extension present with 0x0304 as the highest | |||
| version. DTLS 1.3 ClientHello messages are identified as having a | version. DTLS 1.3 ClientHello messages are identified as having a | |||
| "legacy_version" of 0xfefd and a "supported_versions" extension | "legacy_version" of 0xfefd and a "supported_versions" extension | |||
| present with 0x0304 as the highest version.</t> | present with 0x0304 as the highest version.</t> | |||
| <t>In order to ease updating the "iana-tls-profile" YANG module with | <t>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 | |||
| <xref target="tls-registry"></xref> and <xref | <xref target="tls-registry" format="default"/> and <xref target="dtls-re | |||
| target="dtls-registry"></xref>. Whenever a new (D)TLS protocol version | gistry" format="default"/>. Whenever a new (D)TLS protocol version | |||
| is defined, the registry will be updated using expert review; the | is defined, the registry will be updated using expert review; the | |||
| "iana-tls-profile" YANG module will be automatically updated by | "iana-tls-profile" YANG module will be automatically updated by | |||
| IANA.</t> | IANA.</t> | |||
| <t>Implementers or users of this specification must refer to the | <t>Implementers or users of this specification must refer to the | |||
| IANA-maintained "iana-tls-profile" YANG module available at XXXX [Note | IANA-maintained "iana-tls-profile" YANG module available at <eref target | |||
| to RFC Editor to replace "XXXX" with the URL link of the | ="https://www.iana.org/assignments/yang-parameters" brackets="angle"/>.</t> | |||
| IANA-maintained "iana-tls-profile" YANG module].</t> | ||||
| <t>The initial version of the "iana-tls-profile" YANG module is | <t>The initial version of the "iana-tls-profile" YANG module is | |||
| defined as follows:</t> | defined as follows:</t> | |||
| <t><figure> | <sourcecode name="iana-tls-profile@2025-03-10.yang" type="yang" markers= | |||
| <artwork><![CDATA[<CODE BEGINS> file "iana-tls-profile@2024-01-23.ya | "true"><![CDATA[ | |||
| ng" | ||||
| 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 line 890 ¶ | skipping to change at line 866 ¶ | |||
| contained in its body and the ClientHello contains | contained in its body and the ClientHello contains | |||
| 0xfefd in 'legacy_version'."; | 0xfefd in 'legacy_version'."; | |||
| reference | reference | |||
| "RFC 9147: Datagram Transport Layer Security 1.3"; | "RFC 9147: Datagram Transport Layer Security 1.3"; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "Indicates the DTLS version."; | "Indicates the DTLS version."; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | ]]></sourcecode> | |||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| <section anchor="mud-dtls-extension" numbered="true" toc="default"> | ||||
| <section anchor="mud-dtls-extension" | <name>MUD (D)TLS Profile Extension</name> | |||
| title="MUD (D)TLS Profile Extension"> | ||||
| <t>This document augments the "ietf-mud" MUD YANG module to indicate | <t>This document augments the "ietf-mud" MUD YANG module to indicate | |||
| whether the device supports (D)TLS profile. If the "ietf-mud-tls" | whether the device supports (D)TLS profile. If the "ietf-mud-tls" | |||
| extension is supported by the device, MUD file is assumed to implement | extension is supported by the device, MUD file is assumed to implement | |||
| the "match-on-tls-dtls" ACL model feature defined in this | the "match-on-tls-dtls" ACL model feature defined in this | |||
| specification. Furthermore, only "accept" or "drop" actions SHOULD be | specification. Furthermore, only "accept" or "drop" actions <bcp14>SHOUL D</bcp14> be | |||
| included with the (D)TLS profile similar to the actions allowed in | included with the (D)TLS profile similar to the actions allowed in | |||
| Section 2 of <xref target="RFC8520"></xref>.</t> | <xref target="RFC8520" sectionFormat="of" section="2"/>.</t> | |||
| <t>This document defines the YANG module "ietf-mud-tls", which has the | <t>This document defines the YANG module "ietf-mud-tls", which has the | |||
| following tree structure:</t> | following tree structure:</t> | |||
| <t><figure> | <sourcecode name="" type="yangtree"><![CDATA[ | |||
| <artwork><![CDATA[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 | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure></t> | ||||
| <t>The model is defined as follows:</t> | <t>The model is defined as follows:</t> | |||
| <sourcecode name="ietf-mud-tls@2025-03-10.yang" type="yang" markers="tru | ||||
| <t><figure> | e"><![CDATA[ | |||
| <artwork><![CDATA[<CODE BEGINS> file "ietf-mud-tls@2020-10-20.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 | |||
| Author: Dan Wing | ||||
| danwing@gmail.com | ||||
| Author: Blake Anderson | ||||
| blake.anderson@cisco.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> | ]]></sourcecode> | |||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="processing" numbered="true" toc="default"> | ||||
| <section anchor="processing" title="Processing of the MUD (D)TLS Profile"> | <name>Processing of the MUD (D)TLS Profile</name> | |||
| <t>The following text outlines the rules for a network security service | <t>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:</t> | avoid ossification:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li> | |||
| <t>If the (D)TLS parameter observed in a (D)TLS session is not | <t>If the (D)TLS parameter observed in a (D)TLS session is not | |||
| specified in the MUD (D)TLS profile and the parameter is recognized | specified in the MUD (D)TLS profile and the parameter is recognized | |||
| by the firewall, it can identify unexpected (D)TLS usage, which can | by the firewall, it can identify unexpected (D)TLS usage, which can | |||
| indicate the presence of unauthorized software or malware on an | indicate the presence of unauthorized software or malware on an | |||
| endpoint. The firewall can take several actions like block the | endpoint. The firewall can take several actions, such as blocking the | |||
| (D)TLS session or raise an alert to quarantine and remediate the | (D)TLS session or raising an alert to quarantine and remediate the | |||
| compromised device. For example, if the cipher suite | compromised device. For example, if the cipher suite | |||
| TLS_RSA_WITH_AES_128_CBC_SHA in the ClientHello message is not | TLS_RSA_WITH_AES_128_CBC_SHA in the ClientHello message is not | |||
| specified in the MUD (D)TLS profile and the cipher suite is | specified in the MUD (D)TLS profile and the cipher suite is | |||
| recognized by the firewall, it can identify unexpected TLS | recognized by the firewall, it can identify unexpected TLS | |||
| usage.</t> | usage.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>If the (D)TLS parameter observed in a (D)TLS session is not | <t>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 not | specified in the MUD (D)TLS profile and the (D)TLS parameter is not | |||
| recognized by the firewall, it can ignore the unrecognized parameter | recognized by the firewall, it can ignore the unrecognized parameter | |||
| and the correct behavior is not to block the (D)TLS session. The | and the correct behavior is not to block the (D)TLS session. The | |||
| behaviour is functionally equivalent to the compliant TLS middlebox | behavior is functionally equivalent to the compliant TLS middlebox | |||
| description in Section 9.3 of <xref target="RFC8446"></xref> to | description in <xref target="RFC8446" sectionFormat="of" section="9.3" | |||
| /> to | ||||
| ignore all unrecognized cipher suites, extensions, and other | ignore all unrecognized cipher suites, extensions, and other | |||
| parameters. For example, if the cipher suite | parameters. For example, if the cipher suite | |||
| TLS_CHACHA20_POLY1305_SHA256 in the ClientHello message is not | TLS_CHACHA20_POLY1305_SHA256 in the ClientHello message is not | |||
| specified in the MUD (D)TLS profile and the cipher suite is not | specified in the MUD (D)TLS profile and the cipher suite is not | |||
| recognized by the firewall, it can ignore the unrecognized cipher | recognized by the firewall, it can ignore the unrecognized cipher | |||
| suite. This rule also ensures that the network security service will | suite. This rule also ensures that the network security service will | |||
| ignore the GREASE values advertised by TLS peers and interoperate | ignore the GREASE values advertised by TLS peers and interoperate | |||
| with the implementations advertising GREASE values.</t> | with the implementations advertising GREASE values.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>Deployments update at different rates, so an updated MUD (D)TLS | <t>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 the | recognize the newer parameters, an alert should be triggered to the | |||
| firewall vendor and the IoT device owner or administrator. A | 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 | the MUD (D)TLS profile are discovered that are not recognized by the | |||
| firewall, it can be updated quickly. Most importantly, if 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, if | identify emerging malware will decrease with time. For example, if | |||
| the cipher suite TLS_AES_128_CCM_8_SHA256 specified in the MUD | 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.</t> | triggered.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>If the MUD (D)TLS profile includes any parameters that are | <t>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 <bcp14>MUST</bcp14> be triggered to the firewall vendor and the IoT device | |||
| owner or administrator.</t> | owner or administrator.</t> | |||
| </list></t> | </li> | |||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="Example" numbered="true" toc="default"> | ||||
| <section anchor="Example" title="MUD File Example"> | <name>MUD File Example</name> | |||
| <t>The example below contains (D)TLS profile parameters for a IoT device | <t>The example below contains (D)TLS profile parameters for an IoT device | |||
| used to reach servers listening on port 443 using TCP transport. JSON | used to reach servers listening on port 443 using TCP transport. JSON | |||
| encoding of YANG modelled data <xref target="RFC7951"></xref> is used to | encoding of YANG-modeled data <xref target="RFC7951" format="default"/> is used to | |||
| illustrate the example.</t> | illustrate the example.</t> | |||
| <t><figure> | <sourcecode name="" type=""><![CDATA[{ | |||
| <artwork><![CDATA[{ | ||||
| "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" | |||
| ], | ], | |||
| "ietf-mud-tls:is-tls-dtls-profile-supported": "true", | "ietf-mud-tls:is-tls-dtls-profile-supported": "true", | |||
| "is-supported": true, | "is-supported": true, | |||
| skipping to change at line 1112 ¶ | skipping to change at line 1088 ¶ | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| ] | ] | |||
| } | } | |||
| } | } | |||
| } | } | |||
| ]]></artwork> | ]]></sourcecode> | |||
| </figure></t> | ||||
| <t>The following illustrates the example scenarios for processing the | <t>The following illustrates the example scenarios for processing the | |||
| above profile:<list style="symbols"> | above profile:</t> | |||
| <t>If the extension type "encrypt_then_mac" (code point 22) <xref | <ul spacing="normal"> | |||
| target="RFC7366"></xref> in the ClientHello message is recognized by | <li> | |||
| <t>If the extension type "encrypt_then_mac" (code point 22) <xref targ | ||||
| et="RFC7366" format="default"/> in the ClientHello message is recognized by | ||||
| the firewall, it can identify unexpected TLS usage.</t> | the firewall, it can identify unexpected TLS usage.</t> | |||
| </li> | ||||
| <t>If the extension type "token_binding" (code point 24) <xref | <li> | |||
| target="RFC8472"></xref> in the MUD (D)TLS profile is not recognized | <t>If the extension type "token_binding" (code point 24) <xref target= | |||
| "RFC8472" format="default"/> in the MUD (D)TLS profile is not recognized | ||||
| by the firewall, it can ignore the unrecognized extension. Because | by the firewall, it can ignore the unrecognized extension. Because | |||
| the extension type "token_binding" is specified in the profile, an | the extension type "token_binding" is specified in the profile, an | |||
| alert will be triggered to the firewall vendor and the IoT device | alert will be triggered to the firewall vendor and the IoT device | |||
| owner or administrator to notify the firewall is not up-to-date.</t> | owner or administrator to notify the firewall is not up-to-date.</t> | |||
| </li> | ||||
| <li> | ||||
| <t>The two-byte values assigned by IANA for the cipher suites | <t>The two-byte values assigned by IANA for the cipher suites | |||
| TLS_AES_128_GCM_SHA256 and TLS_AES_256_GCM_SHA384 are represented in | TLS_AES_128_GCM_SHA256 and TLS_AES_256_GCM_SHA384 are represented in | |||
| decimal format.</t> | decimal format.</t> | |||
| </list></t> | </li> | |||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="ACL" numbered="true" toc="default"> | ||||
| <section anchor="ACL" | <name>Software-Based ACLs and ACLs Within a (D)TLS 1.3 Proxy</name> | |||
| title="Software-Based ACLs and ACLs within a (D)TLS 1.3 Proxy"> | ||||
| <t>While ACL technology is traditionally associated with fixed-length | <t>While ACL technology is traditionally associated with fixed-length | |||
| bit matching in hardware implementations, such as those found in TCAMs, | bit matching in hardware implementations, such as those found in Ternary C ontent-Addressable Memory (TCAM), | |||
| the use of ACLs in software, like with iptables, allows for more | the use of ACLs in software, like with iptables, allows for more | |||
| flexible matching criteria, including string matching. In the context of | flexible matching criteria, including string matching. In the context of | |||
| MUD (D)TLS profiles, the ability to match binary data and strings is a | MUD (D)TLS profiles, the ability to match binary data and strings is a | |||
| deliberate choice, made to leverage the capabilities of software-based | deliberate choice made to leverage the capabilities of software-based | |||
| ACLs. This enables more dynamic and context-sensitive access control, | ACLs. This enables more dynamic and context-sensitive access control, | |||
| which is essential for the intended application of MUD. The DNS | which is essential for the intended application of MUD. The DNS | |||
| extension added to ACL in MUD specification <xref | extension added to ACL in the MUD specification <xref target="RFC8520" for | |||
| target="RFC8520"></xref> also require software-based ACLs.</t> | mat="default"/> also requires software-based ACLs.</t> | |||
| <t>Regarding the use of MUD (D)TLS ACL in a (D)TLS 1.3 proxy, the goal | <t>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 any | 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 to occur | ACL rules. This implies that MUD (D)TLS ACL matching would need to occur | |||
| after decrypting the encrypted TLS handshake messages within the proxy. | after decrypting the encrypted TLS handshake messages within the proxy. | |||
| The proxy would inspect the handshake fields according to the MUD | The proxy would inspect the handshake fields according to the MUD | |||
| profile. ACL matching would be performed in two stages: first, by | profile. | |||
| filtering clear-text TLS handshake message and second, by filtering | ||||
| after decrypting the TLS handshake messages.</t> | ||||
| </section> | ||||
| <section anchor="Security" title="Security Considerations"> | ACL matching would be performed in two stages: first, by filtering clear-text | |||
| <t>Security considerations in <xref target="RFC8520"></xref> need to be | TLS handshake message and second, by filtering after decrypting the TLS | |||
| taken into consideration. The middlebox MUST adhere to the invariants | handshake messages.</t> | |||
| discussed in Section 9.3 of <xref target="RFC8446"></xref> to act as a | </section> | |||
| <section anchor="Security" numbered="true" toc="default"> | ||||
| <name>Security Considerations</name> | ||||
| <t>Security considerations in <xref target="RFC8520" format="default"/> ne | ||||
| ed to be | ||||
| taken into consideration. The middlebox <bcp14>MUST</bcp14> adhere to the | ||||
| invariants | ||||
| discussed in <xref target="RFC8446" sectionFormat="of" section="9.3"/> to | ||||
| act as a | ||||
| compliant proxy.</t> | compliant proxy.</t> | |||
| <t>Although it is challenging for malware to mimic the TLS behavior of | <t>Although it is challenging for malware to mimic the TLS behavior of | |||
| various IoT device types and models from different manufacturers, there | various IoT device types and models from different manufacturers, there | |||
| is still a potential for malicious agents to use similar (D)TLS profile | is still a potential for malicious agents to use similar (D)TLS profile | |||
| parameters as legitimate devices to evade detection. This difficulty | parameters as legitimate devices to evade detection. This difficulty | |||
| arises because IoT devices often have distinct (D)TLS profiles between | arises because IoT devices often have distinct (D)TLS profiles between | |||
| models and especially between manufacturers. While malware may find it | models and especially between manufacturers. While malware may find it | |||
| hard to perfectly replicate the TLS behavior across such diverse | hard to perfectly replicate the TLS behavior across such diverse | |||
| devices, it is not impossible. Malicious agents might manage to use | devices, it is not impossible. Malicious agents might manage to use | |||
| (D)TLS profile parameters that resemble those of legitimate devices. The | (D)TLS profile parameters that resemble those of legitimate devices. The | |||
| feasibility of this depends on the nature of the profile parameters; for | feasibility of this depends on the nature of the profile parameters; for | |||
| skipping to change at line 1178 ¶ | skipping to change at line 1153 ¶ | |||
| models and especially between manufacturers. While malware may find it | models and especially between manufacturers. While malware may find it | |||
| hard to perfectly replicate the TLS behavior across such diverse | hard to perfectly replicate the TLS behavior across such diverse | |||
| devices, it is not impossible. Malicious agents might manage to use | devices, it is not impossible. Malicious agents might manage to use | |||
| (D)TLS profile parameters that resemble those of legitimate devices. The | (D)TLS profile parameters that resemble those of legitimate devices. The | |||
| feasibility of this depends on the nature of the profile parameters; for | feasibility of this depends on the nature of the profile parameters; for | |||
| instance, parameters like certificate authorities are complex to mimic, | instance, parameters like certificate authorities are complex to mimic, | |||
| while others, such as signature algorithms, may be easier to replicate. | while others, such as signature algorithms, may be easier to replicate. | |||
| The difficulty in mimicking these profiles correlates with the | The difficulty in mimicking these profiles correlates with the | |||
| specificity of the profiles and the variability in parameters used by | specificity of the profiles and the variability in parameters used by | |||
| different devices.</t> | different devices.</t> | |||
| <t>Network security services should also rely on contextual network data | <t>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 order to | destination IP addresses with a bad reputation score. Furthermore, in orde | |||
| r to | ||||
| detect such malicious flows, anomaly detection (deep learning techniques | detect such malicious flows, anomaly detection (deep learning techniques | |||
| on network data) can be used to detect malicious agents using the same | on network data) can be used to detect malicious agents using the same | |||
| (D)TLS profile parameters as legitimate agent on the IoT device. In | (D)TLS profile parameters as the legitimate agent on the IoT device. In | |||
| anomaly detection, the main idea is to maintain rigorous learning of | anomaly detection, the main idea is to maintain rigorous learning of | |||
| "normal" behavior and where an "anomaly" (or an attack) is identified | "normal" behavior and where an "anomaly" (or an attack) is identified | |||
| and categorized based on the knowledge about the normal behavior and a | and categorized based on the knowledge about the normal behavior and a | |||
| deviation from this normal behavior. Network security vendors leverage | deviation from this normal behavior. Network security vendors leverage | |||
| TLS parameters and contextual network data to identify malware (for | TLS parameters and contextual network data to identify malware (for | |||
| example, see <xref target="eve"></xref>).</t> | example, see <xref target="EVE" format="default"/>).</t> | |||
| <t>The efficacy of identifying malware in (D)TLS 1.3 flows will be | <t>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 the | 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.</t> | handshake details that could otherwise be used for detection.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Challenges in Mimicking (D)TLS 1.2 Handshakes for IoT Devi | <name>Challenges in Mimicking (D)TLS 1.2 Handshakes for IoT Devices</nam | |||
| ces"> | e> | |||
| <t>(D)TLS 1.2 generally does not require a proxy, as all fields in the | <t>(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., <xref target="eve"></xref>, which detects malicious | techniques (e.g., <xref target="EVE" format="default"/>, which detects | |||
| patterns in encrypted traffic without decryption). This task is | malicious patterns in encrypted traffic without decryption). This task | |||
| particularly challenging because IoT devices often have distinct | is particularly challenging because IoT devices often have distinct | |||
| (D)TLS profiles, varying between models and manufacturers. Unlike the | (D)TLS profiles that vary between models and manufacturers. Unlike the | |||
| developers of legitimate applications, malware authors are under | developers of legitimate applications, malware authors are under | |||
| additional constraints such as avoiding any noticeable differences on | additional constraints, such as avoiding any noticeable differences on | |||
| the infected devices and the potential for take-down requests | the infected devices and the potential for take-down requests | |||
| impacting their server infrastructure (e.g., certificate revocation by | impacting their server infrastructure (e.g., certificate revocation by | |||
| a CA upon reporting).</t> | a CA upon reporting).</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Considerations for the "iana-tls-profile" Module</name> | ||||
| <t>This section follows the template defined in <xref target="I-D.ietf-n | ||||
| etmod-rfc8407bis" sectionFormat="of" section="3.7.1"/>.</t> | ||||
| <section title="Considerations for the "iana-tls-profile" Module | <t>The "iana-tls-profile" YANG module defines a data model that is designed to | |||
| "> | be accessed via YANG-based management protocols, such as NETCONF <xref | |||
| <t>This section follows the template defined in Section 3.7.1 of <xref | target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols have | |||
| target="I-D.ietf-netmod-rfc8407bis"></xref>.</t> | to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref | |||
| target="RFC8446"/>, and QUIC <xref target="RFC9000"/>) and have to use mutual | ||||
| <t>The YANG module specified in this document defines a schema for | authentication.</t> | |||
| data can possibly be accessed via network management protocols such as | ||||
| NETCONF <xref target="RFC6241"></xref> or RESTCONF <xref | ||||
| target="RFC8040"></xref>. These network management protocols are | ||||
| required to use a secure transport layer and mutual authentication, | ||||
| e.g., SSH <xref target="RFC6242"></xref> without the "none" | ||||
| authentication option, Transport Layer Security (TLS) <xref | ||||
| target="RFC8446"></xref> with mutual X.509 authentication, and HTTPS | ||||
| with HTTP authentication (Section 11 of <xref | ||||
| target="RFC9110"></xref>).</t> | ||||
| <t>The Network Access Control Model (NACM) <xref | <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/ | |||
| target="RFC8341"></xref> provides the means to restrict access for | > | |||
| particular users to a pre-configured subset of all available protocol | provides the means to restrict access for particular NETCONF or | |||
| operations and content.</t> | RESTCONF users to a preconfigured subset of all available NETCONF or | |||
| RESTCONF protocol operations and content.</t> | ||||
| <t>There are no particularly sensitive writable data nodes.</t> | ||||
| <t>There are no particularly sensitive readable data nodes.</t> | ||||
| <t>This YANG module defines YANG enumerations, for a public IANA- | <t>This YANG module defines YANG enumerations for a public IANA- | |||
| maintained registry.</t> | maintained registry.</t> | |||
| <t>YANG enumerations are not security-sensitive, as they are | <t>YANG enumerations are not security-sensitive, as they are | |||
| statically defined in the publicly-accessible YANG module. IANA MAY | statically defined in the publicly accessible YANG module. IANA <bcp14>M AY</bcp14> | |||
| deprecate and/or obsolete enumerations over time as needed to address | deprecate and/or obsolete enumerations over time as needed to address | |||
| security issues.</t> | security issues.</t> | |||
| <t>There are no particularly sensitive RPC or action operations.</t> | ||||
| <t>This module does not define any writable-nodes, RPCs, actions, or | <t>The YANG module defines a set of identities, types, and | |||
| notifications, and thus the security consideration for such is not | groupings. These nodes are intended to be reused by other YANG | |||
| provided here.</t> | modules. The module by itself does not expose any data nodes that | |||
| are writable, data nodes that contain read-only state, or RPCs. | ||||
| As such, there are no additional security issues related to | ||||
| the YANG module that need to be considered.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Considerations for the "ietf-acl-tls" Module</name> | ||||
| <t>This section follows the template defined in <xref target="I-D.ietf-n | ||||
| etmod-rfc8407bis" sectionFormat="of" section="3.7.1"/>.</t> | ||||
| <t>The "ietf-acl-tls" YANG module defines a data model that is designed to be | ||||
| accessed via YANG-based management protocols, such as NETCONF <xref | ||||
| target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols have | ||||
| to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS <xref | ||||
| target="RFC8446"/>, and QUIC <xref target="RFC9000"/>) and have to use mutual | ||||
| authentication.</t> | ||||
| <t>The Network Configuration Access Control Model (NACM) <xref | ||||
| target="RFC8341"/> provides the means to restrict access for particular | ||||
| NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF | ||||
| or RESTCONF protocol operations and content.</t> | ||||
| <section title="Considerations for the "ietf-acl-tls" Module"> | <!-- <t>Please be aware that this YANG module uses groupings from other | |||
| <t>This section follows the template defined in Section 3.7.1 of <xref | ||||
| target="I-D.ietf-netmod-rfc8407bis"></xref>.</t> | ||||
| <t>The YANG module specified in this document defines a schema for | ||||
| data that is designed to be accessed via network management protocols | ||||
| such as NETCONF <xref target="RFC6241"> </xref> or RESTCONF <xref | ||||
| target="RFC8040"></xref>. These network management protocols are | ||||
| required to use a secure transport layer and mutual authentication, | ||||
| e.g., SSH <xref target="RFC6242"></xref> without the "none" | ||||
| authentication option, Transport Layer Security (TLS) <xref | ||||
| target="RFC8446"></xref> with mutual X.509 authentication, and HTTPS | ||||
| with HTTP authentication (Section 11 of <xref | ||||
| target="RFC9110"></xref>).</t> | ||||
| <t>The Network Access Control Model (NACM) <xref | ||||
| target="RFC8341"></xref> provides the means to restrict access for | ||||
| particular users to a pre-configured subset of all available protocol | ||||
| operations and content.</t> | ||||
| <t>Please be aware that this YANG module uses groupings from other | ||||
| YANG modules that define nodes that may be considered sensitive or | YANG 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.</t> | environments.</t> | |||
| --> | ||||
| <t>All the writable data nodes defined by this module may be | <t>There are a number of data nodes defined in this YANG module that are | |||
| considered sensitive or vulnerable in some network environments. For | writable/creatable/deletable (i.e., "config true", which is the | |||
| instance, the addition or removal of references to trusted anchors, | default). All writable data nodes are likely to be reasonably sensitive or | |||
| (D)TLS versions, cipher suites etc., can dramatically alter the | vulnerable in some network environments. Write | |||
| implemented security policy. For this reason, the NACM extension | operations (e.g., edit-config) and delete operations to these data | |||
| "default-deny-write" has been set for all data nodes defined in this | nodes without proper protection or authentication can have a negative | |||
| module.</t> | effect on network operations. For instance, the addition or | |||
| removal of references to trusted anchors, (D)TLS versions, cipher | ||||
| suites, etc., can dramatically alter the implemented security | ||||
| policy. For this reason, the NACM extension "default-deny-write" has | ||||
| been set for all data nodes defined in this module.</t> | ||||
| <t>Some of the readable data nodes defined in this YANG module may be | <t>Some of the readable data nodes defined in this YANG module may be | |||
| considered sensitive or vulnerable in some network environments. It is | considered sensitive or vulnerable in some network environments. It is | |||
| thus important to control read access (e.g., via get, get-config, or | thus important to control read access (e.g., via get, get-config, or | |||
| notification) to these data nodes. The YANG module will provide | 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 <xref target="Privacy"></xref> needs to be | considerations discussed in <xref target="Privacy" format="default"/> ne | |||
| ed to be | ||||
| taken into account.</t> | taken into account.</t> | |||
| <t>There are no particularly sensitive RPC or action operations.</t> | ||||
| <t>This module does not define any RPCs, actions, or notifications, | <t>This YANG module uses groupings from other YANG modules that define nodes | |||
| and thus the security consideration for such is not provided here.</t> | that may be considered sensitive or vulnerable in network environments. Refer | |||
| to the Security Considerations for dependent YANG modules for information as | ||||
| to which nodes may be considered sensitive or vulnerable in network | ||||
| environments.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Considerations for the "ietf-mud-tls" Module"> | <name>Considerations for the "ietf-mud-tls" Module</name> | |||
| <t>This section follows the template defined in Section 3.7.1 of <xref | <t>This section follows the template defined in <xref target="I-D.ietf-n | |||
| target="I-D.ietf-netmod-rfc8407bis"></xref>.</t> | etmod-rfc8407bis" sectionFormat="of" section="3.7.1"/>.</t> | |||
| <!-- DNE --> | ||||
| <t>The YANG module specified in this document defines a schema for | <t>The "ietf-mud-tls" YANG module defines a data model that is designed to be | |||
| data can possibly be accessed via network management protocols such as | accessed via YANG-based management protocols, such as NETCONF <xref | |||
| NETCONF <xref target="RFC6241"></xref> or RESTCONF <xref | target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These protocols | |||
| target="RFC8040"></xref>. These network management protocols are | have to use a secure transport layer (e.g., SSH <xref target="RFC4252"/>, TLS | |||
| required to use a secure transport layer and mutual authentication, | <xref target="RFC8446"/>, and QUIC <xref target="RFC9000"/>) and have to use | |||
| e.g., SSH <xref target="RFC6242"></xref> without the "none" | mutual authentication.</t> | |||
| authentication option, Transport Layer Security (TLS) <xref | <t>The Network Configuration Access Control Model (NACM) <xref | |||
| target="RFC8446"></xref> with mutual X.509 authentication, and HTTPS | target="RFC8341"/> provides the means to restrict access for particular | |||
| with HTTP authentication (Section 11 of <xref | NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF | |||
| target="RFC9110"></xref>). Note that the YANG module is not intended | or RESTCONF protocol operations and content.</t> | |||
| to be accessed via NETCONF and RESTCONF. This has already been | <!-- DNE --> | |||
| discussed in <xref target="RFC8520"></xref>, and we are reiterating it | <!-- <t>Please be aware that this YANG module uses groupings from other | |||
| here for the sake of completeness.</t> | ||||
| <t>The Network Access Control Model (NACM) <xref | ||||
| target="RFC8341"></xref> provides the means to restrict access for | ||||
| particular users to a pre-configured subset of all available protocol | ||||
| operations and content.</t> | ||||
| <t>Please be aware that this YANG module uses groupings from other | ||||
| YANG modules that define nodes that may be considered sensitive or | YANG 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.</t> | environments.</t> --> | |||
| <t>There are a number of data nodes defined in this YANG module that are | ||||
| writable/creatable/deletable (i.e., "config true", which is the | ||||
| default). All writable data nodes are likely to be reasonably sensitive or | ||||
| vulnerable in some network environments. Write | ||||
| operations (e.g., edit-config) and delete operations to these data | ||||
| nodes without proper protection or authentication can have a negative | ||||
| effect on network operations. For instance, update that the | ||||
| device does not support (D)TLS profile can dramatically alter the | ||||
| implemented security policy. For this reason, the NACM extension | ||||
| "default-deny-write" has been set for all data nodes defined in this | ||||
| module.</t> | ||||
| <t>All the writable data nodes defined by this module may be | <t>There are no particularly sensitive RPC or action operations.</t> | |||
| considered sensitive or vulnerable in some network environments. For | ||||
| instance, update that the device does not support (D)TLS profile can | ||||
| dramatically alter the implemented security policy. For this reason, | ||||
| the NACM extension "default-deny-write" has been set for all data | ||||
| nodes defined in this module.</t> | ||||
| <t>This module does not define any RPCs, actions, or notifications, | <t>This YANG module uses groupings from other YANG modules that define nodes | |||
| and thus the security consideration for such is not provided here.</t> | that may be considered sensitive or vulnerable in network environments. Refer | |||
| to the Security Considerations for dependent YANG modules for information as | ||||
| to which nodes may be considered sensitive or vulnerable in network | ||||
| environments.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="Privacy" numbered="true" toc="default"> | ||||
| <section anchor="Privacy" title="Privacy Considerations"> | <name>Privacy Considerations</name> | |||
| <t>Privacy considerations discussed in Section 16 of <xref | <t>Privacy considerations discussed in <xref target="RFC8520" sectionForma | |||
| target="RFC8520"></xref> to not reveal the MUD URL to an attacker need | t="of" section="16"/> to not reveal the MUD URL to an attacker need | |||
| to be taken into consideration. The MUD URL can be stored in Trusted | to be taken into consideration. The MUD URL can be stored in a Trusted | |||
| Execution Environment (TEE) for secure operation, enhanced data | Execution Environment (TEE) for secure operation, enhanced data | |||
| security, and prevent exposure to unauthorized software. The MUD URL | security, and prevention of exposure to unauthorized software. The MUD URL | |||
| MUST be encrypted and shared only with the authorized components in the | <bcp14>MUST</bcp14> be encrypted and shared only with the authorized compo | |||
| network (see Section 1.5 and Section 1.8 of [RFC8520]) so that an | nents in the | |||
| network (see Sections <xref target="RFC8520" sectionFormat="bare" section= | ||||
| "1.5"/> and <xref target="RFC8520" sectionFormat="bare" section="1.8"/> of <xref | ||||
| target="RFC8520"/>) so that an | ||||
| on-path attacker cannot read the MUD URL and identify the IoT device. | on-path 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 IoT | protecting the MUD URL is valuable as described above, a compromised IoT | |||
| device may be susceptible to malware performing vulnerability analysis | device may be susceptible to malware performing vulnerability analysis | |||
| (and version mapping) of the legitimate software located in memory or on | (and version mapping) of the legitimate software located in memory or on | |||
| non-volatile storage (e.g., disk, NVRAM). However, the malware on the | non-volatile storage (e.g., disk, NVRAM). However, the malware on the | |||
| IoT device is intended to be blocked from establishing a (D)TLS | IoT device is intended to be blocked from establishing a (D)TLS | |||
| connection with the C&C server to reveal this information because | connection with the C&C server to reveal this information because | |||
| the connection would be blocked by the network security service | the connection would be blocked by the network security service | |||
| supporting this specification.</t> | supporting this specification.</t> | |||
| <t>Full handshake inspection (<xref target="full" format="default"/>) requ | ||||
| <t>Full handshake inspection (<xref target="full"></xref>) requires a | ires a | |||
| (D)TLS proxy device which needs to decrypt traffic between the IoT | (D)TLS proxy device that needs to decrypt traffic between the IoT | |||
| device and its server(s). There is a tradeoff between privacy of the | device and its server(s). There is a tradeoff between privacy of the | |||
| data carried inside (D)TLS (especially e.g., personally identifiable | data carried inside (D)TLS (for example, personally identifiable | |||
| information and protected health information) and efficacy of endpoint | information and protected health information especially) and efficacy of e | |||
| security. The use of (D)TLS proxies is NOT RECOMMENDED whenever | ndpoint | |||
| security. The use of (D)TLS proxies is <bcp14>NOT RECOMMENDED</bcp14> when | ||||
| ever | ||||
| possible. For example, an enterprise firewall administrator can | possible. For example, an enterprise firewall administrator can | |||
| configure the middlebox to bypass (D)TLS proxy functionality or payload | configure the middlebox to bypass (D)TLS proxy functionality or payload | |||
| inspection for connections destined to specific well-known services. | inspection for connections destined to specific well-known services. | |||
| Alternatively, a IoT device could be configured to reject all sessions | Alternatively, an IoT device could be configured to reject all sessions | |||
| that involve proxy servers to specific well-known services. In addition, | that involve proxy servers to specific well-known services. In addition, | |||
| mechanisms based on object security can be used by IoT devices to enable | mechanisms based on object security can be used by IoT devices to enable | |||
| end-to-end security and the middlebox will not have any access to the | end-to-end security and the middlebox will not have any access to the | |||
| packet data. For example, Object Security for Constrained RESTful | packet data. For example, Object Security for Constrained RESTful | |||
| Environments (OSCORE) <xref target="RFC8613"></xref> is a proposal that | Environments (OSCORE) <xref target="RFC8613" format="default"/> is a propo | |||
| protects CoAP messages by wrapping them in the COSE format <xref | sal that | |||
| target="RFC9052"></xref>.</t> | protects Constrained Application Protocol (CoAP) messages by wrapping them | |||
| in the CBOR Object Signing and Encryption (COSE) format <xref target="RFC9052" | ||||
| format="default"/>.</t> | ||||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>(D)TLS Profile YANG Modules</name> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <t>IANA has registered the following URIs in the | |||
| <section title="(D)TLS Profile YANG Modules"> | "ns" subregistry within the "IETF XML Registry" <xref target="RFC3688" f | |||
| <t>This document requests IANA to register the following URIs in the | ormat="default"/>: </t> | |||
| "ns" subregistry within the "IETF XML Registry" <xref | ||||
| target="RFC3688"></xref>: <figure> | ||||
| <artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:iana-tls-pr | ||||
| ofile | ||||
| Registrant Contact: IANA. | ||||
| XML: N/A; the requested URI is an XML namespace. | ||||
| ]]></artwork> | ||||
| </figure><figure> | ||||
| <artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:ietf-acl-tl | ||||
| s | ||||
| Registrant Contact: IESG. | ||||
| XML: N/A; the requested URI is an XML namespace. | ||||
| ]]></artwork> | ||||
| </figure><figure> | ||||
| <artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:ietf-mud-tl | ||||
| s | ||||
| Registrant Contact: IESG. | ||||
| XML: N/A; the requested URI is an XML namespace. | ||||
| ]]></artwork> | ||||
| </figure></t> | ||||
| <t>IANA is requested to create an IANA-maintained YANG Module called | <dl spacing="compact" newline="false"> | |||
| "iana-tls-profile", based on the contents of <xref | <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:iana-tls-profile</dd> | |||
| target="yang-iana"></xref>, which will allow for new (D)TLS parameters | <dt>Registrant Contact:</dt><dd>IANA.</dd> | |||
| and (D)TLS versions to be added to "client-profile".</t> | <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | |||
| </dl> | ||||
| <dl spacing="compact" newline="false"> | ||||
| <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-acl-tls</dd> | ||||
| <dt>Registrant Contact:</dt><dd>IESG.</dd> | ||||
| <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | ||||
| </dl> | ||||
| <dl spacing="compact" newline="false"> | ||||
| <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-mud-tls</dd> | ||||
| <dt>Registrant Contact:</dt><dd>IESG.</dd> | ||||
| <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | ||||
| </dl> | ||||
| <t>This document requests IANA to register the following YANG modules | <t>IANA has created an IANA-maintained YANG module called | |||
| in the "YANG Module Names" subregistry <xref target="RFC6020"></xref> | "iana-tls-profile" based on the contents of <xref target="yang-iana" for | |||
| within the "YANG Parameters" registry.</t> | mat="default"/>, which allows for new (D)TLS parameters | |||
| and (D)TLS versions to be added to "client-profile".</t> | ||||
| <t>IANA has registered the following YANG modules | ||||
| in the "YANG Module Names" registry <xref target="RFC6020" format="defau | ||||
| lt"/> | ||||
| of the "YANG Parameters" registry group.</t> | ||||
| <t><figure> | <dl spacing="compact" newline="false"> | |||
| <artwork><![CDATA[ name: iana-tls-profile | <dt>Name:</dt><dd>iana-tls-profile</dd> | |||
| namespace: urn:ietf:params:xml:ns:yang:iana-tls-profile | <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:iana-tls-profile</dd | |||
| maintained by IANA: Y | > | |||
| prefix: ianatp | <dt>Maintained by IANA:</dt><dd>Y</dd> | |||
| reference: RFC XXXX | <dt>Prefix:</dt><dd>ianatp</dd> | |||
| ]]></artwork> | <dt>Reference:</dt><dd>RFC 9761</dd> | |||
| </figure><figure> | </dl> | |||
| <artwork><![CDATA[ name: ietf-acl-tls | <dl spacing="compact" newline="false"> | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-acl-tls | <dt>Name:</dt><dd>ietf-acl-tls</dd> | |||
| maintained by IANA: N | <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-acl-tls</dd> | |||
| prefix: ietf-acl-tls | <dt>Maintained by IANA:</dt><dd>N</dd> | |||
| reference: RFC XXXX]]></artwork> | <dt>Prefix:</dt><dd>ietf-acl-tls</dd> | |||
| </figure><figure> | <dt>Reference:</dt><dd>RFC 9761</dd> | |||
| <artwork><![CDATA[ name: ietf-mud-tls | </dl> | |||
| namespace: urn:ietf:params:xml:ns:yang:ietf-mud-tls | <dl spacing="compact" newline="false"> | |||
| maintained by IANA: N | <dt>Name:</dt><dd>ietf-mud-tls</dd> | |||
| prefix: ietf-mud-tls | <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-mud-tls</dd> | |||
| reference: RFC XXXX]]></artwork> | <dt>Maintained by IANA:</dt><dd>N</dd> | |||
| </figure></t> | <dt>Prefix:</dt><dd>ietf-mud-tls</dd> | |||
| <dt>Reference:</dt><dd>RFC 9761</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section anchor="iana-tls" numbered="true" toc="default"> | ||||
| <section anchor="iana-tls" | <name>Considerations for the iana-tls-profile Module</name> | |||
| title="Considerations for the iana-tls-profile Module"> | <t>IANA has created the initial version of the | |||
| <t>IANA is requested to create the initial version of the | IANA-maintained YANG module called "iana-tls-profile" based on the | |||
| IANA-maintained YANG Module called "iana-tls-profile", based on the | contents of <xref target="yang-iana" format="default"/>, which will allo | |||
| contents of <xref target="yang-iana"></xref>, which will allow for new | w for new | |||
| (D)TLS parameters and (D)TLS versions to be added. IANA is requested | (D)TLS parameters and (D)TLS versions to be added. IANA is requested | |||
| to add this note:</t> | to add this note:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li> | |||
| <t>tls-version and dtls-version values must not be directly added | <t>tls-version and dtls-version values must not be directly added | |||
| to the iana-tls-profile YANG module. They must instead be | to the iana-tls-profile YANG module. Instead, they must be | |||
| respectively added to the "ACL TLS Version Codes", and "ACL DTLS | added to the "ACL TLS Version Codes" and "ACL DTLS | |||
| Version Codes" registries provided the new (D)TLS version has been | Version Codes" registries (respectively), provided the new (D)TLS ve | |||
| standardized by the IETF. It allows new (D)TLS version to be added | rsion has been | |||
| to the "iana-tls-profile" YANG Module.</t> | standardized by the IETF. It allows a new (D)TLS version to be added | |||
| to the "iana-tls-profile" YANG module.</t> | ||||
| </li> | ||||
| <li> | ||||
| <t>(D)TLS parameters must not be directly added to the | <t>(D)TLS parameters must not be directly added to the | |||
| iana-tls-profile YANG module. They must instead be added to the | iana-tls-profile YANG module. They must instead be added to the | |||
| "ACL (D)TLS Parameters" registry if the new (D)TLS parameters can | "ACL (D)TLS Parameters" registry if the new (D)TLS parameters can | |||
| be used by a middlebox to identify a MUD non-compliant (D)TLS | be 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,</t> | "iana-tls-profile" YANG module.</t> | |||
| </list></t> | </li> | |||
| </ul> | ||||
| <t>When a 'tls-version' or 'dtls-version' value is respectively added | <t>When a "tls-version" or "dtls-version" value is added | |||
| to the "ACL TLS Version Codes" or "ACL DTLS Version Codes" registry, a | to the "ACL TLS Version Codes" or "ACL DTLS Version Codes" registry (res | |||
| pectively), 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:<list hangIndent="15" style="hanging"> | should be defined:</t> | |||
| <t hangText=""enum":">Replicates the label from the | <dl newline="false" spacing="normal" indent="15"> | |||
| registry.</t> | <dt>"enum":</dt> | |||
| <dd>Replicates the label from the | ||||
| <t hangText=""value":">Contains the IANA-assigned value | registry.</dd> | |||
| corresponding to the 'tls-version' or 'dtls-version'.</t> | <dt>"value":</dt> | |||
| <dd>Contains the IANA-assigned value | ||||
| <t hangText=""description":">Replicates the description | corresponding to the "tls-version" or "dtls-version".</dd> | |||
| from the registry.</t> | <dt>"description":</dt> | |||
| <dd>Replicates the description | ||||
| <t hangText=""reference":">RFC YYYY: <Title of the | from the registry.</dd> | |||
| RFC >, where YYYY is the RFC that added the | <dt>"reference":</dt> | |||
| ’tls-version’ or ‘dtls-version’</t> | <dd>RFC YYYY: <Title of the | |||
| </list></t> | RFC>, where YYYY is the RFC that added the | |||
| "tls-version" or "dtls-version".</dd> | ||||
| <t>When a (D)TLS parameter is added to "ACL (D)TLS Parameters" | </dl> | |||
| <t>When a (D)TLS parameter is added to the "ACL (D)TLS Parameters" | ||||
| registry, a new "type" statement must be added to the iana-tls-profile | registry, a new "type" statement must be added to the iana-tls-profile | |||
| YANG module. The following "type" statement, and substatements | YANG module. The following "type" statement, and substatements | |||
| thereof, should be defined:<list hangIndent="15" style="hanging"> | thereof, should be defined:</t> | |||
| <t hangText=""derived type":">Replicates the parameter | <dl newline="false" spacing="normal" indent="15"> | |||
| name from the registry.</t> | <dt>"derived type":</dt> | |||
| <dd>Replicates the parameter | ||||
| <t hangText=""built-in type":">Contains the built-in | name from the registry.</dd> | |||
| YANG type.</t> | <dt>"built-in type":</dt> | |||
| <dd>Contains the built-in | ||||
| <t hangText=""description":">Replicates the description | YANG type.</dd> | |||
| from the registry.</t> | <dt>"description":</dt> | |||
| </list></t> | <dd>Replicates the description | |||
| from the registry.</dd> | ||||
| </dl> | ||||
| <t>When the iana-tls-profile YANG module is updated, a new "revision" | <t>When the iana-tls-profile YANG module is updated, a new "revision" | |||
| statement must be added in front of the existing revision | statement must be added in front of the existing revision | |||
| statements.</t> | statements.</t> | |||
| <t>IANA has added this note to "ACL TLS Version Codes", "ACL | ||||
| <t>IANA is requested to add this note to "ACL TLS Version Codes", "ACL | ||||
| DTLS Version Codes", and "ACL (D)TLS Parameters" registries:</t> | DTLS Version Codes", and "ACL (D)TLS Parameters" registries:</t> | |||
| <t><list style="empty"> | <t indent="3">When this registry is modified, the YANG module | |||
| <t>When this registry is modified, the YANG module | "iana-tls-profile" must be updated as defined in [RFC9761].</t> | |||
| iana-tls-profile must be updated as defined in [RFCXXXX].</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section anchor="tls-registry" title="ACL TLS Version registry"> | </section> | |||
| <t>IANA is requested to create a new registry titled "ACL TLS Version | <section anchor="tls-registry" numbered="true" toc="default"> | |||
| <name>ACL TLS Version Registry</name> | ||||
| <t>IANA has created a new registry titled "ACL TLS Version | ||||
| Codes". Codes in this registry are used as valid values of | Codes". Codes in this registry are used as valid values of | |||
| 'tls-version' parameter. Further assignments are to be made through | "tls-version" parameter. Further assignments are to be made through | |||
| Expert Review <xref target="RFC8126"></xref>. Experts must ensure that | Expert Review <xref target="RFC8126" format="default"/>. Experts must en | |||
| sure that | ||||
| the TLS protocol version in a new registration is one that has been | 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 | standardized by the IETF. It is expected that the registry will be | |||
| updated infrequently, primarily when a new TLS version is standardized | updated infrequently, primarily when a new TLS version is standardized | |||
| by the IETF.</t> | by the IETF.</t> | |||
| <t><figure> | <table> | |||
| <artwork><![CDATA[ +-------+---------+-----------------+---------- | <name></name> | |||
| -+ | <thead> | |||
| | Value | Label | Description | Reference | | <tr> | |||
| | | | | | | <th>Value</th> | |||
| | | | | | | <th>Label</th> | |||
| +-------+---------+-----------------+-----------+ | <th>Description</th> | |||
| | 1 | tls12 | TLS Version 1.2 | [RFC5246] | | <th>Reference</th> | |||
| +-------+---------+-----------------+-----------+ | </tr> | |||
| | 2 | tls13 | TLS Version 1.3 | [RFC8446] | | </thead> | |||
| +-------+---------+-----------------+-----------+ | <tbody> | |||
| ]]></artwork> | <tr> | |||
| </figure></t> | <td>1</td> | |||
| </section> | <td>tls12</td> | |||
| <td>TLS Version 1.2</td> | ||||
| <td><xref target="RFC5246"/></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>2</td> | ||||
| <td>tls13</td> | ||||
| <td>TLS Version 1.3</td> | ||||
| <td><xref target="RFC8446"/></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <section anchor="dtls-registry" title="ACL DTLS version registry"> | </section> | |||
| <t>IANA is requested to create a new registry titled "ACL DTLS Version | <section anchor="dtls-registry" numbered="true" toc="default"> | |||
| <name>ACL DTLS Version Registry</name> | ||||
| <t>IANA has created a new registry titled "ACL DTLS Version | ||||
| Codes". Codes in this registry are used as valid values of | Codes". Codes in this registry are used as valid values of | |||
| 'dtls-version' parameter. Further assignments are to be made through | "dtls-version" parameter. Further assignments are to be made through | |||
| Expert Review <xref target="RFC8126"></xref>. Experts must ensure that | Expert Review <xref target="RFC8126" format="default"/>. Experts must en | |||
| sure that | ||||
| the DTLS protocol version in a new registration is one that has been | 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 | standardized by the IETF. It is expected that the registry will be | |||
| updated infrequently, primarily when a new DTLS version is | updated infrequently, primarily when a new DTLS version is | |||
| standardized by the IETF.</t> | standardized by the IETF.</t> | |||
| <t><figure> | <table> | |||
| <artwork><![CDATA[ | <name></name> | |||
| +-------+---------+----------------+-----------------------+ | <thead> | |||
| | Value | Label | Description | Reference | | <tr> | |||
| | | | | | | <th>Value</th> | |||
| | | | | | | <th>Label</th> | |||
| +-------+---------+----------------+-----------------------+ | <th>Description</th> | |||
| | 1 |dtls12 |DTLS Version 1.2| [RFC6347] | | <th>Reference</th> | |||
| +-------+---------+----------------+-----------------------+ | </tr> | |||
| | 2 |dtls13 |DTLS Version 1.3| [RFC9147| | | </thead> | |||
| +-------+---------+----------------+-----------------------+ | <tbody> | |||
| <tr> | ||||
| <td>1</td> | ||||
| <td>dtls12</td> | ||||
| <td>DTLS Version 1.2</td> | ||||
| <td><xref target="RFC6347"/></td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>2</td> | ||||
| <td>dtls13</td> | ||||
| <td>DTLS Version 1.3</td> | ||||
| <td><xref target="RFC9147"/></td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="ACL (D)TLS Parameters registry"> | <name>ACL (D)TLS Parameters Registry</name> | |||
| <t>IANA is requested to create a new registry titled "ACL (D)TLS | <t>IANA has created a new registry titled "ACL (D)TLS | |||
| parameters".</t> | Parameters".</t> | |||
| <t>The values for all the (D)TLS parameters in the registry are | <t>The values for all the (D)TLS parameters in the registry are | |||
| defined in the TLS and DTLS IANA registries (<eref | defined in the TLS and DTLS IANA registries (<eref target="https://www.i | |||
| target="https://www.iana.org/assignments/tls-parameters/tls-parameters.t | ana.org/assignments/tls-parameters/"/> | |||
| xt"></eref> | and <eref target="https://www.iana.org/assignments/tls-extensiontype-val | |||
| and <eref | ues/"/>) | |||
| target="https://www.iana.org/assignments/tls-extensiontype-values/tls-ex | ||||
| tensiontype-values.txt"></eref>) | ||||
| excluding the tls-version and dtls-version parameters. Further | excluding the tls-version and dtls-version parameters. Further | |||
| assignments are to be made through Expert Review <xref | assignments are to be made through Expert Review <xref target="RFC8126" | |||
| target="RFC8126"></xref>. Experts must ensure that the (D)TLS | format="default"/>. Experts must ensure that the (D)TLS | |||
| parameter in a new registration is one that has been standardized by | parameter in a new registration is one that has been standardized by | |||
| the IETF. The registry is expected to be updated periodically, | the IETF. The registry is expected to be updated periodically, | |||
| primarily when a new (D)TLS parameter is standardized by the IETF. The | primarily when a new (D)TLS parameter is standardized by the IETF. The | |||
| registry is initially populated with the following parameters:</t> | registry has been populated with the following initial parameters:</t> | |||
| <t><figure> | <table> | |||
| <artwork><![CDATA[ +----------------------------+-------------+--- | <name></name> | |||
| -----+---------------------------------------------+ | <thead> | |||
| | Parameter Name | YANG | JSON | | <tr> | |||
| | | <th>Parameter Name</th> | |||
| | | Type | Type | Description | <th>YANG Type</th> | |||
| | | <th>JSON Type</th> | |||
| | | | | | <th>Description</th> | |||
| | | </tr> | |||
| +----------------------------+-------------+--------+------------------------ | </thead> | |||
| ---------------------+ | <tbody> | |||
| | extension-type | uint16 | Number | Extension type | <tr> | |||
| | | <td>extension-type</td> | |||
| +----------------------------+-------------+--------+------------------------ | <td>uint16</td> | |||
| ---------------------+ | <td>Number</td> | |||
| | supported-group | uint16 | Number | Supported group | <td>Extension type</td> | |||
| | | </tr> | |||
| +----------------------------+-------------+--------+------------------------ | <tr> | |||
| ---------------------+ | <td>supported-group</td> | |||
| | signature-algorithm | uint16 | Number | Signature algorithm | <td>uint16</td> | |||
| | | <td>Number</td> | |||
| +----------------------------+-------------+--------+------------------------ | <td>Supported group</td> | |||
| ---------------------+ | </tr> | |||
| | psk-key-exchange-mode | uint8 | Number | pre-shared key exchange | <tr> | |||
| mode | | <td>signature-algorithm</td> | |||
| +----------------------------+-------------+--------+------------------------ | <td>uint16</td> | |||
| ---------------------+ | <td>Number</td> | |||
| | application-protocol | string | String | Application protocol | <td>Signature algorithm</td> | |||
| | | </tr> | |||
| +----------------------------+-------------+--------+------------------------ | <tr> | |||
| ---------------------+ | <td>psk-key-exchange-mode</td> | |||
| | cert-compression-algorithm | uint16 | Number | Certificate compression | <td>uint8</td> | |||
| algorithm | | <td>Number</td> | |||
| +----------------------------+-------------+--------+------------------------ | <td>Pre-shared key exchange mode</td> | |||
| ---------------------+ | </tr> | |||
| | cipher-algorithm | uint16 | Number | Cipher Suite | <tr> | |||
| | | <td>application-protocol</td> | |||
| +----------------------------+-------------+--------+------------------------ | <td>string</td> | |||
| ---------------------+ | <td>String</td> | |||
| | tls-version | enumeration | String | TLS version | <td>Application protocol</td> | |||
| | | </tr> | |||
| +----------------------------+-------------+--------+------------------------ | <tr> | |||
| ---------------------+ | <td>cert-compression-algorithm</td> | |||
| | dtls-version | enumeration | String | DTLS version | <td>uint16</td> | |||
| | | <td>Number</td> | |||
| +----------------------------+-------------+--------+------------------------ | <td>Certificate compression algorithm</td> | |||
| ---------------------+ | </tr> | |||
| <tr> | ||||
| <td>cipher-algorithm</td> | ||||
| <td>uint16</td> | ||||
| <td>Number</td> | ||||
| <td>Cipher suite</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>tls-version</td> | ||||
| <td>enumeration</td> | ||||
| <td>String</td> | ||||
| <td>TLS version</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>dtls-version</td> | ||||
| <td>enumeration</td> | ||||
| <td>String</td> | ||||
| <td>DTLS version</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| ]]></artwork> | ||||
| </figure></t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>MUD Extensions Registry</name> | ||||
| <!-- Note to PE/RE: XML for references to the IANA registries mentionend | ||||
| in this section. | ||||
| <section title="MUD Extensions registry"> | "MUD Extensions" registry in the "Manufacturer Usage Description (MUD)" registry | |||
| <t>IANA is requested to create a new MUD Extension Name "ietf-mud-tls" | group | |||
| in the MUD Extensions IANA registry <eref | ||||
| target="https://www.iana.org/assignments/mud/mud.xhtml"></eref>.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="acknowledgments" title="Acknowledgments"> | ||||
| <t>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.</t> | ||||
| <t>Thanks to Xufeng Liu for YANGDOCTOR review. Thanks to Linda Dunbar | <reference anchor="" target="https://www.iana.org/assignments/mud"> | |||
| for SECDIR review. Thanks to Qin Wu for OPSDIR review. Thanks to R. | <front> | |||
| Gieben for DNSDIR review.</t> | <title>MUD Extensions</title> | |||
| <author> | ||||
| <organization>IANA</organization> | ||||
| </author> | ||||
| </front> | ||||
| </reference> | ||||
| <t>Thanks to Roman Danyliw, Orie Steele, Éric Vyncke, Mahesh | --> | |||
| Jethanandani, Murray Kucherawy, Zaheduzzaman Sarker and Deb Cooley for | <t>IANA has created a new MUD Extension Name "ietf-mud-tls" | |||
| the IESG review.</t> | in the "MUD Extensions" IANA registry <eref target="https://www.iana.org | |||
| /assignments/mud" brackets="angle"/>.</t> | ||||
| </section> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references title="Normative References"> | <displayreference target="I-D.ietf-tls-esni" to="TLS-ESNI"/> | |||
| <?rfc include="reference.RFC.2119"?> | <displayreference target="I-D.ietf-uta-tls13-iot-profile" to="IoT-PROFILE"/> | |||
| <displayreference target="I-D.ietf-netmod-rfc8407bis" to="YANG-GUIDELINES"/> | ||||
| <?rfc include='reference.RFC.8174'?> | <references> | |||
| <name>References</name> | ||||
| <?rfc include="reference.RFC.8446"?> | <references> | |||
| <name>Normative References</name> | ||||
| <?rfc include="reference.RFC.8519"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| 119.xml"/> | ||||
| <?rfc include='reference.RFC.3688'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 174.xml"/> | ||||
| <?rfc include='reference.RFC.8701'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 446.xml"/> | ||||
| <?rfc include='reference.RFC.5246'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 519.xml"/> | ||||
| <?rfc include='reference.RFC.6347'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
| 688.xml"/> | ||||
| <?rfc include='reference.RFC.9147'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 701.xml"/> | ||||
| <?rfc include='reference.RFC.8520'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| 246.xml"/> | ||||
| <?rfc include="reference.I-D.ietf-netconf-crypto-types" ?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| 347.xml"/> | ||||
| <?rfc include='reference.RFC.8879'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
| 147.xml"/> | ||||
| <?rfc include='reference.RFC.6241'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 520.xml"/> | ||||
| <?rfc include='reference.RFC.8040'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.96 | |||
| 40.xml"/> | ||||
| <?rfc include='reference.RFC.6242'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 879.xml"/> | ||||
| <?rfc include='reference.RFC.9110'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| 241.xml"/> | ||||
| <?rfc include='reference.RFC.8341'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 040.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4252.xml" | ||||
| /> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9000.xml" | ||||
| /> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 341.xml"/> | ||||
| <reference anchor="X690"> | <reference anchor="X690" target="https://www.itu.int/rec/T-REC-X.690-202 | |||
| <front> | 102-I/en"> | |||
| <title>Information technology - ASN.1 encoding Rules: Specification | <front> | |||
| <title>Information technology - ASN.1 encoding Rules: Specification | ||||
| of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and | of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and | |||
| Distinguished Encoding Rules (DER)</title> | Distinguished Encoding Rules (DER)</title> | |||
| <author> | ||||
| <organization>ITU-T</organization> | ||||
| </author> | ||||
| <date year="2021"/> | ||||
| </front> | ||||
| <seriesInfo name="ITU-T Recommendation" value="X.690"/> | ||||
| </reference> | ||||
| <author> | </references> | |||
| <organization>ITU-T</organization> | <references> | |||
| </author> | <name>Informative References</name> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| <date year="2002" /> | 951.xml"/> | |||
| </front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| 576.xml"/> | ||||
| <seriesInfo name="ISO/IEC" value="8825-1:2002" /> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.84 | |||
| </reference> | 84.xml"/> | |||
| </references> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| 020.xml"/> | ||||
| <references title="Informative References"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| <?rfc include='reference.RFC.7951'?> | 126.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| <?rfc include="reference.RFC.8576"?> | 925.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| <?rfc include="reference.RFC.8484"?> | 366.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| <?rfc include="reference.RFC.6020"?> | 066.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| <?rfc include='reference.RFC.8126'?> | 472.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| <?rfc include='reference.RFC.7925'?> | 325.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| <?rfc include='reference.RFC.7366'?> | 301.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| <?rfc include='reference.RFC.6066'?> | 052.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| <?rfc include='reference.RFC.8472'?> | 613.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| <?rfc include='reference.RFC.9325'?> | 447.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| <?rfc include='reference.RFC.7301'?> | 340.xml"/> | |||
| <?rfc include="reference.RFC.9052"?> | ||||
| <?rfc include='reference.RFC.8613'?> | ||||
| <?rfc include='reference.RFC.8447'?> | ||||
| <?rfc include='reference.RFC.8340'?> | ||||
| <?rfc include="reference.I-D.ietf-tls-esni" ?> | ||||
| <?rfc include='reference.RFC.9462'?> | ||||
| <?rfc include='reference.RFC.9463'?> | <!-- [I-D.ietf-tls-esni] IESG state: I-D Exists as of 09/05/24 --> | |||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | ||||
| .ietf-tls-esni.xml"/> | ||||
| <?rfc include='reference.RFC.7858'?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
| 462.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 463.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 858.xml"/> | ||||
| <?rfc include="reference.I-D.ietf-uta-tls13-iot-profile" ?> | <!-- [I-D.ietf-uta-tls13-iot-profile] IESG state: Expired as of 09/05/24 --> | |||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | ||||
| .ietf-uta-tls13-iot-profile.xml"/> | ||||
| <?rfc include="reference.I-D.ietf-netmod-rfc8407bis"?> | <!-- [I-D.ietf-netmod-rfc8407bis] IESG state: I-D Exists as of 09/05/24 --> | |||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | ||||
| .ietf-netmod-rfc8407bis.xml"/> | ||||
| <reference anchor="X501"> | <reference anchor="X501" target="https://www.itu.int/rec/T-REC-X.501-201 | |||
| <front> | 910-I/en"> | |||
| <title>Information Technology - Open Systems Interconnection - The | <front> | |||
| <title>Information Technology - Open Systems Interconnection - The | ||||
| Directory: Models</title> | Directory: Models</title> | |||
| <author> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="October" year="2019"/> | ||||
| </front> | ||||
| <seriesInfo name="ITU-T Recommendation" value="X.501"/> | ||||
| </reference> | ||||
| <author> | <reference anchor="CLEAR-AS-MUD" target="https://arxiv.org/pdf/1804.0435 | |||
| <organization></organization> | 8.pdf"> | |||
| </author> | <front> | |||
| <title>Clear as MUD: Generating, Validating and Applying IoT | ||||
| <date year="1993" /> | Behaviorial Profiles (Technical Report)</title> | |||
| </front> | <author fullname="Ayyoob Hamza"/> | |||
| <author fullname="Dinesha Ranathunga"/> | ||||
| <seriesInfo name="ITU-T" value="X.501" /> | <author fullname="H. Habibi Gharakheili"/> | |||
| </reference> | <author fullname="Matthew Roughan"/> | |||
| <author fullname="Vijay Sivaraman"/> | ||||
| <reference anchor="clear-as-mud" | <date month="April" year="2018"/> | |||
| target="https://arxiv.org/pdf/1804.04358.pdf"> | </front> | |||
| <front> | <refcontent>arXiv:1804.04358</refcontent> | |||
| <title>Clear as MUD: Generating, Validating and Applying IoT | <seriesInfo name="DOI" value="10.48550/arXiv.1804.04358"/> | |||
| Behaviorial Profiles</title> | </reference> | |||
| <author> | ||||
| <organization></organization> | ||||
| </author> | ||||
| <date month="October" year="2019" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="malware-tls" | <reference anchor="MALWARE-TLS" target="https://dl.acm.org/citation.cfm? | |||
| target="https://dl.acm.org/citation.cfm?id=3355601"> | id=3355601"> | |||
| <front> | <front> | |||
| <title>TLS Beyond the Browser: Combining End Host and Network Data | <title>TLS Beyond the Browser: Combining End Host and Network Data | |||
| to Understand Application Behavior</title> | to Understand Application Behavior</title> | |||
| <author fullname="Blake Anderson" initials="B." surname="Anderson"> | ||||
| <organization>Cisco</organization> | ||||
| </author> | ||||
| <author fullname="David McGrew" initials="D." surname="McGrew"> | ||||
| <organization>Cisco</organization> | ||||
| </author> | ||||
| <date month="October" year="2019"/> | ||||
| </front> | ||||
| <refcontent>IMC '19: Proceedings of the Internet Measurement Conferenc | ||||
| e, pp. 379-392</refcontent> | ||||
| <seriesInfo name="DOI" value="10.1145/3355369.3355601"/> | ||||
| </reference> | ||||
| <author fullname="Blake Anderson" initials="B." surname="Anderson"> | <reference anchor="CRYPTO-VULNERABILITY" target="https://securitybouleva | |||
| <organization>Cisco</organization> | rd.com/2020/01/exploiting-the-windows-cryptoapi-vulnerability/"> | |||
| </author> | <front> | |||
| <title>Exploiting the Windows CryptoAPI Vulnerability</title> | ||||
| <author fullname="David McGrew" initials="D." surname="McGrew"> | <author fullname="Ben Perez" initials="B." surname="Perez"> | |||
| <organization>Cisco</organization> | <organization>Cisco</organization> | |||
| </author> | </author> | |||
| <date month="January" year="2020"/> | ||||
| <date month="October" year="2019" /> | </front> | |||
| </front> | </reference> | |||
| </reference> | ||||
| <reference anchor="cryto-vulnerability" | ||||
| target="https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/ | ||||
| 0/CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF"> | ||||
| <front> | ||||
| <title>Exploiting the Windows CryptoAPI Vulnerability</title> | ||||
| <author fullname="Ben Perez" initials="B." surname="Perez"> | ||||
| <organization>Cisco</organization> | ||||
| </author> | ||||
| <date month="January" year="2020" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="malware-doh" | <reference anchor="MALWARE-DOH" target="https://www.zdnet.com/article/fi | |||
| target="https://www.zdnet.com/article/first-ever-malware-strain | rst-ever-malware-strain-spotted-abusing-new-doh-dns-over-https-protocol/"> | |||
| -spotted-abusing-new-doh-dns-over-https-protocol/"> | <front> | |||
| <front> | <title>First-ever malware strain spotted abusing new DoH (DNS over | |||
| <title>First-ever malware strain spotted abusing new DoH (DNS over | ||||
| HTTPS) protocol</title> | HTTPS) protocol</title> | |||
| <author fullname="Catalin Cimpanu" initials="C." surname="Cimpanu"> | ||||
| </author> | ||||
| <date month="July" year="2019"/> | ||||
| </front> | ||||
| <refcontent>ZDNET</refcontent> | ||||
| </reference> | ||||
| <author fullname="Catalin Cimpanu" initials="C." surname="Cimpanu"> | <reference anchor="SLOWLORIS" target="https://en.wikipedia.org/w/index.p | |||
| <organization>Cisco</organization> | hp?title=Slowloris_(cyber_attack)&oldid=1263305193"> | |||
| </author> | <front> | |||
| <title>Slowloris (cyber attack)</title> | ||||
| <date month="July" year="2019" /> | <author><organization>Wikipedia</organization></author> | |||
| </front> | <date month="December" year="2024"/> | |||
| </reference> | </front> | |||
| </reference> | ||||
| <reference anchor="slowloris" | ||||
| target="https://web.archive.org/web/20150315054838/http://ha.ck | ||||
| ers.org/slowloris/"> | ||||
| <front> | ||||
| <title>Slowloris HTTP DoS</title> | ||||
| <author fullname="" initials="" surname=""> | ||||
| <organization>Cisco</organization> | ||||
| </author> | ||||
| <date month="" year="" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="eve" | ||||
| target="https://secure.cisco.com/secure-firewall/docs/encrypted | ||||
| -visibility-engine"> | ||||
| <front> | ||||
| <title>Encrypted Visibility Engine</title> | ||||
| <author fullname="" initials="" surname=""> | <reference anchor="EVE" target="https://secure.cisco.com/secure-firewall | |||
| <organization>Cisco</organization> | /docs/encrypted-visibility-engine"> | |||
| </author> | <front> | |||
| <title>Encrypted Visibility Engine</title> | ||||
| <author fullname="" initials="" surname=""> | ||||
| <organization>Cisco</organization> | ||||
| </author> | ||||
| <date month="" year=""/> | ||||
| </front> | ||||
| <refcontent>Cisco Secure Firewall documentation</refcontent> | ||||
| </reference> | ||||
| <date month="" year="" /> | </references> | |||
| </front> | ||||
| </reference> | ||||
| </references> | </references> | |||
| </back> | <section anchor="acknowledgments" numbered="false" toc="default"> | |||
| </rfc> | <name>Acknowledgments</name> <t>Thanks to <contact fullname="Flemming | |||
| Andreasen"/>, <contact fullname="Shashank Jain"/>, <contact | ||||
| fullname="Michael Richardson"/>, <contact fullname="Piyush Joshi"/>, | ||||
| <contact fullname="Eliot Lear"/>, <contact fullname="Harsha Joshi"/>, | ||||
| <contact fullname="Qin Wu"/>, <contact fullname="Mohamed Boucadair"/>, | ||||
| <contact fullname="Ben Schwartz"/>, <contact fullname="Eric Rescorla"/>, | ||||
| <contact fullname="Panwei William"/>, <contact fullname="Nick Lamb"/>, | ||||
| <contact fullname="Tom Petch"/>, <contact fullname="Paul Wouters"/>, | ||||
| <contact fullname="Thomas Fossati"/>, and <contact fullname="Nick | ||||
| Harper"/> for the discussion and comments.</t> <t>Thanks to <contact | ||||
| fullname="Xufeng Liu"/> for YANGDOCTOR review. Thanks to <contact | ||||
| fullname="Linda Dunbar"/> for SECDIR review. Thanks to <contact | ||||
| fullname="Qin Wu"/> for OPSDIR review. Thanks to <contact fullname="R. Giebe | ||||
| n"/> for DNSDIR review.</t> <t>Thanks to <contact fullname="Roman | ||||
| Danyliw"/>, <contact fullname="Orie Steele"/>, <contact fullname="Éric | ||||
| Vyncke"/>, <contact fullname="Mahesh Jethanandani"/>, <contact | ||||
| fullname="Murray Kucherawy"/>, <contact fullname="Zaheduzzaman Sarker"/>, | ||||
| and <contact fullname="Deb Cooley"/> for the IESG review.</t> | ||||
| </section> | ||||
| </back> </rfc> | ||||
| End of changes. 257 change blocks. | ||||
| 1014 lines changed or deleted | 1101 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||