Hi 

While working on some text for the AD-VPN document, I came across some 
weirdness in the base IKEv2 specification:

The IDi and IDr payloads have any of several types: ID_IPV4_ADDR, ID_FQDN, 
ID_RFC822_ADDR, ID_IPV6_ADDR, ID_DER_ASN1_DN, ID_DER_ASN1_GN, and ID_KEY_ID.

Section 4 (conformance requirements) says that implementations MUST support 
"certificates containing and signed by RSA keys of size 1024 or 2048 bits, 
where the ID passed is any of ID_KEY_ID, ID_FQDN, ID_RFC822_ADDR, or 
ID_DER_ASN1_DN.".

Section 2.15 (authentication of the IKE SA has the following paragraph:
   Optionally, messages 3 and 4 MAY include a certificate, or
   certificate chain providing evidence that the key used to compute a
   digital signature belongs to the name in the ID payload.

What I could not find anywhere in the RFC is how to match name in the ID 
payload to the certificate. In HTTPS we have a requirement that either the CN 
or the dNSName alternate name match the domain name in the URL. We don't have 
similar rules for IKE, do we?

Of course, looking at RFC 5280, we have all sorts of alternate names that look 
suspiciously useful: otherName, rfc822Name, dNSName, directoryName, iPAddress. 
But it is not immediately obvious:

 1. Is it enough for the ID payload to match the alternate name?
 2. Is it enough for an ID_FQDN to match the CommonName of a certificate 
subject?
 3. Is it enough for an ID_DER_ASN1_DN to match the certificate subject?
 4. Is it enough if the ID_IPV*_ADDR matches the source IP of the IKE packet?

I've looked in RFC 4301 and found this in section 4.4.3.2:
   This document does not require that the IKE ID asserted by a peer be
   syntactically related to a specific field in an end entity
   certificate that is employed to authenticate the identity of that
   peer.  However, it often will be appropriate to impose such a
   requirement, e.g., when a single entry represents a set of peers each
   of whom may have a distinct SPD entry. 

The reason this came up in the context of AD-VPN, is that unlike "static" VPN, 
in AD-VPN the PAD is populated dynamically, so while we can manually configure 
a static VPN implementation that to assert identity "foo", a peer must present 
a certificate with value "baz" and field "bar", we'd need to either copy that 
rule to other peers in AD-VPN (regardless of which solution, btw), or we'd need 
a good rule.

So do you think it would be appropriate to mandate these matching rules in 
rfc5996bis, or should this be left to AD-VPN solutions. IOW, is such a standard 
rule needed for generic IKE/IPsec?

Yoav

_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to