<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-hu-opsawg-sec-config-yang-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title>YANG Data Models for Security Configuration Check</title>
    <seriesInfo name="Internet-Draft" value="draft-hu-opsawg-sec-config-yang-00"/>
    <author initials="F." surname="Hu" fullname="Feifei HU">
      <organization>China Southern Power Grid</organization>
      <address>
        <email>huff@csg.cn</email>
      </address>
    </author>
    <author initials="Y." surname="Huang" fullname="Yu HUANG">
      <organization>China Southern Power Grid</organization>
      <address>
        <email>huangyu@csg.cn</email>
      </address>
    </author>
    <author initials="L." surname="Yan" fullname="Lei YAN">
      <organization>Huawei Technologies</organization>
      <address>
        <email>ray.yanlei@huawei.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <area>OPS</area>
    <workgroup>opsawg</workgroup>
    <keyword>YANG</keyword>
    <keyword>Node Tags</keyword>
    <keyword>Security Configuration Check</keyword>
    <abstract>
      <?line 58?>

<t>Security configuration refers to the status setting of product security features/functions to reduce network security risks during product use. 
This document defines YANG data models for the security configuration check.</t>
    </abstract>
  </front>
  <middle>
    <?line 63?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Weak or incorrect configurations are the main factors of network insecurity.
Insecure configurations can be exploited to easily launch a network intrusion by attackers.
It is reported that more than 95 per cent of the attacks are successful because of missing software updates or bad system configurations.
The top 3 high-risk configuration items are default password, unnecessary opened ports, and insecure protocol or algorithm.
The default accounts and passwords make it easy for attackers to guess and successfully access the network. 
The unnecessary opened ports increase the exposed surface of the attack.
Although security protocols can improve security, using known vulnerable algorithms or protocol versions will greatly reduce the attack difficulty.</t>
      <t>Security configuration checks can reduce network security risks during the usage of devices. 
The first step of the security configuration check is to collect security configuration information from devices. 
Then, the value of the collected configuration item will be compared with the security configuration benchmark to determine whether the configuration item is secure.
The security configuration benchmark is the recommended value of the configuration item to ensure basic device security.</t>
      <t>In the past, the IETF has existing work on security posture definition, collection, and assessment, including the concluded Network Endpoint Assessment (NEA)<xref target="RFC5209"/> and Security Automation and Continuous Monitoring (SACM) working groups <xref target="RFC8248"/>. 
The security configuration benchmark of the management plane <xref target="I-D.lin-sacm-nid-mp-security-baseline"/> has been defined in SACM.
This document focuses on the first step of the security configuration check and defines YANG data models for security configurations to be collected.
In this document, the security configuration check will be categorized first.
Second, the YANG data models will be built according to the categories.</t>
      <section anchor="terminology">
        <name>Terminology</name>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="tree-diagrams">
        <name>Tree Diagrams</name>
        <t>The meaning of the symbols in this diagram is defined in <xref target="RFC8340"/>.</t>
      </section>
    </section>
    <section anchor="categorization-of-security-configurations">
      <name>Categorization of Security Configurations</name>
      <t><xref target="Fig1"/> depicts the categorization of the security configuration check:</t>
      <figure anchor="Fig1">
        <name>Categorization of Security Configuration Check</name>
        <artwork><![CDATA[
                 +-----------------------------+
                 | Security Configuration Check|
                 +---------------+-------------+
                                 |
      +-------------+------------+-----------+-----------+
      |             |            |           |           |
      |             |            |           |           |
      |             |            |           |           |
+-----v-----+ +-----v----+ +-----v----+ +----v---+ +-----v-----+
|   Weak    | | Insecure | | Insecure | | Short  | | Unchanged |
| Algorithm | | Protocol | | Features | |  Key   | |  Default  |
+-----------+ +----------+ |  Status  | | Length | | Settings  |
                           +----------+ +--------+ +-----------+
]]></artwork>
      </figure>
      <t>The security configuration check is categorized into weak algorithms, insecure protocols, insecure feature status, short key length and unchanged default settings.</t>
      <section anchor="weak-algorithms">
        <name>Weak Algorithms</name>
        <t>Here, algorithms refer to any algorithms used in any softwares or protocols for security purpose, such as key exchange, encryption, signature, and integrity check.
