<?xml version="1.0" encoding="UTF-8"?>
<!--<?xml version="1.0" encoding="US-ASCII"?> -->
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<?rfc toc="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" category="std" docName="draft-kim-i2nsf-security-controller-interface-dm-01">

<front>
<!-- Security Controller-Facing YANG Data Model-->
  <title abbrev="Security Controller-Facing Interface">
  I2NSF Security Controller-Facing Interface YANG Data Model for Cross-Domain IPsec Flow Protection
  </title>

  <author initials="J." surname="Kim" fullname="Jeonghyeon Joshua Kim">
    <organization abbrev="Sungkyunkwan University">
    Department of Computer Science and Engineering 
    </organization>

    <address>
      <postal>
        <extaddr>Sungkyunkwan University</extaddr>
        <street>2066 Seobu-Ro, Jangan-Gu</street>
        <city>Suwon</city> <region>Gyeonggi-Do</region>
        <code>16419</code>
        <country>Republic of Korea</country>
      </postal>
      <phone>+82 31 299 4957</phone>
      <email>jeonghyeon12@skku.edu</email>
    </address>
  </author>  

  <author role="editor" initials="J." surname="Jeong" fullname="Jaehoon Paul Jeong">
    <organization abbrev="Sungkyunkwan University">
    Department of Computer Science and Engineering 
    </organization>

    <address>
      <postal>
        <extaddr>Sungkyunkwan University</extaddr>
        <street>2066 Seobu-Ro, Jangan-Gu</street>
        <city>Suwon</city> <region>Gyeonggi-Do</region>
        <code>16419</code>
        <country>Republic of Korea</country>
      </postal>
      <phone>+82 31 299 4957</phone>
      <facsimile>+82 31 290 7996</facsimile>
      <email>pauljeong@skku.edu</email>
      <uri>http://iotlab.skku.edu/people-jaehoon-jeong.php</uri>
    </address>
  </author>
        
  <author initials="P." surname="Lingga" fullname="Patrick Lingga">
    <organization abbrev="Sungkyunkwan University">
    Department of Electrical and Computer Engineering 
    </organization>

    <address>
      <postal>
        <extaddr>Sungkyunkwan University</extaddr>
        <street>2066 Seobu-Ro, Jangan-Gu</street>
        <city>Suwon</city> <region>Gyeonggi-Do</region>
        <code>16419</code>
        <country>Republic of Korea</country>
      </postal>
      <phone>+82 31 299 4957</phone>
      <email>patricklink@skku.edu</email>
    </address>
  </author>   

  <author initials="S." surname="Hares" fullname="Susan Hares">
    <organization abbrev="Huawei">
      Huawei 
    </organization>

    <address>
      <postal>
        <street>7453 Hickory Hill</street>
        <city>Saline</city> <region>MI</region>
        <code>48176</code>
        <country>USA</country>
      </postal>
      <phone>+1-734-604-0332</phone>
      <email>shares@ndzh.com</email>
    </address>
  </author>

  <author initials="R." surname="Marin-Lopez" fullname="Rafa Marin-Lopez">
    <organization showOnFrontPage="true">University of Murcia</organization>
    <address>
      <postal>
        <extaddr>Faculty of Computer Science</extaddr>
        <street>Campus de Espinardo S/N</street>
        <region>Murcia</region>
        <code>30100</code>
        <country>Spain</country>
      </postal>
      <phone>+34 868 88 85 01</phone>
      <email>rafa@um.es</email>
    </address>
  </author>

  <date month="March" day="28" year="2023" />

  <area>Security</area>

  <workgroup>I2NSF Working Group</workgroup>
    

<!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on http://www.rfc-editor.org/rfcsearch.html. -->

  <keyword>Internet-Draft</keyword> 

  <abstract>
    <t>
    This document defines an information model and a YANG data model for
	  the Security Controller-Facing Interface between two security
	  controllers in an Interface to Network Security Functions (I2NSF)
	  framework located in different Domains. This interface is used for the 
    exchange of IPsec flow protection to protect the IP Communication
    between two Network Security Functions (NSFs) in cross-domain
    environments. The YANG data model in this document is built on the
    basis of the YANG data model for IPsec flow protection based on
    Software-Defined Networking (SDN).
    </t>
  </abstract>
</front>

<middle>

  <section anchor="section:Introduction" title="Introduction">
    <t>
      Interface to Network Security Functions (I2NSF) defines a framework and
      its interfaces for the security management and monitoring of Network
      Security Functions (NSFs) for security services. <xref target="RFC8329" />.
    </t>

    <t>  
      To support multiple security services for a traffic flow with multiple
      NSFs, a Service Function Chaining (SFC) <xref target="RFC7665" />  can be
      used. In SFC, the integrity and confidentiality of security services between the NSFs
      must be guaranteed. <xref target="RFC9061"/> protects the flow
      between NSFs under the control of the same I2NSF security controller.
      The security controller is in charge of generating, managing and distributing
      the IPsec Security Associations. This document describes the flow protection
      and key management process (i.e., IKE case and IKE-less case)
      between two NSFs within the coverage of I2NSF managed by one security controller,
      i.e., within one I2NSF domain (e.g., an autonomous system (AS)).
    </t>

    <t>
      However, recently, as described in <xref target ="I-D.ietf-bess-bgp-sdwan-usage"/>,
      multiple Software-Defined WANs (SD-WANs) scenarios demand a centralized way of
      flow protection using IPsec between SD-WAN peers(NSFs). In the scenarios, some
      SD-WAN peers that are located in different spaces (virtual or physical) are
      connected only by untrusted public networks.
    </t>

    <t>
      Therefore, to ensure secure communication between NSFs located in different SD-WANs
      over untrusted public networks, flow protection is required.
      Additionally, an interface for exchanging information (e.g., security policies
      and IPsec parameters) between different SD-WANs is necessary.
    </t>

    <t>    
      In response to these requirements, I2NSF needs to extend by using
      <xref target="RFC9061"/>. The I2NSF security controller needs to extend to
      centrally manage multiple I2NSFs that are located in different domains,
      and needs to extend to exchange information between two I2NSFs located
      in two different domains.
    </t>

    <t> 
      To extend I2NSF, a centralized point that can manage multiple I2NSF domains
      is needed. It is necessary to introduce a new interface for centralized
      management and exchanging information between NSFs located in different I2NSF 
      domains, i.e., a cross-domain environment with multiple ASes.
    </t>
      
    <t>
      Therefore, this document proposes an information model and a YANG data
      model for a Security Controller-Facing Interface (SFI) for exchanging
      information (e.g., security policies and IPsec parameters) between
      security controllers. This interface performs the exchange of a security
      policy and provides flow protection among NSFs located in cross-domain
      environments. This document suggests two scenarios of configuration
      between peer-to-peer security controller cases (see Section 5.1.) and
      configuration in hierarchical security controller cases (see Section 5.2.).
    </t>
    
  </section>


  <section anchor="section:Terminology" title="Terminology">
    <t>
      The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" 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>
    <t>
      I2NSF Domain: An area that an I2NSF security controller can manage.
    </t>
    <t>
      Security Contorller-Facing Interface (SFI): An interface for the exchange
      of information between two security controllers located in two different
      I2NSF domains.
    </t>
  </section>

  <section anchor="section: I2NSF Cross Domain IPsec" title="I2NSF Cross Domain IPsec Management Description">     

  <figure anchor="figure:I2NSF-Cross-Framework" title="I2NSF Framework for Cross-Domain IPsec Flow Protection">
  <artwork align="center">
    <![CDATA[
          I2NSF Domain A                            I2NSF Domain B
+--------------------------------+         +-------------------------------+
|         +-------------+        |         |         +-------------+       |
|         |   Security  | Security Controller-Facing |   Security  |       |
|         | Controller A|<-------------------------->| Controller B|       |
|         |             |        |Interface|         |             |       |
|         +------+------+        |         |         +------+------+       |
|                ^               |         |                ^              |
|                |               |         |                |              |
|      +---------+------+        |         |       +--------+-------+      |
|      |                |        |         |       |                |      |
|      v                v        |         |       v                v      |
|  +---+---+        +---+---+    |  IPsec  |   +---+---+        +---+---+  |
|  | NSF-1 |        | NSF-2 |==================| NSF-3 |        | NSF-4 |  |
|  +---+---+        +---+---+    |         |   +---+---+        +---+---+  | 
+--------------------------------+         +-------------------------------+ 
]]>
  </artwork>
  </figure>

  <t>
    <xref target="figure:I2NSF-Cross-Framework"/> show the conceptual architecture of 
    I2NSF framework for Cross-Domain IPsec flow protection. As shown in <xref target="figure:I2NSF-Cross-Framework" />,
    the two I2NSF security controllers located in different I2NSF domains, i.e., 
    I2NSF Domains A and B. In one domain, the security controller only can manage NSFs 
    registered by the Developer's Management System (DMS). Therefore, the security 
    controller is not aware of the existence of NSFs in other domains.

    To enable communication between NSFs located in different I2NSF domains, each with its own security controller,
    a security controller can be used as an intermediary. The two security controllers in different domains
    MUST have a secure and trusted connection; the setup of this connection is out of the scope of this document. 
    Through this secure connection, the security controllers can exchange the IPsec parameters using SFI and configure 
    the NSFs located in different I2NSF domains so that they can establish IPsec SAs to protect data traffic between them.
  </t>
  </section>

  <section anchor="section:Information-Model" title="Information Model for Security Controller-Facing Interface">
    <t>
        In <xref target="RFC9061" />, the I2NSF security controller enables the key management
        for flow protection between NSFs in the I2NSF domain that it manages. Therefore, this section 
        introduces the information model for exchanging information in different domains using 
        Security Controller-Facing Interface (called SFI) between I2NSF Security Controllers to provide 
        flow protection between NSFs existing in different I2NSF domains.
    </t>

    <figure anchor="figure:diagram" title="Diagram for Security Controller-Facing Interface">
      <artwork align="center">
        <![CDATA[
          +-----------------+
          |    Security     |
          |Controller-Facing|
          |    Interface    |
          +--------+--------+
                   ^
                   |         
                   |
          +--------+--------+
          |                 |             
  +------+------+    +-----+------+ 
  |  Low-level  |    |            |
  |  Security   |    |    IPsec   |
  |   Policy    |    | Parameters | 
  +-------------+    +------------+ 

        ]]>
      </artwork>
    </figure>
    
    <t>
       <xref target="figure:diagram" /> shows the high-level concept of SFI to
       deliver cross-domain flow protection for IPsec.
       Information that can be delivered through SFI is as follows:
      <list style="symbols">
        <t>
          Low-level Security Policy : A low-level security policy to configure NSFs located in a cross-domain environment. 
          The low-level security policy means the translated security policy that the security administrator wants to configure, 
          such as blocking the SNS website, and flow protection between NSFs A and B.
          The security controller can deliver the low-level security policy to the security controllers
          other I2NSF domains through SFI. After receiving the security policy, the security controller 
          can deliver the security policy to the target NSFs via the NSF-Facing Interface <xref target="I-D.ietf-i2nsf-nsf-facing-interface-dm"/>.
        </t>


        <t>
          IPsec Parameters: Parameters required to establish IPsec Security Associations (SAs) <xref target="RFC9061"/>. To establish
          IPsec SAs with NSFs located in a different domain, the security
          controller MUST be able to securely exchange the necessary parameters for those SAs.
        </t>

      </list>
    </t>
 </section> <!-- End of Section Information Model-->

<section anchor="section:Use-Cases" title="Use Cases for the Security Controller-Facing 
Interface in Cross-Domain Environments">

 <section title="Peer-to-Peer Use Case for the Security Controller-Facing Interface in Cross-Domain Environments">
    <figure anchor="figure:diagram1" title="Use Case of the Peer-to-Peer Security Controllers">
        <artwork align="center">
            <![CDATA[ 
                     
                 1.Security Policy  
                         |    
+------+          +------V-----+           +------------+        +------+   
| NSF1 |          |  Security  |           |  Security  |        | NSF2 | 
|      |          |Controller A|           |Controller B|        |      |      
+--+---+          +------+-----+           +------+-----+        +-----++
   |                     | 2.Deliver translated   |                     |
   |                     |   Security Policy      |                     |
   |                     |----------------------->|                     |  
   |                     |     3. Reply OK        |                     |
   |                     |<-----------------------|4. Deliver Translated| 
   |                     |                        |    Security Policy  |
   |5.Deliver translated |                        |-------------------->|
   |   Security Policy   |                        |                     |                     
   |<--------------------|                        |     6. Reply OK     |                     
   |     7. Reply OK     |                        |<--------------------|
   |-------------------->|                        |                     |
   |                    8.IPsec Parameter Negotiation                   |                                  
   |<--------------------|<---------------------->|-------------------->|
   |                     |                        |                     |     
   |                     |                        |                     |
   |              9.Service Function Chaining with IPsec SAs            |     
   |<==================================================================>|

       ]]>
         </artwork>
    </figure>
  
      <t>
        <xref target="figure:diagram1"/> shows the peer-to-peer security controller use case's message sequence 
        between entities in multiple domains. 
        In this use case, an I2NSF A's administrator requests a security service that cannot address
        by only the NSFs located in their own I2NSF domain. The security controller A can request to 
        cooperate with a trusted peer security controller B in a different I2NSF domain for the
        required security service. In this scenario, it is assumed that the secure connection between
        the two security controllers is already set up. The detailed sequence is as follows:
        <list style="numbers">
