Paul Wouters writes:
> On Mon, 31 Aug 2020, Tero Kivinen wrote:
> 
> > That should not matter, the server should not invalidate tickets even
> > if there is liveness failures, as if it does that every time there is
> > transient network failure the resumption is useless.
> 
> I agree, but that is not what the RFC says. Perhaps this would qualify
> for an Errata ?

Note, that when liveness check fails there is NO delete to be sent
over the IKE SA, thus IKE SA is not deleted, it was just deemed to
have failed. If any implementation sends Delete notification when
liveness check fails that is a bug...

RFC7296 says:

----------------------------------------------------------------------
2.1. Use of Retransmission Timers
...
   IKE is a reliable protocol: the initiator MUST retransmit a request
   until it either receives a corresponding response or deems the IKE SA
   to have failed.  In the latter case, the initiator discards all state
   associated with the IKE SA and any Child SAs that were negotiated
   using that IKE SA.
----------------------------------------------------------------------

I.e., there is no delete notification sent, and IKE sa is not deleted,
initiator just discards all state associated with IKE SA (and this
would be the SGW side doing and failing the liveness checks). If the
stateless resumption is used, then there is no state in SGW side
anyway to be stored, so when client comes back with resumption request
then server recreates the state.

RFC5723 explitly says that "In particular, when an IKE SA is deleted
by the client or the gateway, the client MUST delete its stored
ticket.", which would mean active delete operation, not just
destroying of state because of liveness failures.

Also 3 is quite clear that losing network connection and ike sa timing
out because of liveness tests does NOT invalidate ticket, as this is
expected case where ticket is used to reconnect. Same with suspending
laptop. 

> > At one point I did propose an option for MOBIKE to send address update
> > without any addresses, i.e., saying that I will go to sleep so I will
> > not have any addresses you can use to connect to me, do not call me, I
> > will call you when I am back...
> >
> > If I remember right people considered it too complex, and this was not
> > accepted
> 
> But it is possible, sort of. The client just sleeps and upon wake up
> sends the UPDATE  without any addresses specified and the responder
> will update to the address and port of the IKE header (after packet
> was authenticated). But you are right in that with MOBIKE, we have no
> way of saying "please suspend any liveness tests - I will be out of
> the office".
> 
> I do think overall it would have been better to have 1 solution instead
> of 2. But I think with supporting both, things can work the way we want.
> 
> For unexpected network outages we can switch interface using MOBIKE.
> Like phone losing wifi briefly in the elevator. For expected downtime,
> eg "phone is going to sleep mode" we can use RESUME to reconnect.

You use mobike if your IP-addresses changes, but IKE SA is still
active. You use resume if you were away so long that IKE SA state was
cleared out on the SGW.

> Resume does take two roundtrips over mobike taking one. So perhaps it
> would still be nice to have the "out of office notify" to instruct
> the server to disable liveness so MOBIKE can be used instead of RESUME.
> However, that does take more resources on the server. But looking at
> realy busy servers now - it is a stream of (re)connecting clients,
> so I'll take any solution even if it needs state as it is less work
> than all these new DH exchanges.

Modifying MOBIKE so that there is one new NO_ADDRESSES notification
which says there will not be any addresses for the client, not even
the one over which this message came in, and then server should simply
blackhole all communications for this client until it comes back and
gives some addresses (and of course disable liveness checks). If IKE
SA or Child SA expires or needs to be rekeyed then as packets are
blackholed, the SGW acts just like the operation timedout, i.e.
descards IKE SA state).

In that case when client comes back and tries to do mobike, it will
fail with INVALID_IKE_SPI as the SGW has descarded state for that IKE
SA, so client can do resumption to get IKE SA back.
-- 
kivi...@iki.fi

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

Reply via email to