The weak algorithms are the algorithms that is considered insecure, such as MD5, 3DES.</t>
        <t>Take TLS as an example, security algorithms used in TLS are called cipher-suites.<br/>
With the existing definitions of YANG Groupings for TLS Clients and TLS Servers <xref target="RFC9645"/>, the algorithms supported by TLS can be retrieved with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism as the following example:</t>
        <artwork><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" 
     message-id="101">
  <get-data 
    xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
    xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
    <datastore>ds:operational</datastore>
    <subtree-filter>
      <hello-params
        xmlns="urn:ietf:params:xml:ns:yang:ietf-tls-common"
        xmlns:tlscmn="urn:ietf:params:xml:ns:yang:ietf-tls-common">
        <cipher-suites>
          <cipher-suite>
            <cipher-suite/>
          </cipher-suite>
        </cipher-suites>
      </hello-params>
    </subtree-filter>
  </get-data>
</rpc>
]]></artwork>
        <t>In addition, the real-time change of the above information can be notified on time with NETCONF pub/sub mechanisms <xref target="RFC8641"/> as the following example:</t>
        <artwork><![CDATA[
<netconf:rpc xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
             message-id="101">
  <establish-subscription
    xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
    xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-push">
    <yp:datastore 
      xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
      ds:operational
    </yp:datastore>
    <yp:datastore-subtree-filter>
      <hello-params
        xmlns="urn:ietf:params:xml:ns:yang:ietf-tls-common"
        xmlns:tlscmn="urn:ietf:params:xml:ns:yang:ietf-tls-common">
        <cipher-suites>
          <cipher-suite>
            <cipher-suite/>
          </cipher-suite>
        </cipher-suites>
      </hello-params>
    </yp:datastore-subtree-filter>
    <yp:on-change/>
  </establish-subscription>
</netconf:rpc>
]]></artwork>
      </section>
      <section anchor="insecure-protocols">
        <name>Insecure Protocols</name>
        <t>Here, protocols refer to any protocol used in a device for the communication to any other devices in any layers.
Insecure protocols can be the protocol without security mechanisms, such as TCP and HTTP, or the older version of the protocols, such as TLSv1.1 and SNMPv1.</t>
        <t>Common Protocols and their YANG models are listed as follows:</t>
        <table anchor="Tab1">
          <name>Common Protocols and Their YANG Models</name>
          <thead>
            <tr>
              <th align="center">Protocols</th>
              <th align="center">YANG models</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center">TLS/DTLS</td>
              <td align="center">
                <xref target="RFC9645"/></td>
            </tr>
            <tr>
              <td align="center">SNMP</td>
              <td align="center">
                <xref target="RFC7407"/></td>
            </tr>
            <tr>
              <td align="center">SSH</td>
              <td align="center">
                <xref target="RFC9644"/></td>
            </tr>
            <tr>
              <td align="center">IPsec</td>
              <td align="center">
                <xref target="RFC9061"/></td>
            </tr>
            <tr>
              <td align="center">HTTP</td>
              <td align="center">
                <xref target="I-D.ietf-netconf-http-client-server"/></td>
            </tr>
            <tr>
              <td align="center">TCP</td>
              <td align="center">
                <xref target="RFC9648"/></td>
            </tr>
            <tr>
              <td align="center">UDP</td>
              <td align="center">
                <xref target="I-D.ietf-netconf-udp-client-server"/></td>
            </tr>
          </tbody>
        </table>
        <t>Take SNMP as an example.
With the existing definitions of a YANG data model for SNMP configuration <xref target="RFC7407"/>, the protocol version of SNMP can be retrieved with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism as the following example:</t>
        <artwork><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" 
     message-id="101">
  <get-data 
    xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
    xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
    <datastore>ds:operational</datastore>
    <subtree-filter>
      <snmp
        xmlns="urn:ietf:params:xml:ns:yang:ietf-snmp">
        <engine>
          <version>
            <version/>
          </version>
        </engine>
      </snmp>
    </subtree-filter>
  </get-data>
