[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [torspec] 02/02: rend-spec: Document how the cross-certificates (don't) work.



This is an automated email from the git hooks/post-receive script.

dgoulet pushed a commit to branch main
in repository torspec.

commit ca400dc9f82f8e644d8c3b834a80a41a68748880
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
AuthorDate: Tue Jan 31 11:18:06 2023 -0500

    rend-spec: Document how the cross-certificates (don't) work.
    
    (See text for more info!)
---
 rend-spec-v3.txt | 41 ++++++++++++++++++++++++++++++-----------
 1 file changed, 30 insertions(+), 11 deletions(-)

diff --git a/rend-spec-v3.txt b/rend-spec-v3.txt
index 2ede08b..a8ac264 100644
--- a/rend-spec-v3.txt
+++ b/rend-spec-v3.txt
@@ -1417,18 +1417,28 @@ Table of contents:
 
           [Exactly once per introduction point]
 
-          The certificate is a proposal 220 certificate wrapped in "-----BEGIN
-          ED25519 CERT-----" cross-certifying the introduction point
-          authentication key using the descriptor signing key. The introduction
-          point authentication key is included in the mandatory signing-key
-          extension.  The certificate type must be [09].
+          The certificate is a proposal 220 certificate wrapped in
+          "-----BEGIN ED25519 CERT-----".  It contains the introduction
+          point authentication key (`KP_hs_intro_tid`), signed by
+          the descriptor signing key (`KP_hs_desc_sign`).  The
+          certificate type must be [09], and the signing key extension
+          is mandatory.
+
+          NOTE: This certificate was originally intended to be
+          constructed the other way around: the signing and signed keys
+          are meant to be reversed.  However, C tor implemented it
+          backwards, and other implementations now need to do the same
+          in order to conform.  (Since this section is inside the
+          descriptor, which is _already_ signed by `KP_hs_desc_sign`,
+          the verification aspect of this certificate serves no point in
+          its current form.)
 
         "enc-key" SP "ntor" SP key NL
 
           [Exactly once per introduction point]
 
           The key is a base64 encoded curve25519 public key used to encrypt
-          the introduction request to service.
+          the introduction request to service. (`KP_hs_intro_ntor`)
 
         "enc-key" SP KeyType SP key.. NL
 
@@ -1445,13 +1455,22 @@ Table of contents:
           Cross-certification of the encryption key using the descriptor
           signing 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 a curve25519
-          public encryption key derived using the process in proposal 228
-          appendix A. The certificate type must be [0B], and the signing-key
+          For "ntor" keys, certificate is a proposal 220 certificate
+          wrapped in "-----BEGIN ED25519 CERT-----" armor.  The subject
+          key is the the ed25519 equivalent of a curve25519 public
+          encryption key (`KP_hs_intro_ntor`), with the ed25519 key
+          derived using the process in proposal 228 appendix A.  The
+          signing key is the descriptor signing key (`KP_hs_desc_sign`).
+          The certificate type must be [0B], and the signing-key
           extension is mandatory.
 
+          NOTE: As with "auth-key", this certificate was intended to be
+          constructed the other way around.  However, for compatibility
+          with C tor, implementations need to construct it this way.  It
+          serves even less point than "auth-key", however, since the
+          encryption key `KP_hs_intro_ntor` is already available from
+          the `enc-key` entry.
+
         "legacy-key" NL key NL
 
           [None or at most once per introduction point]

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits