forked from I2P_Developers/i2p.www
proposals 136,137
This commit is contained in:
90
i2p2www/spec/proposals/136-experimental-sigtypes.rst
Normal file
90
i2p2www/spec/proposals/136-experimental-sigtypes.rst
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
============================================
|
||||||
|
Floodfill Support for Experimental Sig Types
|
||||||
|
============================================
|
||||||
|
.. meta::
|
||||||
|
:author: zzz
|
||||||
|
:created: 2017-03-31
|
||||||
|
:thread: http://zzz.i2p/topics/2279
|
||||||
|
:lastupdated: 2017-03-31
|
||||||
|
:status: Open
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
========
|
||||||
|
|
||||||
|
For sig types in the experimental range (65280-65534),
|
||||||
|
floodfills should accept netdb stores without checking the signature.
|
||||||
|
|
||||||
|
This will support testing of new sig types.
|
||||||
|
|
||||||
|
|
||||||
|
Motivation
|
||||||
|
==========
|
||||||
|
|
||||||
|
The GOST proposal 134 has revealed two issues with the previously-unused experimental sig type range.
|
||||||
|
|
||||||
|
First, since sig types in the experimental range cannot be reserved, they may be used for
|
||||||
|
multiple sig types at once.
|
||||||
|
|
||||||
|
Second, unless a lease set with an experimental sig type can be stored at a floodfill,
|
||||||
|
the new sig type is difficult to fully test or use on a trial basis.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Design
|
||||||
|
======
|
||||||
|
|
||||||
|
Floodfills should accept, and flood, LS stores with sig types in the experimental range,
|
||||||
|
without checking the signature. Support for RI stores is TBD, and may have more security implications.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Specification
|
||||||
|
=============
|
||||||
|
|
||||||
|
Ref: http://i2p-projekt.i2p/en/docs/spec/common-structures
|
||||||
|
http://i2p-projekt.i2p/en/docs/spec/i2np
|
||||||
|
|
||||||
|
For sig types in the experimental range, a floodfill should accept and flood netdb
|
||||||
|
stores without checking the signature.
|
||||||
|
|
||||||
|
To prevent spoofing of non-experimental routers and destinations, a floodfill
|
||||||
|
should never accept a store of an experimental sig type that has a hash
|
||||||
|
collision with an existing netdb entry of a different sig type.
|
||||||
|
This prevents hijacking of a previous netdb entry.
|
||||||
|
|
||||||
|
Additionally, a floodfill should overwrite an experimental netdb entry
|
||||||
|
with a store of a non-experimental sig type that is a hash collision,
|
||||||
|
to prevent hijacking of a previously-absent hash.
|
||||||
|
|
||||||
|
Floodfills should assume the public key length is 256, or derive it from
|
||||||
|
the key certificate length, if longer. Some implementations may
|
||||||
|
not support longer lengths unless the sig type is informally reserved.
|
||||||
|
|
||||||
|
|
||||||
|
Migration
|
||||||
|
=========
|
||||||
|
|
||||||
|
Once this feature is supported, in a known router version,
|
||||||
|
experimental sig type netdb entries may be stored to floodfills of that version or higher.
|
||||||
|
|
||||||
|
If some router implementations do not support this feature, the netdb store
|
||||||
|
will fail, but that's the same as it is now.
|
||||||
|
|
||||||
|
|
||||||
|
Issues
|
||||||
|
======
|
||||||
|
|
||||||
|
There may be additional security implications, to be researched.
|
||||||
|
|
||||||
|
Some implementations may not support key lengths greater than 256,
|
||||||
|
as described above.
|
||||||
|
|
||||||
|
|
||||||
|
See Also
|
||||||
|
========
|
||||||
|
|
||||||
|
Proposal 134
|
||||||
|
Proposal 137
|
89
i2p2www/spec/proposals/137-optional-sigtypes.rst
Normal file
89
i2p2www/spec/proposals/137-optional-sigtypes.rst
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
========================================
|
||||||
|
Floodfill Support for Optional Sig Types
|
||||||
|
========================================
|
||||||
|
.. meta::
|
||||||
|
:author: zzz
|
||||||
|
:created: 2017-03-31
|
||||||
|
:thread: http://zzz.i2p/topics/2280
|
||||||
|
:lastupdated: 2017-03-31
|
||||||
|
:status: Open
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
========
|
||||||
|
|
||||||
|
Add a way for floodfills to advertise support for optional sig types.
|
||||||
|
This will provide a way to support new sig types over the long-term,
|
||||||
|
even if not all implementations support them.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Motivation
|
||||||
|
==========
|
||||||
|
|
||||||
|
The GOST proposal 134 has revealed several issues with the previously-unused experimental sig type range.
|
||||||
|
|
||||||
|
First, since sig types in the experimental range cannot be reserved, they may be used for
|
||||||
|
multiple sig types at once.
|
||||||
|
|
||||||
|
Second, unless a lease set with an experimental sig type can be stored at a floodfill,
|
||||||
|
the new sig type is difficult to fully test or use on a trial basis.
|
||||||
|
|
||||||
|
Third, if proposal 136 is implemented, this is not secure, as anybody can overwrite an entry.
|
||||||
|
|
||||||
|
Fourth, implementing a new sig type can be a large development effort.
|
||||||
|
It may be difficult to convince developers for all router implementations to add support for a new
|
||||||
|
sig type in time for any particular release. Developer's time and motivations may vary.
|
||||||
|
|
||||||
|
Fifth, if GOST uses a sig type in the standard range, there's still no way to know if a particular
|
||||||
|
floodfill supports GOST.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Design
|
||||||
|
======
|
||||||
|
|
||||||
|
All floodfills must support sig types DSA (0), ECDSA (1-3), and EdDSA (7).
|
||||||
|
|
||||||
|
For any other sig type in the standard (non-experimental) range, a floodfill may
|
||||||
|
advertise support in its router info properties.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Specification
|
||||||
|
=============
|
||||||
|
|
||||||
|
Ref: http://i2p-projekt.i2p/en/docs/spec/common-structures
|
||||||
|
http://i2p-projekt.i2p/en/docs/spec/i2np
|
||||||
|
|
||||||
|
Add a RI property with comma-separated sig type numbers.
|
||||||
|
|
||||||
|
For example: sigTypes=9,10
|
||||||
|
|
||||||
|
Routers that support optional sig types must only store, lookup, or flood,
|
||||||
|
to floodfills that advertise support for that sig type.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Migration
|
||||||
|
=========
|
||||||
|
|
||||||
|
Not applicable.
|
||||||
|
Only routers that support the optional sig type must implement.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Issues
|
||||||
|
======
|
||||||
|
|
||||||
|
If there are not a lot of floodfills supporting the sig type, they may be difficult to find.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
See Also
|
||||||
|
========
|
||||||
|
|
||||||
|
Proposal 134
|
||||||
|
Proposal 136
|
Reference in New Issue
Block a user