<!-- 1 -->
           <t>
            I2NSF A's administrator requests a security service that cannot be addressed by only the NSFs located in
            their own I2NSF domain.
          </t>
<!-- 2 -->
          <t>
            Security Controller A delivers the security policy for NSF2 through SFI to Security Controller B 
            in a cross-domain environment.
          </t>
<!-- 3 -->
          <t>
            If Security Controller B can handle the received security policy, reply OK message to Security Controller A.
          </t>
<!-- 4 -->
          <t>
            Security Controller B delivers the security policy to NSF2 for checking that NSF2 can be configured by the sent policy.
          </t>
<!-- 5 -->
          <t>
            Security Controller A deliver the translated security policy for NSF1.
          </t>
<!-- 6 -->
           <t>
            If NSF2 can handle the received security policy, it replies OK message to Security Controller B.
          </t>
<!-- 7 -->
           <t>
            If NSF1 can handle the received security policy, it replies OK message to Security Controller A.
          </t>
<!-- 8 -->
          <t>
            NSF1 and NSF2 negotiate IPsec parameters through Security Controller A and Security Controller B.
          </t>
<!-- 9-->
          <t>
            NSF1 and NSF2 establish IPsec SAs using the received IPsec parameters and provide the
            requested security service to the user through SFC.
          </t>
        </list>
      </t>
    </section>

    <section title="Hierarchical Use Cases for the Security Controller-Facing Interface in Cross-Domain Environments">
    <figure anchor="figure:diagram2" title="Use Case of the Hierarchical Distribution Security Controllers">
        <artwork align="center">
            <![CDATA[


      
          1.Security Policy    
                  |   
+------+    +-----V------+   +------------+   +------------+    +------+   
|      |    |  Secondary |   |   Primary  |   |  Secondary |    |      |
| NSF1 |    |  Security  |   |  Security  |   |  Security  |    | NSF2 | 
|      |    |Controller A|   | Controller |   |Controller B|    |      |      
++-----+    +-----+------+   +-----+------+   +-----+------+    +-----++
 |                |  2.Deliver     |                |                 |
 |                |  translated    |                |                 | 
 |                | Security Policy|                |                 |      
 |                |--------------->|                |                 |
 |                |                |  4.Deliver     |                 |
 |                | 3. Reply OK    |   translated   |                 |
 |  5.Deliver     |<---------------|Security Policy |                 |
 |  translated    |                |--------------->|   6.Deliver     |
 | Security Policy|                |                |   translated    |
 |<---------------|                |                |Security Policy  |                                                    
 |                |                |                |---------------->| 
 |  8. Reply OK   |                |                |   7. Reply OK   |  
 |--------------->|                |                |<----------------|              
 |                |                |   9. Reply OK  |                 |                                             
 |                |  10. Reply OK >|<---------------|                 |
 |                |--------------->|                |                 |
 |                |  11.IPsec Parameter Negotiation |                 |                                                       
 |<---------------|<------------------------------->|---------------->|  
 |                |                |                |                 |
 |                |                |                |                 |
 |<==================================================================>|                         
               12.Service Function Chaining with IPsec SAs           
            ]]>   
    </artwork>

    </figure>
      <t>
        <xref target="figure:diagram2"/> shows a message sequence between entities in multiple
        domains with a primary Security Controller.
        The primary Security Controller can act as a centralized controller. The primary Security Controller 
        between secondary Security Controllers has a secure connection in advance. How to establish this
        secure connection is out of the scope of this document.

        Using this secure connection, the primary Security Controller collects all of the secondary Security 
        Controller's information via SFI.
        In this usecase, when the administrator of an I2NSF A requests a security service that 
        is not available in its own I2NSF domain, then the secondary Security Controller A, with the help of 
        the primary Security Controller, can collaborate with a trusted peer Security Controller B 
        from a different I2NSF domain to obtain the required security service.

        The detailed sequence is as follows:
        <list style="numbers">
<!-- 1 -->
           <t>
            I2NSF A's administrator requests a security service that cannot be addressed only by the NSFs located in its
            own I2NSF domain.
          </t>
<!-- 2 -->
          <t>
            The secondary Security Controller A delivers the translated security policy through SFI to the primary Security Controller.
          </t>
<!-- 3 --> 
          <t>
           If the primary Security Controller knows which secondary Security
           Controller can handle the delivered security policy, the primary
           Security Controller sends an OK message to Security Controller A.
          </t>

<!-- 4 -->
          <t>
            The primary Security Controller delivers the received security policy
            to the secondary Security Controller that can provide the requested
            security services, i.e., the secondary Security Controller B.
          </t>
<!-- 5 -->    

          <t>
            The secondary Security Controller A delivers the translated security
            policy to NSF1 via NFI.
          </t>
<!-- 6 -->          
          <t>
            The secondary Security Controller B delivers the received security
            policy to NSF2 via NFI.
          </t>
<!-- 7 -->
          <t>
            If NSF2 can handle the received security policy, it replies OK
            message to the secondary Security Controller B.
          </t>
<!-- 8 -->    
          <t>
             If NSF1 can handle the received security policy, it replies OK
             message to the secondary Security Controller A.
          </t> 
<!-- 9 -->   
          <t>
             The secondary Security Controller B delivers NSF2's reply OK message
             to the primary Security Controller.
          </t>
<!-- 10 -->  
          <t>
             The secondary Security Controller A delivers NSF1's reply OK message
             to the primary Security Controller.
          </t> 
<!-- 11 -->
          <t>
            Security Controller A and Security Controller B negotiate IPsec parameters
            through the primary Security Controller.
          </t>
<!-- 12 -->
          <t>
            NSF1 and NSF2 establish IPsec SAs using the received IPsec parameters
            and provide the requested security service to the user through SFC.
          </t>
        </list>
      </t>
    </section>

</section><!-- End of scenario section-->


<section anchor="YANG Data Model" title="YANG Data Model for Security Controller-Facing Interface">
  <t>
   TBD
  </t>
</section>
    
    
  <section anchor="section:IANA-considerations" title="IANA Considerations">
    <t>This document does not require any IANA actions.
    </t>
  </section>

  <section anchor="section:security-considerations" title="Security Considerations">
    <t>
        The same security considerations for the I2NSF framework <xref target="RFC8329"/>
        are applicable to this document.
    </t>
  </section>

</middle>

