@@ -219,10 +219,15 @@ Bootstrap → Discovery → Handshake → Active → Suspected → Dead
219219
220220### 3.2. Transport
221221
222- #### 3.2.1. QUIC-First Transport (Default)
222+ #### 3.2.1. Encrypted Transport (Default)
223223
224- The protocol's primary transport uses QUIC [ RFC 9000] semantics with
225- the following cryptographic primitives:
224+ The protocol's primary transport uses AEAD-encrypted UDP datagrams with
225+ the following cryptographic primitives. Note: while internally referred
226+ to as "QUIC mode" in the reference implementation, this transport does
227+ not implement the full QUIC protocol [ RFC 9000] (no connection IDs,
228+ streams, flow control, or congestion control). It uses QUIC's
229+ cryptographic choices (X25519 + ChaCha20-Poly1305) applied directly to
230+ UDP datagrams:
226231
227232- ** Key exchange** : X25519 Elliptic Curve Diffie-Hellman [ RFC 7748] .
228233 Each node generates a long-lived identity keypair at bind time. A
@@ -261,8 +266,8 @@ via the `BOJ_FEDERATION_PORT` environment variable.
261266
262267### 3.3. Packet Types
263268
264- | Tag (cleartext) | Tag (QUIC ) | Name | Direction |
265- | :---------------:| :----------:| ---------------------| -----------------|
269+ | Tag (cleartext) | Tag (encrypted ) | Name | Direction |
270+ | :---------------:| :--------------- :| ---------------------| -----------------|
266271| 0x01 | 0x81 | DISCOVER | Multicast / Unicast |
267272| 0x02 | 0x82 | DISCOVER_REPLY | Unicast |
268273| 0x03 | 0x83 | GOSSIP_DIGEST | Unicast |
@@ -546,11 +551,22 @@ layer that enforces zero-trust principles at the transport level:
546551
547552### 8.5. Transport Security
548553
549- - QUIC-mode (X25519 + ChaCha20-Poly1305) provides confidentiality,
550- integrity, and replay protection for all gossip traffic.
554+ - Encrypted mode (X25519 + ChaCha20-Poly1305) provides confidentiality
555+ and integrity for all gossip traffic. Note that the current design
556+ uses long-lived identity keypairs without ephemeral key exchange,
557+ which does not provide forward secrecy. Future revisions of this
558+ protocol SHOULD incorporate ephemeral ECDH or a full QUIC handshake
559+ to achieve forward secrecy.
560+ - The shared secret derived from X25519 SHOULD be processed through
561+ HKDF [ RFC 5869] before use as a ChaCha20-Poly1305 key, rather than
562+ used directly. The reference implementation currently uses the raw
563+ shared secret; this is a known limitation.
564+ - Implementations MUST track received nonces per peer to prevent replay
565+ attacks. Nonces SHOULD be counter-based (monotonically increasing)
566+ rather than random to enable efficient duplicate detection.
551567- UDP fallback mode provides none of these properties and MUST NOT be
552568 used in production.
553- - Implementations SHOULD default to QUIC mode and require explicit
569+ - Implementations SHOULD default to encrypted mode and require explicit
554570 configuration to enable UDP fallback.
555571
556572### 8.6. No Code Execution
@@ -573,10 +589,12 @@ This document requests registration of the following port number:
573589| -------------| -------------| -------------------| -------------|
574590| umoja-fed | 9999 | UDP | Umoja Federation Protocol |
575591
576- ** Note:** Port 9999 is currently unassigned in the IANA Service Name
577- and Transport Protocol Port Number Registry. If 9999 is assigned before
578- this document is published, an alternative port in the dynamic/private
579- range will be requested.
592+ ** Note:** Port 9999 is currently assigned to the "distinct" service in
593+ the IANA Service Name and Transport Protocol Port Number Registry. The
594+ reference implementation uses 9999 as a configurable default. A formal
595+ port allocation from the User Ports range (1024-49151) will be
596+ requested if this protocol progresses beyond Experimental status.
597+ Implementations MUST support configurable port assignment.
580598
581599### 9.2. IPv6 Multicast Address
582600
@@ -611,6 +629,10 @@ address from the Link-Local Scope Multicast Addresses registry:
611629- ** [ RFC 8439] ** Nir, Y. and A. Langley, "ChaCha20 and Poly1305 for
612630 IETF Protocols", RFC 8439, DOI 10.17487/RFC8439, June 2018.
613631
632+ - ** [ RFC 5869] ** Krawczyk, H. and P. Eronen, "HMAC-based
633+ Extract-and-Expand Key Derivation Function (HKDF)", RFC 5869,
634+ DOI 10.17487/RFC5869, May 2010.
635+
614636### 10.2. Informative References
615637
616638- ** [ draft-cui-ai-agent-discovery-invocation-00] ** Cui, Y., et al.,
0 commit comments