commit 39066bc50cb773d374f2ce369e07ca1e9c2bb0ca
parent 7050153ff18dd8b7aa37a5675f109293bc496dc7
Author: Julius Bünger <buenger@mytum.de>
Date: Wed, 4 Sep 2024 20:03:55 +0200
cong: add first version of a unified address format
Diffstat:
1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/developers/apis/cong.rst b/developers/apis/cong.rst
@@ -15,7 +15,6 @@ change.
- cryptographic protocol:
- key exchange
- key management
- - unified address format for L2O and libp2p
..
TODO write a short overview
@@ -39,6 +38,13 @@ Currently, we are using our own ECDHE key exchange that derives
Each direction uses two 256-bit symmetric encryption keys derived through the ECDH exchange.
Each payload is encrypted using AES(kA, Twofish(kB, payload)) both in CFB mode (!).
+..
+ TODO Ephemeral key derivation, material sent, checks, ...
+ TODO Initiate handshake
+
+Next Steps
+^^^^^^^^^^
+
For CONG, we should double-check the security of your ECDHE construction.
We decided on 11/03/2024 to investigate XChaCha20-Poly1305:
@@ -53,6 +59,31 @@ HMAC use in ``gnunet-service-core_kx.c`` including the respective keys and IVs.
..
TODO Maybe we want to use KEMTLS at some point: https://thomwiggers.nl/publication/thesis/thesis.pdf
+
+Unified Address Format for L2O and libp2p
+-----------------------------------------
+
+..
+ TODO
+ libp2p peer-id multiaddress?, gnunet-hello
+ https://github.com/libp2p/specs/blob/master/peer-ids/peer-ids.md
+ https://github.com/libp2p/specs/blob/master/addressing/README.md#multiaddr-basics
+ https://docs.gnunet.org/latest/users/subsystems.html#hellos
+ https://docs.gnunet.org/latest/users/subsystems.html#hello-ng
+ https://docs.libp2p.io/concepts/fundamentals/addressing/
+ https://github.com/multiformats/multiaddr/
+
+As a unified address format for L2O and libp2p we will use a concatenation of
+the string representations of gnunet's hellos and libp2p's multiaddress,
+separated by `;;`.
+For example: `gnunet://hello/XXPIDXX/XXPIDXX/1725622944?udp=%5B%3A%3A1%5D%3A2086&;;libp2p:///ip4/127.0.0.1/tcp/24915`
+
+This is only for the time being. For the long run the integration within each
+other's addressing schemes should be evaluated. Meaning: Integrate a
+gnunet-hello address type in libp2p's multiaddress format and integrate the
+multiaddress format with the gnunet-hello.
+
+
.. _Peer-IDs:
Peer IDs