<?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.11 (Ruby 3.2.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-boucadair-opsawg-secure-tacacs-yang-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="YANG for TACACS+ over TLS">A YANG Model for Terminal Access Controller Access-Control System Plus (TACACS+) over TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-boucadair-opsawg-secure-tacacs-yang-00"/>
    <author fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <date year="2024" month="May" day="28"/>
    <area>Operations and Management</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>XXXX</keyword>
    <keyword>XXXX</keyword>
    <keyword>XXXX</keyword>
    <abstract>
      <?line 38?>

<t>This document defines a YANG module for Terminal Access Controller Access-Control System Plus (TACACS+) over TLS 1.3. This modules augments the YANG Data Model for Terminal Access Controller Access-Control System Plus (TACACS+) defined in the RFC 9105 with TLS-related data nodes.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://boucadair.github.io/secure-tacacs-yang/draft-boucadair-opsawg-secure-tacacs-yang.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-boucadair-opsawg-secure-tacacs-yang/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Operations and Management Area Working Group Working Group mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/boucadair/secure-tacacs-yang"/>.</t>
    </note>
  </front>
  <middle>
    <?line 42?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC9105"/> defines a YANG module ("ietf-system-tacacs-plus") that augments the System Management data model defined in <xref target="RFC7317"/> for the management of Terminal Access Controller Access-Control System Plus (TACACS+) clients. Typically, the "ietf-system-tacacs-plus" module is used to configure a TACACS+ client on a device to support deployment scenarios with centralized authentication, authorization, and accounting servers.</t>
      <t>This document defines a YANG module for managing TACACS+ over TLS 1.3 clients <xref target="I-D.ietf-opsawg-tacacs-tls13"/>. The module is designed as an augmentation to the "ietf-system-tacacs-plus" module specified in <xref target="RFC9105"/>.</t>
      <ul empty="true">
        <li>
          <t>Discussion Note: RFC 9105bis or keep the current augment design.</t>
        </li>
      </ul>
      <t>The module leverages the TLS structures defined in <xref target="I-D.ietf-netconf-tls-client-server"/>. Concretely, this first version of the specification uses a pruning approach rather that a reuse of the groupings defined in <xref target="I-D.ietf-netconf-tls-client-server"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

<t>The meanings of the symbols in the YANG tree diagrams are defined in <xref target="RFC8340"/>.</t>
      <t>The document uses the terms defined in <xref section="2" sectionFormat="of" target="I-D.ietf-opsawg-tacacs-tls13"/> and <xref section="3" sectionFormat="of" target="RFC8907"/>.</t>
      <t>'client' refers to TLS TACACS+ client, while 'server' refers to TLS TACACS+ server.</t>
      <ul empty="true">
        <li>
          <t>Note to the RFC Editor: Please update the following:</t>
          <ul spacing="normal">
            <li>
              <t>AAAA --&gt; the assigned RFC number for <xref target="I-D.ietf-netconf-crypto-types"/></t>
            </li>
            <li>
              <t>BBBB --&gt; the assigned RFC number for <xref target="I-D.ietf-netconf-trust-anchors"/></t>
            </li>
            <li>
              <t>CCCC --&gt; the assigned RFC number for <xref target="I-D.ietf-netconf-keystore"/></t>
            </li>
            <li>
              <t>FFFF --&gt; the assigned RFC number for <xref target="I-D.ietf-netconf-tls-client-server"/></t>
            </li>
            <li>
              <t>XXXX --&gt; the assigned RFC number for this document.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="module-tree-structure">
      <name>Module Tree Structure</name>
      <t>The module is designed to cover the following key requirements specified in <xref target="I-D.ietf-opsawg-tacacs-tls13"/>:</t>
      <ul spacing="normal">
        <li>
          <t>TLS 1.3 <xref target="RFC8446"/> <bcp14>MUST</bcp14> be used for transport.</t>
        </li>
        <li>
          <t>Earlier TLS versions TLS <bcp14>MUST NOT</bcp14> be used.</t>
        </li>
        <li>
          <t>The cipher suites offered or accepted <bcp14>SHOULD</bcp14> be configurable.</t>
        </li>
        <li>
          <t>Implementations <bcp14>MAY</bcp14> support Raw Public Keys and PSK.</t>
        </li>
        <li>
          <t>Implementations <bcp14>MUST</bcp14> support the ability to configure the server's domain name</t>
        </li>
      </ul>
      <t>The full tree structure is shown below:</t>
      <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

module: ietf-system-secure-tacacs

  augment /sys:system/sys-tcs-plus:tacacs-plus/sys-tcs-plus:server:
    +--rw remote-address* [address]
    |  +--rw address        inet:ip-address
    |  +--rw port-number?   inet:port-number
    +--rw domain-name?      inet:domain-name
  augment /sys:system/sys-tcs-plus:tacacs-plus/sys-tcs-plus:server
            /sys-tcs-plus:security:
    +--:(tls)
       +--rw client-identity!
       |  +--rw (auth-type)?
       |     +--:(certificate)
       |     |  +--rw certificate
       |     |     +--rw (inline-or-keystore)
       |     |        +--:(inline) {inline-definitions-supported}?
       |     |        |  +--rw inline-definition
       |     |        |     +--rw public-key-format
       |     |        |     |       identityref
       |     |        |     +--rw public-key
       |     |        |     |       binary
       |     |        |     +--rw private-key-format?
       |     |        |     |       identityref
       |     |        |     +--rw (private-key-type)
       |     |        |     |  +--:(cleartext-private-key)
       |     |        |     |  |        {cleartext-private-keys}?
       |     |        |     |  |  +--rw cleartext-private-key?
       |     |        |     |  |          binary
       |     |        |     |  +--:(hidden-private-key)
       |     |        |     |  |        {hidden-private-keys}?
       |     |        |     |  |  +--rw hidden-private-key?      \
                                                                empty
       |     |        |     |  +--:(encrypted-private-key)
       |     |        |     |           {encrypted-private-keys}?
       |     |        |     |     +--rw encrypted-private-key
       |     |        |     |        +--rw encrypted-by
       |     |        |     |        +--rw encrypted-value-format
       |     |        |     |        |       identityref
       |     |        |     |        +--rw encrypted-value
       |     |        |     |                binary
       |     |        |     +--rw cert-data?
       |     |        |     |       end-entity-cert-cms
       |     |        |     +---n certificate-expiration
       |     |        |     |       {certificate-expiration-\
                                                       notification}?
       |     |        |     |  +-- expiration-date
       |     |        |     |          yang:date-and-time
       |     |        |     +---x generate-csr {csr-generation}?
       |     |        |        +---w input
       |     |        |        |  +---w csr-format    identityref
       |     |        |        |  +---w csr-info      csr-info
       |     |        |        +--ro output
       |     |        |           +--ro (csr-type)
       |     |        |              +--:(p10-csr)
       |     |        |                 +--ro p10-csr?   p10-csr
       |     |        +--:(keystore)
       |     |                 {central-keystore-supported,\
                                                    asymmetric-keys}?
       |     |           +--rw keystore-reference
       |     |              +--rw asymmetric-key?
       |     |              |       ks:asymmetric-key-ref
       |     |              |       {central-keystore-supported,\
                                                    asymmetric-keys}?
       |     |              +--rw certificate?      leafref
       |     +--:(raw-public-key) {tlsc:client-ident-raw-public-key}?
       |     |  +--rw raw-private-key
       |     |     +--rw (inline-or-keystore)
       |     |        +--:(inline) {inline-definitions-supported}?
       |     |        |  +--rw inline-definition
       |     |        |     +--rw public-key-format
       |     |        |     |       identityref
       |     |        |     +--rw public-key
       |     |        |     |       binary
       |     |        |     +--rw private-key-format?
       |     |        |     |       identityref
       |     |        |     +--rw (private-key-type)
       |     |        |        +--:(cleartext-private-key)
       |     |        |        |        {cleartext-private-keys}?
       |     |        |        |  +--rw cleartext-private-key?
       |     |        |        |          binary
       |     |        |        +--:(hidden-private-key)
       |     |        |        |        {hidden-private-keys}?
       |     |        |        |  +--rw hidden-private-key?      \
                                                                empty
       |     |        |        +--:(encrypted-private-key)
       |     |        |                 {encrypted-private-keys}?
       |     |        |           +--rw encrypted-private-key
       |     |        |              +--rw encrypted-by
       |     |        |              +--rw encrypted-value-format
       |     |        |              |       identityref
       |     |        |              +--rw encrypted-value
       |     |        |                      binary
       |     |        +--:(keystore)
       |     |                 {central-keystore-supported,\
                                                    asymmetric-keys}?
       |     |           +--rw keystore-reference?
       |     |                   ks:asymmetric-key-ref
       |     +--:(tls13-epsk) {tlsc:client-ident-tls13-epsk}?
       |        +--rw tls13-epsk
       |           +--rw (inline-or-keystore)
       |           |  +--:(inline) {inline-definitions-supported}?
       |           |  |  +--rw inline-definition
       |           |  |     +--rw key-format?            identityref
       |           |  |     +--rw (key-type)
       |           |  |        +--:(cleartext-key)
       |           |  |        |  +--rw cleartext-key?   binary
       |           |  |        |          {cleartext-symmetric-keys}?
       |           |  |        +--:(hidden-key)
       |           |  |        |        {hidden-symmetric-keys}?
       |           |  |        |  +--rw hidden-key?      empty
       |           |  |        +--:(encrypted-key)
       |           |  |                 {encrypted-symmetric-keys}?
       |           |  |           +--rw encrypted-key
       |           |  |              +--rw encrypted-by
       |           |  |              +--rw encrypted-value-format
       |           |  |              |       identityref
       |           |  |              +--rw encrypted-value
       |           |  |                      binary
       |           |  +--:(keystore)
       |           |           {central-keystore-supported,symmetric\
                                                              -keys}?
       |           |     +--rw keystore-reference?
       |           |             ks:symmetric-key-ref
       |           +--rw external-identity           string
       |           +--rw hash?
       |           |       tlscmn:epsk-supported-hash
       |           +--rw context?                    string
       |           +--rw target-protocol?            uint16
       |           +--rw target-kdf?                 uint16
       +--rw server-authentication
       |  +--rw ca-certs!
       |  |  +--rw (inline-or-truststore)
       |  |     +--:(inline) {inline-definitions-supported}?
       |  |     |  +--rw inline-definition
       |  |     |     +--rw certificate* [name]
       |  |     |        +--rw name                      string
       |  |     |        +--rw cert-data
       |  |     |        |       trust-anchor-cert-cms
       |  |     |        +---n certificate-expiration
       |  |     |                {certificate-expiration-\
                                                       notification}?
       |  |     |           +-- expiration-date    yang:date-and-time
       |  |     +--:(truststore)
       |  |              {central-truststore-supported,certificates}?
       |  |        +--rw truststore-reference?
       |  |                ts:certificate-bag-ref
       |  +--rw ee-certs!
       |  |  +--rw (inline-or-truststore)
       |  |     +--:(inline) {inline-definitions-supported}?
       |  |     |  +--rw inline-definition
       |  |     |     +--rw certificate* [name]
       |  |     |        +--rw name                      string
       |  |     |        +--rw cert-data
       |  |     |        |       trust-anchor-cert-cms
       |  |     |        +---n certificate-expiration
       |  |     |                {certificate-expiration-\
                                                       notification}?
       |  |     |           +-- expiration-date    yang:date-and-time
       |  |     +--:(truststore)
       |  |              {central-truststore-supported,certificates}?
       |  |        +--rw truststore-reference?
       |  |                ts:certificate-bag-ref
       |  +--rw raw-public-keys! {tlsc:server-auth-raw-public-key}?
       |  |  +--rw (inline-or-truststore)
       |  |     +--:(inline) {inline-definitions-supported}?
       |  |     |  +--rw inline-definition
       |  |     |     +--rw public-key* [name]
       |  |     |        +--rw name                 string
       |  |     |        +--rw public-key-format    identityref
       |  |     |        +--rw public-key           binary
       |  |     +--:(truststore)
       |  |              {central-truststore-supported,public-keys}?
       |  |        +--rw truststore-reference?   ts:public-key-bag-\
                                                                  ref
       |  +--rw tls13-epsks?       empty
       |          {tlsc:server-auth-tls13-epsk}?
       +--rw hello-params {tlscmn:hello-params}?
       |  +--rw tls-versions
       |  |  +--rw tls-version*   identityref
       |  +--rw cipher-suites
       |     +--rw cipher-suite*   identityref
       +--rw keepalives {tlsc:tls-client-keepalives}?
          +--rw peer-allowed-to-send?   empty
          +--rw test-peer-aliveness!
             +--rw max-wait?       uint16
             +--rw max-attempts?   uint8
]]></artwork>
      <t>The following data nodes are supported:</t>
      <dl>
        <dt>'remote-address':</dt>
        <dd>
          <t>Specifies a list of IP address/port numbers that can be used to reach a server instance.</t>
        </dd>
        <dt/>
        <dd>
          <t>A server instance may be identified by an IPv4 address, IPv6 address, or both.</t>
        </dd>
        <dt/>
        <dd>
          <t>One or multiple addresses of the same address family may be provided.</t>
        </dd>
        <dt/>
        <dd>
          <t>The same or distinct port numbers may be used per address family.</t>
        </dd>
        <dt/>
        <dd>
          <t>This container takes precedence over "address" and "port" data nodes defined in <xref target="RFC9105"/>.</t>
        </dd>
        <dt>'domain-name':</dt>
        <dd>
          <t>Provides a domain name of the server per <xref section="3.3" sectionFormat="of" target="I-D.ietf-opsawg-tacacs-tls13"/>.</t>
        </dd>
        <dt>'client-identity':</dt>
        <dd>
          <t>Specifies the identity credentials that the client may present when
