-
Notifications
You must be signed in to change notification settings - Fork 42
Explicitly note certificate "purpose" (the subject) #23
Comments
How would that work if we at some point use RFC 7250 style raw public keys? We wouldn't have any fields to note certificate purpose there. |
This issue is just for certificate chains. That is, when permanent key A (used in the peer ID) signs ephemeral key B, the produced certificate should somehow indicate that key A is delegating to key B. If I'm using the key directly, there's really no need. |
It seems like there are two ways we can go from here:
|
While I like the idea of using keys directly, I wonder if it would be simpler to just use length N (where 1 <= N <= 10 (or some sane bound)). My worry is that RFC 7250 isn't widely supported which may increase the barrier to entry. This isn't much of an issue for QUIC because it's so new, I'd refer it if we could reuse the the same handshake/config across for TLS (1.2 and 1.3) over TCP. Actually, is there any way for the client to indicate if it supports 7250? If so, we could say that self-signed certificates must be supported but bare keys should also be supported. |
Yes, RFC allows for a fallback. It's basically just an extension that is sent in the ClientHello TLS message. If the server supports it, it proceeds accordingly. TLS skips unsupported TLS extensions, so we could just use the normal certificate-based authentication then. My point was that if we decide to use raw public keys (at some point) and to use the certificates as a fallback, this implies that we're rather taking the child peer ID path. Then we don't need any for support certificate chains, a single self-signed certificate would be sufficient. |
I see. Yeah, I'd be fine just going with the single-link chain then. That's what the original TLS patch did anyways. |
Currently, if a peer uses their peer ID to sign a certificate, QUIC will allow the signed key to act on behalf of the peer. The peer should have to explicitly state that they want to delegate their peer ID.
Motivation: If we don't do this, we won't be able to use peer IDs to sign any certificates except delegation certificates.
Proposal: Put
/p2p/QmPeerID
in the certificate's subject field (or some other field if that doesn't make sense). The certificate would only be valid if there exists some certificate higher up the chain signed by that peer ID.The text was updated successfully, but these errors were encountered: