gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

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:
Mdevelopers/apis/cong.rst | 33++++++++++++++++++++++++++++++++-
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