Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jan 2025 17:31:01 -0300
From:      "Soni \"It/Its\" L." <fakedme+freebsd@gmail.com>
To:        Vadim Goncharov <vadimnuclight@gmail.com>
Cc:        freebsd-net@freebsd.org
Subject:   Re: ipsec as an address family
Message-ID:  <d609729a-2455-4b8d-9cf7-fab049c4ec3a@gmail.com>
In-Reply-To: <20250116225743.3bffd39f@nuclight.lan>
References:  <aac3846a-ccfa-41bd-a7e1-4ee940f3c095@gmail.com> <20250116225743.3bffd39f@nuclight.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------TnUqIKRLHzXkVD5mICATBJ6o
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



On 2025-01-16 16:57, Vadim Goncharov wrote:
> Could you provide technical overview, both from API and packet format side, at
> least briefly?
>

packet format is just regular ipsec, there are no protocol changes required!

API... we're currently thinking the sockaddr_ipsec struct would take a 
key (appropriate for the task, e.g. public key for connect, private key 
for bind). we're however not so certain about the private key part, but 
at least for connecting, it makes sense to just take the public key of 
the target. ideally we would also be able to request just 
authentication, just encryption, or both, tho we're not entirely sure 
how the API should look (authentication-only is the most useful to us, 
as we're just trying to prevent port scanning and most modern protocols 
(TLS, SSH, minecraft server protocol, etc) provide their own encryption 
anyway).

it's not unusual to have an asymmetry between connect and bind, as an 
example, port 0 is reserved for connect but lets the OS pick a port for 
bind.
--------------TnUqIKRLHzXkVD5mICATBJ6o
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <br>
    <br>
    <div class="moz-cite-prefix">On 2025-01-16 16:57, Vadim Goncharov
      wrote:<span style="white-space: pre-wrap">
</span></div>
    <blockquote type="cite"
      cite="mid:20250116225743.3bffd39f@nuclight.lan">
      <pre class="moz-quote-pre" wrap="">
Could you provide technical overview, both from API and packet format side, at
least briefly?

</pre>
    </blockquote>
    <br>
    packet format is just regular ipsec, there are no protocol changes
    required!<br>
    <br>
    API... we're currently thinking the sockaddr_ipsec struct would take
    a key (appropriate for the task, e.g. public key for connect,
    private key for bind). we're however not so certain about the
    private key part, but at least for connecting, it makes sense to
    just take the public key of the target. ideally we would also be
    able to request just authentication, just encryption, or both, tho
    we're not entirely sure how the API should look (authentication-only
    is the most useful to us, as we're just trying to prevent port
    scanning and most modern protocols (TLS, SSH, minecraft server
    protocol, etc) provide their own encryption anyway).<br>
    <br>
    it's not unusual to have an asymmetry between connect and bind, as
    an example, port 0 is reserved for connect but lets the OS pick a
    port for bind.<br>
  </body>
</html>

--------------TnUqIKRLHzXkVD5mICATBJ6o--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d609729a-2455-4b8d-9cf7-fab049c4ec3a>