Subject: [IPsec] Is an empty CertRequest payload valid in IKEv2?

From: David Wierbowski <[email-masked]>
Date: Thu, 12 Feb 2009 23:09:46 -0500

In IKEv1 sending empty certificate request was agreed to mean "give me your
cert, any cert".  Does this same concept apply to IKEv2?  RFC 4306 does not
mention the notion of an empty cert request payload.  Section 3.6 of RFC
4306 implies that one may not need to send a certificate request in order
to receive a certificate payload by saying:

   The Certificate Payload, denoted CERT in this memo, provides a means
   to transport certificates or other authentication-related information
   via IKE.  Certificate payloads SHOULD be included in an exchange if
   certificates are available to the sender unless the peer has
   indicated an ability to retrieve this information from elsewhere
   using an HTTP_CERT_LOOKUP_SUPPORTED Notify payload.

Likewise, RFC 4945 only mentions the notion of an empty certificate request
in Section 3 (Use of Certificates in RFC 2401 and IKEv1/ISAKMP) and
appendix B which is only referenced by Section 3.

If there is no concept of an empty certificate request in IKEv2 why is the
text in section 3.6 a SHOULD and not a MUST?  It seems to me that in order
to ensure interoperability the text in Section 3.6 should read,
"Certificate payloads MUST be included in an exchange if certificates are
available to the sender.  An encoding type of Hash and URL of X.509
certificate or Hash and URL of X.509 bundle MAY be used if the peer has
indicated an ability to retrieve this information using an
HTTP_CERT_LOOKUP_SUPPORTED Notify payload."

Dave Wierbowski

z/OS Comm Server Developer

---

From: Tero Kivinen <[email-masked]>
Date: Fri, 13 Feb 2009 14:03:45 +0200

> HTTP_CERT_LOOKUP_SUPPORTED Notify payload."

There are good reasons not to send certificates in some cases. For
example if you use certificate infrastructure where you know each end
do have ability to fetch the certificates based on the ID (for example
there is LDAP/HTTP/DB access that all certificates users are using for
getting certificates), then it would not be beneficial to send
certificates every time you make IKE SA. In normal cases you SHOULD
send them (perhaps in HASH and URL form if that is supported). In some
cases you might know you do not need to so, so in that cases you can
ignore that SHOULD and not send them.

So the default for IKEv2 is the same as if in IKEv1 you had sent empty
certificate request. If you have certificates then you should send
them.
-- 
[email-masked]