proposal 111 updates

This commit is contained in:
zzz
2016-09-17 15:15:43 +00:00
parent cf2b6aab93
commit a0496dbfaf

View File

@ -5,7 +5,7 @@ NTCP 2
:author: zzz :author: zzz
:created: 2014-02-13 :created: 2014-02-13
:thread: http://zzz.i2p/topics/1577 :thread: http://zzz.i2p/topics/1577
:lastupdated: 2016-07-05 :lastupdated: 2016-09-17
:status: Open :status: Open
:supercedes: 106 :supercedes: 106
@ -48,21 +48,25 @@ Design Goals
so that DPI boxes and AV signatures can't easily classify them. so that DPI boxes and AV signatures can't easily classify them.
Also ensure that the messages going to Also ensure that the messages going to
a single peer or set of peers do not have a similar pattern of bits a single peer or set of peers do not have a similar pattern of bits
- Fix loss of bits in DH due to Java format (ticket #1112) - Fix loss of bits in DH due to Java format (ticket #1112),
possibly (probably?) by switching to X25519
- Add "probing resistance" (as Tor calls it), this includes replay resistance - Add "probing resistance" (as Tor calls it), this includes replay resistance
- Maintain 2-way authenticated key exchange (2W-AKE). - Maintain 2-way authenticated key exchange (2W-AKE).
1W-AKE is not sufficient for our application. 1W-AKE is not sufficient for our application.
- Continue to use the variable-type, variable-length signatures (from the published
RouterIdentity signing key) for authentication. Do not rely on a separate published key.
- Add options/version in handshake for future extensibility - Add options/version in handshake for future extensibility
- Add resistance to malicious MitM TCP segmentation if possible - Add resistance to malicious MitM TCP segmentation if possible
- Don't add significantly to CPU required for connection setup; - Don't add significantly to CPU required for connection setup;
if possible, reduce it significantly if possible, reduce it significantly
- Replace HMAC-MD5 with something more secure (see RFC 6151), - Replace HMAC-MD5 with something more secure (see RFC 6151),
possibly HMAC-SHA256 or Poly1305 possibly HMAC-SHA256 or Poly1305 (see alternatives below).
- Any new crypto should be readily available in libraries for use - Any new crypto should be readily available in libraries for use
in Java (1.7), C++, and Go router implementations. in Java (1.7), C++, and Go router implementations.
- Include representatives of Java, C++, and Go router developers in the design - Include representatives of Java, C++, and Go router developers in the design
- Minimize changes. - Minimize changes.
- Support both versions in a common set of code. - Support both versions in a common set of code
(this may not be possible and is implementation-dependent in any case).
@ -72,9 +76,12 @@ Non-Goals
- Bullet-proof DPI resistance... that would be pluggable transports, proposal #109 - Bullet-proof DPI resistance... that would be pluggable transports, proposal #109
- A TLS-based transport... that would be proposal #104 - A TLS-based transport... that would be proposal #104
- Don't change the symmetric stream crypto, continue to use AES-CBC-256 - Don't change the symmetric stream crypto, continue to use AES-CBC-256
(but do add flags in the handshake so we can change later) (but do add flags in the handshake so we can change later).
However, why is using the last 16 bytes of the previous message as the IV
better than just using counter mode? To be researched.
Salsa 20 also an option (see alternatives below)
- Post-Quantum (PQ) Crypto resistance - Post-Quantum (PQ) Crypto resistance
- Deniability (there's signatures in there)
Related Goals Related Goals