diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-05-11 16:02:59 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-05-11 16:02:59 -0400 |
commit | 4625a59da9b6b27bbc803c271d1b7c94497917e1 (patch) | |
tree | 5f9965f766a11ab06ee966a7deca6a7af1e66e50 /proposals/318-limit-protovers.md | |
parent | 2dd966b784f1f0b572bef9908e720a4aa985faa0 (diff) | |
download | torspec-4625a59da9b6b27bbc803c271d1b7c94497917e1.tar.gz torspec-4625a59da9b6b27bbc803c271d1b7c94497917e1.zip |
Add proposal 318, to limit the range of subprotocol versions.
Diffstat (limited to 'proposals/318-limit-protovers.md')
-rw-r--r-- | proposals/318-limit-protovers.md | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/proposals/318-limit-protovers.md b/proposals/318-limit-protovers.md new file mode 100644 index 0000000..08f3a16 --- /dev/null +++ b/proposals/318-limit-protovers.md @@ -0,0 +1,45 @@ +``` +Filename: 318-limit-protovers.md +Title: Limit protover values to 0-63. +Author: Nick Mathewson +Created: 11 May 2020 +Status: Open +``` + +# Limit protover values to 0-63. + +I propose that we no longer accept protover values higher than 63, +so that they can all fit nicely into 64-bit fields. + +(This proposal is part of the Walking Onions spec project.) + +## Motivation + +Doing this will simplify our implementations and our protocols. +Right now, an efficient protover implementation needs to use ranges +to represent possible protocol versions, and needs workarounds to +prevent an attacker from constructing a protover line that would +consume too much memory. With Walking Onions, we need lists of +protocol versions to be represented in an extremely compact format, +which also would benefit from a limited set of possible versions. + +I believe that we will lose nothing by making this +change. Currently, after nearly two decades of Tor development +and 3.5 years of experiences with protovers in production, we have +no protocol version high than 5. + +Even if we did someday need to implement higher protocol +versions, we could simply add a new subprotocol name instead. For +example, instead of "HSIntro=64", we could say "HSIntro2=1". + +## Migration + +Immediately, authorities should begin rejecting relays with protocol +versions above 63. (There are no such relays in the consensus right +now.) + +Once this change is deployed to a majority of authorities, we can +remove support in other Tor environments for protocol versions +above 63. + + |