4 TLS Working Group N. Mavrogiannopoulos
5 Internet-Draft Independent
6 Expires: December 7, 2006 June 5, 2006
9 Using OpenPGP keys for TLS authentication
10 draft-ietf-tls-openpgp-keys-10
14 By submitting this Internet-Draft, each author represents that any
15 applicable patent or other IPR claims of which he or she is aware
16 have been or will be disclosed, and any of which he or she becomes
17 aware will be disclosed, in accordance with Section 6 of BCP 79.
19 Internet-Drafts are working documents of the Internet Engineering
20 Task Force (IETF), its areas, and its working groups. Note that
21 other groups may also distribute working documents as Internet-
24 Internet-Drafts are draft documents valid for a maximum of six months
25 and may be updated, replaced, or obsoleted by other documents at any
26 time. It is inappropriate to use Internet-Drafts as reference
27 material or to cite them other than as "work in progress."
29 The list of current Internet-Drafts can be accessed at
30 http://www.ietf.org/ietf/1id-abstracts.txt.
32 The list of Internet-Draft Shadow Directories can be accessed at
33 http://www.ietf.org/shadow.html.
35 This Internet-Draft will expire on December 7, 2006.
39 Copyright (C) The Internet Society (2006).
43 This memo proposes extensions to the TLS protocol to support the
44 OpenPGP trust model and keys. The extensions discussed here include
45 a certificate type negotiation mechanism, and the required
46 modifications to the TLS Handshake Protocol.
55 Mavrogiannopoulos Expires December 7, 2006 [Page 1]
57 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
62 At the time of writing, TLS [TLS] uses the PKIX [PKIX]
63 infrastructure, to provide certificate services. Currently the PKIX
64 protocols are limited to a hierarchical key management and as a
65 result, applications which follow different - non hierarchical -
66 trust models, could not be benefited by TLS.
68 OpenPGP keys (sometimes called OpenPGP certificates), provide
69 security services for electronic communications. They are widely
70 deployed, especially in electronic mail applications, provide public
71 key authentication services, allow distributed key management and can
72 be used with a non hierarchical trust model called the "web of trust"
75 This document will extend the TLS protocol to support OpenPGP keys
76 using the existing TLS cipher suites. In brief this would be
77 achieved by adding a negotiation of the certificate type in addition
78 to the normal handshake negotiations. Then the required
79 modifications to the handshake messages, in order to hold OpenPGP
80 keys as well, will be described. The normal handshake procedure with
81 X.509 certificates is not altered, to preserve compatibility with
82 existing TLS servers and clients.
84 This document uses the same notation used in the TLS Protocol
87 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
88 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
89 document are to be interpreted as described in [RFC2119].
111 Mavrogiannopoulos Expires December 7, 2006 [Page 2]
113 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
116 2. Changes to the Handshake Message Contents
118 This section describes the changes to the TLS handshake message
119 contents when OpenPGP keys are to be used for authentication.
123 In order to indicate the support of multiple certificate types
124 clients will include an extension of type "cert_type" (see Section 4)
125 to the extended client hello message. The hello extension mechanism
126 is described in [TLSEXT].
128 This extension carries a list of supported certificate types the
129 client can use, sorted by client preference. This extension MUST be
130 omitted if the client only supports X.509 certificates. The
131 "extension_data" field of this extension will contain a
132 CertificateTypeExtension structure.
135 enum { client, server } ClientOrServerExtension;
137 enum { X.509(0), OpenPGP(1), (255) } CertificateType;
140 select(ClientOrServerExtension) {
142 CertificateType certificate_types<1..2^8-1>;
144 CertificateType certificate_type;
146 } CertificateTypeExtension;
148 No new cipher suites are required to use OpenPGP keys. All existing
149 cipher suites that support a compatible with the key, key exchange
150 method can be used in combination with OpenPGP keys.
154 Servers that receive an extended client hello containing the
155 "cert_type" extension, and have chosen a cipher suite that supports
156 certificates, they MUST select a certificate type from the
157 certificate_types field in the extended client hello, or terminate
158 the connection with a fatal alert of type "unsupported_certificate".
160 The certificate type selected by the server, is encoded in a
161 CertificateTypeExtension structure, which is included in the extended
162 server hello message, using an extension of type "cert_type".
163 Servers that only support X.509 certificates MAY omit including the
167 Mavrogiannopoulos Expires December 7, 2006 [Page 3]
169 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
172 "cert_type" extension in the extended server hello.
174 2.3. Server Certificate
176 The contents of the certificate message sent from server to client
177 and vice versa are determined by the negotiated certificate type and
178 the selected cipher suite's key exchange algorithm.
180 If the OpenPGP certificate type is negotiated then it is required to
181 present an OpenPGP key in the Certificate message. The OpenPGP key
182 must contain a public key that matches the selected key exchange
183 algorithm, as shown below.
186 Key Exchange Algorithm OpenPGP Key Type
188 RSA RSA public key which can be used for
191 DHE_DSS DSS public key.
193 DHE_RSA RSA public key which can be used for
196 An OpenPGP public key appearing in the Certificate message will be
197 sent using the binary OpenPGP format. The term public key is used to
198 describe a composition of OpenPGP packets to form a block of data
199 which contains all information needed by the peer. This includes
200 public key packets, user ID packets and all the fields described in
201 section 10.1 of [OpenPGP].
203 The option is also available to send an OpenPGP fingerprint, instead
204 of sending the entire key. The process of fingerprint generation is
205 described in section 11.2 of [OpenPGP]. The peer shall respond with
206 a "certificate_unobtainable" fatal alert if the key with the given
207 key fingerprint cannot be found. The "certificate_unobtainable"
208 fatal alert is defined in section 4 of [TLSEXT].
210 If the key is not valid, expired, revoked, corrupt, the appropriate
211 fatal alert message is sent from section A.3 of the TLS
212 specification. If a key is valid and neither expired nor revoked, it
213 is accepted by the protocol. The key validation procedure is a local
214 matter outside the scope of this document.
223 Mavrogiannopoulos Expires December 7, 2006 [Page 4]
225 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
229 key_fingerprint (0), key (1), (255)
230 } PGPKeyDescriptorType;
232 opaque PGPKeyFingerprint<16..20>;
234 opaque PGPKey<0..2^24-1>;
237 PGPKeyDescriptorType descriptorType;
238 select (descriptorType) {
239 case key_fingerprint: PGPKeyFingerprint;
244 2.4. Certificate request
246 The semantics of this message remain the same as in the TLS
247 specification. However if this message is sent, and the negotiated
248 certificate type is OpenPGP, the "certificate_authorities" list MUST
251 2.5. Client certificate
253 This message is only sent in response to the certificate request
254 message. The client certificate message is sent using the same
255 formatting as the server certificate message and it is also required
256 to present a certificate that matches the negotiated certificate
257 type. If OpenPGP keys have been selected, and no key is available
258 from the client, then a Certificate that contains an empty PGPKey
259 should be sent. The server may respond with a "handshake_failure"
260 fatal alert if client authentication is required.
262 2.6. Other Handshake messages
264 The rest of the handshake messages such as the server key exchange,
265 the certificate verify and the finished messages are identical to the
279 Mavrogiannopoulos Expires December 7, 2006 [Page 5]
281 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
284 3. Security Considerations
286 As with X.509 ASN.1 formatted keys, OpenPGP keys need specialized
287 parsers. Care must be taken to make those parsers safe against
288 maliciously modified keys, that could cause arbitrary code execution.
290 Security considerations about the use of the web of trust or the
291 verification procedure are outside the scope of this document and
292 they are considered an issue to be handled by local policy.
335 Mavrogiannopoulos Expires December 7, 2006 [Page 6]
337 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
340 4. IANA Considerations
342 This document defines a new TLS extension, "cert_type", assigned a
343 value of TBD-BY-IANA (the value 7 is suggested) from the TLS
344 ExtensionType registry defined in [TLSEXT]. This value is used as
345 the extension number for the extensions in both the client hello
346 message and the server hello message. The new extension type will be
347 used for certificate type negotiation.
349 The "cert_type" extension contains an 8-bit CertificateType field,
350 for which a new registry, named "TLS Certificate Types", is
351 established in this document, to be maintained by IANA. The registry
352 is segmented in the following way:
354 1. Values 0 (X.509) and 1 (OpenPGP) are defined in this document.
356 2. Values from 2 through 223 decimal inclusive are assigned via IETF
359 3. Values from 224 decimal through 255 decimal inclusive are
360 reserved for Private Use [RFC2434].
391 Mavrogiannopoulos Expires December 7, 2006 [Page 7]
393 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
398 5.1. Normative References
400 [TLS] Dierks, T. and E. Rescorla, "The TLS Protocol Version
401 1.1", RFC 4346, April 2006.
403 [OpenPGP] Callas, J., Donnerhacke, L., Finey, H., and R. Thayer,
404 "OpenPGP Message Format", RFC 2440, November 1998.
406 [TLSEXT] Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J.,
407 and T. Wright, "Transport Layer Security (TLS)
408 Extensions", RFC 4366, April 2006.
410 [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an
411 IANA Considerations Section in RFCs", RFC 2434,
414 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
415 Requirement Levels", RFC 2119, March 1997.
417 5.2. Informative References
419 [PKIX] Housley, R., Ford, W., Polk, W., and D. Solo, "Internet X.509
420 Public Key Infrastructure Certificate and Certificate
421 Revocation List (CRL) Profile", RFC 3280, April 2002.
423 [WOT] Abdul-Rahman, A., "The PGP Trust Model", EDI Forum: The
424 Journal of Electronic Commerce, April 1997.
447 Mavrogiannopoulos Expires December 7, 2006 [Page 8]
449 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
452 Appendix A. Acknowledgements
454 This document was based on earlier work made by Will Price and
457 The author wishes to thank Werner Koch, David Taylor, Timo Schulz and
458 Pasi Eronen for their suggestions on improving this document.
503 Mavrogiannopoulos Expires December 7, 2006 [Page 9]
505 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
510 Nikos Mavrogiannopoulos
513 Halandri, Attiki 15234
516 Email: nmav@gnutls.org
517 URI: http://www.gnutls.org/
559 Mavrogiannopoulos Expires December 7, 2006 [Page 10]
561 Internet-Draft Using OpenPGP keys for TLS authentication June 2006
564 Intellectual Property Statement
566 The IETF takes no position regarding the validity or scope of any
567 Intellectual Property Rights or other rights that might be claimed to
568 pertain to the implementation or use of the technology described in
569 this document or the extent to which any license under such rights
570 might or might not be available; nor does it represent that it has
571 made any independent effort to identify any such rights. Information
572 on the procedures with respect to rights in RFC documents can be
573 found in BCP 78 and BCP 79.
575 Copies of IPR disclosures made to the IETF Secretariat and any
576 assurances of licenses to be made available, or the result of an
577 attempt made to obtain a general license or permission for the use of
578 such proprietary rights by implementers or users of this
579 specification can be obtained from the IETF on-line IPR repository at
580 http://www.ietf.org/ipr.
582 The IETF invites any interested party to bring to its attention any
583 copyrights, patents or patent applications, or other proprietary
584 rights that may cover technology that may be required to implement
585 this standard. Please address the information to the IETF at
589 Disclaimer of Validity
591 This document and the information contained herein are provided on an
592 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
593 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
594 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
595 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
596 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
597 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
602 Copyright (C) The Internet Society (2006). This document is subject
603 to the rights, licenses and restrictions contained in BCP 78, and
604 except as set forth therein, the authors retain all their rights.
609 Funding for the RFC Editor function is currently provided by the
615 Mavrogiannopoulos Expires December 7, 2006 [Page 11]