620 lines
22 KiB
Text
620 lines
22 KiB
Text
|
||
|
||
|
||
|
||
|
||
|
||
Network Working Group M. Myers
|
||
Request for Comments: 4806 TraceRoute Security LLC
|
||
Category: Standards Track H. Tschofenig
|
||
Siemens Networks GmbH & Co KG
|
||
February 2007
|
||
|
||
|
||
Online Certificate Status Protocol (OCSP) Extensions to IKEv2
|
||
|
||
Status of This Memo
|
||
|
||
This document specifies an Internet standards track protocol for the
|
||
Internet community, and requests discussion and suggestions for
|
||
improvements. Please refer to the current edition of the "Internet
|
||
Official Protocol Standards" (STD 1) for the standardization state
|
||
and status of this protocol. Distribution of this memo is unlimited.
|
||
|
||
Copyright Notice
|
||
|
||
Copyright (C) The IETF Trust (2006).
|
||
|
||
Abstract
|
||
|
||
While the Internet Key Exchange Protocol version 2 (IKEv2) supports
|
||
public key based authentication, the corresponding use of in-band
|
||
Certificate Revocation Lists (CRL) is problematic due to unbounded
|
||
CRL size. The size of an Online Certificate Status Protocol (OCSP)
|
||
response is however well-bounded and small. This document defines
|
||
the "OCSP Content" extension to IKEv2. A CERTREQ payload with "OCSP
|
||
Content" identifies zero or more trusted OCSP responders and is a
|
||
request for inclusion of an OCSP response in the IKEv2 handshake. A
|
||
cooperative recipient of such a request responds with a CERT payload
|
||
containing the appropriate OCSP response. This content is
|
||
recognizable via the same "OCSP Content" identifier.
|
||
|
||
When certificates are used with IKEv2, the communicating peers need a
|
||
mechanism to determine the revocation status of the peer's
|
||
certificate. OCSP is one such mechanism. This document applies when
|
||
OCSP is desired and security policy prevents one of the IKEv2 peers
|
||
from accessing the relevant OCSP responder directly. Firewalls are
|
||
often deployed in a manner that prevents such access by IKEv2 peers
|
||
outside of an enterprise network.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 1]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
Table of Contents
|
||
|
||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||
3. Extension Definition . . . . . . . . . . . . . . . . . . . . . 4
|
||
3.1. OCSP Request . . . . . . . . . . . . . . . . . . . . . . . 4
|
||
3.2. OCSP Response . . . . . . . . . . . . . . . . . . . . . . 5
|
||
4. Extension Requirements . . . . . . . . . . . . . . . . . . . . 5
|
||
4.1. Request for OCSP Support . . . . . . . . . . . . . . . . . 5
|
||
4.2. Response to OCSP Support . . . . . . . . . . . . . . . . . 6
|
||
5. Examples and Discussion . . . . . . . . . . . . . . . . . . . 6
|
||
5.1. Peer to Peer . . . . . . . . . . . . . . . . . . . . . . . 6
|
||
5.2. Extended Authentication Protocol (EAP) . . . . . . . . . . 7
|
||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 8
|
||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
|
||
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9
|
||
9. Normative References . . . . . . . . . . . . . . . . . . . . . 9
|
||
|
||
1. Introduction
|
||
|
||
Version 2 of the Internet Key Exchange (IKE) protocol [IKEv2]
|
||
supports a range of authentication mechanisms, including the use of
|
||
public key based authentication. Confirmation of certificate
|
||
reliability is essential in order to achieve the security assurances
|
||
public key cryptography provides. One fundamental element of such
|
||
confirmation is reference to certificate revocation status (see
|
||
[RFC3280] for additional detail).
|
||
|
||
The traditional means of determining certificate revocation status is
|
||
through the use of Certificate Revocation Lists (CRLs). IKEv2 allows
|
||
CRLs to be exchanged in-band via the CERT payload.
|
||
|
||
However, CRLs can grow unbounded in size. Many real-world examples
|
||
exist to demonstrate the impracticality of including a multi-megabyte
|
||
file in an IKE exchange. This constraint is particularly acute in
|
||
bandwidth-limited environments (e.g., mobile communications). The
|
||
net effect is exclusion of in-band CRLs in favor of out-of-band (OOB)
|
||
acquisition of these data, should they even be used at all.
|
||
|
||
Reliance on OOB methods can be further complicated if access to
|
||
revocation data requires use of IPsec (and therefore IKE) to
|
||
establish secure and authorized access to the CRLs of an IKE
|
||
participant. Such network access deadlock further contributes to a
|
||
reduced reliance on the status of certificate revocations in favor of
|
||
blind trust.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 2]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
OCSP [RFC2560] offers a useful alternative. The size of an OCSP
|
||
response is bounded and small and therefore suitable for in-band
|
||
IKEv2 signaling of a certificate's revocation status.
|
||
|
||
This document defines an extension to IKEv2 that enables the use of
|
||
OCSP for in-band signaling of certificate revocation status. A new
|
||
content encoding is defined for use in the CERTREQ and CERT payloads.
|
||
A CERTREQ payload with "OCSP Content" identifies zero or more trusted
|
||
OCSP responders and is a request for inclusion of an OCSP response in
|
||
the IKEv2 handshake. A cooperative recipient of such a request
|
||
responds with a CERT payload containing the appropriate OCSP
|
||
response. This content is recognizable via the same "OCSP Content"
|
||
identifier.
|
||
|
||
2. Terminology
|
||
|
||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||
document are to be interpreted as described in RFC 2119 [RFC2119].
|
||
|
||
This document defines the following terms:
|
||
|
||
OCSP request:
|
||
|
||
An OCSP request refers to the CERTREQ payload that contains a new
|
||
content encoding, referred to as OCSP Content, that conforms to
|
||
the definition and behavior specified in Section 3.1.
|
||
|
||
OCSP response:
|
||
|
||
An OCSP response refers to the CERT payload that contains a new
|
||
content encoding, referred to as OCSP Content, that conforms to
|
||
the definition and behavior specified in Section 3.2.
|
||
|
||
OCSP responder:
|
||
|
||
The term OCSP responder refers to the entity that accepts requests
|
||
from an OCSP client and returns responses as defined in [RFC2560].
|
||
Note that the OCSP responder does not refer to the party that
|
||
sends the CERT message.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 3]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
3. Extension Definition
|
||
|
||
With reference to Section 3.6 of [IKEv2], the values for the Cert
|
||
Encoding field of the CERT payload are extended as follows (see also
|
||
the IANA Considerations section of this document):
|
||
|
||
Certificate Encoding Value
|
||
-------------------- -----
|
||
OCSP Content 14
|
||
|
||
3.1. OCSP Request
|
||
|
||
A value of OCSP Content (14) in the Cert Encoding field of a CERTREQ
|
||
Payload indicates the presence of zero or more OCSP responder
|
||
certificate hashes in the Certificate Authority field of the CERTREQ
|
||
payload. Section 2.2 of [RFC2560] defines responses, which belong to
|
||
one of the following three groups:
|
||
|
||
(a) the CA who issued the certificate
|
||
|
||
(b) a Trusted Responder whose public key is trusted by the requester
|
||
|
||
(c) a CA Designated Responder (Authorized Responder) who holds a
|
||
specially marked certificate issued directly by the CA,
|
||
indicating that the responder may issue OCSP responses for that
|
||
CA
|
||
|
||
In case of (a), the use of hashes in the CERTREQ message is not
|
||
needed since the OCSP response is signed by the CA who issued the
|
||
certificate. In case of (c), the OCSP response is signed by the CA
|
||
Designated Responder whereby the sender of the CERTREQ message does
|
||
not know the public key in advance. The presence of OCSP Content in
|
||
a CERTREQ message will identify one or more OCSP responders trusted
|
||
by the sender in case of (b).
|
||
|
||
The presence of OCSP Content (14) in a CERTREQ message:
|
||
|
||
1. identifies zero or more OCSP responders trusted by the sender;
|
||
|
||
2. notifies the recipient of sender's support for the OCSP extension
|
||
to IKEv2; and
|
||
|
||
3. notifies the recipient of sender's desire to receive OCSP
|
||
confirmation in a subsequent CERT payload.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 4]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
3.2. OCSP Response
|
||
|
||
A value of OCSP Content (14) in the Cert Encoding field of a CERT
|
||
Payload indicates the presence of an OCSP response in the Certificate
|
||
Data field of the CERT payload.
|
||
|
||
Correlation between an OCSP response CERT payload and a corresponding
|
||
CERT payload carrying a certificate can be achieved by matching the
|
||
OCSP response CertID field to the certificate. See [RFC2560] for the
|
||
definition of OCSP response content.
|
||
|
||
4. Extension Requirements
|
||
|
||
4.1. Request for OCSP Support
|
||
|
||
Section 3.7 of [IKEv2] allows for the concatenation of trust anchor
|
||
hashes as the Certification Authority value of a single CERTREQ
|
||
message. There is no means however to indicate which among those
|
||
hashes, if present, relates to the certificate of a trusted OCSP
|
||
responder.
|
||
|
||
Therefore, an OCSP request, as defined in Section 3.1 above, is
|
||
transmitted separate from any other CERTREQ payloads in an IKEv2
|
||
exchange.
|
||
|
||
Where it is useful to identify more than one trusted OCSP responder,
|
||
each such identification SHALL be concatenated in a manner identical
|
||
to the method documented in Section 3.7 of [IKEv2] regarding the
|
||
assembly of multiple trust anchor hashes.
|
||
|
||
The Certification Authority value in an OCSP request CERTREQ SHALL be
|
||
computed and produced in a manner identical to that of trust anchor
|
||
hashes as documented in Section 3.7 of [IKEv2].
|
||
|
||
Upon receipt of an OCSP response CERT payload corresponding to a
|
||
prior OCSP request CERTREQ, the CERTREQ sender SHALL incorporate the
|
||
OCSP response into path validation logic defined by [RFC3280].
|
||
|
||
Note that the lack of an OCSP response CERT payload after sending an
|
||
OCSP request CERT payload might be an indication that this OCSP
|
||
extension is not supported. As a result, it is recommended that
|
||
nodes be configured to require a response only if it is known that
|
||
all peers do in fact support this extension. Otherwise, it is
|
||
recommended that the nodes be configured to try OCSP and, if there is
|
||
no response, attempt to determine certificate revocation status by
|
||
some other means.
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 5]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
4.2. Response to OCSP Support
|
||
|
||
Upon receipt of an OCSP request CERTREQ payload, the recipient SHOULD
|
||
acquire the related OCSP-based assertion and produce and transmit an
|
||
OCSP response CERT payload corresponding to the certificate needed to
|
||
verify its signature on IKEv2 payloads.
|
||
|
||
An OCSP response CERT payload is transmitted separate from any other
|
||
CERT payload in an IKEv2 exchange.
|
||
|
||
The means by which an OCSP response may be acquired for production of
|
||
an OCSP response CERT payload is out of scope of this document.
|
||
|
||
The Certificate Data field of an OCSP response CERT payload SHALL
|
||
contain a DER-encoded OCSPResponse structure as defined in [RFC2560].
|
||
|
||
5. Examples and Discussion
|
||
|
||
This section shows the standard IKEv2 message examples with both
|
||
peers, the initiator and the responder, using public key based
|
||
authentication, CERTREQ and CERT payloads. The first instance
|
||
corresponds to Section 1.2 of [IKEv2], the illustrations of which are
|
||
reproduced below for reference.
|
||
|
||
5.1. Peer to Peer
|
||
|
||
Application of the IKEv2 extensions defined in this document to the
|
||
peer-to-peer exchange defined in Section 1.2 of [IKEv2] is as
|
||
follows. Messages are numbered for ease of reference.
|
||
|
||
Initiator Responder
|
||
----------- -----------
|
||
(1) HDR, SAi1, KEi, Ni -->
|
||
|
||
(2) <-- HDR, SAr1, KEr, Nr,
|
||
CERTREQ(OCSP Request)
|
||
(3) HDR, SK {IDi, CERT(certificate),-->
|
||
CERT(OCSP Response),
|
||
CERTREQ(OCSP Request),
|
||
[IDr,] AUTH, SAi2, TSi, TSr}
|
||
|
||
(4) <-- HDR, SK {IDr,
|
||
CERT(certificate),
|
||
CERT(OCSP Response),
|
||
AUTH, SAr2, TSi, TSr}
|
||
|
||
OCSP Extensions to Baseline IKEv2
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 6]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
In (2), Responder sends an OCSP request CERTREQ payload identifying
|
||
zero or more OCSP responders trusted by the Responder. In response,
|
||
Initiator sends in (3) both a CERT payload carrying its certificate
|
||
and an OCSP response CERT payload covering that certificate. In (3),
|
||
Initiator also requests an OCSP response via the OCSP request CERTREQ
|
||
payload. In (4), the Responder returns its certificate and a
|
||
separate OCSP response CERT payload covering that certificate.
|
||
|
||
It is important to note that in this scenario, the Responder in (2)
|
||
does not yet possess the Initiator's certificate and therefore cannot
|
||
form an OCSP request as defined in [RFC2560]. To bypass this
|
||
problem, hashes are used as defined in Section 4.1. In such
|
||
instances, OCSP Requests are simply index values into these data.
|
||
Thus, it is easily inferred that OCSP responses can be produced in
|
||
the absence of a corresponding request (provided that OCSP nonces are
|
||
not used, see Section 6).
|
||
|
||
It is also important in extending IKEv2 toward OCSP in this scenario
|
||
that the Initiator has certain knowledge that the Responder is
|
||
capable of and willing to participate in the extension. Yet the
|
||
Responder will only trust one or more OCSP responder signatures.
|
||
These factors motivate the definition of OCSP responder hash
|
||
extension.
|
||
|
||
5.2. Extended Authentication Protocol (EAP)
|
||
|
||
Another scenario of pressing interest is the use of EAP to
|
||
accommodate multiple end users seeking enterprise access to an IPsec
|
||
gateway. Note that OCSP is used for the certificate status check of
|
||
the server side IKEv2 certificate and not for certificates that may
|
||
be used within EAP methods (either by the EAP peer or the EAP
|
||
server). As with the preceding section, the following illustration
|
||
is extracted from [IKEv2]. In the event of a conflict between this
|
||
document and [IKEv2] regarding these illustrations, [IKEv2] SHALL
|
||
dominate.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 7]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
Initiator Responder
|
||
----------- -----------
|
||
(1) HDR, SAi1, KEi, Ni -->
|
||
(2) <-- HDR, SAr1, KEr, Nr
|
||
(3) HDR, SK {IDi, -->
|
||
CERTREQ(OCSP Request),
|
||
[IDr,] AUTH, SAi2, TSi, TSr}
|
||
(4) <-- HDR, SK {IDr,
|
||
CERT(certificate),
|
||
CERT(OCSP Response),
|
||
AUTH, EAP}
|
||
(5) HDR, SK {EAP} -->
|
||
|
||
(6) <-- HDR, SK {EAP (success)}
|
||
|
||
(7) HDR, SK {AUTH} -->
|
||
|
||
(8) <-- HDR, SK {AUTH, SAr2, TSi,
|
||
TSr }
|
||
|
||
OCSP Extensions to EAP in IKEv2
|
||
|
||
In the EAP scenario, messages (5) through (8) are not relevant to
|
||
this document.
|
||
|
||
6. Security Considerations
|
||
|
||
For the reasons noted above, an OCSP request, as defined in Section
|
||
3.1, is used in place of an OCSP request syntax to trigger production
|
||
and transmission of an OCSP response. OCSP, as defined in [RFC2560],
|
||
may contain a nonce request extension to improve security against
|
||
replay attacks (see Section 4.4.1 of [RFC2560] for further details).
|
||
The OCSP request defined by this document cannot accommodate nonces.
|
||
[RFC2560] deals with this aspect by allowing pre-produced responses.
|
||
|
||
[RFC2560] points to this replay vulnerability and indicates: "The use
|
||
of precomputed responses allows replay attacks in which an old (good)
|
||
response is replayed prior to its expiration date but after the
|
||
certificate has been revoked. Deployments of OCSP should carefully
|
||
evaluate the benefit of precomputed responses against the probability
|
||
of a replay attack and the costs associated with its successful
|
||
execution." Nodes SHOULD make the required freshness of an OCSP
|
||
response configurable.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 8]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
7. IANA Considerations
|
||
|
||
This document defines one new field type for use in the IKEv2 Cert
|
||
Encoding field of the Certificate Payload format. Official
|
||
assignment of the "OCSP Content" extension to the Cert Encoding table
|
||
of Section 3.6 of [IKEv2] has been acquired from IANA.
|
||
|
||
Certificate Encoding Value
|
||
-------------------- -----
|
||
OCSP Content 14
|
||
|
||
8. Acknowledgements
|
||
|
||
The authors would like to thank Russ Housley for his support.
|
||
Additionally, we would like to thank Pasi Eronen, Nicolas Williams,
|
||
Liqiang (Larry) Zhu, Lakshminath Dondeti, and Paul Hoffman for their
|
||
review. Pasi gave us invaluable last-call comments. We would also
|
||
like to thank Tom Taylor for his Gen-ART review. Jari Arkko gave us
|
||
IESG review comments.
|
||
|
||
9. Normative References
|
||
|
||
[IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol",
|
||
RFC 4306, December 2005.
|
||
|
||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||
|
||
[RFC2560] Myers, M., Ankney, R., Malpani, A., Galperin, S., and C.
|
||
Adams, "X.509 Internet Public Key Infrastructure Online
|
||
Certificate Status Protocol - OCSP", RFC 2560, June 1999.
|
||
|
||
[RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet
|
||
X.509 Public Key Infrastructure Certificate and
|
||
Certificate Revocation List (CRL) Profile", RFC 3280,
|
||
April 2002.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 9]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
Authors' Addresses
|
||
|
||
Michael Myers
|
||
TraceRoute Security LLC
|
||
|
||
EMail: mmyers@fastq.com
|
||
|
||
|
||
Hannes Tschofenig
|
||
Siemens Networks GmbH & Co KG
|
||
Otto-Hahn-Ring 6
|
||
Munich, Bavaria 81739
|
||
Germany
|
||
|
||
EMail: Hannes.Tschofenig@siemens.com
|
||
URI: http://www.tschofenig.com
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 10]
|
||
|
||
RFC 4806 OCSP Extensions to IKEv2 February 2007
|
||
|
||
|
||
Full Copyright Statement
|
||
|
||
Copyright (C) The IETF Trust (2007).
|
||
|
||
This document is subject to the rights, licenses and restrictions
|
||
contained in BCP 78, and except as set forth therein, the authors
|
||
retain all their rights.
|
||
|
||
This document and the information contained herein are provided on an
|
||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
|
||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
|
||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
|
||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
|
||
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
||
Intellectual Property
|
||
|
||
The IETF takes no position regarding the validity or scope of any
|
||
Intellectual Property Rights or other rights that might be claimed to
|
||
pertain to the implementation or use of the technology described in
|
||
this document or the extent to which any license under such rights
|
||
might or might not be available; nor does it represent that it has
|
||
made any independent effort to identify any such rights. Information
|
||
on the procedures with respect to rights in RFC documents can be
|
||
found in BCP 78 and BCP 79.
|
||
|
||
Copies of IPR disclosures made to the IETF Secretariat and any
|
||
assurances of licenses to be made available, or the result of an
|
||
attempt made to obtain a general license or permission for the use of
|
||
such proprietary rights by implementers or users of this
|
||
specification can be obtained from the IETF on-line IPR repository at
|
||
http://www.ietf.org/ipr.
|
||
|
||
The IETF invites any interested party to bring to its attention any
|
||
copyrights, patents or patent applications, or other proprietary
|
||
rights that may cover technology that may be required to implement
|
||
this standard. Please address the information to the IETF at
|
||
ietf-ipr@ietf.org.
|
||
|
||
Acknowledgement
|
||
|
||
Funding for the RFC Editor function is currently provided by the
|
||
Internet Society.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Myers & Tschofenig Standards Track [Page 11]
|
||
|