Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How does RFC 7250 (raw public keys) fit in? #722

Closed
martinthomson opened this issue Oct 19, 2016 · 6 comments
Closed

How does RFC 7250 (raw public keys) fit in? #722

martinthomson opened this issue Oct 19, 2016 · 6 comments
Labels

Comments

@martinthomson
Copy link
Contributor

Do we replace ASN1Cert, CertificateEntry, or the entirety of the Certificate message body with the SPKI?

@ekr
Copy link
Contributor

ekr commented Oct 19, 2016

Replaces the whole message. Them's the rules.

@martinthomson
Copy link
Contributor Author

7250 mentions ASN1Cert directly. It probably needs some clarification in this document to avoid confusion.

@ekr
Copy link
Contributor

ekr commented Oct 20, 2016

OK, will fix.

On Wed, Oct 19, 2016 at 7:45 PM, Martin Thomson notifications@github.com
wrote:

7250 mentions ASN1Cert directly. It probably needs some clarification in
this document to avoid confusion.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#722 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABD1oeWxVWKs1Bd-LUSnUrzl5FArRxBNks5q1tXUgaJpZM4Kbkjh
.

@ekr
Copy link
Contributor

ekr commented Oct 20, 2016

We may actually need a 7250-bis. I'm going to leave this for now.

@ekr ekr added the parked label Oct 26, 2016
@Lekensteyn
Copy link
Contributor

This is still a problem. RFC 7250 is referenced in several places, but its use in TLS 1.3 is not well-defined.

Section 2 of draft 18 says:

Certificate: [..] Note that if raw public keys [RFC7250] or the cached information extension [RFC7924] are in use, then this message will not contain a certificate but rather some other value corresponding to the server's long-term key. [Section 4.4.1]

Certificate (section 4.4.1) is defined via:

opaque ASN1Cert<1..2^24-1>;

struct {
    ASN1Cert cert_data;
    Extension extensions<0..2^16-1>;
} CertificateEntry;

struct {
    opaque certificate_request_context<0..2^8-1>;
    CertificateEntry certificate_list<0..2^24-1>;
} Certificate;

If the whole Certificate is replaced as suggested by Section 2, then the certificate_request_context is lost. While not a problem for the server certificate message (of which there can be only one), it is not good for client certificates.

In TLS 1.2 there is only one Certificate per handshake. In TLS 1.3 you can have multiple CertificateRequests and Certificate responses (in any order).

Restricting the number of CertificateRequest/Certificate responses (or requiring the context to be the same) is one option, but may complicate the protocol/implementation.
Since the main motivation of RPK is to share public keys with reduced overhead (no need for a full forest of options/extensions), what about replacing the certificate_list field? Overhead is only 1 byte if no context is needed.

Lekensteyn added a commit to Lekensteyn/wireshark that referenced this issue Jan 30, 2017
Note that RPK (RFC 7250) is not well-defined and is left untouched.
tlswg/tls13-spec#722

Certificate extensions dissections remains a task for later.

Change-Id: I62276e59db94429e4c09058aca3c08f390ec3af7
Ping-Bug: 12779
crondaemon pushed a commit to crondaemon/wireshark that referenced this issue Jan 31, 2017
Note that RPK (RFC 7250) is not well-defined and is left untouched.
tlswg/tls13-spec#722

Certificate extensions dissections remains a task for later.

Change-Id: I62276e59db94429e4c09058aca3c08f390ec3af7
Ping-Bug: 12779
Reviewed-on: https://code.wireshark.org/review/19864
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
@ekr ekr modified the milestone: -19 Mar 7, 2017
@ekr
Copy link
Contributor

ekr commented Apr 16, 2017

Done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants