rfc9456.original.xml | rfc9456.xml | |||
---|---|---|---|---|
<?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-opsawg-tlstm | ||||
-update-15" | <!DOCTYPE rfc [ | |||
ipr="trust200902" updates="6353" submissionType="IETF" category="std" xml:lang | <!ENTITY nbsp " "> | |||
="en" | <!ENTITY zwsp "​"> | |||
<!ENTITY nbhy "‑"> | ||||
<!ENTITY wj "⁠"> | ||||
]> | ||||
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-opsawg-tlstm | ||||
-update-15" number="9456" | ||||
ipr="trust200902" updates="6353" submissionType="IETF" category="std" | ||||
consensus="true" xml:lang="en" | ||||
tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> | tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> | |||
<front> | <front> | |||
<title abbrev="Updates to the TLSTM for SNMP">Updates to the TLS | <title abbrev="Updates to the TLSTM for SNMP">Updates to the TLS | |||
Transport Model for SNMP</title> | Transport Model for SNMP</title> | |||
<seriesInfo name="Internet-Draft" stream="IETF" value="draft-ietf-opsawg-tls tm-update-15"/> | <seriesInfo name="RFC" value="9456"/> | |||
<author fullname="Kenneth Vaughn" initials="K." role="editor" surname="Vaugh n"> | <author fullname="Kenneth Vaughn" initials="K." role="editor" surname="Vaugh n"> | |||
<organization>Trevilon LLC</organization> | <organization>Trevilon LLC</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>1060 Highway 107 South</street> | <street>1060 Highway 107 South</street> | |||
<city>Del Rio</city> | <city>Del Rio</city> | |||
<region>TN</region> | <region>TN</region> | |||
<code>37727</code> | <code>37727</code> | |||
<country>US</country> | <country>United States of America</country> | |||
</postal> | </postal> | |||
<phone>+1 571 331 5670</phone> | <phone>+1 571 331 5670</phone> | |||
<email>kvaughn@trevilon.com</email> | <email>kvaughn@trevilon.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2023"/> | <date month="November" year="2023"/> | |||
<!-- Meta-data Declarations --> | <area>Operations and Management</area> | |||
<area>Operations and management</area> | <workgroup>opsawg</workgroup> | |||
<workgroup>Internet Engineering Task Force</workgroup> | ||||
<keyword>TLSTM</keyword> | ||||
<keyword>DTLS</keyword> | ||||
<keyword>security</keyword> | ||||
<keyword>SNMPv3</keyword> | ||||
<keyword>MIB</keyword> | ||||
<abstract> | <abstract> | |||
<t>This document updates RFC 6353 "Transport Layer Security (TLS) | <t>This document updates RFC 6353 ("Transport Layer Security (TLS) | |||
Transport Model for the Simple Network Management Protocol (SNMP)", | Transport Model for the Simple Network Management Protocol (SNMP)") | |||
to reflect changes necessary to support Transport Layer Security | to reflect changes necessary to support Transport Layer Security | |||
Version 1.3 (TLS 1.3) and Datagram Transport Layer Security Version | version 1.3 (TLS 1.3) and Datagram Transport Layer Security version | |||
1.3 (DTLS 1.3), which are jointly known as "(D)TLS 1.3". This | 1.3 (DTLS 1.3), which are jointly known as "(D)TLS 1.3". This | |||
document is compatible with (D)TLS 1.2 and is intended to be | document is compatible with (D)TLS 1.2 and is intended to be | |||
compatible with future versions of SNMP and (D)TLS. </t> | compatible with future versions of SNMP and (D)TLS. </t> | |||
<t>This document updates the SNMP-TLS-TM-MIB as defined in RFC 6353.</t> | <t>This document updates the SNMP-TLS-TM-MIB as defined in RFC 6353.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="sect-1" numbered="true" toc="default"> | <section anchor="sect-1" numbered="true" toc="default"> | |||
<name>Introduction</name> | <name>Introduction</name> | |||
<t>This document updates and clarifies how the rules of <xref target="RFC6 353" | <t>This document updates and clarifies how the rules of <xref target="RFC6 353" | |||
format="default"/> apply when using Transport Layer Security (TLS) or | format="default"/> apply when using Transport Layer Security (TLS) or | |||
Datagram Transport Layer Security (DTLS) versions later than 1. 2. This | Datagram Transport Layer Security (DTLS) versions later than 1. 2. This | |||
document jointly refers to these two protocols as "(D)TLS". The upd ate also | document jointly refers to these two protocols as "(D)TLS". The upd ate also | |||
emphasizes the <xref target="RFC8996" format="default"/> requir | emphasizes the requirement in <xref target="RFC8996" format="de | |||
ement that | fault"/> prohibiting the use of TLS versions prior to TLS 1.2 <xref target="RFC5 | |||
prohibits the use of TLS versions prior to TLS 1.2 when using SNMP. Alth | 246"/> when using SNMP. Although the text of this | |||
ough the text of this | ||||
document specifically references SNMPv3 and (D)TLS 1.3, this do cument may be | document specifically references SNMPv3 and (D)TLS 1.3, this do cument may be | |||
applicable to future versions of these protocols and is backwards c ompatible with | applicable to future versions of these protocols and is backwards c ompatible with | |||
(D)TLS 1.2.</t> | (D)TLS 1.2.</t> | |||
<section anchor="sect-1.1" numbered="true" toc="default"> | <section anchor="sect-1.1" numbered="true" toc="default"> | |||
<name>The Internet-Standard Management Framework</name> | ||||
<t>For a detailed overview of the documents that describe the current Inter | ||||
net-Standard Management Framework, please refer to <xref target="RFC3410" sectio | ||||
nFormat="of" section="7"/>.</t> | ||||
<t>Managed objects are accessed via a virtual information store, termed | ||||
the Management Information Base or MIB. MIB objects are generally | ||||
accessed through the Simple Network Management Protocol (SNMP). | ||||
Objects in the MIB are defined using the mechanisms defined in the | ||||
Structure of Management Information (SMI). This memo specifies a MIB | ||||
module that is compliant to the SMIv2, which is described in STD 58 | ||||
([<xref target="RFC2578" format="default"/>], [<xref target="RFC2579" format= | ||||
"default"/>], and [<xref target="RFC2580" format="default"/>]).</t> | ||||
</section> | ||||
<section anchor="sect-1.2" numbered="true" toc="default"> | ||||
<name>Conventions </name> | <name>Conventions </name> | |||
<t> Within this document the terms "TLS", "DTLS", and "(D)TLS" apply to all | <t> Within this document, the terms "TLS", "DTLS", and "(D)TLS" apply to all | |||
versions of the indicated protocols. The term "SNMP" mean s "SNMPv3" unless a | versions of the indicated protocols. The term "SNMP" mean s "SNMPv3" unless a | |||
specific version number is indicated. Specific version nu mbers are used when | specific version number is indicated. Specific version nu mbers are used when | |||
the text needs to emphasize version numbers.</t> | the text needs to emphasize version numbers.</t> | |||
<t> For consistency with SNMP-related specifications, this document favo rs terminology as | <t> For consistency with SNMP-related specifications, this document favo rs terminology as | |||
defined in <xref target="STD62" format="default"/>, rather than favori ng terminology that | defined in <xref target="STD62" format="default"/>, rather than favori ng terminology that | |||
is consistent with non-SNMP specifications. This is consistent with th e IESG decision to | is consistent with non-SNMP specifications. This is consistent with th e IESG decision to | |||
not require the SNMP terminology be modified to match the usage of oth | not require that the SNMP terminology be modified to match the usage o | |||
er non-SNMP | f other non-SNMP | |||
specifications when SNMP was advanced to a Full Standard. "Authenticat | specifications when SNMP was advanced to an Internet Standard. "Authen | |||
ion" in this | tication" in this | |||
document typically refers to the English meaning of "serving to prove the authenticity of" | document typically refers to the English meaning of "serving to prove the authenticity of" | |||
the message, not data source authentication or peer identity authentic ation. The terms | the message, not data source authentication or peer identity authentic ation. The terms | |||
"manager" and "agent" are not used in this document because, in the <x | "manager" and "agent" are not used in this document because, in the | |||
ref target="RFC3411" | architecture defined in [<xref target="RFC3411"/>], all SNMP entities | |||
format="default"/> architecture, all SNMP entities have the capabili | have the capability of acting as | |||
ty of acting as | manager, agent, or both, depending on the SNMP application types suppo | |||
manager, agent, or both depending on the SNMP application types suppor | rted in the | |||
ted in the | ||||
implementation. Where distinction is necessary, the application names of command | implementation. Where distinction is necessary, the application names of command | |||
generator, command responder, notification originator, notification re ceiver, and proxy | generator, command responder, notification originator, notification re ceiver, and proxy | |||
forwarder are used. See <xref target="RFC3411" format="default">"SNMP Applications"</xref> | forwarder are used. See "An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks" [<xref target="RFC3411"/>] | |||
for further information. </t> | for further information. </t> | |||
<t> Throughout this document, the terms "client" and "server" are used t o refer to the two | <t> Throughout this document, the terms "client" and "server" are used t o refer to the two | |||
ends of the TLS transport connection. The client actively opens the TL S connection, and | ends of the TLS transport connection. The client actively opens the TL S connection, and | |||
the server passively listens for the incoming TLS connection. An SNMP entity | the server passively listens for the incoming TLS connection. An SNMP entity | |||
<bcp14>MAY</bcp14> act as a TLS client or server or both, depending on the SNMP | <bcp14>MAY</bcp14> act as a TLS client, TLS server, or both, dependi ng on the SNMP | |||
applications supported. </t> | applications supported. </t> | |||
<t> Throughout this document, the term "session" is used to refer to a s ecure | <t> Throughout this document, the term "session" is used to refer to a s ecure | |||
association between two instances of the TLS Transport Model (TLS TM) that permits | association between two instances of the TLS Transport Model (TLS TM) that permits | |||
the transmission of one or more SNMP messages within the lifetime of the session. | the transmission of one or more SNMP messages within the lifetime of the session. | |||
The TLS protocol also has an internal notion of a session and alt | The TLS protocol also has an internal notion of a session, and al | |||
hough these two | though these two | |||
concepts of a session are related, when the term "session" is use | concepts of a session are related, when the term "session" is use | |||
d this document | d, this document | |||
is referring to the TLSTM's specific session and not directly to the TLS protocol's | is referring to the TLSTM's specific session and not directly to the TLS protocol's | |||
session. </t> | session. </t> | |||
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</ | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
bcp14>", | "<bcp14>SHOULD NOT</bcp14>", | |||
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMEN | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
DED</bcp14>", | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
"<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OP | are to be interpreted as described in BCP 14 | |||
TIONAL</bcp14>" in | <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | |||
this document are to be interpreted as described in BCP 14 <xref targe | when, they appear in all capitals, as shown here.</t> | |||
t="RFC2119" | ||||
format="default"/> <xref target="RFC8174" format="default"/> when, and | ||||
only when, they | ||||
appear in all capitals, as shown here.</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sect-2" numbered="true" toc="default"> | <section anchor="sect-2" numbered="true" toc="default"> | |||
<name>Changes from RFC 6353</name> | <name>Changes from RFC 6353</name> | |||
<t> This document updates <xref target="RFC6353"/>. The changes from <xref target="RFC6353"/> | <t> This document updates <xref target="RFC6353"/>. The changes from <xref target="RFC6353"/> | |||
are defined in the following clauses. </t> | are defined in the following subsections. </t> | |||
<section anchor="sect-2.1" numbered="true" toc="default"> | <section anchor="sect-2.1" numbered="true" toc="default"> | |||
<name>TLSTM Fingerprint</name> | <name>TLSTM Fingerprint</name> | |||
<t><xref target="RFC6353" format="default"/> defines a fingerprint algor | <t><xref target="RFC6353" format="default"/> defines the SnmpTLSFingerpr | |||
ithm that | int textual convention to include the one-octet TLS 1.2 hash algorithm identifie | |||
references the one-octet TLS 1.2 hash algorithm identifie | r. This one-octet algorithm identifier is only applicable to (D)TLS protocol ver | |||
r. TLS 1.3 replaced | sions prior to 1.3. The TLS community does not plan to ever add additional value | |||
the one-octet hash algorithm identifier with a two-octet | s to | |||
TLS 1.3 cipher suite | the "TLS HashAlgorithm" registry <xref target="RFC5246"/> | |||
identifier. The TLS community does not plan to ever add a | , because some might incorrectly infer that | |||
dditional values to | ||||
the TLS 1.2 hash algorithm registry because some might in | ||||
correctly infer that | ||||
using a new hash algorithm with TLS 1.2 would overcome th e limitations of TLS | using a new hash algorithm with TLS 1.2 would overcome th e limitations of TLS | |||
1.2. However, there is still a need within TLSTM to suppo rt new values as they | 1.2. However, there is still a need within TLSTM to suppo rt new values as they | |||
are developed.</t> | are developed.</t> | |||
<t>This document updates the definition of SnmpTLSFingerprint to clarify | <t>This document updates the definition of SnmpTLSFingerprint to clarify | |||
that the | that the one-octet algorithm identifier uses the values in the IANA | |||
one-octet identifier in the fingerprint algorithm uses th | "SNMP-TLSTM HashAlgorithms" registry; this registry is consistent | |||
e IANA SNMP-TLSTM | with the IANA "TLS HashAlgorithm" registry for its initial values | |||
HashAlgorithm Registry; this registry is consistent with | but can be extended as needed to support new hashing algorithms | |||
the IANA TLS | without implying that the new values can be used by TLS version 1.2. | |||
HashAlgorithm Registry for its initial values but can be | This change allows the reuse of the existing fingerprint | |||
extended as needed | textual convention and minimizes the impact to <xref targ | |||
to support new hashing algorithms without implying that t | et="RFC6353" format="default"/>.</t> | |||
he new values can be used | <t> A "Y" in the "Recommended" column (<xref target="ta | |||
by TLS version 1.2. This change allows the reuse of the e | ble_1"/>) indicates that the registered value | |||
xisting fingerprint | has been recommended through a formal Standards Action <xref target="RFC81 | |||
TEXTUAL-CONVENTION and minimizes the impact to <xref targ | 26"/>. Not all parameters | |||
et="RFC6353" format="default"/>.</t> | ||||
<t> A "Y" in the "Recommended" column indicates that th | ||||
e registered value | ||||
has been recommended through a formal Standards Action. Not all parameter | ||||
s | ||||
defined in Standards Track documents are necessarily marked as "Recommende d".</t> | defined in Standards Track documents are necessarily marked as "Recommende d".</t> | |||
<t>An "N" in the "Recommended" column does not necessarily mean that it is flawed; | <t>An "N" in the "Recommended" column does not necessarily mean that the v alue is flawed; | |||
rather, it indicates that the item either has not been through the IETF c onsensus process, | rather, it indicates that the item either has not been through the IETF c onsensus process, | |||
has limited applicability, or is intended only for specific use cases.</t > | has limited applicability, or is intended only for specific use cases.</t > | |||
<t>The initial values for the SNMP-TLSTM HashAlgorithm Re | <t>The initial values for the "SNMP-TLSTM HashAlgorithms" | |||
gistry are defined below:</t> | registry are defined below:</t> | |||
<table anchor="table_1"> | <table anchor="table_1"> | |||
<name>SNMP-TLSTM Hash Algorithms</name> | <name>SNMP-TLSTM Hash Algorithms</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="center">Value</th> | <th align="center">Value</th> | |||
<th align="center">Description</th> | <th align="center">Description</th> | |||
<th align="center">Recommended</th> | <th align="center">Recommended</th> | |||
<th align="center">Reference</th> | <th align="center">References</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td>0</td> | <td>0</td> | |||
<td>none</td> | <td>none</td> | |||
<td>N</td> | <td>N</td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>1</td> | <td>1</td> | |||
<td>md5</td> | <td>md5</td> | |||
<td>N</td> | <td>N</td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>2</td> | <td>2</td> | |||
<td>sha1</td> | <td>sha1</td> | |||
<td>N</td> | <td>N</td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>3</td> | <td>3</td> | |||
<td>sha224</td> | <td>sha224</td> | |||
<td>Y</td> | <td>Y</td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>4</td> | <td>4</td> | |||
<td>sha256</td> | <td>sha256</td> | |||
<td>Y</td> | <td>Y</td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>5</td> | <td>5</td> | |||
<td>sha384</td> | <td>sha384</td> | |||
<td>Y</td> | <td>Y</td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>6</td> | <td>6</td> | |||
<td>sha512</td> | <td>sha512</td> | |||
<td>Y</td> | <td>Y</td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>7</td> | <td>7</td> | |||
<td>reserved</td> | <td>Reserved</td> | |||
<td></td> | <td></td> | |||
<td>[RFC8447]</td> | <td><xref target="RFC8447"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>8</td> | <td>8</td> | |||
<td>intrinsic</td> | <td>Intrinsic</td> | |||
<td>N</td> | <td>N</td> | |||
<td>[RFC8422]</td> | <td><xref target="RFC8422"/></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>9-223</td> | <td>9-223</td> | |||
<td>reserved</td> | <td>Unassigned</td> | |||
<td></td> | <td></td> | |||
<td>[RFC8447]</td> | <td></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>224-255</td> | <td>224-255</td> | |||
<td>private</td> | <td>Reserved for Private Use</td> | |||
<td></td> | <td></td> | |||
<td>[RFC5246]</td> | <td><xref target="RFC5246"/></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<t>Values 0 through 2 <bcp14>MUST NOT</bcp14> be used by implemen tations of this document but are | <t>Values 0 through 2 <bcp14>MUST NOT</bcp14> be used by implemen tations of this document but are | |||
listed for historical consistency.</t> | listed for historical consistency.</t> | |||
</section> | </section> | |||
<section anchor="sect-2.2" numbered="true" toc="default"> | <section anchor="sect-2.2" numbered="true" toc="default"> | |||
<name>Security Level</name> | <name>Security Level</name> | |||
<t> The <xref target="RFC3411" format="default"/> architecture recognize s three levels of | <t> The architecture defined in [<xref target="RFC3411" format="default" />] recognizes three levels of | |||
security:</t> | security:</t> | |||
<ul spacing="normal"> | <ul spacing="normal"> | |||
<li>without authentication and without privacy (noAuthNoPriv)</li> | <li>without authentication and without privacy (noAuthNoPriv)</li> | |||
<li>with authentication but without privacy (authNoPriv)</li> | <li>with authentication but without privacy (authNoPriv)</li> | |||
<li>with authentication and with privacy (authPriv)</li> | <li>with authentication and with privacy (authPriv)</li> | |||
</ul> | </ul> | |||
<t>Cipher suites for (D)TLS 1.3 defined in <xref target="RFC8446" format ="default"/> provide both | <t>Cipher suites for (D)TLS 1.3 defined in <xref target="RFC8446" format ="default"/> provide both | |||
authentication and privacy. Cipher suites defined in <xref target ="RFC9150" format="default"/> for | authentication and privacy. Cipher suites defined in <xref target ="RFC9150" format="default"/> for | |||
(D)TLS 1.3 provide only authentication, without any privacy prote ction. | (D)TLS 1.3 provide only authentication, without any privacy prote ction. | |||
Implementations MAY choose to force (D)TLS 1.3 to only allow ciph er | Implementations <bcp14>MAY</bcp14> choose to force (D)TLS 1.3 to only allow cipher | |||
suites that provide both authentication and privacy. | suites that provide both authentication and privacy. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sect-2.3" numbered="true" toc="default"> | <section anchor="sect-2.3" numbered="true" toc="default"> | |||
<name>(D)TLS Version</name> | <name>(D)TLS Version</name> | |||
<t><xref target="RFC6353" format="default"/> states that TLSTM clients a nd servers <bcp14>MUST NOT</bcp14> | <t><xref target="RFC6353" format="default"/> states that TLSTM clients a nd servers <bcp14>MUST NOT</bcp14> | |||
request, offer, or use SSL 2.0. <xref target="RFC8996" format="default "/> prohibits the use | request, offer, or use SSL 2.0. <xref target="RFC8996" format="default "/> prohibits the use | |||
of (D)TLS versions prior to version 1.2. TLSTM <bcp14>MUST</bcp14> o nly be used with (D)TLS | of (D)TLS versions prior to version 1.2. TLSTM <bcp14>MUST</bcp14> o nly be used with (D)TLS | |||
version 1.2 and later.</t> | versions 1.2 and later.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sect-3" numbered="true" toc="default"> | <section anchor="sect-3" numbered="true" toc="default"> | |||
<name>Additional Rules for TLS 1.3</name> | <name>Additional Rules for TLS 1.3</name> | |||
<t>This document specifies additional rules and clarifications for the use of TLS 1.3. These rules may | <t>This document specifies additional rules and clarifications for the use of TLS 1.3. These rules may | |||
additionally apply to future versions of TLS.</t> | additionally apply to future versions of TLS.</t> | |||
<section anchor="sect-3.1" numbered="true" toc="default"> | <section anchor="sect-3.1" numbered="true" toc="default"> | |||
<name>Zero Round Trip Time Resumption (0-RTT)</name> | <name>Zero Round-Trip Time Resumption (0-RTT)</name> | |||
<t> TLS 1.3 implementations for SNMP <bcp14>MUST NOT</bcp14> enable the 0-RTT mode of session | <t> TLS 1.3 implementations for SNMP <bcp14>MUST NOT</bcp14> enable the 0-RTT mode of session | |||
resumption (either sending or accepting) and <bcp14>MUST NOT</bcp14> automatically resend | resumption (either sending or accepting) and <bcp14>MUST NOT</bcp14> automatically resend | |||
0-RTT data if it is rejected by the server. The reason 0-RTT is disa | 0-RTT data if it is rejected by the server. 0-RTT is disallowed beca | |||
llowed is that there are | use there are | |||
no "safe" SNMP messages that if replayed will be guaranteed to cause | no "safe" SNMP messages that, if replayed, will be guaranteed to cau | |||
no harm at a server side: all | se no harm at the server side: all | |||
incoming notification or command responses are meant to be acted upon | incoming notifications or command responses are meant to be acted upon | |||
only once. See | only once. See <xref target="sect-5"/> ("<xref target="sect-5" format="title"/> | |||
Security considerations section for further details. </t> | ") for further details. </t> | |||
<t>TLS TM clients and servers <bcp14>MUST NOT</bcp14> request, offer, or | <t>TLSTM clients and servers <bcp14>MUST NOT</bcp14> request, offer, or | |||
use the 0-RTT mode of TLS 1.3. | use the 0-RTT mode of TLS 1.3. | |||
<xref target="RFC8446" format="default"/> removed the renegotiation supported in TLS 1.2 | <xref target="RFC8446" format="default"/> removed the renegotiation supported in TLS 1.2 | |||
<xref target="RFC5246" format="default"/>; for session resumption, i t introduced a | <xref target="RFC5246" format="default"/>; for session resumption, i t introduced a | |||
zero-RTT (0-RTT) mode, saving a round-trip at connection setup at the cost of increased | zero-RTT (0-RTT) mode, saving a round trip at connection setup at the cost of increased | |||
risk of replay attacks (it is possible for servers to guard against th is attack by keeping | risk of replay attacks (it is possible for servers to guard against th is attack by keeping | |||
track of all the messages received). <xref target="RFC8446" format="de fault"/> requires a | track of all the messages received). <xref target="RFC8446" format="de fault"/> requires that a | |||
profile be written for any application that wants to use 0-RTT, specif ying which messages are | profile be written for any application that wants to use 0-RTT, specif ying which messages are | |||
"safe to use" on this mode. Within SNMP, there are no messages that ar | "safe to use" with this mode. Within SNMP, there are no messages that | |||
e "safe to use" with this mode.</t> | are "safe to use" with this mode.</t> | |||
<t>Renegotiation of sessions is not supported as it is not supported by | <t>Renegotiation of sessions is not supported, as it is not supported by | |||
TLS 1.3. If a future version | TLS 1.3. If a future version | |||
of TLS supports renegotiation, this RFC should be updated to indi cate whether there are any additional | of TLS supports renegotiation, this RFC should be updated to indi cate whether there are any additional | |||
requirements related to its use.</t> | requirements related to its use.</t> | |||
</section> | </section> | |||
<section anchor="sect-3.2" numbered="true" toc="default"> | <section anchor="sect-3.2" numbered="true" toc="default"> | |||
<name>TLS cipher suites, extensions and protocol invariants</name> | <name>TLS Cipher Suites, Extensions, and Protocol Invariants</name> | |||
<t><xref target="RFC8446" format="default"/> section 9 requires that, in | <t><xref target="RFC8446" sectionFormat="of" section="9"/> | |||
the absence of | requires that, in the absence of | |||
application profiles, certain cipher suites, TLS extensions, and TLS p rotocol invariants | application profiles, certain cipher suites, TLS extensions, and TLS p rotocol invariants | |||
are mandatory to implement. This document does not specify an applicat ion profile, hence | be mandatory to implement. This document does not specify an applicati on profile; hence, | |||
all the compliance requirements in <xref target="RFC8446" format="defa ult"/> apply. | all the compliance requirements in <xref target="RFC8446" format="defa ult"/> apply. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sect-4" numbered="true" toc="default"> | <section anchor="sect-4" numbered="true" toc="default"> | |||
<name>MIB Module Definition</name> | <name>MIB Module Definitions</name> | |||
<t>This module makes references to | <t>This SNMP-TLS-TM-MIB module imports items from | |||
<xref target="RFC1123" format="default"/>, <xref target="RFC2578" fo | [<xref target="RFC2578" format="default"/>], | |||
rmat="default"/>, | [<xref target="RFC2579" format="default"/>], | |||
<xref target="RFC2579" format="default"/>, <xref target="RFC2580" fo | [<xref target="RFC2580" format="default"/>], | |||
rmat="default"/>, | [<xref target="RFC3411" format="default"/>], and | |||
<xref target="RFC3411" format="default"/>, <xref target="RFC3413" fo | [<xref target="RFC3413" format="default"/>]. It also references | |||
rmat="default"/>, | <xref target="RFC1123" format="default"/>, | |||
<xref target="RFC5246" format="default"/>, <xref target="RFC5280" fo | <xref target="RFC5246" format="default"/>, | |||
rmat="default"/>, | <xref target="RFC5280" format="default"/>, | |||
<xref target="RFC5890" format="default"/>, <xref target="RFC5952" fo | <xref target="RFC5591" format="default"/>, | |||
rmat="default"/>, | <xref target="RFC5890" format="default"/>, | |||
<xref target="RFC5953" format="default"/>, <xref target="RFC6353" fo | <xref target="RFC5952" format="default"/>, | |||
rmat="default"/>, | <xref target="RFC5953" format="default"/>, | |||
and <xref target="STD58" format="default"/></t> | <xref target="RFC6353" format="default"/>, and | |||
<sourcecode anchor="mib" name="snmp-tls-tm.mib" type="mib"><![CDATA[ | <xref target="STD58" format="default"/>.</t> | |||
<sourcecode anchor="mib" name="SNMP-TLS-TM-MIB" type="mib" markers="true | ||||
"><![CDATA[ | ||||
SNMP-TLS-TM-MIB DEFINITIONS ::= BEGIN | SNMP-TLS-TM-MIB DEFINITIONS ::= BEGIN | |||
IMPORTS | IMPORTS | |||
MODULE-IDENTITY, OBJECT-TYPE, | MODULE-IDENTITY, OBJECT-TYPE, | |||
OBJECT-IDENTITY, mib-2, snmpDomains, | OBJECT-IDENTITY, mib-2, snmpDomains, | |||
Counter32, Unsigned32, Gauge32, NOTIFICATION-TYPE | Counter32, Unsigned32, Gauge32, NOTIFICATION-TYPE | |||
FROM SNMPv2-SMI -- RFC 2578 or any update thereof | FROM SNMPv2-SMI -- RFC 2578 or any update thereof | |||
TEXTUAL-CONVENTION, TimeStamp, RowStatus, StorageType, | TEXTUAL-CONVENTION, TimeStamp, RowStatus, StorageType, | |||
AutonomousType | AutonomousType | |||
FROM SNMPv2-TC -- RFC 2579 or any update thereof | FROM SNMPv2-TC -- RFC 2579 or any update thereof | |||
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP | MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP | |||
FROM SNMPv2-CONF -- RFC 2580 or any update thereof | FROM SNMPv2-CONF -- RFC 2580 or any update thereof | |||
SnmpAdminString | SnmpAdminString | |||
FROM SNMP-FRAMEWORK-MIB -- RFC 3411 or any update thereof | FROM SNMP-FRAMEWORK-MIB -- RFC 3411 or any update thereof | |||
snmpTargetParamsName, snmpTargetAddrName | snmpTargetParamsName, snmpTargetAddrName | |||
FROM SNMP-TARGET-MIB -- RFC 3413 or any update thereof | FROM SNMP-TARGET-MIB -- RFC 3413 or any update thereof | |||
; | ; | |||
snmpTlstmMIB MODULE-IDENTITY | snmpTlstmMIB MODULE-IDENTITY | |||
LAST-UPDATED "202303010000Z" | LAST-UPDATED "202310310000Z" | |||
ORGANIZATION "OPSA Working Group" | ||||
CONTACT-INFO "WG-EMail: opsawg@ietf.org | ||||
Mailing list subscription info: | ||||
https://www.ietf.org/mailman/listinfo/opsawg | ||||
Kenneth Vaughn | ORGANIZATION "Operations and Management Area Working Group | |||
Trevilon LLC | <mailto:opsawg@ietf.org>" | |||
1060 Hwy 107 South | CONTACT-INFO | |||
Del Rio, TN 37727 | "Author: Kenneth Vaughn | |||
United States | <mailto:kvaughn@trevilon.com>" | |||
Phone: +1 571 331 5670 | DESCRIPTION | |||
Email: kvaughn@trevilon.com" | "This is the MIB module for the TLS Transport Model | |||
DESCRIPTION " | (TLSTM). | |||
The TLS Transport Model MIB | ||||
Copyright (c) 2010-2022 IETF Trust and the persons identified | Copyright (c) 2023 IETF Trust and the persons identified | |||
as authors of the code. All rights reserved. | as 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, | |||
without modification, is permitted pursuant to, and subject | with or without modification, is permitted pursuant | |||
to the license terms contained in, the Revised BSD License | to, and subject to the license terms contained in, | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | the Revised BSD License set forth in Section 4.c | |||
Relating to IETF Documents | of the IETF Trust's Legal Provisions Relating to IETF | |||
(http://trustee.ietf.org/license-info). | Documents (https://trustee.ietf.org/license-info). | |||
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', | |||
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT | 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', | |||
RECOMMENDED', 'MAY', and 'OPTIONAL' in this document are to | 'NOT RECOMMENDED', 'MAY', and 'OPTIONAL' in this document | |||
be interpreted as described in BCP 14 (RFC 2119) (RFC 8174) | are to be interpreted as described in BCP 14 (RFC 2119) | |||
when, and only when, they appear in all capitals, as shown | (RFC 8174) when, and only when, they appear in all | |||
here." | capitals, as shown here." | |||
REVISION "202303010000Z" | REVISION "202310310000Z" | |||
DESCRIPTION "This version of this MIB module is part of | DESCRIPTION | |||
RFC XXXX; see the RFC itself for full legal | "This version of this MIB module is part of | |||
notices. This version: [ Note to RFC Editor: | RFC 9456; see the RFC itself for full legal | |||
please replace the above XXXX with the RFC number | notices. This version does the following: | |||
of this document ] | ||||
1. Updates the definition of SnmpTLSFingerprint | 1) Updates the definition of SnmpTLSFingerprint | |||
to clarify the registry used for the one-octet | to clarify the registry used for the one-octet | |||
hash algorithm identifier. | hash algorithm identifier. | |||
2. Capitalizes key words in conformance with | ||||
BCP 14 | 2) Capitalizes key words in conformance with | |||
3. Replaces 'may not' with 'MUST NOT' to clarify | BCP 14. | |||
intent in several locations. | ||||
4. Replaces 'may not' with a clarification within | 3) Replaces 'may not' with 'MUST NOT' to clarify | |||
the definition of SnmpTLSAddress" | intent in several locations. | |||
4) Replaces 'may not' with a clarification within | ||||
the definition of SnmpTLSAddress. | ||||
5) Applies cosmetic grammar improvements and | ||||
reformatting causing whitespace changes." | ||||
REVISION "201107190000Z" | REVISION "201107190000Z" | |||
DESCRIPTION "This version of this MIB module is part of | DESCRIPTION | |||
RFC 6353; see the RFC itself for full legal | "This version of this MIB module is part of | |||
notices. The only change was to introduce | RFC 6353; see the RFC itself for full legal | |||
new wording to reflect require changes for | notices. The only change was to introduce | |||
IDNA addresses in the SnmpTLSAddress TC." | new wording to reflect required changes for | |||
Internationalized Domain Names for Applications | ||||
(IDNA) addresses in the SnmpTLSAddress textual | ||||
convention (TC)." | ||||
REVISION "201005070000Z" | REVISION "201005070000Z" | |||
DESCRIPTION "This version of this MIB module is part of | DESCRIPTION | |||
RFC 5953; see the RFC itself for full legal | "This version of this MIB module is part of | |||
notices." | RFC 5953; see the RFC itself for full legal | |||
notices." | ||||
::= { mib-2 198 } | ::= { mib-2 198 } | |||
-- ************************************************ | -- ************************************************ | |||
-- subtrees of the SNMP-TLS-TM-MIB | -- subtrees of the SNMP-TLS-TM-MIB | |||
-- ************************************************ | -- ************************************************ | |||
snmpTlstmNotifications OBJECT IDENTIFIER ::= { snmpTlstmMIB 0 } | snmpTlstmNotifications OBJECT IDENTIFIER ::= { snmpTlstmMIB 0 } | |||
snmpTlstmIdentities OBJECT IDENTIFIER ::= { snmpTlstmMIB 1 } | snmpTlstmIdentities OBJECT IDENTIFIER ::= { snmpTlstmMIB 1 } | |||
snmpTlstmObjects OBJECT IDENTIFIER ::= { snmpTlstmMIB 2 } | snmpTlstmObjects OBJECT IDENTIFIER ::= { snmpTlstmMIB 2 } | |||
snmpTlstmConformance OBJECT IDENTIFIER ::= { snmpTlstmMIB 3 } | snmpTlstmConformance OBJECT IDENTIFIER ::= { snmpTlstmMIB 3 } | |||
snmpTlstmHashAlgorithms OBJECT-IDENTITY | snmpTlstmHashAlgorithms OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A node used to register hashing algorithm identifiers recorded | "A node used to register hashing algorithm identifiers | |||
in the IANA SNMP-TLSTM HashAlgorithm Registry." | recorded in the IANA 'SNMP-TLSTM HashAlgorithms' registry." | |||
::= { snmpTlstmMIB 4 } | ::= { snmpTlstmMIB 4 } | |||
-- ************************************************ | -- ************************************************ | |||
-- snmpTlstmObjects - Objects | -- snmpTlstmObjects - Objects | |||
-- ************************************************ | -- ************************************************ | |||
snmpTLSTCPDomain OBJECT-IDENTITY | snmpTLSTCPDomain OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The SNMP over TLS via TCP transport domain. The | "The OBJECT IDENTIFIER representing the TDomain for the | |||
SNMP over TLS via TCP transport domain. The | ||||
corresponding transport address is of type SnmpTLSAddress. | corresponding transport address is of type SnmpTLSAddress. | |||
The securityName prefix to be associated with the | The securityName prefix to be associated with the | |||
snmpTLSTCPDomain is 'tls'. This prefix MAY be used by | snmpTLSTCPDomain is 'tls'. This prefix MAY be used by | |||
security models or other components to identify which secure | security models or other components to identify which secure | |||
transport infrastructure authenticated a securityName." | transport infrastructure authenticated a securityName." | |||
REFERENCE | REFERENCE | |||
"RFC 2579: Textual Conventions for SMIv2" | "TDomain, as defined in RFC 2579: Textual Conventions | |||
for SMIv2" | ||||
::= { snmpDomains 8 } | ::= { snmpDomains 8 } | |||
snmpDTLSUDPDomain OBJECT-IDENTITY | snmpDTLSUDPDomain OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The SNMP over DTLS via UDP transport domain. The | "The OBJECT IDENTIFIER representing the TDomain for the | |||
SNMP over DTLS via UDP transport domain. The | ||||
corresponding transport address is of type SnmpTLSAddress. | corresponding transport address is of type SnmpTLSAddress. | |||
The securityName prefix to be associated with the | The securityName prefix to be associated with the | |||
snmpDTLSUDPDomain is 'dtls'. This prefix MAY be used by | snmpDTLSUDPDomain is 'dtls'. This prefix MAY be used by | |||
security models or other components to identify which secure | security models or other components to identify which secure | |||
transport infrastructure authenticated a securityName." | transport infrastructure authenticated a securityName." | |||
REFERENCE | REFERENCE | |||
"RFC 2579: Textual Conventions for SMIv2" | "TDomain, as defined in RFC 2579: Textual Conventions | |||
for SMIv2" | ||||
::= { snmpDomains 9 } | ::= { snmpDomains 9 } | |||
SnmpTLSAddress ::= TEXTUAL-CONVENTION | SnmpTLSAddress ::= TEXTUAL-CONVENTION | |||
DISPLAY-HINT "1a" | DISPLAY-HINT "1a" | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Represents an IPv4 address, an IPv6 address, or a | "Represents an IPv4 address, an IPv6 address, or an | |||
US-ASCII-encoded hostname and port number. | ASCII-encoded host name and port number. | |||
An IPv4 address MUST be in dotted decimal format followed by | An IPv4 address MUST be in dotted decimal format followed | |||
a colon ':' (US-ASCII character 0x3A) and a decimal port | by a colon ':' (ASCII character 0x3A) and a decimal | |||
number in US-ASCII. | port number in ASCII. | |||
An IPv6 address MUST be a colon-separated format (as | An IPv6 address MUST be a colon-separated format (as | |||
described in RFC 5952), surrounded by square brackets ('[', | described in RFC 5952), surrounded by square brackets | |||
US-ASCII character 0x5B, and ']', US-ASCII character 0x5D), | ('[', ASCII character 0x5B, and ']', ASCII character | |||
followed by a colon ':' (US-ASCII character 0x3A) and a | 0x5D), followed by a colon ':' (ASCII character 0x3A) | |||
decimal port number in US-ASCII. | and a decimal port number in ASCII. | |||
A hostname MUST be in US-ASCII (as per RFC 1123); | A host name MUST be in ASCII (as per RFC 1123); | |||
internationalized hostnames MUST be encoded as A-labels as | internationalized host names MUST be encoded as A-labels as | |||
specified in RFC 5890. The hostname is followed by a | specified in RFC 5890. The host name is followed by a | |||
colon ':' (US-ASCII character 0x3A) and a decimal port number | colon ':' (ASCII character 0x3A) and a decimal port | |||
in US-ASCII. The name SHOULD be fully qualified whenever | number in ASCII. The name SHOULD be fully qualified | |||
possible. | whenever possible. | |||
Values of this textual convention are not guaranteed to be | Values of this textual convention are not guaranteed to be | |||
directly usable as transport layer addressing information, | directly usable as transport-layer addressing information, | |||
potentially requiring additional processing, such as run-time | potentially requiring additional processing, such as | |||
resolution. As such, applications that write them MUST be | run-time resolution. As such, applications that write | |||
prepared for handling errors if such values are not | them MUST be prepared for handling errors if such values | |||
supported, or cannot be resolved (if resolution occurs at the | are not supported or cannot be resolved (if resolution | |||
time of the management operation). | occurs at the time of the management operation). | |||
The DESCRIPTION clause of TransportAddress objects that may | The DESCRIPTION clause of TransportAddress objects that | |||
have SnmpTLSAddress values MUST fully describe how (and | may have SnmpTLSAddress values MUST fully describe how | |||
when) such names are to be resolved to IP addresses and vice | (and when) such names are to be resolved to IP addresses | |||
versa. | and vice versa. | |||
This textual convention SHOULD NOT be used directly in object | This textual convention SHOULD NOT be used directly in | |||
definitions since it restricts addresses to a specific | object definitions, since it restricts addresses to a | |||
format. However, if it is used, it MAY be used either on its | specific format. However, if it is used, it MAY be used | |||
own or in conjunction with TransportAddressType or | either on its own or in conjunction with | |||
TransportDomain as a pair. | TransportAddressType or TransportDomain as a pair. | |||
When this textual convention is used as a syntax of an index | When this textual convention is used as a syntax of an | |||
object, there may be issues with the limit of 128 | index object, there may be issues with the limit of 128 | |||
sub-identifiers specified in SMIv2 (STD 58). It is | sub-identifiers specified in SMIv2 (STD 58). It is | |||
RECOMMENDED that all MIB documents using this textual | RECOMMENDED that all MIB documents using this textual | |||
convention make explicit any limitations on index component | convention make explicit any limitations on index | |||
lengths that management software MUST observe. This MAY be | component lengths that management software MUST observe. | |||
done either by including SIZE constraints on the index | This MAY be done by either 1) including SIZE constraints | |||
components or by specifying applicable constraints in the | on the index components or 2) specifying applicable | |||
conceptual row DESCRIPTION clause or in the surrounding | constraints in the conceptual row's DESCRIPTION clause or | |||
documentation." | in the surrounding documentation." | |||
REFERENCE | REFERENCE | |||
"RFC 1123: Requirements for Internet Hosts - Application and | "RFC 1123: Requirements for Internet Hosts - Application and | |||
Support | Support | |||
RFC 5890: Internationalized Domain Names for Applications | RFC 5890: Internationalized Domain Names for Applications | |||
(IDNA): Definitions and Document Framework | (IDNA): Definitions and Document Framework | |||
RFC 5952: A Recommendation for IPv6 Address Text | RFC 5952: A Recommendation for IPv6 Address Text | |||
Representation" | Representation" | |||
SYNTAX OCTET STRING (SIZE (1..255)) | SYNTAX OCTET STRING (SIZE (1..255)) | |||
SnmpTLSFingerprint ::= TEXTUAL-CONVENTION | SnmpTLSFingerprint ::= TEXTUAL-CONVENTION | |||
DISPLAY-HINT "1x:1x" | DISPLAY-HINT "1x:1x" | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A fingerprint value that can be used to uniquely reference | "A fingerprint value that can be used to uniquely reference | |||
other data of potentially arbitrary length. | other data of potentially arbitrary length. | |||
An SnmpTLSFingerprint value is composed of a 1-octet hashing | An SnmpTLSFingerprint value is composed of a one-octet | |||
algorithm identifier followed by the fingerprint value. The | hashing algorithm identifier followed by the fingerprint | |||
1-octet identifier value encoded is taken from IANA SNMP-TLSTM | value. The one-octet identifier value encoded is taken | |||
HashAlgorithm Registry. The remaining octets of the | from the IANA 'SNMP-TLSTM HashAlgorithms' registry. The | |||
SnmpTLSFingerprint value are filled using the results of the | remaining octets of the SnmpTLSFingerprint value are | |||
hashing algorithm. | filled using the results of the hashing algorithm. | |||
Historically, the 1-octet hashing algorithm identifier was | Historically, the one-octet hashing algorithm identifier | |||
based on the IANA TLS HashAlgorithm Registry (RFC 5246); | was based on the IANA 'TLS HashAlgorithm' registry | |||
however, this registry is no longer in use for TLS 1.3 | (RFC 5246); however, this registry is no longer in use for | |||
and above and are not expected to have any new registrations | TLS 1.3 and above and is not expected to have any new | |||
added to it. To | registrations added to it. To allow the fingerprint | |||
allow the fingerprint algorithm to support additional hashing | algorithm to support additional hashing algorithms that | |||
algorithms that might be used by later versions of (D)TLS, the | might be used by later versions of (D)TLS, the octet value | |||
octet value encoded is now taken from IANA SNMP-TLSTM | encoded is now taken from the IANA | |||
HashAlgorithm Registry. The initial values within this | 'SNMP-TLSTM HashAlgorithms' registry. The initial values | |||
registry are identical to the values in the TLS HashAlgorithm | within this registry are identical to the values in the | |||
registry but can be extended to support new hashing algorithms | 'TLS HashAlgorithm' registry but can be extended to | |||
as needed. | support new hashing algorithms as needed. | |||
This TEXTUAL-CONVENTION allows for a zero-length (blank) | This textual convention allows for a zero-length (blank) | |||
SnmpTLSFingerprint value for use in tables where the | SnmpTLSFingerprint value for use in tables where the | |||
fingerprint value MAY be optional. MIB definitions or | fingerprint value MAY be optional. MIB definitions or | |||
implementations MAY refuse to accept a zero-length value as | implementations MAY refuse to accept a zero-length value | |||
appropriate." | as appropriate." | |||
REFERENCE "https://www.iana.org/assignments/smi-numbers/ | REFERENCE | |||
smi-numbers.xhtml" | "RFC 5246: The Transport Layer Security (TLS) Protocol | |||
Version 1.2 | ||||
https://www.iana.org/assignments/smi-numbers/" | ||||
SYNTAX OCTET STRING (SIZE (0..255)) | SYNTAX OCTET STRING (SIZE (0..255)) | |||
-- Identities for use in the snmpTlstmCertToTSNTable | -- Identities for use in the snmpTlstmCertToTSNTable | |||
snmpTlstmCertToTSNMIdentities OBJECT IDENTIFIER | snmpTlstmCertToTSNMIdentities OBJECT IDENTIFIER ::= | |||
::= { snmpTlstmIdentities 1 } | { snmpTlstmIdentities 1 } | |||
snmpTlstmCertSpecified OBJECT-IDENTITY | snmpTlstmCertSpecified OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Directly specifies the tmSecurityName to be used for this | "Directly specifies the tmSecurityName to be used for this | |||
certificate. The value of the tmSecurityName to use is | certificate. The value of the tmSecurityName to use is | |||
specified in the snmpTlstmCertToTSNData column. The | specified in the 'snmpTlstmCertToTSNData' column. The | |||
snmpTlstmCertToTSNData column MUST contain a non-zero length | 'snmpTlstmCertToTSNData' column MUST contain a | |||
SnmpAdminString compliant value or the mapping described in | non-zero-length SnmpAdminString-compliant value, or the | |||
this row MUST be considered a failure." | mapping described in this row MUST be considered a | |||
failure." | ||||
::= { snmpTlstmCertToTSNMIdentities 1 } | ::= { snmpTlstmCertToTSNMIdentities 1 } | |||
snmpTlstmCertSANRFC822Name OBJECT-IDENTITY | snmpTlstmCertSANRFC822Name OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Maps a subjectAltName's rfc822Name to a tmSecurityName. The | "Maps a subjectAltName's rfc822Name to a tmSecurityName. | |||
local part of the rfc822Name is passed unaltered but the | The local-part of the rfc822Name is passed unaltered, but | |||
host-part of the name MUST be passed in lowercase. This | the domain of the name MUST be passed in lowercase. | |||
mapping results in a 1:1 correspondence between equivalent | This mapping results in a 1:1 correspondence between | |||
subjectAltName rfc822Name values and tmSecurityName values | equivalent subjectAltName rfc822Name values and | |||
except that the host-part of the name MUST be passed in | tmSecurityName values, except that the domain of the | |||
lowercase. | name MUST be passed in lowercase. | |||
Example rfc822Name Field: FooBar@Example.COM is mapped to | Example rfc822Name field: FooBar@Example.COM is mapped to | |||
tmSecurityName: FooBar@example.com." | tmSecurityName: FooBar@example.com." | |||
::= { snmpTlstmCertToTSNMIdentities 2 } | ::= { snmpTlstmCertToTSNMIdentities 2 } | |||
snmpTlstmCertSANDNSName OBJECT-IDENTITY | snmpTlstmCertSANDNSName OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Maps a subjectAltName's dNSName to a tmSecurityName after | "Maps a subjectAltName's dNSName to a tmSecurityName after | |||
first converting it to all lowercase (RFC 5280 does not | first converting it to all lowercase (RFC 5280 does not | |||
specify converting to lowercase, so this involves an extra | specify converting to lowercase, so this involves an extra | |||
step). This mapping results in a 1:1 correspondence between | step). This mapping results in a 1:1 correspondence | |||
subjectAltName dNSName values and the tmSecurityName values." | between subjectAltName dNSName values and the | |||
REFERENCE "RFC 5280 - Internet X.509 Public Key Infrastructure | tmSecurityName values." | |||
Certificate and Certificate Revocation List | REFERENCE | |||
(CRL) Profile." | "RFC 5280: Internet X.509 Public Key Infrastructure | |||
Certificate and Certificate Revocation | ||||
List (CRL) Profile" | ||||
::= { snmpTlstmCertToTSNMIdentities 3 } | ::= { snmpTlstmCertToTSNMIdentities 3 } | |||
snmpTlstmCertSANIpAddress OBJECT-IDENTITY | snmpTlstmCertSANIpAddress OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Maps a subjectAltName's iPAddress to a tmSecurityName by | "Maps a subjectAltName's iPAddress to a tmSecurityName by | |||
transforming the binary encoded address as follows: | transforming the binary-encoded address as follows: | |||
1) for IPv4, the value is converted into a decimal-dotted quad | 1) For IPv4, the value is converted into a | |||
address (e.g., '192.0.2.1'). | decimal-dotted quad address (e.g., '192.0.2.1'). | |||
2) for IPv6 addresses, the value is converted into a 32- | 2) For IPv6 addresses, the value is converted into a | |||
character all lowercase hexadecimal string without any colon | 32-character all-lowercase hexadecimal string | |||
separators. | without any colon separators. | |||
This mapping results in a 1:1 correspondence between | This mapping results in a 1:1 correspondence between | |||
subjectAltName iPAddress values and the tmSecurityName values. | subjectAltName iPAddress values and the tmSecurityName | |||
values. | ||||
The resulting length of an encoded IPv6 address is the maximum | The resulting length of an encoded IPv6 address is the | |||
length supported by the View-Based Access Control Model | maximum length supported by the View-based Access Control | |||
(VACM). Using both the Transport Security Model's support for | Model (VACM). Using an IPv6 address while the value of | |||
transport prefixes (see the SNMP-TSM-MIB's | snmpTsmConfigurationUsePrefix is 'true' (see the | |||
snmpTsmConfigurationUsePrefix object for details) will result | SNMP-TSM-MIB, as defined in RFC 5591) will result in | |||
in securityName lengths that exceed what VACM can handle." | securityName lengths that exceed what the VACM can handle." | |||
REFERENCE | ||||
"RFC 5591: Transport Security Model for the Simple Network | ||||
Management Protocol (SNMP)" | ||||
::= { snmpTlstmCertToTSNMIdentities 4 } | ::= { snmpTlstmCertToTSNMIdentities 4 } | |||
snmpTlstmCertSANAny OBJECT-IDENTITY | snmpTlstmCertSANAny OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Maps any of the following fields using the corresponding | "Maps any of the following fields using the corresponding | |||
mapping algorithms: | mapping algorithms: | |||
|------------+----------------------------| | |------------+----------------------------| | |||
| Type | Algorithm | | | Type | Algorithm | | |||
|------------+----------------------------| | |------------+----------------------------| | |||
| rfc822Name | snmpTlstmCertSANRFC822Name | | | rfc822Name | snmpTlstmCertSANRFC822Name | | |||
| dNSName | snmpTlstmCertSANDNSName | | | dNSName | snmpTlstmCertSANDNSName | | |||
| iPAddress | snmpTlstmCertSANIpAddress | | | iPAddress | snmpTlstmCertSANIpAddress | | |||
|------------+----------------------------| | |------------+----------------------------| | |||
The first matching subjectAltName value found in the | The first subjectAltName value contained in the certificate | |||
certificate of the above types MUST be used when deriving the | that matches any of the above types MUST be used when | |||
tmSecurityName. The mapping algorithm specified in the | deriving the tmSecurityName. The mapping algorithm | |||
'Algorithm' column MUST be used to derive the tmSecurityName. | specified in the 'Algorithm' column of the corresponding | |||
row MUST be used to derive the tmSecurityName. | ||||
This mapping results in a 1:1 correspondence between | This mapping results in a 1:1 correspondence between | |||
subjectAltName values and tmSecurityName values. The three | subjectAltName values and tmSecurityName values. The | |||
sub-mapping algorithms produced by this combined algorithm | three sub-mapping algorithms produced by this combined | |||
cannot produce conflicting results between themselves." | algorithm cannot produce conflicting results between | |||
themselves." | ||||
::= { snmpTlstmCertToTSNMIdentities 5 } | ::= { snmpTlstmCertToTSNMIdentities 5 } | |||
snmpTlstmCertCommonName OBJECT-IDENTITY | snmpTlstmCertCommonName OBJECT-IDENTITY | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Maps a certificate's CommonName to a tmSecurityName after | "Maps a certificate's CommonName to a tmSecurityName after | |||
converting it to a UTF-8 encoding. The usage of CommonNames | converting it to a UTF-8 encoding. The usage of | |||
is deprecated and users are encouraged to use subjectAltName | CommonNames is deprecated, and users are encouraged to use | |||
mapping methods instead. This mapping results in a 1:1 | subjectAltName mapping methods instead. This mapping | |||
correspondence between certificate CommonName values and | results in a 1:1 correspondence between certificate | |||
tmSecurityName values." | CommonName values and tmSecurityName values." | |||
::= { snmpTlstmCertToTSNMIdentities 6 } | ::= { snmpTlstmCertToTSNMIdentities 6 } | |||
-- The snmpTlstmSession Group | -- The snmpTlstmSession Group | |||
snmpTlstmSession OBJECT IDENTIFIER ::= { snmpTlstmObjects 1 } | snmpTlstmSession OBJECT IDENTIFIER ::= { snmpTlstmObjects 1 } | |||
snmpTlstmSessionOpens OBJECT-TYPE | snmpTlstmSessionOpens OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times an openSession() request has been | "The number of times an openSession() request has been | |||
executed as a (D)TLS client, regardless of whether it | executed as a (D)TLS client, regardless of whether it | |||
succeeded or failed." | succeeded or failed." | |||
::= { snmpTlstmSession 1 } | ::= { snmpTlstmSession 1 } | |||
snmpTlstmSessionClientCloses OBJECT-TYPE | snmpTlstmSessionClientCloses OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times a closeSession() request has been | "The number of times a closeSession() request has been | |||
executed as a (D)TLS client, regardless of whether it | executed as a (D)TLS client, regardless of whether it | |||
succeeded or failed." | succeeded or failed." | |||
::= { snmpTlstmSession 2 } | ::= { snmpTlstmSession 2 } | |||
snmpTlstmSessionOpenErrors OBJECT-TYPE | snmpTlstmSessionOpenErrors OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times an openSession() request failed to open | "The number of times an openSession() request failed to | |||
a session as a (D)TLS client, for any reason." | open a session as a (D)TLS client, for any reason." | |||
::= { snmpTlstmSession 3 } | ::= { snmpTlstmSession 3 } | |||
snmpTlstmSessionAccepts OBJECT-TYPE | snmpTlstmSessionAccepts OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times a (D)TLS server has accepted a new | "The number of times a (D)TLS server has accepted a new | |||
connection from a client and has received at least one SNMP | connection from a client and has received at least one | |||
message through it." | SNMP message through it." | |||
::= { snmpTlstmSession 4 } | ::= { snmpTlstmSession 4 } | |||
snmpTlstmSessionServerCloses OBJECT-TYPE | snmpTlstmSessionServerCloses OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times a closeSession() request has been | "The number of times a closeSession() request has been | |||
executed as a (D)TLS server, regardless of whether it | executed as a (D)TLS server, regardless of whether it | |||
succeeded or failed." | succeeded or failed." | |||
::= { snmpTlstmSession 5 } | ::= { snmpTlstmSession 5 } | |||
snmpTlstmSessionNoSessions OBJECT-TYPE | snmpTlstmSessionNoSessions OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times an outgoing message was dropped because | "The number of times an outgoing message was dropped | |||
the session associated with the passed tmStateReference was | because the session associated with the passed | |||
no longer (or was never) available." | tmStateReference was no longer (or never) available." | |||
::= { snmpTlstmSession 6 } | ::= { snmpTlstmSession 6 } | |||
snmpTlstmSessionInvalidClientCertificates OBJECT-TYPE | snmpTlstmSessionInvalidClientCertificates OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times an incoming session was not established | "The number of times an incoming session was not | |||
on a (D)TLS server because the presented client certificate | established on a (D)TLS server because the presented | |||
was invalid. Reasons for invalidation include, but are not | client certificate was invalid. Reasons for invalidation | |||
limited to, cryptographic validation failures or lack of a | include, but are not limited to, cryptographic validation | |||
suitable mapping row in the snmpTlstmCertToTSNTable." | failures or lack of a suitable mapping row in the | |||
snmpTlstmCertToTSNTable." | ||||
::= { snmpTlstmSession 7 } | ::= { snmpTlstmSession 7 } | |||
snmpTlstmSessionUnknownServerCertificate OBJECT-TYPE | snmpTlstmSessionUnknownServerCertificate OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times an outgoing session was not established | "The number of times an outgoing session was not | |||
on a (D)TLS client because the server certificate presented | established on a (D)TLS client because the server | |||
by an SNMP over (D)TLS server was invalid because no | certificate presented by an SNMP over (D)TLS server was | |||
configured fingerprint or Certification Authority (CA) was | invalid because no configured fingerprint or Certification | |||
acceptable to validate it. | Authority (CA) was acceptable to validate it. This may | |||
This may result because there was no entry in the | result because there was no entry in the | |||
snmpTlstmAddrTable or because no path could be found to a | snmpTlstmAddrTable or because no path to a known CA could | |||
known CA." | be found." | |||
::= { snmpTlstmSession 8 } | ::= { snmpTlstmSession 8 } | |||
snmpTlstmSessionInvalidServerCertificates OBJECT-TYPE | snmpTlstmSessionInvalidServerCertificates OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of times an outgoing session was not established | "The number of times an outgoing session was not | |||
on a (D)TLS client because the server certificate presented | established on a (D)TLS client because the server | |||
by an SNMP over (D)TLS server could not be validated even if | certificate presented by an SNMP over (D)TLS server could | |||
the fingerprint or expected validation path was known. That | not be validated even if the fingerprint or expected | |||
is, a cryptographic validation error occurred during | validation path was known. That is, a cryptographic | |||
certificate validation processing. | validation error occurred during certificate validation | |||
processing. | ||||
Reasons for invalidation include, but are not | Reasons for invalidation include, but are not limited to, | |||
limited to, cryptographic validation failures." | cryptographic validation failures." | |||
::= { snmpTlstmSession 9 } | ::= { snmpTlstmSession 9 } | |||
snmpTlstmSessionInvalidCaches OBJECT-TYPE | snmpTlstmSessionInvalidCaches OBJECT-TYPE | |||
SYNTAX Counter32 | SYNTAX Counter32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The number of outgoing messages dropped because the | "The number of outgoing messages dropped because the | |||
tmStateReference referred to an invalid cache." | tmStateReference referred to an invalid cache." | |||
::= { snmpTlstmSession 10 } | ::= { snmpTlstmSession 10 } | |||
-- Configuration Objects | -- Configuration Objects | |||
snmpTlstmConfig OBJECT IDENTIFIER ::= { snmpTlstmObjects 2 } | snmpTlstmConfig OBJECT IDENTIFIER ::= { snmpTlstmObjects 2 } | |||
-- Certificate mapping | -- Certificate mapping | |||
snmpTlstmCertificateMapping OBJECT IDENTIFIER ::= {snmpTlstmConfig 1} | snmpTlstmCertificateMapping OBJECT IDENTIFIER ::= | |||
{ snmpTlstmConfig 1 } | ||||
snmpTlstmCertToTSNCount OBJECT-TYPE | snmpTlstmCertToTSNCount OBJECT-TYPE | |||
SYNTAX Gauge32 | SYNTAX Gauge32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A count of the number of entries in the | "A count of the number of entries in the | |||
snmpTlstmCertToTSNTable." | snmpTlstmCertToTSNTable." | |||
::= { snmpTlstmCertificateMapping 1 } | ::= { snmpTlstmCertificateMapping 1 } | |||
snmpTlstmCertToTSNTableLastChanged OBJECT-TYPE | snmpTlstmCertToTSNTableLastChanged OBJECT-TYPE | |||
SYNTAX TimeStamp | SYNTAX TimeStamp | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The value of sysUpTime.0 when the snmpTlstmCertToTSNTable | "The value of sysUpTime.0 when the snmpTlstmCertToTSNTable | |||
was last modified through any means, or 0 if it has not been | was last modified through any means, or 0 if it has not | |||
modified since the command responder was started." | been modified since the command responder was started." | |||
::= { snmpTlstmCertificateMapping 2 } | ::= { snmpTlstmCertificateMapping 2 } | |||
snmpTlstmCertToTSNTable OBJECT-TYPE | snmpTlstmCertToTSNTable OBJECT-TYPE | |||
SYNTAX SEQUENCE OF SnmpTlstmCertToTSNEntry | SYNTAX SEQUENCE OF SnmpTlstmCertToTSNEntry | |||
MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"This table is used by a (D)TLS server to map the (D)TLS | "This table is used by a (D)TLS server to map the (D)TLS | |||
client's presented X.509 certificate to a tmSecurityName. | client's presented X.509 certificate to a tmSecurityName. | |||
On an incoming (D)TLS/SNMP connection, the client's presented | On an incoming (D)TLS/SNMP connection, the client's | |||
certificate MUST either be validated based on an established | presented certificate either MUST be validated based on an | |||
trust anchor, or it MUST directly match a fingerprint in this | established trust anchor or MUST directly match a | |||
table. This table does not provide any mechanisms for | fingerprint in this table. This table does not provide | |||
configuring the trust anchors; the transfer of any needed | any mechanisms for configuring the trust anchors; the | |||
trusted certificates for path validation is expected to occur | transfer of any needed trusted certificates for path | |||
through an out-of-band transfer. | validation is expected to occur through an out-of-band | |||
transfer. | ||||
Once the certificate has been found acceptable (either by | Once the certificate has been found acceptable (either via | |||
path validation or directly matching a fingerprint in this | path validation or by directly matching a fingerprint in | |||
table), this table is consulted to determine the appropriate | this table), this table is consulted to determine the | |||
tmSecurityName to identify with the remote connection. This | appropriate tmSecurityName to identify with the remote | |||
is done by considering each active row from this table in | connection. This is done by considering each active row | |||
prioritized order according to its snmpTlstmCertToTSNID | from this table in prioritized order according to its | |||
value. Each row's snmpTlstmCertToTSNFingerprint value | snmpTlstmCertToTSNID value. Each row's | |||
determines whether the row is a match for the incoming | snmpTlstmCertToTSNFingerprint value determines whether the | |||
connection: | row is a match for the incoming connection: | |||
1) If the row's snmpTlstmCertToTSNFingerprint value | 1) If the row's snmpTlstmCertToTSNFingerprint value | |||
identifies the presented certificate, then consider | identifies the presented certificate, then consider | |||
the row as a successful match. | the row as a successful match. | |||
2) If the row's snmpTlstmCertToTSNFingerprint value | 2) If the row's snmpTlstmCertToTSNFingerprint value | |||
identifies a locally held copy of a trusted CA | identifies a locally held copy of a trusted CA | |||
certificate and that CA certificate was used to | certificate and that CA certificate was used to | |||
validate the path to the presented certificate, then | validate the path to the presented certificate, then | |||
consider the row as a successful match. | consider the row as a successful match. | |||
Once a matching row has been found, the | Once a matching row has been found, the | |||
snmpTlstmCertToTSNMapType value can be used to determine how | snmpTlstmCertToTSNMapType value can be used to determine | |||
the tmSecurityName to associate with the session should be | how the tmSecurityName to associate with the session | |||
determined. See the snmpTlstmCertToTSNMapType column's | should be determined. See the 'snmpTlstmCertToTSNMapType' | |||
DESCRIPTION for details on determining the tmSecurityName | column's DESCRIPTION clause for details on determining the | |||
value. If it is impossible to determine a tmSecurityName | tmSecurityName value. If it is impossible to determine a | |||
from the row's data combined with the data presented in the | tmSecurityName from the row's data combined with the data | |||
certificate, then additional rows MUST be searched looking | presented in the certificate, then additional rows MUST be | |||
for another potential match. If a resulting tmSecurityName | searched to look for another potential match. If a | |||
mapped from a given row is not compatible with the needed | resulting tmSecurityName mapped from a given row is not | |||
requirements of a tmSecurityName (e.g., VACM imposes a | compatible with the needed requirements of a | |||
32-octet-maximum length and the certificate derived | tmSecurityName (e.g., the VACM imposes a 32-octet-maximum | |||
securityName could be longer), then it MUST be considered an | length and the certificate-derived securityName could be | |||
invalid match and additional rows MUST be searched looking | longer), then it MUST be considered an invalid match and | |||
for another potential match. | additional rows MUST be searched to look for another | |||
potential match. | ||||
If no matching and valid row can be found, the connection | If no matching and valid row can be found, the connection | |||
MUST be closed and SNMP messages MUST NOT be accepted over | MUST be closed and SNMP messages MUST NOT be accepted over | |||
it. | it. | |||
Missing values of snmpTlstmCertToTSNID are acceptable and | Missing values of snmpTlstmCertToTSNID are acceptable, and | |||
implementations SHOULD continue to the next highest numbered | implementations SHOULD continue to the | |||
row. It is RECOMMENDED that administrators skip index values | next-highest-numbered row. It is RECOMMENDED that | |||
to leave room for the insertion of future rows (for example, | administrators skip index values to leave room for the | |||
use values of 10 and 20 when creating initial rows). | insertion of future rows (for example, use values of 10 | |||
and 20 when creating initial rows). | ||||
Users are encouraged to make use of certificates with | Users are encouraged to make use of certificates with | |||
subjectAltName fields that can be used as tmSecurityNames so | subjectAltName fields that can be used as tmSecurityNames. | |||
that a single root CA certificate can allow all child | This allows all child certificates of a single root CA | |||
certificate's subjectAltName to map directly to a | certificate to include a subjectAltName that maps directly | |||
tmSecurityName via a 1:1 transformation. However, this table | to a tmSecurityName via a 1:1 transformation. However, | |||
is flexible to allow for situations where existing deployed | this table is flexible, to allow for situations where | |||
certificate infrastructures do not provide adequate | existing deployed certificate infrastructures do not provide | |||
subjectAltName values for use as tmSecurityNames. | adequate subjectAltName values for use as tmSecurityNames. | |||
Certificates MAY also be mapped to tmSecurityNames using the | Certificates MAY also be mapped to tmSecurityNames using | |||
CommonName portion of the Subject field. However, the usage | the CommonName portion of the Subject field. However, the | |||
of the CommonName field is deprecated and thus this usage is | usage of the CommonName field is deprecated, and thus this | |||
NOT RECOMMENDED. Direct mapping from each individual | usage is NOT RECOMMENDED. Direct mapping from each | |||
certificate fingerprint to a tmSecurityName is also possible | individual certificate fingerprint to a tmSecurityName is | |||
but requires one entry in the table per tmSecurityName and | also possible but requires one entry in the table per | |||
requires more management operations to completely configure a | tmSecurityName and requires more management operations to | |||
device." | completely configure a device." | |||
::= { snmpTlstmCertificateMapping 3 } | ::= { snmpTlstmCertificateMapping 3 } | |||
snmpTlstmCertToTSNEntry OBJECT-TYPE | snmpTlstmCertToTSNEntry OBJECT-TYPE | |||
SYNTAX SnmpTlstmCertToTSNEntry | SYNTAX SnmpTlstmCertToTSNEntry | |||
MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A row in the snmpTlstmCertToTSNTable that specifies a | "A row in the snmpTlstmCertToTSNTable that specifies a | |||
mapping for an incoming (D)TLS certificate to a | mapping for an incoming (D)TLS certificate to a | |||
tmSecurityName to use for a connection." | tmSecurityName to use for a connection." | |||
INDEX { snmpTlstmCertToTSNID } | INDEX { snmpTlstmCertToTSNID } | |||
::= { snmpTlstmCertToTSNTable 1 } | ::= { snmpTlstmCertToTSNTable 1 } | |||
SnmpTlstmCertToTSNEntry ::= SEQUENCE { | SnmpTlstmCertToTSNEntry ::= SEQUENCE { | |||
snmpTlstmCertToTSNID Unsigned32, | snmpTlstmCertToTSNID Unsigned32, | |||
snmpTlstmCertToTSNFingerprint SnmpTLSFingerprint, | snmpTlstmCertToTSNFingerprint SnmpTLSFingerprint, | |||
snmpTlstmCertToTSNMapType AutonomousType, | snmpTlstmCertToTSNMapType AutonomousType, | |||
snmpTlstmCertToTSNData OCTET STRING, | snmpTlstmCertToTSNData OCTET STRING, | |||
snmpTlstmCertToTSNStorageType StorageType, | snmpTlstmCertToTSNStorageType StorageType, | |||
snmpTlstmCertToTSNRowStatus RowStatus | snmpTlstmCertToTSNRowStatus RowStatus | |||
} | } | |||
snmpTlstmCertToTSNID OBJECT-TYPE | snmpTlstmCertToTSNID OBJECT-TYPE | |||
SYNTAX Unsigned32 (1..4294967295) | SYNTAX Unsigned32 (1..4294967295) | |||
MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A unique, prioritized index for the given entry. Lower | "A unique, prioritized index for the given entry. Lower | |||
numbers indicate a higher priority." | numbers indicate a higher priority." | |||
::= { snmpTlstmCertToTSNEntry 1 } | ::= { snmpTlstmCertToTSNEntry 1 } | |||
snmpTlstmCertToTSNFingerprint OBJECT-TYPE | snmpTlstmCertToTSNFingerprint OBJECT-TYPE | |||
SYNTAX SnmpTLSFingerprint (SIZE(1..255)) | SYNTAX SnmpTLSFingerprint (SIZE (1..255)) | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A cryptographic hash of an X.509 certificate. The results | "A cryptographic hash of an X.509 certificate. The results | |||
of a successful matching fingerprint to either the trusted CA | of a successful matching fingerprint to either the trusted | |||
in the certificate validation path or to the certificate | CA in the certificate validation path or the certificate | |||
itself is dictated by the snmpTlstmCertToTSNMapType column." | itself is dictated by the 'snmpTlstmCertToTSNMapType' | |||
column." | ||||
::= { snmpTlstmCertToTSNEntry 2 } | ::= { snmpTlstmCertToTSNEntry 2 } | |||
snmpTlstmCertToTSNMapType OBJECT-TYPE | snmpTlstmCertToTSNMapType OBJECT-TYPE | |||
SYNTAX AutonomousType | SYNTAX AutonomousType | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Specifies the mapping type for deriving a tmSecurityName | "Specifies the mapping type for deriving a tmSecurityName | |||
from a certificate. Details for mapping of a particular type | from a certificate. Details for mapping of a particular | |||
SHALL be specified in the DESCRIPTION clause of the OBJECT- | type SHALL be specified in the DESCRIPTION clause of the | |||
IDENTITY that describes the mapping. If a mapping succeeds | OBJECT-IDENTITY that describes the mapping. If a mapping | |||
it will return a tmSecurityName for use by the TLSTM model | succeeds, it will return a tmSecurityName for use by the | |||
and processing stops. | TLSTM and processing will stop. | |||
If the resulting mapped value is not compatible with the | If the resulting mapped value is not compatible with the | |||
needed requirements of a tmSecurityName (e.g., VACM imposes a | needed requirements of a tmSecurityName (e.g., the VACM | |||
32-octet-maximum length and the certificate derived | imposes a 32-octet-maximum length and the | |||
securityName could be longer), then future rows MUST be | certificate-derived securityName could be longer), then | |||
searched for additional snmpTlstmCertToTSNFingerprint matches | future rows MUST be searched for additional | |||
to look for a mapping that succeeds. | snmpTlstmCertToTSNFingerprint matches to look for a | |||
mapping that succeeds. | ||||
Suitable values for assigning to this object that are defined | Suitable values for assigning to this object that are | |||
within the SNMP-TLS-TM-MIB can be found in the | defined within the SNMP-TLS-TM-MIB can be found in the | |||
snmpTlstmCertToTSNMIdentities portion of the MIB tree." | snmpTlstmCertToTSNMIdentities portion of the MIB tree." | |||
DEFVAL { snmpTlstmCertSpecified } | DEFVAL { snmpTlstmCertSpecified } | |||
::= { snmpTlstmCertToTSNEntry 3 } | ::= { snmpTlstmCertToTSNEntry 3 } | |||
snmpTlstmCertToTSNData OBJECT-TYPE | snmpTlstmCertToTSNData OBJECT-TYPE | |||
SYNTAX OCTET STRING (SIZE(0..1024)) | SYNTAX OCTET STRING (SIZE (0..1024)) | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Auxiliary data used as optional configuration information | "Auxiliary data used as optional configuration information | |||
for a given mapping specified by the | for a given mapping specified by the | |||
snmpTlstmCertToTSNMapType column. Only some mapping | 'snmpTlstmCertToTSNMapType' column. Only some mapping | |||
systems will make use of this column. The value in this | systems will make use of this column. The value in this | |||
column MUST be ignored for any mapping type that does not | column MUST be ignored for any mapping type that does not | |||
require data present in this column." | require that data be present in this column." | |||
DEFVAL { "" } | DEFVAL { "" } | |||
::= { snmpTlstmCertToTSNEntry 4 } | ::= { snmpTlstmCertToTSNEntry 4 } | |||
snmpTlstmCertToTSNStorageType OBJECT-TYPE | snmpTlstmCertToTSNStorageType OBJECT-TYPE | |||
SYNTAX StorageType | SYNTAX StorageType | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The storage type for this conceptual row. Conceptual rows | "The storage type for this conceptual row. Conceptual rows | |||
having the value 'permanent' need not allow write-access to | having the value 'permanent' need not allow write-access | |||
any columnar objects in the row." | to any columnar objects in the row." | |||
DEFVAL { nonVolatile } | DEFVAL { nonVolatile } | |||
::= { snmpTlstmCertToTSNEntry 5 } | ::= { snmpTlstmCertToTSNEntry 5 } | |||
snmpTlstmCertToTSNRowStatus OBJECT-TYPE | snmpTlstmCertToTSNRowStatus OBJECT-TYPE | |||
SYNTAX RowStatus | SYNTAX RowStatus | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The status of this conceptual row. This object MAY be used | "The status of this conceptual row. This object MAY be | |||
to create or remove rows from this table. | used to create or remove rows from this table. | |||
To create a row in this table, an administrator MUST set this | To create a row in this table, an administrator MUST set | |||
object to either createAndGo(4) or createAndWait(5). | this object to either createAndGo(4) or createAndWait(5). | |||
Until instances of all corresponding columns are | Until instances of all corresponding columns are | |||
appropriately configured, the value of the corresponding | appropriately configured, the value of the corresponding | |||
instance of the snmpTlstmParamsRowStatus column is | instance of the 'snmpTlstmParamsRowStatus' column is | |||
notReady(3). | notReady(3). | |||
In particular, a newly created row cannot be made active | In particular, a newly created row cannot be made active | |||
until the corresponding snmpTlstmCertToTSNFingerprint, | until the corresponding 'snmpTlstmCertToTSNFingerprint', | |||
snmpTlstmCertToTSNMapType, and snmpTlstmCertToTSNData columns | 'snmpTlstmCertToTSNMapType', and 'snmpTlstmCertToTSNData' | |||
have been set. | columns have been set. | |||
The following objects MUST NOT be modified while the | The following objects MUST NOT be modified while the | |||
value of this object is active(1): | value of this object is active(1): | |||
- snmpTlstmCertToTSNFingerprint | ||||
- snmpTlstmCertToTSNMapType | - snmpTlstmCertToTSNFingerprint | |||
- snmpTlstmCertToTSNData | - snmpTlstmCertToTSNMapType | |||
- snmpTlstmCertToTSNData | ||||
An attempt to set these objects while the value of | An attempt to set these objects while the value of | |||
snmpTlstmParamsRowStatus is active(1) will result in | snmpTlstmParamsRowStatus is active(1) will result in | |||
an inconsistentValue error." | an inconsistentValue error." | |||
::= { snmpTlstmCertToTSNEntry 6 } | ::= { snmpTlstmCertToTSNEntry 6 } | |||
-- Maps tmSecurityNames to certificates for use by the | -- Maps tmSecurityNames to certificates for use by the | |||
-- SNMP-TARGET-MIB | -- SNMP-TARGET-MIB | |||
snmpTlstmParamsCount OBJECT-TYPE | snmpTlstmParamsCount OBJECT-TYPE | |||
SYNTAX Gauge32 | SYNTAX Gauge32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A count of the number of entries in the | "A count of the number of entries in the | |||
snmpTlstmParamsTable." | snmpTlstmParamsTable." | |||
::= { snmpTlstmCertificateMapping 4 } | ::= { snmpTlstmCertificateMapping 4 } | |||
snmpTlstmParamsTableLastChanged OBJECT-TYPE | snmpTlstmParamsTableLastChanged OBJECT-TYPE | |||
SYNTAX TimeStamp | SYNTAX TimeStamp | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The value of sysUpTime.0 when the snmpTlstmParamsTable | "The value of sysUpTime.0 when the snmpTlstmParamsTable | |||
was last modified through any means, or 0 if it has not been | was last modified through any means, or 0 if it has not | |||
modified since the command responder was started." | been modified since the command responder was started." | |||
::= { snmpTlstmCertificateMapping 5 } | ::= { snmpTlstmCertificateMapping 5 } | |||
snmpTlstmParamsTable OBJECT-TYPE | snmpTlstmParamsTable OBJECT-TYPE | |||
SYNTAX SEQUENCE OF SnmpTlstmParamsEntry | SYNTAX SEQUENCE OF SnmpTlstmParamsEntry | |||
MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"This table is used by a (D)TLS client when a (D)TLS | "This table is used by a (D)TLS client when a (D)TLS | |||
connection is being set up using an entry in the | connection is being set up using an entry in the | |||
SNMP-TARGET-MIB. It extends the SNMP-TARGET-MIB's | SNMP-TARGET-MIB. It extends the SNMP-TARGET-MIB's | |||
snmpTargetParamsTable with a fingerprint of a certificate to | snmpTargetParamsTable with a fingerprint of a certificate | |||
use when establishing such a (D)TLS connection." | to use when establishing such a (D)TLS connection." | |||
::= { snmpTlstmCertificateMapping 6 } | ::= { snmpTlstmCertificateMapping 6 } | |||
snmpTlstmParamsEntry OBJECT-TYPE | snmpTlstmParamsEntry OBJECT-TYPE | |||
SYNTAX SnmpTlstmParamsEntry | SYNTAX SnmpTlstmParamsEntry | |||
MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A conceptual row containing a fingerprint hash of a locally | "A conceptual row containing a fingerprint hash of a | |||
held certificate for a given snmpTargetParamsEntry. The | locally held certificate for a given | |||
values in this row SHOULD be ignored if the connection that | snmpTargetParamsEntry. The values in this row SHOULD be | |||
needs to be established, as indicated by the SNMP-TARGET-MIB | ignored if the connection that needs to be established, as | |||
infrastructure, is not a certificate and (D)TLS based | indicated by the SNMP-TARGET-MIB infrastructure, is not a | |||
connection. The connection SHOULD NOT be established if the | certificate-based and (D)TLS-based connection. The | |||
certificate fingerprint stored in this entry does not point | connection SHOULD NOT be established if the certificate | |||
to a valid locally held certificate or if it points to an | fingerprint stored in this entry does not point to a valid | |||
unusable certificate (such as might happen when the | locally held certificate or if it points to an unusable | |||
certificate's expiration date has been reached)." | certificate (such as might happen when the certificate's | |||
expiration date has been reached)." | ||||
INDEX { IMPLIED snmpTargetParamsName } | INDEX { IMPLIED snmpTargetParamsName } | |||
::= { snmpTlstmParamsTable 1 } | ::= { snmpTlstmParamsTable 1 } | |||
SnmpTlstmParamsEntry ::= SEQUENCE { | SnmpTlstmParamsEntry ::= SEQUENCE { | |||
snmpTlstmParamsClientFingerprint SnmpTLSFingerprint, | snmpTlstmParamsClientFingerprint SnmpTLSFingerprint, | |||
snmpTlstmParamsStorageType StorageType, | snmpTlstmParamsStorageType StorageType, | |||
snmpTlstmParamsRowStatus RowStatus | snmpTlstmParamsRowStatus RowStatus | |||
} | } | |||
snmpTlstmParamsClientFingerprint OBJECT-TYPE | snmpTlstmParamsClientFingerprint OBJECT-TYPE | |||
SYNTAX SnmpTLSFingerprint | SYNTAX SnmpTLSFingerprint | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"This object stores the hash of the public portion of a | "This object stores the hash of the public portion of a | |||
locally held X.509 certificate. The X.509 certificate, its | locally held X.509 certificate. The X.509 certificate, | |||
public key, and the corresponding private key will be used | its public key, and the corresponding private key will be | |||
when initiating a (D)TLS connection as a (D)TLS client." | used when initiating a (D)TLS connection as a (D)TLS | |||
client." | ||||
::= { snmpTlstmParamsEntry 1 } | ::= { snmpTlstmParamsEntry 1 } | |||
snmpTlstmParamsStorageType OBJECT-TYPE | snmpTlstmParamsStorageType OBJECT-TYPE | |||
SYNTAX StorageType | SYNTAX StorageType | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The storage type for this conceptual row. Conceptual rows | "The storage type for this conceptual row. Conceptual rows | |||
having the value 'permanent' need not allow write-access to | having the value 'permanent' need not allow write-access | |||
any columnar objects in the row." | to any columnar objects in the row." | |||
DEFVAL { nonVolatile } | DEFVAL { nonVolatile } | |||
::= { snmpTlstmParamsEntry 2 } | ::= { snmpTlstmParamsEntry 2 } | |||
snmpTlstmParamsRowStatus OBJECT-TYPE | snmpTlstmParamsRowStatus OBJECT-TYPE | |||
SYNTAX RowStatus | SYNTAX RowStatus | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The status of this conceptual row. This object MAY be used | "The status of this conceptual row. This object MAY be | |||
to create or remove rows from this table. | used to create or remove rows from this table. | |||
To create a row in this table, an administrator MUST set this | To create a row in this table, an administrator MUST set | |||
object to either createAndGo(4) or createAndWait(5). | this object to either createAndGo(4) or createAndWait(5). | |||
Until instances of all corresponding columns are | Until instances of all corresponding columns are | |||
appropriately configured, the value of the corresponding | appropriately configured, the value of the corresponding | |||
instance of the snmpTlstmParamsRowStatus column is | instance of the 'snmpTlstmParamsRowStatus' column is | |||
notReady(3). | notReady(3). | |||
In particular, a newly created row cannot be made active | In particular, a newly created row cannot be made active | |||
until the corresponding snmpTlstmParamsClientFingerprint | until the corresponding 'snmpTlstmParamsClientFingerprint' | |||
column has been set. | column has been set. | |||
The snmpTlstmParamsClientFingerprint object MUST NOT be | The snmpTlstmParamsClientFingerprint object MUST NOT be | |||
modified while the value of this object is active(1). | modified while the value of this object is active(1). | |||
An attempt to set these objects while the value of | An attempt to set these objects while the value of | |||
snmpTlstmParamsRowStatus is active(1) will result in | snmpTlstmParamsRowStatus is active(1) will result in | |||
an inconsistentValue error." | an inconsistentValue error." | |||
::= { snmpTlstmParamsEntry 3 } | ::= { snmpTlstmParamsEntry 3 } | |||
snmpTlstmAddrCount OBJECT-TYPE | snmpTlstmAddrCount OBJECT-TYPE | |||
SYNTAX Gauge32 | SYNTAX Gauge32 | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A count of the number of entries in the snmpTlstmAddrTable." | "A count of the number of entries in the | |||
snmpTlstmAddrTable." | ||||
::= { snmpTlstmCertificateMapping 7 } | ::= { snmpTlstmCertificateMapping 7 } | |||
snmpTlstmAddrTableLastChanged OBJECT-TYPE | snmpTlstmAddrTableLastChanged OBJECT-TYPE | |||
SYNTAX TimeStamp | SYNTAX TimeStamp | |||
MAX-ACCESS read-only | MAX-ACCESS read-only | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The value of sysUpTime.0 when the snmpTlstmAddrTable | "The value of sysUpTime.0 when the snmpTlstmAddrTable | |||
was last modified through any means, or 0 if it has not been | was last modified through any means, or 0 if it has not | |||
modified since the command responder was started." | been modified since the command responder was started." | |||
::= { snmpTlstmCertificateMapping 8 } | ::= { snmpTlstmCertificateMapping 8 } | |||
snmpTlstmAddrTable OBJECT-TYPE | snmpTlstmAddrTable OBJECT-TYPE | |||
SYNTAX SEQUENCE OF SnmpTlstmAddrEntry | SYNTAX SEQUENCE OF SnmpTlstmAddrEntry | |||
MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"This table is used by a (D)TLS client when a (D)TLS | "This table is used by a (D)TLS client when a (D)TLS | |||
connection is being set up using an entry in the | connection is being set up using an entry in the | |||
SNMP-TARGET-MIB. It extends the SNMP-TARGET-MIB's | SNMP-TARGET-MIB. It extends the SNMP-TARGET-MIB's | |||
snmpTargetAddrTable so that the client can verify that the | snmpTargetAddrTable so that the client can verify that the | |||
correct server has been reached. This verification can use | correct server has been reached. This verification can | |||
either a certificate fingerprint, or an identity | use either 1) a certificate fingerprint or 2) an | |||
authenticated via certification path validation. | identity authenticated via certification path validation. | |||
If there is an active row in this table corresponding to the | If there is an active row in this table corresponding to | |||
entry in the SNMP-TARGET-MIB that was used to establish the | the entry in the SNMP-TARGET-MIB that was used to | |||
connection, and the row's snmpTlstmAddrServerFingerprint | establish the connection and the row's | |||
column has non-empty value, then the server's presented | 'snmpTlstmAddrServerFingerprint' column has a non-empty | |||
certificate is compared with the | value, then the server's presented certificate is compared | |||
snmpTlstmAddrServerFingerprint value (and the | with the snmpTlstmAddrServerFingerprint value (and the | |||
snmpTlstmAddrServerIdentity column is ignored). If the | 'snmpTlstmAddrServerIdentity' column is ignored). If the | |||
fingerprint matches, the verification has succeeded. If the | fingerprint matches, the verification has succeeded. If | |||
fingerprint does not match, then the connection MUST be | the fingerprint does not match, then the connection MUST | |||
closed. | be closed. | |||
If the server's presented certificate has passed | If the server's presented certificate has passed | |||
certification path validation [RFC5280] to a configured | certification path validation (RFC 5280) to a configured | |||
trust anchor, and an active row exists with a zero-length | trust anchor and an active row exists with a zero-length | |||
snmpTlstmAddrServerFingerprint value, then the | snmpTlstmAddrServerFingerprint value, then the | |||
snmpTlstmAddrServerIdentity column contains the expected | 'snmpTlstmAddrServerIdentity' column contains the expected | |||
host name. This expected host name is then compared against | host name. This expected host name is then compared | |||
the server's certificate as follows: | against the server's certificate as follows: | |||
- Implementations MUST support matching the expected host | - Implementations MUST support matching the expected | |||
name against a dNSName in the subjectAltName extension | host name against a dNSName in the subjectAltName | |||
field and MAY support checking the name against the | extension field and MAY support checking the name | |||
CommonName portion of the subject distinguished name. | against the CommonName portion of the subject | |||
distinguished name. | ||||
- The '*' (ASCII 0x2a) wildcard character is allowed in the | - The '*' (ASCII 0x2A) wildcard character is allowed in | |||
dNSName of the subjectAltName extension (and in common | the dNSName of the subjectAltName extension (and in | |||
name, if used to store the host name), but only as the | CommonName, if used to store the host name), but | |||
left-most (least significant) DNS label in that value. | only as the leftmost (least significant) DNS label | |||
This wildcard matches any left-most DNS label in the | in that value. This wildcard matches any leftmost | |||
server name. That is, the subject *.example.com matches | DNS label in the server name. That is, the subject | |||
the server names a.example.com and b.example.com, but does | *.example.com matches the server names a.example.com | |||
not match example.com or a.b.example.com. Implementations | and b.example.com but does not match example.com or | |||
MUST support wildcards in certificates as specified above, | a.b.example.com. Implementations MUST support | |||
but MAY provide a configuration option to disable them. | wildcards in certificates as specified above but MAY | |||
provide a configuration option to disable them. | ||||
- If the locally configured name is an internationalized | - If the locally configured name is an | |||
domain name, conforming implementations MUST convert it to | internationalized domain name, conforming | |||
the ASCII Compatible Encoding (ACE) format for performing | implementations MUST convert it to the ASCII | |||
comparisons, as specified in Section 7 of [RFC5280]. | Compatible Encoding (ACE) format for performing | |||
comparisons, as specified in Section 7 of RFC 5280. | ||||
If the expected host name fails these conditions then the | If the expected host name fails these conditions, then the | |||
connection MUST be closed. | connection MUST be closed. | |||
If there is no row in this table corresponding to the entry | If there is no row in this table corresponding to the | |||
in the SNMP-TARGET-MIB and the server can be authorized by | entry in the SNMP-TARGET-MIB and the server can be | |||
another, implementation-dependent means, then the connection | authorized by another, implementation-dependent means, | |||
MAY still proceed." | then the connection MAY still proceed." | |||
::= { snmpTlstmCertificateMapping 9 } | ::= { snmpTlstmCertificateMapping 9 } | |||
snmpTlstmAddrEntry OBJECT-TYPE | snmpTlstmAddrEntry OBJECT-TYPE | |||
SYNTAX SnmpTlstmAddrEntry | SYNTAX SnmpTlstmAddrEntry | |||
MAX-ACCESS not-accessible | MAX-ACCESS not-accessible | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A conceptual row containing a copy of a certificate's | "A conceptual row containing a copy of a certificate's | |||
fingerprint for a given snmpTargetAddrEntry. The values in | fingerprint for a given snmpTargetAddrEntry. The values | |||
this row SHOULD be ignored if the connection that needs to be | in this row SHOULD be ignored if the connection that needs | |||
established, as indicated by the SNMP-TARGET-MIB | to be established, as indicated by the SNMP-TARGET-MIB | |||
infrastructure, is not a (D)TLS based connection. If an | infrastructure, is not a (D)TLS-based connection. If an | |||
snmpTlstmAddrEntry exists for a given snmpTargetAddrEntry, | snmpTlstmAddrEntry exists for a given snmpTargetAddrEntry, | |||
then the presented server certificate MUST match or the | then the presented server certificate MUST match or the | |||
connection MUST NOT be established. If a row in this table | connection MUST NOT be established. If a row in this | |||
does not exist to match an snmpTargetAddrEntry row, then the | table does not exist to match an snmpTargetAddrEntry row, | |||
connection SHOULD still proceed if some other certificate | then the connection SHOULD still proceed if some other | |||
validation path algorithm (e.g., RFC 5280) can be used." | certification path validation algorithm (e.g., RFC 5280) | |||
can be used." | ||||
INDEX { IMPLIED snmpTargetAddrName } | INDEX { IMPLIED snmpTargetAddrName } | |||
::= { snmpTlstmAddrTable 1 } | ::= { snmpTlstmAddrTable 1 } | |||
SnmpTlstmAddrEntry ::= SEQUENCE { | SnmpTlstmAddrEntry ::= SEQUENCE { | |||
snmpTlstmAddrServerFingerprint SnmpTLSFingerprint, | snmpTlstmAddrServerFingerprint SnmpTLSFingerprint, | |||
snmpTlstmAddrServerIdentity SnmpAdminString, | snmpTlstmAddrServerIdentity SnmpAdminString, | |||
snmpTlstmAddrStorageType StorageType, | snmpTlstmAddrStorageType StorageType, | |||
snmpTlstmAddrRowStatus RowStatus | snmpTlstmAddrRowStatus RowStatus | |||
} | } | |||
snmpTlstmAddrServerFingerprint OBJECT-TYPE | snmpTlstmAddrServerFingerprint OBJECT-TYPE | |||
SYNTAX SnmpTLSFingerprint | SYNTAX SnmpTLSFingerprint | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A cryptographic hash of a public X.509 certificate. This | "A cryptographic hash of a public X.509 certificate. This | |||
object should store the hash of the public X.509 certificate | object should store the hash of the public X.509 | |||
that the remote server should present during the (D)TLS | certificate that the remote server should present during | |||
connection setup. The fingerprint of the presented | the (D)TLS connection setup. The fingerprint of the | |||
certificate and this hash value MUST match exactly, or the | presented certificate and this hash value MUST match | |||
connection MUST NOT be established." | exactly, or the connection MUST NOT be established." | |||
DEFVAL { "" } | DEFVAL { "" } | |||
::= { snmpTlstmAddrEntry 1 } | ::= { snmpTlstmAddrEntry 1 } | |||
snmpTlstmAddrServerIdentity OBJECT-TYPE | snmpTlstmAddrServerIdentity OBJECT-TYPE | |||
SYNTAX SnmpAdminString | SYNTAX SnmpAdminString | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The reference identity to check against the identity | "The reference identity to check against the identity | |||
presented by the remote system." | presented by the remote system." | |||
DEFVAL { "" } | DEFVAL { "" } | |||
::= { snmpTlstmAddrEntry 2 } | ::= { snmpTlstmAddrEntry 2 } | |||
snmpTlstmAddrStorageType OBJECT-TYPE | snmpTlstmAddrStorageType OBJECT-TYPE | |||
SYNTAX StorageType | SYNTAX StorageType | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The storage type for this conceptual row. Conceptual rows | "The storage type for this conceptual row. Conceptual rows | |||
having the value 'permanent' need not allow write-access to | having the value 'permanent' need not allow write-access | |||
any columnar objects in the row." | to any columnar objects in the row." | |||
DEFVAL { nonVolatile } | DEFVAL { nonVolatile } | |||
::= { snmpTlstmAddrEntry 3 } | ::= { snmpTlstmAddrEntry 3 } | |||
snmpTlstmAddrRowStatus OBJECT-TYPE | snmpTlstmAddrRowStatus OBJECT-TYPE | |||
SYNTAX RowStatus | SYNTAX RowStatus | |||
MAX-ACCESS read-create | MAX-ACCESS read-create | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The status of this conceptual row. This object may be used | "The status of this conceptual row. This object may be | |||
to create or remove rows from this table. | used to create or remove rows from this table. | |||
To create a row in this table, an administrator MUST set this | To create a row in this table, an administrator MUST set | |||
object to either createAndGo(4) or createAndWait(5). | this object to either createAndGo(4) or createAndWait(5). | |||
Until instances of all corresponding columns are | Until instances of all corresponding columns are | |||
appropriately configured, the value of the | appropriately configured, the value of the corresponding | |||
corresponding instance of the snmpTlstmAddrRowStatus | instance of the 'snmpTlstmAddrRowStatus' column is | |||
column is notReady(3). | notReady(3). | |||
In particular, a newly created row cannot be made active | In particular, a newly created row cannot be made active | |||
until the corresponding snmpTlstmAddrServerFingerprint column | until the corresponding 'snmpTlstmAddrServerFingerprint' | |||
has been set. | column has been set. | |||
Rows MUST NOT be active if the snmpTlstmAddrServerFingerprint | Rows MUST NOT be active if the | |||
column is blank and the snmpTlstmAddrServerIdentity is set to | 'snmpTlstmAddrServerFingerprint' column is blank and the | |||
'*' since this would insecurely accept any presented | snmpTlstmAddrServerIdentity is set to '*', since this | |||
certificate. | would insecurely accept any presented certificate. | |||
The snmpTlstmAddrServerFingerprint object MUST NOT be | The snmpTlstmAddrServerFingerprint object MUST NOT be | |||
modified while the value of this object is active(1). | modified while the value of this object is active(1). | |||
An attempt to set these objects while the value of | An attempt to set these objects while the value of | |||
snmpTlstmAddrRowStatus is active(1) will result in | snmpTlstmAddrRowStatus is active(1) will result in | |||
an inconsistentValue error." | an inconsistentValue error." | |||
::= { snmpTlstmAddrEntry 4 } | ::= { snmpTlstmAddrEntry 4 } | |||
-- ************************************************ | -- ************************************************ | |||
-- snmpTlstmNotifications - Notifications Information | -- snmpTlstmNotifications - Notifications Information | |||
-- ************************************************ | -- ************************************************ | |||
snmpTlstmServerCertificateUnknown NOTIFICATION-TYPE | snmpTlstmServerCertificateUnknown NOTIFICATION-TYPE | |||
OBJECTS { snmpTlstmSessionUnknownServerCertificate } | OBJECTS { snmpTlstmSessionUnknownServerCertificate } | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Notification that the server certificate presented by an | "Notification that the server certificate presented by an | |||
SNMP over (D)TLS server was invalid because no configured | SNMP over (D)TLS server was invalid because no configured | |||
fingerprint or CA was acceptable to validate it. This may | fingerprint or CA was acceptable to validate it. This may | |||
be because there was no entry in the snmpTlstmAddrTable or | be because there was no entry in the snmpTlstmAddrTable or | |||
because no path could be found to known Certification | because no path to a known CA could be found. | |||
Authority. | ||||
To avoid notification loops, this notification MUST NOT be | To avoid notification loops, this notification MUST NOT be | |||
sent to servers that themselves have triggered the | sent to servers that themselves have triggered the | |||
notification." | notification." | |||
::= { snmpTlstmNotifications 1 } | ::= { snmpTlstmNotifications 1 } | |||
snmpTlstmServerInvalidCertificate NOTIFICATION-TYPE | snmpTlstmServerInvalidCertificate NOTIFICATION-TYPE | |||
OBJECTS { snmpTlstmAddrServerFingerprint, | OBJECTS { | |||
snmpTlstmSessionInvalidServerCertificates} | snmpTlstmAddrServerFingerprint, | |||
snmpTlstmSessionInvalidServerCertificates | ||||
} | ||||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Notification that the server certificate presented by an | "Notification that the server certificate presented by an | |||
SNMP over (D)TLS server could not be validated even if the | SNMP over (D)TLS server could not be validated even if the | |||
fingerprint or expected validation path was known. That is, | fingerprint or expected validation path was known. | |||
a cryptographic validation error occurred during certificate | That is, a cryptographic validation error occurred during | |||
validation processing. | certificate validation processing. | |||
To avoid notification loops, this notification MUST NOT be | To avoid notification loops, this notification MUST NOT be | |||
sent to servers that themselves have triggered the | sent to servers that themselves have triggered the | |||
notification." | notification." | |||
::= { snmpTlstmNotifications 2 } | ::= { snmpTlstmNotifications 2 } | |||
-- ************************************************ | -- ************************************************ | |||
-- snmpTlstmCompliances - Conformance Information | -- snmpTlstmCompliances - Conformance Information | |||
-- ************************************************ | -- ************************************************ | |||
skipping to change at line 1289 ¶ | skipping to change at line 1360 ¶ | |||
snmpTlstmGroups OBJECT IDENTIFIER ::= { snmpTlstmConformance 2 } | snmpTlstmGroups OBJECT IDENTIFIER ::= { snmpTlstmConformance 2 } | |||
-- ************************************************ | -- ************************************************ | |||
-- Compliance statements | -- Compliance statements | |||
-- ************************************************ | -- ************************************************ | |||
snmpTlstmCompliance MODULE-COMPLIANCE | snmpTlstmCompliance MODULE-COMPLIANCE | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"The compliance statement for SNMP engines that support the | "The compliance statement for SNMP engines that support the | |||
SNMP-TLS-TM-MIB" | SNMP-TLS-TM-MIB." | |||
MODULE | MODULE | |||
MANDATORY-GROUPS { snmpTlstmStatsGroup, | MANDATORY-GROUPS { snmpTlstmStatsGroup, | |||
snmpTlstmIncomingGroup, | snmpTlstmIncomingGroup, | |||
snmpTlstmOutgoingGroup, | snmpTlstmOutgoingGroup, | |||
snmpTlstmNotificationGroup } | snmpTlstmNotificationGroup } | |||
::= { snmpTlstmCompliances 1 } | ::= { snmpTlstmCompliances 1 } | |||
-- ************************************************ | -- ************************************************ | |||
-- Units of conformance | -- Units of conformance | |||
-- ************************************************ | -- ************************************************ | |||
skipping to change at line 1301 ¶ | skipping to change at line 1372 ¶ | |||
MODULE | MODULE | |||
MANDATORY-GROUPS { snmpTlstmStatsGroup, | MANDATORY-GROUPS { snmpTlstmStatsGroup, | |||
snmpTlstmIncomingGroup, | snmpTlstmIncomingGroup, | |||
snmpTlstmOutgoingGroup, | snmpTlstmOutgoingGroup, | |||
snmpTlstmNotificationGroup } | snmpTlstmNotificationGroup } | |||
::= { snmpTlstmCompliances 1 } | ::= { snmpTlstmCompliances 1 } | |||
-- ************************************************ | -- ************************************************ | |||
-- Units of conformance | -- Units of conformance | |||
-- ************************************************ | -- ************************************************ | |||
snmpTlstmStatsGroup OBJECT-GROUP | snmpTlstmStatsGroup OBJECT-GROUP | |||
OBJECTS { | OBJECTS { | |||
snmpTlstmSessionOpens, | snmpTlstmSessionOpens, | |||
snmpTlstmSessionClientCloses, | snmpTlstmSessionClientCloses, | |||
snmpTlstmSessionOpenErrors, | snmpTlstmSessionOpenErrors, | |||
snmpTlstmSessionAccepts, | snmpTlstmSessionAccepts, | |||
snmpTlstmSessionServerCloses, | snmpTlstmSessionServerCloses, | |||
snmpTlstmSessionNoSessions, | snmpTlstmSessionNoSessions, | |||
snmpTlstmSessionInvalidClientCertificates, | snmpTlstmSessionInvalidClientCertificates, | |||
snmpTlstmSessionUnknownServerCertificate, | snmpTlstmSessionUnknownServerCertificate, | |||
snmpTlstmSessionInvalidServerCertificates, | snmpTlstmSessionInvalidServerCertificates, | |||
snmpTlstmSessionInvalidCaches | snmpTlstmSessionInvalidCaches | |||
} | } | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A collection of objects for maintaining | "A collection of objects for maintaining statistical | |||
statistical information of an SNMP engine that | information of an SNMP engine that implements the SNMP | |||
implements the SNMP TLS Transport Model." | TLSTM." | |||
::= { snmpTlstmGroups 1 } | ::= { snmpTlstmGroups 1 } | |||
snmpTlstmIncomingGroup OBJECT-GROUP | snmpTlstmIncomingGroup OBJECT-GROUP | |||
OBJECTS { | OBJECTS { | |||
snmpTlstmCertToTSNCount, | snmpTlstmCertToTSNCount, | |||
snmpTlstmCertToTSNTableLastChanged, | snmpTlstmCertToTSNTableLastChanged, | |||
snmpTlstmCertToTSNFingerprint, | snmpTlstmCertToTSNFingerprint, | |||
snmpTlstmCertToTSNMapType, | snmpTlstmCertToTSNMapType, | |||
snmpTlstmCertToTSNData, | snmpTlstmCertToTSNData, | |||
snmpTlstmCertToTSNStorageType, | snmpTlstmCertToTSNStorageType, | |||
snmpTlstmCertToTSNRowStatus | snmpTlstmCertToTSNRowStatus | |||
} | } | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A collection of objects for maintaining | "A collection of objects for maintaining incoming | |||
incoming connection certificate mappings to | connection certificate mappings to tmSecurityNames of an | |||
tmSecurityNames of an SNMP engine that implements the | SNMP engine that implements the SNMP TLSTM." | |||
SNMP TLS Transport Model." | ||||
::= { snmpTlstmGroups 2 } | ::= { snmpTlstmGroups 2 } | |||
snmpTlstmOutgoingGroup OBJECT-GROUP | snmpTlstmOutgoingGroup OBJECT-GROUP | |||
OBJECTS { | OBJECTS { | |||
snmpTlstmParamsCount, | snmpTlstmParamsCount, | |||
snmpTlstmParamsTableLastChanged, | snmpTlstmParamsTableLastChanged, | |||
snmpTlstmParamsClientFingerprint, | snmpTlstmParamsClientFingerprint, | |||
snmpTlstmParamsStorageType, | snmpTlstmParamsStorageType, | |||
snmpTlstmParamsRowStatus, | snmpTlstmParamsRowStatus, | |||
snmpTlstmAddrCount, | snmpTlstmAddrCount, | |||
snmpTlstmAddrTableLastChanged, | snmpTlstmAddrTableLastChanged, | |||
snmpTlstmAddrServerFingerprint, | snmpTlstmAddrServerFingerprint, | |||
snmpTlstmAddrServerIdentity, | snmpTlstmAddrServerIdentity, | |||
snmpTlstmAddrStorageType, | snmpTlstmAddrStorageType, | |||
snmpTlstmAddrRowStatus | snmpTlstmAddrRowStatus | |||
} | } | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"A collection of objects for maintaining | "A collection of objects for maintaining outgoing | |||
outgoing connection certificates to use when opening | connection certificates to use when opening connections as | |||
connections as a result of SNMP-TARGET-MIB settings." | a result of SNMP-TARGET-MIB settings." | |||
::= { snmpTlstmGroups 3 } | ::= { snmpTlstmGroups 3 } | |||
snmpTlstmNotificationGroup NOTIFICATION-GROUP | snmpTlstmNotificationGroup NOTIFICATION-GROUP | |||
NOTIFICATIONS { | NOTIFICATIONS { | |||
snmpTlstmServerCertificateUnknown, | snmpTlstmServerCertificateUnknown, | |||
snmpTlstmServerInvalidCertificate | snmpTlstmServerInvalidCertificate | |||
} | } | |||
STATUS current | STATUS current | |||
DESCRIPTION | DESCRIPTION | |||
"Notifications" | "Notifications." | |||
::= { snmpTlstmGroups 4 } | ::= { snmpTlstmGroups 4 } | |||
END | END | |||
]]> </sourcecode> | ]]> </sourcecode> | |||
</section> | </section> | |||
<section anchor="sect-5" numbered="true" toc="default"> | <section anchor="sect-5" numbered="true" toc="default"> | |||
<name>Security Considerations</name> | <name>Security Considerations</name> | |||
<t> This document updates a transport model that permits SNMP to utilize ( D)TLS security | <t> This document updates a transport model that permits SNMP to utilize ( D)TLS security | |||
services. The security threats and how the TLS transport model mitigates these threats are | services. The security threats and how the TLSTM mitigates these threats are | |||
covered throughout this document and in <xref target="RFC6353" format="d efault"/>. Security | covered throughout this document and in <xref target="RFC6353" format="d efault"/>. Security | |||
considerations for TLS are described in Section 10 and Appendix E of TLS | considerations for TLS are described in | |||
1.3 <xref | Section <xref target="RFC8446" section="10" sectionFormat="bare"/> and | |||
target="RFC8446" format="default"/>. Security considerations for DTLS ar | Appendix <xref target="RFC8446" section="E" sectionFormat="bare"/> of TLS 1 | |||
e described in | .3 | |||
Section 11 of DTLS 1.3 <xref target="RFC9147" format="default"/>.</t> | <xref target="RFC8446"/>. Security considerations for DTLS are described in Sect | |||
ion <xref target="RFC9147" sectionFormat="bare" section="11"/> of | ||||
DTLS 1.3 <xref target="RFC9147"/>.</t> | ||||
<t>Implementations should consider the latest recommendations on the use of (DTLS), such as | <t>Implementations should consider the latest recommendations on the use of (DTLS), such as | |||
that documented in <xref target="RFC9325" format="default"/>.</t> | those documented in <xref target="RFC9325" format="default"/>.</t > | |||
<t> SNMP versions prior to SNMPv3 did not include adequate security. Eve n if the network | <t> SNMP versions prior to SNMPv3 did not include adequate security. Eve n if the network | |||
itself is secure (for example, by using IPsec), there is no control as to who | itself is secure (for example, by using IPsec), there is no control as to who | |||
on the secure network is allowed to access and GET/SET (read/change/cr eate/delete) the | on the secure network is allowed to access and GET/SET (read/change/cr eate/delete) the | |||
objects in this MIB module.</t> | objects in this MIB module.</t> | |||
<t>It is <bcp14>RECOMMENDED</bcp14> that only SNMPv3 messages using the Tran sport Security | <t>It is <bcp14>RECOMMENDED</bcp14> that only SNMPv3 messages using the Tran sport Security | |||
Model (TSM) or another secure-transport aware security model be sent over the TLSTM transport.</t> | Model (TSM) or another secure-transport-aware security model be sent over the TLSTM transport.</t> | |||
</section> | </section> | |||
<section anchor="sect-6" numbered="true" toc="default"> | <section anchor="sect-6" numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
<t>IANA is asked to create a new registry called the SNMP-TLSTM | <t>IANA has created a new registry called "SNMP-TLSTM HashAlgorithms" wi | |||
HashAlgorithm Registry in the Structure of Management Informati | thin the "Structure of Management Information | |||
on | (SMI) Numbers (MIB Module Registrations)" group. The descriptio | |||
(SMI) Numbers (MIB Module Registrations) Group and to update th | n of this registry is | |||
e | "iso.org.dod.internet.mgmt.mib-2.snmpTlstmMIB.snmpTlstmHashAlgorithm | |||
proposed URL reference in the above MIB (listed as | s | |||
"https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml | (1.3.6.1.2.1.198.4)".</t> | |||
" | <t>The registry has the following fields: Value, Description, | |||
under SnmpTLSFingerprint), if needed, to accurately reflect its | Recommended, and References. The range of values is zero to 255, | |||
location. The description of this registry should be: | with initial assignments shown in <xref target="sect-2.1"/>. The "Re | |||
iso.org.dod.internet.mgmt.mib-2.snmpTlstmMIB.snmpTlstmHashAlgorithms | commended" | |||
(1.3.6.1.2.1.198.4). IANA is also asked to either 1) create the | column indicates "Y" for hashing algorithms that are Standards | |||
snmp-tlstm-reg-review@ietf.org email address that appears later | Track and are deemed to be acceptable for widely applicable | |||
within this section or 2) update the email address to an appropriate | ||||
address.</t> | ||||
<t>The registry should have the following fields: value, description, | ||||
recommended, and reference. The range of values is zero to 255, | ||||
with initial assignments shown in Section 2.1. The "recommended" | ||||
column indicates "Y" for hashing algorithms that are standards | ||||
track and are deemed to be acceptable for widely applicable | ||||
current use and "N" for hashing algorithms that | current use and "N" for hashing algorithms that | |||
reflect meanings that are not recommended (e.g., they do not | reflect meanings that are not recommended (e.g., they do not | |||
provide sufficient security for modern systems, they are not | provide sufficient security for modern systems, they are not | |||
standards track, they have limited applicability). A | Standards Track, and they have limited applicability). A | |||
blank field indicates that no recommendation is made (e.g., | blank field indicates that no recommendation is made (e.g., | |||
because the value is reserved or left for private use).</t> | because the value is unassigned or left for private use).</t> | |||
<t>This registry is expected to be updated infrequently and, as such, | <t>This registry is expected to be updated infrequently; as such, | |||
its values are limited to one octet.</t> | its values are limited to one octet.</t> | |||
<t>The policy for updates to the SNMP-TLSTM HashAlgorithm Registr | <t>The policy for updates to the "SNMP-TLSTM HashAlgorithms" regi | |||
y | stry | |||
is Expert Review. Registry requests should be sent to the | is Expert Review <xref target="RFC8126"/>. Registry requests should be sent t | |||
<snmp-tlstm-reg-review@ietf.org> mailing list. Registration requests | o the | |||
sent to the mailing list for review SHOULD use an appropriate | <eref brackets="angle" target="mailto:snmp-tlstm-reg-review@ietf.org"/> maili | |||
subject (e.g., "Request to register value in SNMP-TLSTM | ng list. Registration requests | |||
HashAlgorithm Registry"). In addition, designated experts should | sent to the mailing list for review <bcp14>SHOULD</bcp14> use an appropriate | |||
consult with the tls-reg-review@ietf.org mailing list to make sure | subject (e.g., 'Request to register value in "SNMP-TLSTM | |||
any new hash algorithms are considered for inclusion in this | HashAlgorithms" registry'). In addition, designated experts should | |||
consult with the | ||||
<eref brackets="angle" target="mailto:tls-reg-review@ietf.org"/> mailing list | ||||
to make sure | ||||
that any new hash algorithms are considered for inclusion in this | ||||
registry. </t> | registry. </t> | |||
<t>Designated experts SHOULD ascertain the existence of suitable | <t>Designated experts <bcp14>SHOULD</bcp14> ascertain the existence of suitab | |||
documentation that defines a hash algorithm and SHOULD also verify | le | |||
that the request does not conflict or duplicate other entries in the | documentation that defines a hash algorithm and <bcp14>SHOULD</bcp14> also ve | |||
rify | ||||
that the request does not conflict with or duplicate other entries in the | ||||
registry. The experts should also provide a recommendation as to how | registry. The experts should also provide a recommendation as to how | |||
the recommended column of the registry should be updated. Only | the "Recommended" column of the registry should be updated. Only | |||
publicly available specifications that represent current industry- | publicly available specifications that represent current industry- | |||
accepted practices should receive an assignment of "Y" in the | accepted practices should receive an assignment of "Y" in the | |||
recommneded column; all other specific assignments in the registry | "Recommended" column; all other specific assignments in the registry | |||
should receive an of "N". Assignments that are inspecific (e.g., | should receive an assignment of "N". Assignments that are nonspecific (e.g., | |||
reserved values) SHOULD not receive an assigned value for the | reserved values) <bcp14>SHOULD NOT</bcp14> receive an assigned value for the | |||
recommended column. </t> | "Recommended" column.</t> | |||
<t>Within the three-week review period, the designated experts will | <t>Within the three-week review period, the designated experts will | |||
either approve or deny the registration request, communicating this | either approve or deny the registration request, communicating this | |||
decision to the review list and IANA. Denials SHOULD include an | decision to the review list and IANA. Denials <bcp14>SHOULD</bcp14> include a n | |||
explanation and, if applicable, suggestions as to how to make the | explanation and, if applicable, suggestions as to how to make the | |||
request successful. Registration requests that are undetermined for | request successful. Registration requests that are undetermined for | |||
a period longer than 21 days can be brought to the IESG's attention | a period longer than three weeks can be brought to the IESG's attention | |||
(using the <iesg@ietf.org> mailing list) for resolution.</t> | (using the <eref brackets="angle" target="mailto:iesg@ietf.org"/> mailing lis | |||
t) for resolution.</t> | ||||
<t>IANA MUST only accept registry updates from the designated experts | <t>IANA <bcp14>MUST</bcp14> only accept registry updates from the designat | |||
and SHOULD direct all requests for registration to the review mailing | ed experts | |||
list. While future additions to the IANA TLS HashAlgorithm | and <bcp14>SHOULD</bcp14> direct all requests for registration to the review | |||
Registry (i.e., the registry from which the SNMP-TLSTM HashAlgorithm | mailing | |||
Registry was spawned) are not expected, any future addition to the | list. While future additions to the "TLS HashAlgorithm" | |||
IANA TLS HashAlgorithm Registry MUST be consistent with the values | registry (i.e., the registry from which the "SNMP-TLSTM HashAlgorithms" | |||
assigned in the IANA SNMP-TLSTM HashAlgorithm Registry.</t> | registry was spawned) are not expected, any future additions to the | |||
"TLS HashAlgorithm" registry <bcp14>MUST</bcp14> be consistent with the value | ||||
s | ||||
assigned in the "SNMP-TLSTM HashAlgorithms" registry.</t> | ||||
<t>It is suggested that multiple designated experts be appointed who are | <t>It is suggested that multiple designated experts be appointed who are | |||
able to represent the perspectives of different applications using | able to represent the perspectives of different applications using | |||
this specification, in order to enable broadly informed review of | this specification, in order to enable broadly informed reviews of | |||
registration decisions. In cases where a registration decision could | registration decisions. In cases where a registration decision could | |||
be perceived as creating a conflict of interest for a particular | be perceived as creating a conflict of interest for a particular | |||
Expert, that Expert SHOULD defer to the judgment of the other Experts.</t> | expert, that expert <bcp14>SHOULD</bcp14> defer to the judgment of the other | |||
experts.</t> | ||||
</section> | ||||
<section anchor="sect-7" numbered="true" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>This document is based on <xref target="RFC6353" format="default"/>. | ||||
This document was reviewed by the following people who helped provide | ||||
useful comments: Michaela Vanderveen, Joe Clarke, Jurgen Schonwalder, | ||||
and Tom Petch. </t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references> | <references> | |||
<name>References</name> | <name>References</name> | |||
<references> | <references> | |||
<name>Normative References</name> | <name>Normative References</name> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1 | |||
FC.1123.xml"/> | 123.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
FC.2119.xml"/> | 119.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | |||
FC.5280.xml"/> | 410.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
FC.5890.xml"/> | 280.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
FC.5952.xml"/> | 890.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
FC.6353.xml"/> | 952.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
FC.8174.xml"/> | 353.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
FC.8446.xml"/> | 174.xml"/> | |||
<referencegroup anchor="STD58"> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/referen | 446.xml"/> | |||
ce.RFC.2578.xml"/> | <referencegroup anchor="STD58" target="https://www.rfc-editor.org/info/s | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/referen | td58"> | |||
ce.RFC.2579.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.R | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/referen | FC.2578.xml"/> | |||
ce.RFC.2580.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.R | |||
FC.2579.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2580.xml"/> | ||||
</referencegroup> | </referencegroup> | |||
<referencegroup anchor="STD62"> | <referencegroup anchor="STD62" | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | target="https://www.rfc-editor.org/info/std62"> | |||
.RFC.3411.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | .3411.xml"/> | |||
.RFC.3412.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | .3412.xml"/> | |||
.RFC.3413.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | .3413.xml"/> | |||
.RFC.3414.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | .3414.xml"/> | |||
.RFC.3415.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | .3415.xml"/> | |||
.RFC.3416.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | .3416.xml"/> | |||
.RFC.3417.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference | .3417.xml"/> | |||
.RFC.3418.xml"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC | |||
.3418.xml"/> | ||||
</referencegroup> | </referencegroup> | |||
</references> | </references> | |||
<references> | <references> | |||
<name>Informative References</name> | <name>Informative References</name> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
FC.5246.xml"/> | 246.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
FC.5953.xml"/> | 591.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
FC.8422.xml"/> | 953.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
FC.8447.xml"/> | 126.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
FC.8996.xml"/> | 422.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
FC.9147.xml"/> | 447.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
FC.9150.xml"/> | 996.xml"/> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | |||
FC.9325.xml"/> | 147.xml"/> | |||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
150.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
325.xml"/> | ||||
</references> | </references> | |||
</references> | </references> | |||
<section anchor="acks" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>This document is based on <xref target="RFC6353" format="default"/>. | ||||
This document was reviewed by the following people, who helped provide | ||||
useful comments: <contact fullname="Michaela Vanderveen"/>, <contact full | ||||
name="Joe Clarke"/>, <contact fullname="Jürgen Schönwälder"/>, | ||||
and <contact fullname="Tom Petch"/>. </t> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 200 change blocks. | ||||
704 lines changed or deleted | 774 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |