From ad731ec6eba50ea53f1ce6d775600fc603260ecd Mon Sep 17 00:00:00 2001 From: zzz Date: Sat, 1 Dec 2018 11:05:11 +0000 Subject: [PATCH] prop 123/144 updates --- .../spec/proposals/123-new-netdb-entries.rst | 71 +++++++++++++++++-- .../144-ecies-x25519-aead-ratchet.rst | 31 ++++++-- 2 files changed, 89 insertions(+), 13 deletions(-) diff --git a/i2p2www/spec/proposals/123-new-netdb-entries.rst b/i2p2www/spec/proposals/123-new-netdb-entries.rst index f95b37ef..a4fc3cc3 100644 --- a/i2p2www/spec/proposals/123-new-netdb-entries.rst +++ b/i2p2www/spec/proposals/123-new-netdb-entries.rst @@ -5,7 +5,7 @@ New netDB Entries :author: zzz, str4d, orignal :created: 2016-01-16 :thread: http://zzz.i2p/topics/2051 - :lastupdated: 2018-11-30 + :lastupdated: 2018-12-01 :status: Open :supercedes: 110, 120, 121, 122 @@ -1143,6 +1143,7 @@ New options in SessionConfig Mapping: crypto.encType=nnn The encryption type to be used. 0: ElGamal + 4: X25519, see proposal 144. Other values to be defined in future proposals. i2cp.leaseSetType=nnn The type of leaseset to be sent in the Create Leaseset Message Value is the same as the netdb store type in the table above. @@ -1156,6 +1157,7 @@ Router to client. No changes. The leases are sent with 8-byte timestamps, even if the returned leaseset will be a LS2 with 4-byte timestamps. +Note that the response may be a Create Leaseset or Create Leaseset2 Message. @@ -1166,16 +1168,73 @@ Router to client. No changes. The leases are sent with 8-byte timestamps, even if the returned leaseset will be a LS2 with 4-byte timestamps. +Note that the response may be a Create Leaseset or Create Leaseset2 Message. -Create Leaseset Message ------------------------ +Create Leaseset2 Message +------------------------ Client to router. -Private key type and length are specified in the SessionConfig crypto.encType option. -Leaseset type is as specified in the SessionConfig i2cp.leaseSetType option. -Minimum router version is 0.9.38. +New message, to use in place of Create Leaseset Message. + + +Justification +````````````` + +- For the router to parse the store type, the type must be in the message, + unless it is passed to the router before hand in the session config. + For for common parsing code, it's easier to have it in the message itself. + +- For the router to know the type and length of the private key, + it must be after the lease set, unless the parser knows the type before hand + in the session config. + For for common parsing code, it's easier to know it from the message itself. + +- The signing private key, previously defined for revocation and unused, + was before the leaseset so the type and length was unknown. + Clients always set it to the DSA length. + For proposal 144, the key may be required, and must match the type + of the destination signing key (or transient signing key if offline sigs are used). + For the router to know the type and length of the private key, + it must be after the lease set, unless the parser knows the type before hand + in the session config. + For for common parsing code, it's easier to know it from the message itself. + +Message Type +```````````` + +The message type for the Create Leaseset2 Message is 40. + + +Format +`````` + +:: + + Session ID + Type byte: Type of lease set to follow + Type 1 is a LS + Type 3 is a LS2 + Type 5 is a encrypted LS2 + Type 7 is a meta LS2 + LeaseSet: type specified above + Signing Private Key: type as inferred from the lease set signature + (by dest signing key or transient key) + Encryption Private Key: type as inferred from the public key in the lease set + + +Notes +````` + +- Minimum router version is 0.9.38. + + + +Issues +`````` + +- More changes are needed to support encrypted and meta LS. diff --git a/i2p2www/spec/proposals/144-ecies-x25519-aead-ratchet.rst b/i2p2www/spec/proposals/144-ecies-x25519-aead-ratchet.rst index 39c73d70..b88caa23 100644 --- a/i2p2www/spec/proposals/144-ecies-x25519-aead-ratchet.rst +++ b/i2p2www/spec/proposals/144-ecies-x25519-aead-ratchet.rst @@ -5,7 +5,7 @@ ECIES-X25519-AEAD-Ratchet :author: zzz :created: 2018-11-22 :thread: http://zzz.i2p/topics/2639 - :lastupdated: 2018-11-24 + :lastupdated: 2018-12-01 :status: Open .. contents:: @@ -758,12 +758,18 @@ Decrypted: KDF ``` + +.. raw:: html + + {% highlight lang='text' %} + See message key ratchet below. Key: KDF TBD IV: As published in a LS2 property? Nonce: From header +{% endhighlight %} Justification @@ -847,12 +853,17 @@ Decrypted: KDF ``` +.. raw:: html + + {% highlight lang='text' %} + See message key ratchet below. Key: KDF TBD IV: KDF TBD Nonce: The message number N in the current chain, as retrieved from the associated Session Tag. +{% endhighlight %} Justification @@ -1141,6 +1152,8 @@ KDF: First time: output from DH ratchet Subsequent times: output from previous session tag ratchet 2) input_key_material = constant (from where? SHA-256(some constant)?) + Must be unique for this chain (generated from chain key), + so that the sequence isn't predictable TBD @@ -1212,7 +1225,7 @@ KDF: {% highlight lang='text' %} Inputs: - 1) Root key (first time from where? SHA-256(some constant)?) + 1) Root key (first time from where? see Signal section 3.3) 2) input_key_material First time: @@ -1463,6 +1476,9 @@ Options Notes - Support for non-default session tag length is optional, probably not necessary +- The tag window is MAX_SKIP in the Signal documentation. + + Options Issues `````````````` @@ -1577,7 +1593,7 @@ Multiple acks may be present to ack multiple messages. {% highlight lang='dataspec' %} +----+----+----+----+----+----+----+----+ | 8 | size | key id | N | | - +----+----+----+----+----+----+----+----+ + +----+----+----+----+----+----+----+ + | more acks | ~ . . . ~ | | @@ -1782,8 +1798,6 @@ TODO I2CP Changes Required ===================== -TODO - I2CP Options ------------ @@ -1795,11 +1809,14 @@ New options in SessionConfig Mapping: crypto.encType=nnn The encryption type to be used. 0: ElGamal + 4: This proposal. Other values to be defined in future proposals. - i2cp.leaseSetType=nnn The type of leaseset to be sent in the Create Leaseset Message - Value is the same as the netdb store type in the table above. +Create Leaseset2 Message +------------------------ + +See proposal 123 for specification. SAM Changes Required