Issue 70: Non-SAD updates (was: 51 - spi collisions)
<[email protected]> Sun, 6 Nov 2005 20:24:30 +0200
| Newsgroups | gmane.ietf.mobike |
|---|---|
| Message-ID | <[email protected]> |
Francis Dupont wrote:
> In your previous mail you wrote:
>
> > => I am afraid it is not enough: the link issue is not the only
> > issue: if the SPD has no indication of what are the new endpoint
> > addresses to use after an update, one cannot guarantee a new SA
> > pair will be create using the right addresses. So an update
> > should impact something somewhere in the SPD.
>
> Currently, it's beyond the scope of MOBIKE how the initial
> contact is handled. Section 1.2 says:
>
> => I don't speak about the initial contact but the case where
> there are many SPD entries requiring IPsec protection between
> the two peers and only some of them have active IPsec SA pairs.
> The peer addresses are somewhere in the SPD (this is highly
> implementation dependent) and this information must be updated.
(I created a new issue for this -- this is clearly different
from issue 51 where the IPsec SAs already exist)
In fact, 2401bis does not specify how the peer is determined
when an outgoing packet triggers the creation of an SA.
Section 4.4.3.4 writes:
For example, assume that IKE A receives an outbound packet
destined for IP address X, a host served by a security
gateway. RFC 2401 and 2401bis do not specify how A determines the
address of the IKE peer serving X. However, any peer contacted by
A as the presumed representative for X must be registered in the
PAD in order to allow the IKE exchange to be
authenticated. Moreover, when the authenticated peer asserts that
it represents X in its traffic selector exchange, the PAD will be
consulted to determine if the peer in question is authorized to
represent X.
In particular, there can be several peers that are allowed to
represent X (several different security gateways we could contact to
establish an SA for the triggering packet).
Presumably, the process is something like this:
1. Determine the right peer for the IPsec SA
2. Determine whether we have an active IKE_SA with this peer
3. If not, create an IKE_SA
4. Create the IPsec SA using CREATE_CHILD_SA exchange
(possibly piggybacked in IKE_AUTH if we needed a new IKE_SA)
The text I quoted above basically says steps 1 and 2 are beyond the
scope of 2401bis (and IMHO also MOBIKE). Step 3 is discussed in
Section 3.1 of MOBIKE draft (basically, finding out the peer
addresses is beyond the scope), and step 4 should be very simple.
> To come back to the main point, the peer addresses are dynamic and
> included somewhere in the SPD or the PAD. The way this is supported
> is very implementation dependent but the fact the information must be
> updatable by MOBIKE is not at choice.
Hmm.. as long as we agree that the inital contact (how to determine
addresses when establishing the IKE_SA) is beyond the scope of
MOBIKE (as Section 3.1 currently says), the question seems to be
just about steps 1 and 2 above, right?
But since 2401bis is not very light reading in this area, perhaps it
would be a good idea to mention that depending on exactly how those
unspecified steps are implemented, the implementation may be
affected by MOBIKE.
How about adding something like this to the "implementation
considerations" appendix?
A.2 Creating Outbound SAs
When an outbound packet requires IPsec processing but no suitable
SA exists, a new SA will be created. In this case, the host has
to determine (1) who is the right peer for this SA, (2) whether
the host already has an IKE_SA with this peer, and (3) if no
IKE_SA exists, the IP address(es) of the peer for contacting it.
Neither [IPsecArch] nor MOBIKE specifies how exactly these three
steps are carried out. [IPsecArch] Section 4.4.3.4 says:
For example, assume that IKE A receives an outbound packet
destined for IP address X, a host served by a security
gateway. RFC 2401 and 2401bis do not specify how A determines
the address of the IKE peer serving X. However, any peer
contacted by A as the presumed representative for X must be
registered in the PAD in order to allow the IKE exchange to be
authenticated. Moreover, when the authenticated peer asserts
that it represents X in its traffic selector exchange, the PAD
will be consulted to determine if the peer in question is
authorized to represent X.
In step 1, there may be more than one possible peer (e.g.,
several security gateways that are allowed to represent X). In
step 3, the host may need to consult a directory such as DNS to
determine the peer IP address(es).
Some implementations are known to use a single IP address as an
identifier for the right peer in steps 1 and 2 (in which case
step 3 becomes trivial). This approach may complicate the
implementation of MOBIKE; however, these implementation details
are beyond the scope of this specification.
Best regards,
Pasi