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" %}
{% block title %}{% trans %}Transport Overview{% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}September 2014{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.15{% endblock %}
{% block lastupdated %}{% trans %}June 2018{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.36{% endblock %}
{% block content %}
<h2>{% trans %}Transports in I2P{% endtrans %}</h2>
@@ -15,11 +15,12 @@ is the one who should receive a given message.
<p>{% trans -%}
I2P supports multiple transports simultaneously.
There are two transports currently implemented:
There are three transports currently implemented:
{%- endtrans %}</p>
<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 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>
<p>{% trans -%}

View File

@@ -1,11 +1,10 @@
{% extends "global/layout.html" %}
{% block title %}{% trans %}NTCP (NIO-based TCP){% endtrans %}{% endblock %}
{% block lastupdated %}{% trans %}September 2017{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.32{% endblock %}
{% block lastupdated %}{% trans %}June 2018{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.36{% endblock %}
{% block content %}
<p>{% trans transports=site_url('docs/transport'), ssu=site_url('docs/transport/ssu') -%}
NTCP is one of two <a href="{{ transports }}">transports</a> currently implemented in I2P.
The other is <a href="{{ ssu }}">SSU</a>.
<p>{% trans transports=site_url('docs/transport'), ssu=site_url('docs/transport/ssu'), ntcp2=site_url('docs/spec/ntcp2') -%}
The others are <a href="{{ ssu }}">SSU</a> and <a href="{{ ntcp2 }}">NTCP2</a>.
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.
NTCP-over-IPv6 is supported as of version 0.9.8.

View File

@@ -1,18 +1,17 @@
{% extends "global/layout.html" %}
{% block title %}{% trans %}Secure Semireliable UDP{% endtrans %} (SSU){% endblock %}
{% block lastupdated %}{% trans %}March 2018{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.34{% endblock %}
{% block lastupdated %}{% trans %}June 2018{% endtrans %}{% endblock %}
{% block accuratefor %}0.9.36{% endblock %}
{% 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)
is one of two <a href="{{ transports }}">transports</a> currently implemented in I2P.
The other is <a href="{{ ntcp }}">NTCP</a>.
is one of three <a href="{{ transports }}">transports</a> currently implemented in I2P.
The others are <a href="{{ ntcp }}">NTCP</a> and <a href="{{ ntcp2 }}">NTCP2</a>.
{%- endtrans %}</p>
<p>{% trans -%}
SSU is the newer of the two transports,
introduced in I2P release 0.6.
SSU was introduced in I2P release 0.6.
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.
{%- endtrans %}</p>

View File

@@ -3,8 +3,8 @@ Low-level Cryptography Specification
====================================
.. meta::
:category: Design
:lastupdated: October 2016
:accuratefor: 0.9.27
:lastupdated: June 2018
:accuratefor: 0.9.36
.. 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
'(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.
NTCP2 connections
-----------------
NTCP2 connections use X25519 Diffie-Hellman and ChaCha20_Poly1305 authenticated encryption.
See the NTCP2 specification [NTCP2]_ for details and references.
.. _udp:
UDP connections
@@ -490,6 +488,9 @@ References
.. [NTCP]
{{ site_url('docs/transport/ntcp', True) }}
.. [NTCP2]
{{ site_url('docs/spec/ntcp2', True) }}
.. [PFS]
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
:thread: http://zzz.i2p/topics/1577
:lastupdated: 2018-06-23
:status: Open
:status: Closed
:supercedes: 106
:target: 0.9.36
:implementedin: 0.9.36
.. contents::
Note
====
Minor revisions in progress. Ready for test implementations only.
Not ready for network deployment.
Proposal phase is closed.
See [SPEC]_ for the official specification.
This proposal may still be referenced for background information.
Overview
@@ -2519,6 +2522,9 @@ References
.. [SipHash]
https://www.131002.net/siphash/
.. [SPEC]
{{ site_url('docs/spec/ntcp2', True) }}
.. [SSU]
{{ site_url('docs/transport/ssu', True) }}