<not wearing any hats>

1) First, sending a comment I already sent to the mailing list on 
March 17:

In TLS session resumption, resumption basically creates a new TLS
"connection" (using information from local session cache, or ticket in
case of RFC5077), and does *not* really resume the old connection.
The old connection can still exist (and the session resumption
handshake won't cause it to be closed), or it could have been
interrupted earlier, or it could have been cleanly closed earlier.

The current ikev2-resumption draft, on the other hand, seems to assume
a quite different model, where resumption replaces the old connection,
and can be done only if the old connection was interrupted.

This would seem to preclude one case discussed earlier: I close my
laptop (cleanly) at work, commute, and reconnect at home (without
having to do EAP again; e.g. type in one-time password).  Or "switch
off my phone (cleanly), fly to IETF meeting, and switch it back on".

In case of IKEv2, having multiple parallel IKE connections is probably
less common than with TLS (where it's very common), but to me it seems
using the IKE_SESSION_RESUME handshake when the old IKE_SA was cleanly
closed would be quite useful, and should be supported. (And making the
"new connection" completely independent of the old one might simplify
the protocol anyway.)

(Or in other words: I'd propose changing Section 7.2, 1st paragraph,
and making these MUSTs MAYs.)


2) The draft is currently very vague about the use cases for this
mechanism. As the discussion has shown, there's more than one use
case, and folks clearly have different opinions about which of them
are important and which are not. 

However, being vague makes the draft quite difficult to understand for
a reader that hasn't participated in the discussions. I think the
draft should mention that there are several different use cases, and
give concrete examples (but not take an opinion about which of them
are important or not). Perhaps something like this (going somewhere in
Section 1):

  Possible situations where the mechanism specified in this document
  could be useful include the following (note that this list is not
  meant to be exhaustive, and any particular deployment may not care
  about all of these):

  - If a client temporarily loses network connectivity (and the IKE
    SA times out), this mechanism could be used to re-establish the 
    SA with less overhead (network, CPU, authentication infrastructure)
    and without requiring user interaction for authentication.

  - If the connectivity problems affect a large number of clients
    (e.g., a large remote access VPN gateway), when the connectivity
    is restored, all the clients might reconnect almost simultaneously.
    This mechanism could be used to reduce the load spike for  
    cryptographic operations and authentication infrastructure.

  - Losing connectivity can also be predictable and planned; for 
    example, putting a laptop to "stand-by" mode before travelling.
    This mechanisms could be used to re-establish the SA when 
    the laptop is switch backed on (again, with less overhead and
    without requiring user interaction for authentication).


3) Section 1, 2nd paragraph should also mention one additional reason
someone might have for using this mechanism (even if roundtrips or CPU
time is not an issue): doing the authentication from scratch could
require user interaction.


4) Some aspects of the protocol are described very thinly. For example:

- Section 4.2 describes what message is sent by the gateway, but not 
  what the client should do when it receives it
- Section 4.3 just says the gateway "accepts the ticket", but not
  all the steps involved in this (there's lot about this in Sections 5
  and 6 though)
- Section 4.3 says the client initiates an IKE_AUTH exchange, but 
  doesn't say much about how this differs from an ordinary IKE_AUTH 
  exchange (except for AUTH payload)
- Section 4.4 it's possible to use N(COOKIE) in IKE_SESSION_RESUME,
  but nothing else (e.g. in IKE_SA_INIT request, N(COOKIE) must 
  always be the first payload -- but the message diagram earlier
  puts other notifications at the end. Which is it?)

For all of these, I'm sure the authors have some idea how this is
supposed to work -- but I don't think the current text is very likely
to lead to interoperable implementations. I'd recommend taking
Sections 4.1...4.6, 4.8, 5 and 6 and doing a reorganization for that
text (Section 4.7 could probably be separate).

5) Section 5 and 6 present roughly the same information, and need to
be combined. Currently, the table I sent was just added to the end of
the old text (and some of the old text was plain wrong -- for example,
the client cannot obviously take the SA value from the ticket).

6) Section 6: The word "Unspecified" is probably wrong here -- this
document has to specify these (but clearly an implementation doesn't
have to include in the ticket any data it never uses).

7) Section 9.6, "using channel security" sounds like it would
refer to the IKEv2 encrypted payloads -- but that would be clearly
wrong?

8) The text about handling IDr is very unclear -- certainly the
gateway can't start to use some other IDr in the new IKE_SA,
without authenticating it?

9) Section 7.1: Why are storing SPIi/SPIr and the authentication 
method "MUST"s? (The gateway doesn't seem to really need those
for anything)

Best regards,
Pasi
_______________________________________________
IPsec mailing list
IPsec@ietf.org
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to