establishing a connection to a server.</t>
        </dd>
        <dt>'server-authentication':</dt>
        <dd>
          <t>Specifies how a client authenticate servers.</t>
        </dd>
        <dt>'hello-params':</dt>
        <dd>
          <t>Controls TLS versions and cipher suites.</t>
        </dd>
        <dt>'keepalives':</dt>
        <dd>
          <t>Providers a set of parameters for testing the aliveness of the server.</t>
        </dd>
      </dl>
    </section>
    <section anchor="yang-module">
      <name>YANG Module</name>
      <t>This module uses types and groupings defined in <xref target="RFC6991"/>, <xref target="RFC8341"/>, <xref target="I-D.ietf-netconf-crypto-types"/>, <xref target="I-D.ietf-netconf-trust-anchors"/>,
<xref target="I-D.ietf-netconf-keystore"/>, and <xref target="I-D.ietf-netconf-tls-client-server"/>.</t>
      <t>The module augments <xref target="RFC9105"/>, which is also an augment of <xref target="RFC7317"/>.</t>
      <t>The module also cites <xref target="RFC9257"/>, <xref target="RFC9258"/>, <xref target="RFC9258"/>, and <xref target="RFC6520"/>.</t>
      <sourcecode markers="true" name="ietf-system-secure-tacacs@2024-05-23.yang"><![CDATA[
module ietf-system-secure-tacacs {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-system-secure-tacacs";
  prefix secure-tacacs;

  import ietf-inet-types {
    prefix inet;
    reference
      "RFC 6991: Common YANG Data Types";
  }
  import ietf-keystore {
    prefix ks;
    reference
      "RFC CCCC: A YANG Data Model for a Keystore";
  }
  import ietf-truststore {
    prefix ts;
    reference
      "RFC BBBB: A YANG Data Model for a Truststore";
  }
  import ietf-tcp-client {
    prefix tcpc;
    reference
      "RFC DDDD: YANG Groupings for TCP Clients and TCP Servers";
  }
  import ietf-tls-client {
    prefix tlsc;
    reference
      "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers";
  }
  import ietf-netconf-acm {
    prefix nacm;
    reference
      "RFC 8341: Network Configuration Access Control Model";
  }
  import ietf-crypto-types {
    prefix ct;
    reference
      "RFC AAAA: YANG Data Types and Groupings for Cryptography";
  }
  import ietf-tls-common {
    prefix tlscmn;
    reference
      "RFC FFFF: YANG Groupings for TLS Clients and TLS Servers";
  }
  import ietf-system {
    prefix sys;
    reference
      "RFC 7317: A YANG Data Model for System Management";
  }
  import ietf-system-tacacs-plus {
    prefix sys-tcs-plus;
    reference
      "RFC 9105: A YANG Data Model for Terminal Access Controller
                 Access-Control System Plus (TACACS+)";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/opsawg/>
     WG List:  <mailto:opsawg@ietf.org>

     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>";
  description
    "This module provides configuration of TACACS+ over TLS
     clients.

     Copyright (c) 2024 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2024-05-23 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: XXXX";
  }

  // to be further tweaked to align with the scope of tacacs+TLS spec
  // can't reuse the groupings in TLS as they are because TLS1.2
  // is not supported
  // can't set a default because of must in a choice

  grouping certificate {
    description
      "Specifies the client identity using a certificate.";
    uses "ks:inline-or-keystore-end-entity-cert-with-key-"
       + "grouping" {
      refine "inline-or-keystore/inline/inline-definition" {
        must 'not(public-key-format) or derived-from-or-self'
           + '(public-key-format, "ct:subject-public-key-'
           + 'info-format")';
      }
      refine "inline-or-keystore/keystore/"
           + "keystore-reference/asymmetric-key" {
        must 'not(deref(.)/../ks:public-key-format) or '
           + 'derived-from-or-self(deref(.)/../ks:public-'
           + 'key-format, "ct:subject-public-key-info-'
           + 'format")';
      }
    }
  }

  grouping raw-private-key {
    description
      "Specifies the client identity using a raw private
       key.";
    uses ks:inline-or-keystore-asymmetric-key-grouping {
      refine "inline-or-keystore/inline/inline-definition" {
        must 'not(public-key-format) or derived-from-or-self'
           + '(public-key-format, "ct:subject-public-key-'
           + 'info-format")';
      }
      refine "inline-or-keystore/keystore/"
           + "keystore-reference" {
        must 'not(deref(.)/../ks:public-key-format) or '
           + 'derived-from-or-self(deref(.)/../ks:public-'
           + 'key-format, "ct:subject-public-key-info-format")';
      }
    }
  }

  grouping tls13-epsk {
    description
      "An External Pre-Shared Key (EPSK) is established
       or provisioned out-of-band, i.e., not from a TLS
       connection.  An EPSK is a tuple of (Base Key,
       External Identity, Hash).  When PSKs are provisioned
       out of band, the PSK identity and the KDF hash algorithm
       to be used with the PSK must also be provisioned.";
    reference
      "RFC 8446: The Transport Layer Security (TLS) Protocol
                 Version 1.3, Section 4.2.11
       RFC 9257: Guidance for External Pre-Shared Key (PSK) Usage
                 in TLS, Section 6
       RFC 9258: Importing External Pre-Shared Keys (PSKs) for
                 TLS 1.3, Section 5.1";
    uses ks:inline-or-keystore-symmetric-key-grouping;
    leaf external-identity {
      type string;
      mandatory true;
      description
        "A sequence of bytes used to identify an EPSK. A label for
         a pre-shared key established externally.";
      reference
        "RFC 8446: The Transport Layer Security (TLS) Protocol
                   Version 1.3, Section 4.2.11
         RFC 9257: Guidance for External Pre-Shared Key (PSK)
                   Usage in TLS, Section 4.1";
    }
    leaf hash {
      type tlscmn:epsk-supported-hash;
      default "sha-256";
      description
        "For externally established PSKs, the Hash algorithm must be
         set when the PSK is established or default to SHA-256 if no
         such algorithm is defined.";
      reference
        "RFC 8446: The Transport Layer Security (TLS) Protocol
                   Version 1.3, Section 4.2.11";
    }
    leaf context {
      type string;
      description
        "The context used to determine the EPSK, if any exists. For
         example, context may include information about peer roles or
         identities to mitigate Selfie-style reflection attacks.";
      reference
        "RFC 9258: Importing External Pre-Shared Keys (PSKs) for
                   TLS 1.3, Section 5.1 ";
    }
    leaf target-protocol {
      type uint16;
      description
        "Specifies the protocol for which a PSK is imported for 
         use.";
      reference
        "RFC 9258: Importing External Pre-Shared Keys (PSKs) for
                   TLS 1.3, Section 3 ";
    }
    leaf target-kdf {
      type uint16;
      description
        "The KDF for which a PSK is imported for use.";
      reference
        "RFC 9258: Importing External Pre-Shared Keys (PSKs) for
                   TLS 1.3, Section 3";
    }
  }

  grouping client-identity {
    description
      "Identity credentials that the TLS client may present when
       establishing a connection to a TLS server. When configured,
       and requested by the TLS server when establishing a TLS
       session, these credentials are passed in the Certificate
       message.";
    reference
      "RFC 8446: The Transport Layer Security (TLS) Protocol
                 Version 1.3, Section 4.4.2";
    nacm:default-deny-write;
    choice auth-type {
      default "certificate";
      //mandatory true;
      description
        "A choice amongst authentication types, of which one must
         be enabled and selected.";
      case certificate {
        container certificate {
          description
            "Specifies the client identity using a certificate.";
          uses certificate;
        }
      }
      case raw-public-key {
        if-feature "tlsc:client-ident-raw-public-key";
        container raw-private-key {
          description
            "Specifies the client identity using RPK.";
          uses raw-private-key;
        }
      }
      case tls13-epsk {
        if-feature "tlsc:client-ident-tls13-epsk";
        container tls13-epsk {
          description
            "An EPSK is established or provisioned out-of-band.";
          uses tls13-epsk;
        }
      }
    }
  }

  grouping server-authentication {
    description
      "Specifies how the TLS client can authenticate TLS servers.
       Any combination of credentials is additive and unordered.";
    nacm:default-deny-write;
    container ca-certs {
      presence "Indicates that CA certificates have been configured.
                This statement is present so the mandatory descendant
                nodes do not imply that this node must be
                configured.";
      description
        "A set of CA certificates used by the TLS client to 
         authenticate TLS server certificates.
         A server certificate is authenticated if it has a valid
         chain of trust to a configured CA certificate.";
      reference
        "RFC BBBB: A YANG Data Model for a Truststore";
      uses ts:inline-or-truststore-certs-grouping;
    }
    container ee-certs {
      presence "Indicates that EE certificates have been configured.
                This statement is present so the mandatory descendant
                nodes do not imply that this node must be
                configured.";
      description
        "A set of server certificates (i.e., end entity certificates)
         used by the TLS client to authenticate certificates
         presented by TLS servers. A server certificate is
         authenticated if it is an exact match to a configured server
         certificate.";
      reference
        "RFC BBBB: A YANG Data Model for a Truststore";
      uses ts:inline-or-truststore-certs-grouping;
    }
    container raw-public-keys {
      if-feature "tlsc:server-auth-raw-public-key";
      presence "Indicates that raw public keys have been configured.
                This statement is present so the mandatory descendant
                nodes do not imply that this node must be
                configured.";
      description
        "A set of raw public keys used by the TLS client to
         authenticate raw public keys presented by the TLS server.
         A raw public key is authenticated if it is an exact match
         to a configured raw public key.";
      reference
        "RFC BBBB: A YANG Data Model for a Truststore";
      uses ts:inline-or-truststore-public-keys-grouping {
        refine "inline-or-truststore/inline/inline-definition/"
             + "public-key" {
          must 'derived-from-or-self(public-key-format,'
             + ' "ct:subject-public-key-info-format")';
        }
        refine "inline-or-truststore/truststore/"
             + "truststore-reference" {
          must 'not(deref(.)/../ts:public-key/ts:public-key-'
             + 'format[not(derived-from-or-self(., "ct:subject-'
             + 'public-key-info-format"))])';
        }
      }
    }
    leaf tls13-epsks {
      if-feature "tlsc:server-auth-tls13-epsk";
      type empty;
      description
        "Indicates that the TLS client can authenticate TLS servers
         using configured external PSKs.";
    }
  }

  grouping test-peer-aliveness {
    description
      "Configures the keep-alive policy to proactively test
       the aliveness of the TLS server.  An unresponsive TLS
       server is dropped after approximately max-wait
       * max-attempts seconds.";
    reference
      "RFC 6520: Transport Layer Security (TLS) and Datagram
                 Transport Layer Security (DTLS) Heartbeat
                 Extension";
    leaf max-wait {
      type uint16 {
        range "1..max";
      }
      units "seconds";
      default "30";
      description
        "Sets the amount of time in seconds after which if no data
         has been received from the TLS server, a TLS-level message
         will be sent to test the aliveness of the TLS server.";
    }
    leaf max-attempts {
      type uint8;
      default "3";
      description
        "Sets the maximum number of sequential keep-alive messages
         that can fail to obtain a response from the TLS server
         before assuming the TLS server is no longer alive.";
    }
  }

  grouping hello-params {
    description
      "Configurable parameters for the TLS hello message.";
    nacm:default-deny-write;
    uses tlscmn:hello-params-grouping {
      refine "tls-versions" {
        must "not(derived-from-or-self(tls-version, "
           + " 'tlscmn:tls12'))" {
          error-message "TLS 1.2 is not supported.";
        }
      }
    }
  }

  grouping keepalives {
    description
      "Configures the keepalive policy for the TLS client.";
    nacm:default-deny-write;
    leaf peer-allowed-to-send {
      type empty;
      description
        "Indicates that the remote TLS server is allowed to send
         HeartbeatRequest messages to this TLS client.";
      reference
        "RFC 6520: Transport Layer Security (TLS) and Datagram
                   Transport Layer Security (DTLS) Heartbeat
                   Extension";
    }
    container test-peer-aliveness {
      presence "Indicates that the TLS client proactively tests the
                aliveness of the remote TLS server.";
      description
        "Configures the keep-alive policy to proactively test the
         aliveness of the TLS server.  An unresponsive TLS server is
         dropped after approximately max-wait * max-attempts
         seconds.";
      uses test-peer-aliveness;
    }
  }

  grouping tls-client {
    description
      "A grouping for configuring a TLS client without any
       consideration for how an underlying TCP session is 
       established.";
    container client-identity {
      presence
        "Indicates that a TLS-level client identity has been
         configured.
         This statement is present so the mandatory descendant do not
         imply that this node must be configured.";
      description
        "Identity credentials the TLS client may present when
         establishing a connection to a TLS server.";
      uses client-identity;
    }
    container server-authentication {
      must 'ca-certs or ee-certs or raw-public-keys or tls13-epsks';
      description
        "Specifies how the TLS client can authenticate TLS servers.";
      uses server-authentication;
    }
    container hello-params {
      if-feature "tlscmn:hello-params";
      description
        "Configurable parameters for the TLS hello message.";
      uses hello-params;
    }
    container keepalives {
      if-feature "tlsc:tls-client-keepalives";
      description
        "Configures the keepalive policy for the TLS client.";
      uses keepalives;
    }
  }

  grouping tcp-server-info {
    description
      "A grouping for configuring the information to contact
       a TCP server.";
    list remote-address {
      key "address";
      description
        "A server instance may be reachable using multiple IP address
         and port numbers. For example, use the same port number in
         different address families or different port numbers in the
         same address family.";
      leaf address {
        type inet:ip-address;
        description
          "The remote IP address to reach a server.";
      }
      leaf port-number {
        type inet:port-number;
        description
          "The remote port number of the server.";
      }
    }
  }

  augment "/sys:system/sys-tcs-plus:tacacs-plus"
        + "/sys-tcs-plus:server" {
    description
      "Adds server's domain name.";
    uses tcp-server-info {
      refine "remote-address/address" {
        must 'not(../sys-tcs-plus:address)' {
          error-message
            "Either use the list of bind points or RFC 9105 address
             data node, not both.";
        }
      }
      refine "remote-address/port-number" {
        must 'not(../sys-tcs-plus:port)' {
          error-message
            "Either use the list of bind points or RFC 9105 port
             data node, not both.";
        }
        default "1234"; // to be replaced by TACACS-TLS-PORT
      }
    }
    leaf domain-name {
      type inet:domain-name;
      description
        "Provides a domain name of the TACACS+ server.";
    }
  }

  augment
    "/sys:system/sys-tcs-plus:tacacs-plus/sys-tcs-plus:server"
  + "/sys-tcs-plus:security" {
    description
      "Adds TLS case.";
    case tls {
      description
        "TLS is used.";
      uses tls-client;
    }
  }
}
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This section uses the template described in Section 3.7 of <xref target="I-D.ietf-netmod-rfc8407bis"/>.</t>
      <t>The YANG module specified in this document defines schema for data
   that is designed to be accessed via network management protocols such
   as NETCONF <xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>.  The lowest NETCONF layer
   is the secure transport layer, and the mandatory-to-implement secure
   transport is Secure Shell (SSH) <xref target="RFC6242"/>.  The lowest RESTCONF layer
   is HTTPS, and the mandatory-to-implement secure transport is TLS
   <xref target="RFC8446"/>.</t>
      <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/>
   provides the means to restrict access for particular NETCONF or
   RESTCONF users to a preconfigured subset of all available NETCONF or
   RESTCONF protocol operations and content.</t>
      <t>There are a number of data nodes defined in this YANG module that are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., edit-config)
   and delete operations to these data nodes without proper protection
   or authentication can have a negative effect on network operations.
   Specifically, the following subtrees and data nodes have particular
   sensitivities/vulnerabilities:</t>
      <artwork><![CDATA[
 'xxx':
 :  xxxx.
]]></artwork>
      <t>Some of the readable data nodes in this YANG module may be considered
   sensitive or vulnerable in some network environments.  It is thus
   important to control read access (e.g., via get, get-config, or
   notification) to these data nodes.  Specifically, the following
subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
      <artwork><![CDATA[
 'xxx':
 :  xxxx.
]]></artwork>
      <t>This YANG module uses groupings from other YANG modules that
   define nodes that may be considered sensitive or vulnerable
   in network environments. Refer to <xref section="5.3" sectionFormat="of" target="I-D.ietf-netconf-tls-client-server"/> for information as to which nodes may
   be considered sensitive or vulnerable in network environments.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URI in the "ns" subregistry within
   the "IETF XML Registry" <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI:  urn:ietf:params:xml:ns:yang:ietf-system-secure-tacacs
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG module in the "YANG Module
   Names" registry <xref target="RFC6020"/> within the "YANG Parameters" registry group:</t>
      <artwork><![CDATA[
   Name:  ietf-system-secure-tacacs
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-system-secure-tacacs
   Prefix:  secure-tacacs
   Maintained by IANA?  N
   Reference:  RFC XXXX
]]></artwork>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9105">
          <front>
            <title>A YANG Data Model for Terminal Access Controller Access-Control System Plus (TACACS+)</title>
            <author fullname="B. Wu" initials="B." role="editor" surname="Wu"/>
            <author fullname="G. Zheng" initials="G." surname="Zheng"/>
            <author fullname="M. Wang" initials="M." role="editor" surname="Wang"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>This document defines a Terminal Access Controller Access-Control System Plus (TACACS+) client YANG module that augments the System Management data model, defined in RFC 7317, to allow devices to make use of TACACS+ servers for centralized Authentication, Authorization, and Accounting (AAA). Though being a standard module, this module does not endorse the security mechanisms of the TACACS+ protocol (RFC 8907), and TACACS+ be used within a secure deployment.</t>
              <t>The YANG module in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9105"/>
          <seriesInfo name="DOI" value="10.17487/RFC9105"/>
        </reference>
        <reference anchor="RFC7317">
          <front>
            <title>A YANG Data Model for System Management</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="August" year="2014"/>
            <abstract>
              <t>This document defines a YANG data model for the configuration and identification of some common system properties within a device containing a Network Configuration Protocol (NETCONF) server. This document also includes data node definitions for system identification, time-of-day management, user management, DNS resolver configuration, and some protocol operations for system management.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7317"/>
          <seriesInfo name="DOI" value="10.17487/RFC7317"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-tacacs-tls13">
          <front>
            <title>Terminal Access Controller Access-Control System Plus (TACACS+) over TLS 1.3</title>
            <author fullname="Thorsten Dahm" initials="T." surname="Dahm">
         </author>
            <author fullname="John Heasley" initials="J." surname="Heasley">
              <organization>NTT</organization>
            </author>
            <author fullname="dcmgash@cisco.com" initials="" surname="dcmgash@cisco.com">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Andrej Ota" initials="A." surname="Ota">
              <organization>Google Inc.</organization>
            </author>
            <date day="22" month="May" year="2024"/>
            <abstract>
              <t>   The Terminal Access Controller Access-Control System Plus (TACACS+)
   Protocol provides device administration for routers, network access
   servers and other networked computing devices via one or more
   centralized servers.  This document adds Transport Layer Security
   (TLS 1.3) support to TACACS+ and obsoletes former inferior security
   mechanisms.

   This document updates RFC8907.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-tacacs-tls13-10"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-tls-client-server">
          <front>
            <title>YANG Groupings for TLS Clients and TLS Servers</title>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="16" month="March" year="2024"/>
            <abstract>
              <t>   This document presents four YANG 1.1 modules.  Three IETF modules,
   and one supporting IANA module.

   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.

   The IANA module is: iana-tls-cipher-suite-algs.  This module defines
   YANG enumerations providing support for an IANA-maintained algorithm
   registry.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-tls-client-server-41"/>
        </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>
        <reference anchor="I-D.ietf-netconf-crypto-types">
          <front>
            <title>YANG Data Types and Groupings for Cryptography</title>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="16" month="March" year="2024"/>
            <abstract>
              <t>   This document presents a YANG 1.1 (RFC 7950) module defining
   identities, typedefs, and groupings useful to cryptographic
   applications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-crypto-types-34"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-trust-anchors">
          <front>
            <title>A YANG Data Model for a Truststore</title>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="16" month="March" year="2024"/>
            <abstract>
              <t>   This document presents a YANG module for configuring bags of
   certificates and bags of public keys that can be referenced by other
   data models for trust.  Notifications are sent when certificates are
   about to expire.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-trust-anchors-28"/>
        </reference>
        <reference anchor="I-D.ietf-netconf-keystore">
          <front>
            <title>A YANG Data Model for a Keystore and Keystore Operations</title>
            <author fullname="Kent Watsen" initials="K." surname="Watsen">
              <organization>Watsen Networks</organization>
            </author>
            <date day="16" month="March" year="2024"/>
            <abstract>
              <t>   This document presents a YANG module called "ietf-keystore" that
   enables centralized configuration of both symmetric and asymmetric
   keys.  The secret value for both key types may be encrypted or
   hidden.  Asymmetric keys may be associated with certificates.
   Notifications are sent when certificates are about to expire.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netconf-keystore-35"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC9257">
          <front>
            <title>Guidance for External Pre-Shared Key (PSK) Usage in TLS</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="J. Hoyland" initials="J." surname="Hoyland"/>
            <author fullname="M. Sethi" initials="M." surname="Sethi"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document provides usage guidance for external Pre-Shared Keys (PSKs) in Transport Layer Security (TLS) 1.3 as defined in RFC 8446. It lists TLS security properties provided by PSKs under certain assumptions, then it demonstrates how violations of these assumptions lead to attacks. Advice for applications to help meet these assumptions is provided. This document also discusses PSK use cases and provisioning processes. Finally, it lists the privacy and security properties that are not provided by TLS 1.3 when external PSKs are used.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9257"/>
          <seriesInfo name="DOI" value="10.17487/RFC9257"/>
        </reference>
        <reference anchor="RFC9258">
          <front>
            <title>Importing External Pre-Shared Keys (PSKs) for TLS 1.3</title>
            <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document describes an interface for importing external Pre-Shared Keys (PSKs) into TLS 1.3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9258"/>
          <seriesInfo name="DOI" value="10.17487/RFC9258"/>
        </reference>
        <reference anchor="RFC6520">
          <front>
            <title>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension</title>
            <author fullname="R. Seggelmann" initials="R." surname="Seggelmann"/>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="M. Williams" initials="M." surname="Williams"/>
            <date month="February" year="2012"/>
            <abstract>
              <t>This document describes the Heartbeat Extension for the Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) protocols.</t>
              <t>The Heartbeat Extension provides a new protocol for TLS/DTLS allowing the usage of keep-alive functionality without performing a renegotiation and a basis for path MTU (PMTU) discovery for DTLS. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6520"/>
          <seriesInfo name="DOI" value="10.17487/RFC6520"/>
        </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="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6242"/>
          <seriesInfo name="DOI" value="10.17487/RFC6242"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative 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="RFC8907">
          <front>
            <title>The Terminal Access Controller Access-Control System Plus (TACACS+) Protocol</title>
            <author fullname="T. Dahm" initials="T." surname="Dahm"/>
            <author fullname="A. Ota" initials="A." surname="Ota"/>
            <author fullname="D.C. Medway Gash" initials="D.C." surname="Medway Gash"/>
            <author fullname="D. Carrel" initials="D." surname="Carrel"/>
            <author fullname="L. Grant" initials="L." surname="Grant"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>This document describes the Terminal Access Controller Access-Control System Plus (TACACS+) protocol, which is widely deployed today to provide Device Administration for routers, network access servers, and other networked computing devices via one or more centralized servers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8907"/>
          <seriesInfo name="DOI" value="10.17487/RFC8907"/>
        </reference>
        <reference anchor="I-D.ietf-netmod-rfc8407bis">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="Andy Bierman" initials="A." surname="Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
              <organization>Orange</organization>
            </author>
            <author fullname="Qin Wu" initials="Q." surname="Wu">
              <organization>Huawei</organization>
            </author>
            <date day="18" month="April" year="2024"/>
            <abstract>
              <t>   This memo provides guidelines for authors and reviewers of
   specifications containing YANG modules, including IANA-maintained
   modules.  Recommendations and procedures are defined, which are
   intended to increase interoperability and usability of Network
   Configuration Protocol (NETCONF) and RESTCONF protocol
   implementations that utilize YANG modules.  This document obsoletes
   RFC 8407.

   Also, this document updates RFC 8126 by providing additional
   guidelines for writing the IANA considerations for RFCs that specify
   IANA-maintained modules.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-netmod-rfc8407bis-11"/>
        </reference>
      </references>
    </references>
    <?line 883?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The document leverages data structures defined in <xref target="I-D.ietf-netconf-tls-client-server"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