</rpc>
]]></artwork>
        <t>In addition, the real-time change of the above information can be notified on time with NETCONF pub/sub mechanisms <xref target="RFC8641"/> as the following example:</t>
        <artwork><![CDATA[
<netconf:rpc xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
             message-id="101">
  <establish-subscription
    xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
    xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-push">
    <yp:datastore 
      xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
      ds:operational
    </yp:datastore>
    <yp:datastore-subtree-filter>
      <snmp
        xmlns="urn:ietf:params:xml:ns:yang:ietf-snmp">
        <engine>
          <version>
            <version/>
          </version>
        </engine>
      </snmp>
    </yp:datastore-subtree-filter>
    <yp:on-change/>
  </establish-subscription>
</netconf:rpc>
]]></artwork>
      </section>
      <section anchor="insecure-features-status">
        <name>Insecure Features Status</name>
        <t>Security features include security functions and configurations.
Insecure features are classified as follows:</t>
        <ul spacing="normal">
          <li>
            <t>all interfaces listening</t>
          </li>
          <li>
            <t>all interfaces binding</t>
          </li>
          <li>
            <t>unconfigured security configurations
            </t>
            <ul spacing="normal">
              <li>
                <t>unconfigured ACL hardening</t>
              </li>
              <li>
                <t>unconfigured keys</t>
              </li>
              <li>
                <t>unconfigured passwords</t>
              </li>
              <li>
                <t>unconfigured timeout period</t>
              </li>
            </ul>
          </li>
          <li>
            <t>disabled security functions
            </t>
            <ul spacing="normal">
              <li>
                <t>disabled account locking</t>
              </li>
              <li>
                <t>disabled certificate verification</t>
              </li>
              <li>
                <t>disabled allowlitst</t>
              </li>
              <li>
                <t>disabled blocklist</t>
              </li>
              <li>
                <t>disabled encryption function</t>
              </li>
              <li>
                <t>disabled authentication function</t>
              </li>
              <li>
                <t>disabled security protocol</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>Listening or binding all interfaces may cause the exposed attack surface to increase. 
Setting the security configurations and enabling the security functions will enhance the device's security.</t>
        <t>The submodule "ietf-security-config-features", which defines the configuration parameters of security features, has the following structure:</t>
        <artwork><![CDATA[
submodule: ietf-security-config-features
+--rw security cofig
   +--rw security features* [name]
      +--rw id? unit64   
      +--rw name string
      +--rw description? string
      +--rw status boolean
]]></artwork>
        <t>The "status" true means the security feature is enabled or configured, and false means the security feature is disabled or unconfigured.</t>
        <t>The submodel "ietf-security-config-features" can be used with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism for configuration information collection.
The feature status information can be retrieved with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism as the following example:</t>
        <artwork><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" 
     message-id="101">
  <get-data 
    xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
    xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
    <datastore>ds:operational</datastore>
    <subtree-filter>
      <security-config
        xmlns="urn:ietf:params:xml:ns:yang:ietf-security-config">
        <security features>
          <name>
            <name/>
          </name>
          <status>
            <status/>
          </status>
        </security features>
      </security-config>
    </subtree-filter>
  </get-data>
</rpc>
]]></artwork>
        <t>In addition, the real-time change of the above information can be notified on time with NETCONF pub/sub mechanisms <xref target="RFC8641"/> as the following example:</t>
        <artwork><![CDATA[
<netconf:rpc xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
             message-id="101">
  <establish-subscription
    xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
    xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-push">
    <yp:datastore 
      xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
      ds:operational
    </yp:datastore>
    <yp:datastore-subtree-filter>
      <security-config
        xmlns="urn:ietf:params:xml:ns:yang:ietf-security-config">
        <security features>
          <name>
            <name/>
          </name>
          <status>
            <status/>
          </status>
        </security features>
      </security-config>
    </yp:datastore-subtree-filter>
    <yp:on-change/>
  </establish-subscription>
</netconf:rpc>
]]></artwork>
      </section>
      <section anchor="short-key-length">
        <name>Short Key length</name>
        <t>Short Key length means the key is not long enough to meet the security requirement.
The submodule "ietf-security-config-key", which defines configuration parameters of key length, has the following structure:</t>
        <artwork><![CDATA[
submodule: ietf-security-config-key
+--rw security cofig
   +--rw key* [key id]
      +--rw key id unit64   
      +--rw usage? string
      +--rw length unit64
]]></artwork>
        <t>The "usage" describes the key is used by which algorithm of which protocol or software.</t>
        <t>The submodel "ietf-security-config-key" can be used with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism for configuration information collection.
The key length information can be retrieved with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism as the following example:</t>
        <artwork><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" 
     message-id="101">
  <get-data 
    xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
    xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
    <datastore>ds:operational</datastore>
    <subtree-filter>
      <security-config
        xmlns="urn:ietf:params:xml:ns:yang:ietf-security-config">
        <key>
          <key id>
            <key id/>
          </key id>
          <length>
            <length/>
          </length>
        </key>
      </security-config>
    </subtree-filter>
  </get-data>
</rpc>
]]></artwork>
        <t>In addition, the real-time change of the above information can be notified on time with NETCONF pub/sub mechanisms <xref target="RFC8641"/> as the following example:</t>
        <artwork><![CDATA[
<netconf:rpc xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
             message-id="101">
  <establish-subscription
    xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
    xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-push">
    <yp:datastore 
      xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
      ds:operational
    </yp:datastore>
    <yp:datastore-subtree-filter>
      <security-config
        xmlns="urn:ietf:params:xml:ns:yang:ietf-security-config">
        <key>
          <key id>
            <key id/>
          </key id>
          <length>
            <length/>
          </length>
        </key>
    </yp:datastore-subtree-filter>
    <yp:on-change/>
  </establish-subscription>
</netconf:rpc>
]]></artwork>
      </section>
      <section anchor="unchanged-default-settings">
        <name>Unchanged Default Settings</name>
        <t>Default settings required to be changed include the default security-related configurations set by manufacturers and the default port defined by protocols.
Unchanged default settings are classified as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Unchanged default certificates</t>
          </li>
          <li>
            <t>Unchanged default PKI domains</t>
          </li>
          <li>
            <t>Unchanged default keys</t>
          </li>
          <li>
            <t>Unchanged default ports</t>
          </li>
        </ul>
        <t>Using the default certificates, PKI domains, or keys set by manufacturers may have a risk of being cracked.
Using the default port number of a protocol may cause being sniffed and monitored.</t>
        <t>The submodule "ietf-security-config-default-settings", which defines configuration parameters of default settings, has the following structure:</t>
        <artwork><![CDATA[
submodule: ietf-security-config-default-settings
+--rw security cofig
   +--rw default settings* [name]
      +--rw type enumeration 
            {certificates, PKI domains, keys, ports}
      +--rw id? unit64   
      +--rw name string
      +--rw description? string
      +--rw changed boolean
]]></artwork>
        <t>The "changed" true means the default setting has been changed, and false means unchanged.</t>
        <t>The submodel "ietf-security-config-default-settings" can be used with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism for configuration information collection.
The default setting information can be retrieved with NETCONF <xref target="RFC6241"/> Subtree Filtering mechanism as the following example:</t>
        <artwork><![CDATA[
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" 
     message-id="101">
  <get-data 
    xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-nmda"
    xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
    <datastore>ds:operational</datastore>
    <subtree-filter>
      <security-config
        xmlns="urn:ietf:params:xml:ns:yang:ietf-security-config">
        <default settings>
          <type>
            <type/>
          </type>
          <name>
            <name/>
          </name>
          <changed>
            <changed/>
          </changed>
        </default settings>
      </security-config>
    </subtree-filter>
  </get-data>
</rpc>
]]></artwork>
        <t>In addition, the real-time change of the above information can be notified on time with NETCONF pub/sub mechanisms <xref target="RFC8641"/> as the following example:</t>
        <artwork><![CDATA[
<netconf:rpc xmlns:netconf="urn:ietf:params:xml:ns:netconf:base:1.0"
             message-id="101">
  <establish-subscription
    xmlns="urn:ietf:params:xml:ns:yang:ietf-subscribed-notifications"
    xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-push">
    <yp:datastore 
      xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores">
      ds:operational
    </yp:datastore>
    <yp:datastore-subtree-filter>
      <security-config
        xmlns="urn:ietf:params:xml:ns:yang:ietf-security-config">
        <default settings>
          <type>
            <type/>
          </type>
          <name>
            <name/>
          </name>
          <changed>
            <changed/>
          </changed>
        </default settings>
    </yp:datastore-subtree-filter>
    <yp:on-change/>
  </establish-subscription>
</netconf:rpc>
]]></artwork>
      </section>
    </section>
    <section anchor="yang-data-model-for-security-configuration-check">
      <name>YANG Data Model for Security Configuration Check</name>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC7407">
          <front>
            <title>A YANG Data Model for SNMP Configuration</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <date month="December" year="2014"/>
            <abstract>
              <t>This document defines a collection of YANG definitions for configuring SNMP engines.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7407"/>
          <seriesInfo name="DOI" value="10.17487/RFC7407"/>
        </reference>
        <reference anchor="RFC9645">
          <front>
            <title>YANG Groupings for TLS Clients and TLS Servers</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>This document presents four YANG 1.1 modules -- three IETF modules and one supporting IANA module.</t>
              <t>The three IETF modules are "ietf-tls-common", "ietf-tls-client", and "ietf-tls-server". The "ietf-tls-client" and "ietf-tls-server" modules are the primary productions of this work, supporting the configuration and monitoring of TLS clients and servers.</t>
              <t>The IANA module is "iana-tls-cipher-suite-algs". This module defines YANG enumerations that provide support for an IANA-maintained algorithm registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9645"/>
          <seriesInfo name="DOI" value="10.17487/RFC9645"/>
        </reference>
        <reference anchor="RFC9644">
          <front>
            <title>YANG Groupings for SSH Clients and SSH Servers</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>This document presents three IETF-defined YANG modules and a script used to create four supporting IANA modules.</t>
              <t>The three IETF modules are ietf-ssh-common, ietf-ssh-client, and ietf-ssh-server. The "ietf-ssh-client" and "ietf-ssh-server" modules are the primary productions of this work, supporting the configuration and monitoring of Secure Shell (SSH) clients and servers.</t>
              <t>The four IANA modules are iana-ssh-encryption-algs, iana-ssh-key-exchange-algs, iana-ssh-mac-algs, and iana-ssh-public-key-algs. These modules each define YANG enumerations providing support for an IANA-maintained algorithm registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9644"/>
          <seriesInfo name="DOI" value="10.17487/RFC9644"/>
        </reference>
        <reference anchor="RFC9648">
          <front>
            <title>YANG Data Model for TCP</title>
            <author fullname="M. Scharf" initials="M." surname="Scharf"/>
            <author fullname="M. Jethanandani" initials="M." surname="Jethanandani"/>
            <author fullname="V. Murgai" initials="V." surname="Murgai"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>This document specifies a minimal YANG data model for TCP on devices that are configured and managed by network management protocols. The YANG data model defines a container for all TCP connections and groupings of authentication parameters that can be imported and used in TCP implementations or by other models that need to configure TCP parameters. The model also includes basic TCP statistics. The model is compliant with Network Management Datastore Architecture (NMDA) (RFC 8342).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9648"/>
          <seriesInfo name="DOI" value="10.17487/RFC9648"/>
        </reference>
        <reference anchor="RFC9061">
          <front>
            <title>A YANG Data Model for IPsec Flow Protection Based on Software-Defined Networking (SDN)</title>
            <author fullname="R. Marin-Lopez" initials="R." surname="Marin-Lopez"/>
            <author fullname="G. Lopez-Millan" initials="G." surname="Lopez-Millan"/>
            <author fullname="F. Pereniguez-Garcia" initials="F." surname="Pereniguez-Garcia"/>
            <date month="July" year="2021"/>
            <abstract>
              <t>This document describes how to provide IPsec-based flow protection (integrity and confidentiality) by means of an Interface to Network Security Function (I2NSF) Controller. It considers two main well-known scenarios in IPsec: gateway-to-gateway and host-to-host. The service described in this document allows the configuration and monitoring of IPsec Security Associations (IPsec SAs) from an I2NSF Controller to one or several flow-based Network Security Functions (NSFs) that rely on IPsec to protect data traffic.</t>
              <t>This document focuses on the I2NSF NSF-Facing Interface by providing YANG data models for configuring the IPsec databases, namely Security Policy Database (SPD), Security Association Database (SAD), Peer Authorization Database (PAD), and Internet Key Exchange Version 2 (IKEv2). This allows IPsec SA establishment with minimal intervention by the network administrator. This document defines three YANG modules, but it does not define any new protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9061"/>
          <seriesInfo name="DOI" value="10.17487/RFC9061"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5209">
          <front>
            <title>Network Endpoint Assessment (NEA): Overview and Requirements</title>
            <author fullname="P. Sangster" initials="P." surname="Sangster"/>
            <author fullname="H. Khosravi" initials="H." surname="Khosravi"/>
            <author fullname="M. Mani" initials="M." surname="Mani"/>
            <author fullname="K. Narayan" initials="K." surname="Narayan"/>
            <author fullname="J. Tardo" initials="J." surname="Tardo"/>
            <date month="June" year="2008"/>
            <abstract>
              <t>This document defines the problem statement, scope, and protocol requirements between the components of the NEA (Network Endpoint Assessment) reference model. NEA provides owners of networks (e.g., an enterprise offering remote access) a mechanism to evaluate the posture of a system. This may take place during the request for network access and/or subsequently at any time while connected to the network. The learned posture information can then be applied to a variety of compliance-oriented decisions. The posture information is frequently useful for detecting systems that are lacking or have out-of-date security protection mechanisms such as: anti-virus and host-based firewall software. In order to provide context for the requirements, a reference model and terminology are introduced. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5209"/>
          <seriesInfo name="DOI" value="10.17487/RFC5209"/>
        </reference>
        <reference anchor="RFC8248">
          <front>
            <title>Security Automation and Continuous Monitoring (SACM) Requirements</title>
            <author fullname="N. Cam-Winget" initials="N." surname="Cam-Winget"/>
            <author fullname="L. Lorenzin" initials="L." surname="Lorenzin"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>This document defines the scope and set of requirements for the Security Automation and Continuous Monitoring (SACM) architecture, data model, and transfer protocols. The requirements and scope are based on the agreed-upon use cases described in RFC 7632.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8248"/>
          <seriesInfo name="DOI" value="10.17487/RFC8248"/>
        </reference>
        <reference anchor="RFC8641">
          <front>
            <title>Subscription to YANG Notifications for Datastore Updates</title>
            <author fullname="A. Clemm" initials="A." surname="Clemm"/>
            <author fullname="E. Voit" initials="E." surname="Voit"/>
            <date month="September" year="2019"/>
            <abstract>
              <t>This document describes a mechanism that allows subscriber applications to request a continuous and customized stream of updates from a YANG datastore. Providing such visibility into updates enables new capabilities based on the remote mirroring and monitoring of configuration and operational state.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8641"/>
          <seriesInfo name="DOI" value="10.17487/RFC8641"/>
        </reference>
        <reference anchor="I-D.lin-sacm-nid-mp-security-baseline">
          <front>
            <title>The Data Model of Network Infrastructure Device Management Plane Security Baseline</title>
            <author fullname="Qiushi Lin" initials="Q." surname="Lin">
              <organization>Huawei</organization>
            </author>
            <author fullname="Liang Xia" initials="L." surname="Xia">
              <organization>Huawei</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="22" month="October" year="2018"/>
            <abstract>
              <t>   This document provides security baseline for network device
   management plane, which is represented by YANG data model.  The
   corresponding configuration values and status values of the YANG data
   model can be transported between Security Automation and Continuous
   Monitoring (SACM) components and used for network device security
   posture assessment.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lin-sacm-nid-mp-security-baseline-04"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-http-client-server">
          <front>
            <title>YANG Groupings for HTTP Clients and HTTP Servers</title>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="15" month="August" year="2024"/>
            <abstract>
              <t>   This document presents two YANG modules: the first defines a minimal
   grouping for configuring an HTTP client, and the second defines a
   minimal grouping for configuring an HTTP server.  It is intended that
   these groupings will be used to help define the configuration for
   simple HTTP-based protocols (not for complete web servers or
   browsers).  Support is provided for HTTP/1.1, HTTP/2, and HTTP/3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-http-client-server-23"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-udp-client-server">
          <front>
            <title>YANG Groupings for UDP Clients and UDP Servers</title>
            <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Pierre Francois" initials="P." surname="Francois">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="17" month="October" year="2024"/>
            <abstract>
              <t>   This document defines two YANG 1.1 modules to support the
   configuration of UDP clients and UDP servers.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-udp-client-server-05"/>
        </reference>
      </references>
    </references>
    <?line 531?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
    </section>
    <section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <t>Xubin LIN <br/>
China Southern Power Grid <br/>
linxb2@csg.cn</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
