<?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.4 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bouaram-ethernet-over-https-01" category="info" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.0 -->
  <front>
    <title abbrev="EOH">Ethernet over HTTPS Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-bouaram-ethernet-over-https-01"/>
    <author fullname="Salim-Amine BOU ARAM">
      <organization>SKELDUS</organization>
      <address>
        <email>salim@mycio.io</email>
      </address>
    </author>
    <date year="2023" month="December" day="27"/>
    <workgroup>INTAREA (Internet Area Working Group)</workgroup>
    <keyword>Ethernet</keyword>
    <keyword>HTTPS</keyword>
    <keyword>API Key</keyword>
    <keyword>TLS</keyword>
    <abstract>
      <?line 35?>
<t>This document defines a protocol for encapsulating Ethernet frames over HTTPS, allowing secure communication between a client and internal web servers. The protocol includes authentication using strong API keys encrypted with the server's public key. The communication is secured using TLS for privacy and integrity.</t>
    </abstract>
  </front>
  <middle>
    <?line 37?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Ethernet over HTTPS (EOH) extends traditional networking by allowing communication between a web client and internal resources over the HTTPS protocol. This document outlines the procedures for authentication, encapsulation of Ethernet frames, and communication between the client and internal web servers. TLS is employed to secure the communication channel and ensure privacy and integrity.</t>
      <section anchor="tls-considerations">
        <name>TLS Considerations</name>
        <t>To ensure the security of the Ethernet-over-HTTPS communication, TLS must be used to encrypt and authenticate the data exchanged between the client and server. Implementations MUST follow best practices for TLS configuration, including the use of strong cipher suites, secure protocols, and proper certificate validation.</t>
      </section>
      <section anchor="flow-and-scenarios">
        <name>Flow and Scenarios</name>
        <section anchor="client-authentication">
          <name>Client Authentication</name>
          <t>If the client specifies an internal URL (e.g., internal.url), the browser recognizes that Ethernet over HTTPS should be used for the communication.
The client browser, pre-configured with the IP address and port of the HTTP Server acting as the gateway to the LAN, automatically recognizes the internal URL (e.g., internal.url). It then initiates the Ethernet-over-HTTPS protocol and sends an authentication request.</t>
          <ul spacing="normal">
            <li>
              <t>The client initiates the connection by sending an authentication request to the server.</t>
            </li>
          </ul>
          <artwork><![CDATA[
plaintext
POST /authenticate HTTP/1.1
Host: server.example.com
Content-Type: application/json

{
"api_key": "encrypted_api_key"
}
]]></artwork>
          <t>### Server Authentication and LAN Information
The server decrypts the API key, authenticates the client, and responds with the MAC address or IP address of the target server (or both) based on the LAN layer architecture.</t>
          <artwork><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "target_server_mac_address": "xx:xx:xx:xx:xx:xx",
  "target_server_ip_address": "192.168.1.2"
  "dhcp_ip_address": "192.168.1.10"
}
]]></artwork>
        </section>
        <section anchor="internal-webpage-request">
          <name>Internal Webpage Request</name>
          <t>The client, now authenticated, sends an Ethernet frame encapsulated within an HTTPS request for an internal webpage</t>
        </section>
        <section anchor="server-side-processing">
          <name>Server-Side Processing</name>
          <t>The server decapsulates the Ethernet frame, extracts the original HTTP request, and routes it to the internal web server.</t>
        </section>
        <section anchor="response-to-the-client">
          <name>Response to the Client</name>
          <t>The server encapsulates the response from the internal web server</t>
          <artwork><![CDATA[
POST /ethernet-over-https HTTP/1.1
Host: server.example.com
Content-Type: application/octet-stream
Content-Length: length_of_payload_in_bytes

{
  "http_response": "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<html>Internal Webpage</html>"
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="flow-summary">
      <name>FLow summary</name>
      <artwork><![CDATA[
  +----------------------+       +----------------------+       
  |                      |       |                      |       
  |      Web Client      |       |        EOH Server     |       
  |                      |       |                      |       
  +----------------------+       +----------------------+       
           |                             |                          
           | 1. Browser Recognizes       |                             
           |    Internal URL             |                             
           | --------------------------> |                             
           |                             |                             
           | 2. Authentication Request   |                             
           | --------------------------> |                            
           |                             |                             
           |                             |                             
           | 3. Browser Initiates        |                             
           |    Ethernet over HTTPS      |                             
           |                             |                             
           |                             |                             
           | 4. Server Authenticates     |                             
           |    and Responds             |                             
           | <-------------------------- |                             
           |                             |                             
           | 5. Internal Webpage Request |                             
           |    as Encapsulated Frame    |                             
           | --------------------------> |                             
           |                             |                             
           | 6. Server Decapsulation     |                             
           |    and Routing              |                             
           | <-------------------------- |                             
           |                             |                             
           | 7. Response to Client       |                             
           |    as Encapsulated Frame    |                             
           | --------------------------> |                             
           |                             |

]]></artwork>
      <t># Security Considerations
The security of the Ethernet-over-HTTPS protocol relies on the implementation of TLS. It ensures the confidentiality, integrity, and authenticity of the communication between the client and server. Implementers should adhere to best practices for TLS configuration, including the use of strong cipher suites, secure protocols, and proper certificate validation.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>






  </back>
  <!-- ##markdown-source:
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
D68WoH2RuETFFcobcndLYNz1KPsHcXzw6h0ZAAA=

-->

</rfc>