<back>

  <references title="Normative References">
    <?rfc include="reference.RFC.2119"?>    
    <?rfc include="reference.RFC.7665"?>
    <?rfc include="reference.RFC.8174"?>   
    <?rfc include="reference.RFC.8329"?>
	<?rfc include="reference.RFC.9061"?>
<!--	
	<?rfc include="reference.RFC.3688"?>
	<?rfc include="reference.RFC.6991"?>
	<?rfc include="reference.RFC.8192"?>   
	<?rfc include="reference.RFC.8340"?>
	<?rfc include="reference.RFC.8341"?>
	<?rfc include="reference.RFC.8407"?>
-->
  </references>

  <references title="Informative References">	
    <?rfc include="reference.I-D.ietf-i2nsf-nsf-facing-interface-dm"?>
    <?rfc include="reference.I-D.ietf-idr-sdwan-edge-discovery"?>
    <?rfc include="reference.I-D.ietf-bess-bgp-sdwan-usage"?>
<!--	  
    <?rfc include="reference.I-D.ietf-httpbis-semantics"?>
-->	

  </references>

  <section anchor="Acknowledgments" title="Acknowledgments">
    <t indent="0" pn="section-appendix.a-1">    
    This work was supported by the National Research Foundation of Korea
    (NRF) grant funded by the Korea government, Ministry of Science and ICT
    (MSIT) (No. 2023R1A2C2002990).
    </t>

    <t indent="0" pn="section-appendix.a-2">
    This work was supported in part by Institute of Information &amp; Communications
    Technology Planning &amp; Evaluation (IITP) grant funded by the Korea
    Ministry of Science and ICT (MSIT)(No. 2022-0-01015, Development of
    Candidate Element Technology for Intelligent 6G Mobile Core Network).
    </t>
  </section>

<section anchor="section:Contributors" title="Contributors">

  <t indent="0" pn="section-appendix.b-1">  
  The following are coauthors of this document:
  </t>  

      <contact fullname="Jung-Soo Park">
      <organization showOnFrontPage="true">Electronics and Telecommunications Research Institute</organization>
      <address>
        <postal>
          <street>218 Gajeong-Ro, Yuseong-Gu</street>
          <city>Daejeon</city>
          <code>34129</code>
          <country>Republic of Korea</country>
        </postal>
        <email>pjs@etri.re.kr</email>
      </address>
    </contact>

      <contact fullname="Yunchul Choi">
      <organization showOnFrontPage="true">Electronics and Telecommunications Research Institute</organization>
      <address>
        <postal>
          <street>218 Gajeong-Ro, Yuseong-Gu</street>
          <city>Daejeon</city>
          <code>34129</code>
          <country>Republic of Korea</country>
        </postal>
        <email>cyc79@etri.re.kr</email>
      </address>
    </contact>

    <contact fullname="Gabriel Lopez-Millan">
    
      <organization showOnFrontPage="true">University of Murcia</organization>
      <address>
        <postal>
          <extaddr>Faculty of Computer Science</extaddr>
          <street>Campus de Espinardo S/N</street>
          <region>Murcia</region>
          <code>30100</code>
          <country>Spain</country>
        </postal>
        <email>gabilm@um.es</email>
      </address>
    </contact>

    
    <contact fullname="Fernando Pereniguez-Garcia">
      <organization showOnFrontPage="true">University Defense Center</organization>
      <address>
        <postal>
          <extaddr>Spanish Air Force Academy</extaddr>
          <street>San Javier Murcia</street>
          <region>Murcia</region>
          <code>30720</code>
          <country>Spain</country>
        </postal>
        <email>fernando.pereniguez@cud.upct.es</email>
      </address>
    </contact>
</section>

<section title="Changes from draft-kim-i2nsf-security-controller-interface-dm-00">
    <t>
      The following changes are made from draft-kim-i2nsf-security-controller-interface-dm-00:
      <list style="symbols">
        <t>
        This version has been revised with Rafa Marin-Lopez's comments.
        </t>
      </list>
    </t>
</section> 


</back>

</rfc>
