< draft-kivinen-ipsecme-oob-pubkey-11.txt   draft-kivinen-ipsecme-oob-pubkey-12.txt >
Network Working Group T. Kivinen Network Working Group T. Kivinen
Internet-Draft INSIDE Secure Internet-Draft INSIDE Secure
Updates: 7296 (if approved) P. Wouters Updates: 7296 (if approved) P. Wouters
Intended status: Standards Track Red Hat Intended status: Standards Track Red Hat
Expires: February 27, 2016 H. Tschofenig Expires: March 25, 2016 H. Tschofenig
August 26, 2015 September 22, 2015
More Raw Public Keys for IKEv2 More Raw Public Keys for IKEv2
draft-kivinen-ipsecme-oob-pubkey-11.txt draft-kivinen-ipsecme-oob-pubkey-12.txt
Abstract Abstract
The Internet Key Exchange Version 2 (IKEv2) protocol currently only The Internet Key Exchange Version 2 (IKEv2) protocol only supports
supports raw RSA keys. In constrained environments it is useful to RSA for raw public keys. In constrained environments it is useful to
make use of other types of public keys, such as those based on make use of other types of public keys, such as those based on
Elliptic Curve Cryptography. This documents adds support for other Elliptic Curve Cryptography. This documents adds support for other
types of raw public keys to IKEv2. types of raw public keys to IKEv2.
Status of this Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 27, 2016. This Internet-Draft will expire on March 25, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Certificate Encoding Payload . . . . . . . . . . . . . . . . . 4 3. Certificate Encoding Payload . . . . . . . . . . . . . . . . 3
4. Security Considerations . . . . . . . . . . . . . . . . . . . 5 4. Security Considerations . . . . . . . . . . . . . . . . . . . 4
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.1. Normative References . . . . . . . . . . . . . . . . . . . 6 7.1. Normative References . . . . . . . . . . . . . . . . . . 5
7.2. Informative References . . . . . . . . . . . . . . . . . . 6 7.2. Informative References . . . . . . . . . . . . . . . . . 5
Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 7 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 7
A.1. ECDSA Example . . . . . . . . . . . . . . . . . . . . . . 7 A.1. ECDSA Example . . . . . . . . . . . . . . . . . . . . . . 7
A.2. RSA Example . . . . . . . . . . . . . . . . . . . . . . . 8 A.2. RSA Example . . . . . . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction 1. Introduction
Secure DNS allows public keys to be associated with domain names for This document replaces an algorithm-specific version of raw public
usage with security protocols like Internet Key Exchange Version 2 keys of Internet Key Exchange Version 2 (IKEv2) [RFC7296] with a
(IKEv2) [RFC7296] and Transport Layer Security (TLS) [RFC5246] but it generic version of raw public keys that is algorithm agnostic.
relies on extensions in those protocols to be specified.
In [RFC5996] IKEv2 had support for PKCS #1 encoded RSA keys, i.e., a In [RFC5996] IKEv2 had support for PKCS #1 encoded RSA keys, i.e., a
DER-encoded RSAPublicKey structure (see [RSA] and [RFC3447]). Other DER-encoded RSAPublicKey structure (see [RSA] and [RFC3447]). Other
raw public key types are, however, not supported. In [RFC7296] this raw public key types are, however, not supported. In [RFC7296] this
feature was removed, and this document adds support for raw public feature was removed, and this document adds support for raw public
keys back to IKEv2 in a more generic way. keys back to IKEv2 in a more generic way.
Secure DNS allows public keys to be associated with domain names for
usage with security protocols like IKEv2 and Transport Layer Security
(TLS) [RFC5246] but it relies on extensions in those protocols to be
specified.
The TLS Out-of-Band Public Key Validation specification ([RFC7250]) The TLS Out-of-Band Public Key Validation specification ([RFC7250])
adds generic support for raw public keys to TLS by re-using the adds generic support for raw public keys to TLS by re-using the
SubjectPublicKeyInfo format from the X.509 Public Key Infrastructure SubjectPublicKeyInfo format from the X.509 Public Key Infrastructure
Certificate profile [RFC5280]. Certificate profile [RFC5280].
This document is similar to the TLS Out-of-Band Public Key Validation This document is similar to the TLS Out-of-Band Public Key Validation
specification, and applies the concept to IKEv2 to support all public specification, and applies the concept to IKEv2 to support all public
key formats defined by PKIX. This approach also allows future public key formats defined by PKIX. This approach also allows future public
key extensions to be supported without the need to introduce further key extensions to be supported without the need to introduce further
enhancements to IKEv2. enhancements to IKEv2.
skipping to change at page 4, line 45 skipping to change at page 4, line 19
Certificate Encoding Value Certificate Encoding Value
---------------------------------------------------- ----------------------------------------------------
Raw Public Key TBD Raw Public Key TBD
o Certificate Data (variable length) - Actual encoding of the o Certificate Data (variable length) - Actual encoding of the
certificate data. certificate data.
In order to provide a simple and standard way to indicate the key In order to provide a simple and standard way to indicate the key
type when the encoding type is 'Raw Public Key', the type when the encoding type is 'Raw Public Key', the
SubjectPublicKeyInfo structure of the PKIX certificate is used. This SubjectPublicKeyInfo structure of the PKIX certificate is used. This
is a a very simple encoding, as most of the ASN.1 part can be is a very simple encoding, as most of the ASN.1 part can be included
included literally, and recognized by block comparison. See literally, and recognized by block comparison. See [RFC7250]
[RFC7250] Appendix A for a detailed breakdown. In addition, Appendix A for a detailed breakdown. In addition, Appendix A has
Appendix A has several examples. several examples.
In addition to the Certificate payload, the Cert Encoding for Raw In addition to the Certificate payload, the Cert Encoding for Raw
Public Key can be used in the Certificate Request payload. In that Public Key can be used in the Certificate Request payload. In that
case the Certification Authority field MUST be empty if the "Raw case the Certification Authority field MUST be empty if the "Raw
Public Key" certificate encoding is used. Public Key" certificate encoding is used.
For RSA keys, the implementations MUST follow the public key For RSA keys, the implementations MUST follow the public key
processing rules of section 1.2 of the Additional Algorithms and processing rules of section 1.2 of the Additional Algorithms and
Identifiers for RSA Cryptography for PKIX ([RFC4055]) even when the Identifiers for RSA Cryptography for PKIX ([RFC4055]) even when the
SubjectPublicKeyInfo is not part of a certificate, but rather sent as SubjectPublicKeyInfo is not part of a certificate, but rather sent as
skipping to change at page 6, line 4 skipping to change at page 5, line 22
Encodings registry: Encodings registry:
TBD Raw Public Key TBD Raw Public Key
6. Acknowledgements 6. Acknowledgements
This document reproduces some parts of the similar TLS document This document reproduces some parts of the similar TLS document
([RFC7250]). ([RFC7250]).
7. References 7. References
7.1. Normative References 7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997, RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
Housley, R., and W. Polk, "Internet X.509 Public Key Housley, R., and W. Polk, "Internet X.509 Public Key
Infrastructure Certificate and Certificate Revocation List Infrastructure Certificate and Certificate Revocation List
(CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008, (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
<http://www.rfc-editor.org/info/rfc5280>. <http://www.rfc-editor.org/info/rfc5280>.
[RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
Kivinen, "Internet Key Exchange Protocol Version 2 Kivinen, "Internet Key Exchange Protocol Version 2
(IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October
October 2014, <http://www.rfc-editor.org/info/rfc7296>. 2014, <http://www.rfc-editor.org/info/rfc7296>.
[RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in [RFC7427] Kivinen, T. and J. Snyder, "Signature Authentication in
the Internet Key Exchange Version 2 (IKEv2)", RFC 7427, the Internet Key Exchange Version 2 (IKEv2)", RFC 7427,
DOI 10.17487/RFC7427, January 2015, DOI 10.17487/RFC7427, January 2015,
<http://www.rfc-editor.org/info/rfc7427>. <http://www.rfc-editor.org/info/rfc7427>.
7.2. Informative References 7.2. Informative References
[RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography [RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography
Standards (PKCS) #1: RSA Cryptography Specifications Standards (PKCS) #1: RSA Cryptography Specifications
Version 2.1", RFC 3447, DOI 10.17487/RFC3447, Version 2.1", RFC 3447, DOI 10.17487/RFC3447, February
February 2003, <http://www.rfc-editor.org/info/rfc3447>. 2003, <http://www.rfc-editor.org/info/rfc3447>.
[RFC4025] Richardson, M., "A Method for Storing IPsec Keying [RFC4025] Richardson, M., "A Method for Storing IPsec Keying
Material in DNS", RFC 4025, DOI 10.17487/RFC4025, Material in DNS", RFC 4025, DOI 10.17487/RFC4025, March
March 2005, <http://www.rfc-editor.org/info/rfc4025>. 2005, <http://www.rfc-editor.org/info/rfc4025>.
[RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional [RFC4055] Schaad, J., Kaliski, B., and R. Housley, "Additional
Algorithms and Identifiers for RSA Cryptography for use in Algorithms and Identifiers for RSA Cryptography for use in
the Internet X.509 Public Key Infrastructure Certificate the Internet X.509 Public Key Infrastructure Certificate
and Certificate Revocation List (CRL) Profile", RFC 4055, and Certificate Revocation List (CRL) Profile", RFC 4055,
DOI 10.17487/RFC4055, June 2005, DOI 10.17487/RFC4055, June 2005,
<http://www.rfc-editor.org/info/rfc4055>. <http://www.rfc-editor.org/info/rfc4055>.
[RFC4754] Fu, D. and J. Solinas, "IKE and IKEv2 Authentication Using [RFC4754] Fu, D. and J. Solinas, "IKE and IKEv2 Authentication Using
the Elliptic Curve Digital Signature Algorithm (ECDSA)", the Elliptic Curve Digital Signature Algorithm (ECDSA)",
skipping to change at page 7, line 13 skipping to change at page 6, line 32
(TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/ (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/
RFC5246, August 2008, RFC5246, August 2008,
<http://www.rfc-editor.org/info/rfc5246>. <http://www.rfc-editor.org/info/rfc5246>.
[RFC5480] Turner, S., Brown, D., Yiu, K., Housley, R., and T. Polk, [RFC5480] Turner, S., Brown, D., Yiu, K., Housley, R., and T. Polk,
"Elliptic Curve Cryptography Subject Public Key "Elliptic Curve Cryptography Subject Public Key
Information", RFC 5480, DOI 10.17487/RFC5480, March 2009, Information", RFC 5480, DOI 10.17487/RFC5480, March 2009,
<http://www.rfc-editor.org/info/rfc5480>. <http://www.rfc-editor.org/info/rfc5480>.
[RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen, [RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen,
"Internet Key Exchange Protocol Version 2 (IKEv2)", "Internet Key Exchange Protocol Version 2 (IKEv2)", RFC
RFC 5996, DOI 10.17487/RFC5996, September 2010, 5996, DOI 10.17487/RFC5996, September 2010,
<http://www.rfc-editor.org/info/rfc5996>. <http://www.rfc-editor.org/info/rfc5996>.
[RFC6394] Barnes, R., "Use Cases and Requirements for DNS-Based [RFC6394] Barnes, R., "Use Cases and Requirements for DNS-Based
Authentication of Named Entities (DANE)", RFC 6394, Authentication of Named Entities (DANE)", RFC 6394, DOI
DOI 10.17487/RFC6394, October 2011, 10.17487/RFC6394, October 2011,
<http://www.rfc-editor.org/info/rfc6394>. <http://www.rfc-editor.org/info/rfc6394>.
[RFC7250] Wouters, P., Ed., Tschofenig, H., Ed., Gilmore, J., [RFC7250] Wouters, P., Ed., Tschofenig, H., Ed., Gilmore, J.,
Weiler, S., and T. Kivinen, "Using Raw Public Keys in Weiler, S., and T. Kivinen, "Using Raw Public Keys in
Transport Layer Security (TLS) and Datagram Transport Transport Layer Security (TLS) and Datagram Transport
Layer Security (DTLS)", RFC 7250, DOI 10.17487/RFC7250, Layer Security (DTLS)", RFC 7250, DOI 10.17487/RFC7250,
June 2014, <http://www.rfc-editor.org/info/rfc7250>. June 2014, <http://www.rfc-editor.org/info/rfc7250>.
[RSA] R. Rivest, A. Shamir, and L. Adleman, "A Method for [RSA] R. Rivest, , A. Shamir, , and L. Adleman, "A Method for
Obtaining Digital Signatures and Public-Key Obtaining Digital Signatures and Public-Key
Cryptosystems", February 1978. Cryptosystems", February 1978.
Appendix A. Examples Appendix A. Examples
This appendix provides examples of the actual payloads sent on the This appendix provides examples of the actual payloads sent on the
wire. wire.
A.1. ECDSA Example A.1. ECDSA Example
skipping to change at page 8, line 31 skipping to change at page 8, line 4
values of X and Y. values of X and Y.
The final encoded SubjectPublicKeyInfo object is as follows: The final encoded SubjectPublicKeyInfo object is as follows:
00000000: 3059 3013 0607 2a86 48ce 3d02 0106 082a 00000000: 3059 3013 0607 2a86 48ce 3d02 0106 082a
00000010: 8648 ce3d 0301 0703 4200 04cb 28e0 999b 00000010: 8648 ce3d 0301 0703 4200 04cb 28e0 999b
00000020: 9c77 15fd 0a80 d8e4 7a77 0797 16cb bf91 00000020: 9c77 15fd 0a80 d8e4 7a77 0797 16cb bf91
00000030: 7dd7 2e97 566e a1c0 6695 7c2b 57c0 235f 00000030: 7dd7 2e97 566e a1c0 6695 7c2b 57c0 235f
00000040: b748 9768 d058 ff49 11c2 0fdb e71e 3699 00000040: b748 9768 d058 ff49 11c2 0fdb e71e 3699
00000050: d913 39af bb90 3ee1 7255 dc 00000050: d913 39af bb90 3ee1 7255 dc
This will result in the final IKEv2 Certificate Payload: This will result in the final IKEv2 Certificate Payload:
00000000: NN00 0060 XX30 5930 1306 072a 8648 ce3d 00000000: NN00 0060 XX30 5930 1306 072a 8648 ce3d
00000010: 0201 0608 2a86 48ce 3d03 0107 0342 0004 00000010: 0201 0608 2a86 48ce 3d03 0107 0342 0004
00000020: cb28 e099 9b9c 7715 fd0a 80d8 e47a 7707 00000020: cb28 e099 9b9c 7715 fd0a 80d8 e47a 7707
00000030: 9716 cbbf 917d d72e 9756 6ea1 c066 957c 00000030: 9716 cbbf 917d d72e 9756 6ea1 c066 957c
00000040: 2b57 c023 5fb7 4897 68d0 58ff 4911 c20f 00000040: 2b57 c023 5fb7 4897 68d0 58ff 4911 c20f
00000050: dbe7 1e36 99d9 1339 afbb 903e e172 55dc 00000050: dbe7 1e36 99d9 1339 afbb 903e e172 55dc
Where NN is the next payload type (i.e. the type of the payload that Where NN is the next payload type (i.e., the type of the payload that
immediately follows this Certificate payload). immediately follows this Certificate payload).
Note to the RFC editor / IANA, replace the XX above with the newly Note to the RFC editor / IANA, replace the XX above with the newly
allocated Raw Public Key number (in hex notation), and remove this allocated Raw Public Key number (in hex notation), and remove this
note. note.
A.2. RSA Example A.2. RSA Example
This second example uses a random 1024-bit RSA key. This second example uses a random 1024-bit RSA key.
skipping to change at page 10, line 31 skipping to change at page 10, line 17
00000020: 8100 bc7b 4347 49c7 b386 00bf a84b 44f8 00000020: 8100 bc7b 4347 49c7 b386 00bf a84b 44f8
00000030: 8187 9a2d da08 d1f0 145a f580 6c2a ed6a 00000030: 8187 9a2d da08 d1f0 145a f580 6c2a ed6a
00000040: 6172 ff0d c3d4 cd60 1638 e8ca 348e bdca 00000040: 6172 ff0d c3d4 cd60 1638 e8ca 348e bdca
00000050: 5742 31ca dc97 12e2 09b1 fddb a58a 8c62 00000050: 5742 31ca dc97 12e2 09b1 fddb a58a 8c62
00000060: b369 038a 3d1e aa72 7c1f 39ae 49ed 6ebc 00000060: b369 038a 3d1e aa72 7c1f 39ae 49ed 6ebc
00000070: 30f8 d9b5 2e23 385a 4019 1585 8c59 be72 00000070: 30f8 d9b5 2e23 385a 4019 1585 8c59 be72
00000080: f343 fb1e b87b 16ff c5ab 0f8f 8fe9 f7cb 00000080: f343 fb1e b87b 16ff c5ab 0f8f 8fe9 f7cb
00000090: 3e66 3d8f e9f9 ecfa 1230 66f3 6835 8cea 00000090: 3e66 3d8f e9f9 ecfa 1230 66f3 6835 8cea
000000a0: efd3 0203 0100 01 000000a0: efd3 0203 0100 01
Where NN is the next payload type (i.e. the type of the payload that Where NN is the next payload type (i.e., the type of the payload that
immediately follows this Certificate payload). immediately follows this Certificate payload).
Note to the RFC editor / IANA, replace the XX above with the newly Note to the RFC editor / IANA, replace the XX above with the newly
allocated Raw Public Key number, and remove this note. allocated Raw Public Key number, and remove this note.
Authors' Addresses Authors' Addresses
Tero Kivinen Tero Kivinen
INSIDE Secure INSIDE Secure
Eerikinkatu 28 Eerikinkatu 28
 End of changes. 19 change blocks. 
42 lines changed or deleted 46 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/