Migrate proposal 111 to the specification section

This commit is contained in:
zzz
2018-06-28 11:54:06 +00:00
parent ba45488057
commit 4938103488
6 changed files with 2090 additions and 29 deletions

View File

@@ -1,7 +1,7 @@
{% extends "global/layout.html" %} {% extends "global/layout.html" %}
{% block title %}{% trans %}Transport Overview{% endtrans %}{% endblock %} {% block title %}{% trans %}Transport Overview{% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}September 2014{% endtrans %}{% endblock %} {% block lastupdated %}{% trans %}June 2018{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.15{% endblock %} {% block accuratefor %}0.9.36{% endblock %}
{% block content %} {% block content %}
<h2>{% trans %}Transports in I2P{% endtrans %}</h2> <h2>{% trans %}Transports in I2P{% endtrans %}</h2>
@@ -15,11 +15,12 @@ is the one who should receive a given message.
<p>{% trans -%} <p>{% trans -%}
I2P supports multiple transports simultaneously. I2P supports multiple transports simultaneously.
There are two transports currently implemented: There are three transports currently implemented:
{%- endtrans %}</p> {%- endtrans %}</p>
<ol> <ol>
<li>{% trans ntcp=site_url('docs/transport/ntcp') %}<a href="{{ ntcp }}">NTCP</a>, a Java New I/O (NIO) TCP transport{% endtrans %}</li> <li>{% trans ntcp=site_url('docs/transport/ntcp') %}<a href="{{ ntcp }}">NTCP</a>, a Java New I/O (NIO) TCP transport{% endtrans %}</li>
<li>{% trans ssu=site_url('docs/transport/ssu') %} <a href="{{ ssu }}">SSU</a>, or Secure Semireliable UDP{% endtrans %}</li> <li>{% trans ssu=site_url('docs/transport/ssu') %} <a href="{{ ssu }}">SSU</a>, or Secure Semireliable UDP{% endtrans %}</li>
<li>{% trans ntcp2=site_url('docs/spec/ntcp2') %}<a href="{{ ntcp2 }}">NTCP2</a>, a new version of NTCP{% endtrans %}</li>
</ol> </ol>
<p>{% trans -%} <p>{% trans -%}

View File

@@ -1,11 +1,10 @@
{% extends "global/layout.html" %} {% extends "global/layout.html" %}
{% block title %}{% trans %}NTCP (NIO-based TCP){% endtrans %}{% endblock %} {% block title %}{% trans %}NTCP (NIO-based TCP){% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}September 2017{% endtrans %}{% endblock %} {% block lastupdated %}{% trans %}June 2018{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.32{% endblock %} {% block accuratefor %}0.9.36{% endblock %}
{% block content %} {% block content %}
<p>{% trans transports=site_url('docs/transport'), ssu=site_url('docs/transport/ssu') -%} <p>{% trans transports=site_url('docs/transport'), ssu=site_url('docs/transport/ssu'), ntcp2=site_url('docs/spec/ntcp2') -%}
NTCP is one of two <a href="{{ transports }}">transports</a> currently implemented in I2P. The others are <a href="{{ ssu }}">SSU</a> and <a href="{{ ntcp2 }}">NTCP2</a>.
The other is <a href="{{ ssu }}">SSU</a>.
NTCP is a Java NIO-based transport introduced in I2P release 0.6.1.22. NTCP is a Java NIO-based transport introduced in I2P release 0.6.1.22.
Java NIO (new I/O) does not suffer from the 1 thread per connection issues of the old TCP transport. Java NIO (new I/O) does not suffer from the 1 thread per connection issues of the old TCP transport.
NTCP-over-IPv6 is supported as of version 0.9.8. NTCP-over-IPv6 is supported as of version 0.9.8.

View File

@@ -1,18 +1,17 @@
{% extends "global/layout.html" %} {% extends "global/layout.html" %}
{% block title %}{% trans %}Secure Semireliable UDP{% endtrans %} (SSU){% endblock %} {% block title %}{% trans %}Secure Semireliable UDP{% endtrans %} (SSU){% endblock %}
{% block lastupdated %}{% trans %}March 2018{% endtrans %}{% endblock %} {% block lastupdated %}{% trans %}June 2018{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.34{% endblock %} {% block accuratefor %}0.9.36{% endblock %}
{% block content %} {% block content %}
<p>{% trans transports=site_url('docs/transport'), ntcp=site_url('docs/transport/ntcp') -%} <p>{% trans transports=site_url('docs/transport'), ntcp=site_url('docs/transport/ntcp'), ntcp2=site_url('docs/spec/ntcp2') -%}
SSU (also called "UDP" in much of the I2P documentation and user interfaces) SSU (also called "UDP" in much of the I2P documentation and user interfaces)
is one of two <a href="{{ transports }}">transports</a> currently implemented in I2P. is one of three <a href="{{ transports }}">transports</a> currently implemented in I2P.
The other is <a href="{{ ntcp }}">NTCP</a>. The others are <a href="{{ ntcp }}">NTCP</a> and <a href="{{ ntcp2 }}">NTCP2</a>.
{%- endtrans %}</p> {%- endtrans %}</p>
<p>{% trans -%} <p>{% trans -%}
SSU is the newer of the two transports, SSU was introduced in I2P release 0.6.
introduced in I2P release 0.6.
In a standard I2P installation, the router uses both NTCP and SSU for outbound connections. In a standard I2P installation, the router uses both NTCP and SSU for outbound connections.
SSU-over-IPv6 is supported as of version 0.9.8. SSU-over-IPv6 is supported as of version 0.9.8.
{%- endtrans %}</p> {%- endtrans %}</p>

View File

@@ -3,8 +3,8 @@ Low-level Cryptography Specification
==================================== ====================================
.. meta:: .. meta::
:category: Design :category: Design
:lastupdated: October 2016 :lastupdated: June 2018
:accuratefor: 0.9.27 :accuratefor: 0.9.36
.. contents:: .. contents::
@@ -401,17 +401,15 @@ encrypted with AES (as above). The primary reason to do the DH negotiation
instead of using ElGamalAES+SessionTag [ELG-AES]_ is that it provides instead of using ElGamalAES+SessionTag [ELG-AES]_ is that it provides
'(perfect) forward secrecy' [PFS]_, while ElGamalAES+SessionTag does not. '(perfect) forward secrecy' [PFS]_, while ElGamalAES+SessionTag does not.
In order to migrate to a more standardized implementation (TLS/SSL or even
SSH), the following issues must be addressed:
1. Can we somehow reestablish sessions securely (ala session tags) or do we
need to do full negotiation each time?
2. Can we simplify/avoid the x509 or other certificate formats and use our own
RouterInfo structure (which contains the ElGamal and DSA keys)?
See the NTCP specification [NTCP]_ for details. See the NTCP specification [NTCP]_ for details.
NTCP2 connections
-----------------
NTCP2 connections use X25519 Diffie-Hellman and ChaCha20_Poly1305 authenticated encryption.
See the NTCP2 specification [NTCP2]_ for details and references.
.. _udp: .. _udp:
UDP connections UDP connections
@@ -490,6 +488,9 @@ References
.. [NTCP] .. [NTCP]
{{ site_url('docs/transport/ntcp', True) }} {{ site_url('docs/transport/ntcp', True) }}
.. [NTCP2]
{{ site_url('docs/spec/ntcp2', True) }}
.. [PFS] .. [PFS]
http://en.wikipedia.org/wiki/Perfect_forward_secrecy http://en.wikipedia.org/wiki/Perfect_forward_secrecy

2055
i2p2www/spec/ntcp2.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -7,16 +7,19 @@ NTCP 2
:created: 2014-02-13 :created: 2014-02-13
:thread: http://zzz.i2p/topics/1577 :thread: http://zzz.i2p/topics/1577
:lastupdated: 2018-06-23 :lastupdated: 2018-06-23
:status: Open :status: Closed
:supercedes: 106 :supercedes: 106
:target: 0.9.36
:implementedin: 0.9.36
.. contents:: .. contents::
Note Note
==== ====
Minor revisions in progress. Ready for test implementations only. Proposal phase is closed.
Not ready for network deployment. See [SPEC]_ for the official specification.
This proposal may still be referenced for background information.
Overview Overview
@@ -2519,6 +2522,9 @@ References
.. [SipHash] .. [SipHash]
https://www.131002.net/siphash/ https://www.131002.net/siphash/
.. [SPEC]
{{ site_url('docs/spec/ntcp2', True) }}
.. [SSU] .. [SSU]
{{ site_url('docs/transport/ssu', True) }} {{ site_url('docs/transport/ssu', True) }}