[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [torspec/master] prop224: Change how descriptor encode encryption keys
commit 3f9333044e77759996083d0d9dd2c8053358d895
Author: David Goulet <dgoulet@xxxxxxxxxxxxxx>
Date: Thu Apr 6 08:29:20 2017 -0400
prop224: Change how descriptor encode encryption keys
Every intro point, legacy or not, needs a ntor encryption key. However, in
the case of a legacy introductin point, we need an extra RSA key so the IP
can relay the INTRODUCE1 cell on the right circuit.
We now only need the cross certificate for the encryption key because the
signing-key extention make sure we have the actual key encoded in that
certificate. The legacy key cross certificate doesn't support that extention
so we need both the RSA key and the crosscert.
Fixes #21871
Signed-off-by: David Goulet <dgoulet@xxxxxxxxxxxxxx>
---
proposals/224-rend-spec-ng.txt | 54 +++++++++++++++++++++++++-----------------
1 file changed, 32 insertions(+), 22 deletions(-)
diff --git a/proposals/224-rend-spec-ng.txt b/proposals/224-rend-spec-ng.txt
index 2d6f261..56ca69c 100644
--- a/proposals/224-rend-spec-ng.txt
+++ b/proposals/224-rend-spec-ng.txt
@@ -1219,39 +1219,49 @@ Table of contents:
is included in the mandatory signing-key extension. The certificate
type must be [09].
- Encryption key is specified as follow:
+ "enc-key" SP "ntor" SP key NL
- [Exactly once enc-key per introduction point]
-
- "enc-key" SP "ntor" SP key NL
-
- The key is a base64 encoded curve25519 public key used to encrypt
- the introduction request to service.
-
- "enc-key" SP "legacy" NL key NL
+ [Exactly once per introduction point]
- Base64 encoded RSA key, wrapped in "----BEGIN RSA PUBLIC
- KEY-----" armor, for use with a legacy introduction point as
- described in [LEGACY_EST_INTRO] and [LEGACY-INTRODUCE1] below.
+ The key is a base64 encoded curve25519 public key used to encrypt
+ the introduction request to service.
- "enc-key-certification" NL certificate NL
+ "enc-key-cert" NL certificate NL
[Exactly once per introduction point]
- Cross-certification of the descriptor signing key by the enc-key.
- The format of this certificate depends on the type of enc-key.
+ Cross-certification of the descriptor signing key by the encryption
+ key.
For "ntor" keys, certificate is a proposal 220 certificate wrapped
in "-----BEGIN ED25519 CERT-----" armor, cross-certifying the
- descriptor signing key with the ed25519 equivalent of the curve25519
- public key from "enc-key" derived using the process in proposal 228
- appendix A. The certificate type must be [10], and the signing-key
+ descriptor signing key with the ed25519 equivalent of a curve25519
+ public encryption key derived using the process in proposal 228
+ appendix A. The certificate type must be [0B], and the signing-key
extension is mandatory.
- For "legacy" keys, certificate is a proposal 220 RSA->Ed
- cross-certificate wrapped in "-----BEGIN CROSSCERT-----" armor,
- cross-certifying the descriptor signing key with the legacy RSA
- encryption key.
+ "legacy-key" NL key NL
+
+ [None or at most once per introduction point]
+
+ The key is an ASN.1 encoded RSA public key in PEM format used for a
+ legacy introduction point as described in [LEGACY_EST_INTRO] and
+ [LEGACY-INTRODUCE1] below.
+
+ This field is only present if the introduction point only supports
+ legacy protocol (v2) that is <= 0.2.9 or the protocol version value
+ "HSIntro 3".
+
+ "legacy-key-cert NL certificate NL
+
+ [None or at most once per introduction point]
+
+ MUST be present if "legacy-key" is present.
+
+ The certificate is a proposal 220 RSA->Ed cross-certificate wrapped
+ in "-----BEGIN CROSSCERT-----" armor, cross-certifying the
+ descriptor signing key with the RSA public key found in
+ "legacy-key".
To remain compatible with future revisions to the descriptor format,
clients should ignore unrecognized lines in the descriptor.
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits