Hi Michael,

  Here's some figures from I-Ds to illustrate what I'm talking about.
Some of the overhead is because both of these are technically client-
server protocols but IKEv2 is initiated by the initiator/client and
EAP is initiated by the responder/server (due to fact that it's design
was for PPP and authentication begins after "link up" notification to
the server-- a call is received at a modem bank, an 802.11 association
completed, etc). Both of these end with a message from the responder/
server so to fit these things together it requires some overhead beyond
a simple +1 message.

  Here's the IKEv2 message exchange for EAP-only from the I-D:

   Initiator                   Responder
     -----------                 -----------
      HDR, SAi1, KEi, Ni,
           [N(NAT_DETECTION_SOURCE_IP),
            N(NAT_DETECTION_DESTINATION_IP)]  -->

                            <--   HDR, SAr1, KEr, Nr, [CERTREQ],
                                       [N(NAT_DETECTION_SOURCE_IP),
                                        N(NAT_DETECTION_DESTINATION_IP)]

      HDR, SK { IDi, [IDr], SAi2, TSi, TSr,
                N(EAP_ONLY_AUTHENTICATION),
                [CP(CFG_REQUEST)] }  -->

                            <--   HDR, SK { IDr, EAP(Request) }

      HDR, SK { EAP(Response) }  -->

                            <--   HDR, SK { EAP(Request) }

      HDR, SK { EAP(Response) }  -->

                            <--   HDR, SK { EAP(Success) }

      HDR, SK { AUTH }  -->

                            <--   HDR, SK { AUTH, SAr2, TSi, TSr,
                                            [CP(CFG_REPLY] }

Notice there are 3 messages for IKEv2 handling before the EAP stuff
and then 2 more messages after the EAP stuff. So it's 5 plus whatever
the EAP method adds. What the EAP method adds is indeterminate and depends
on the particular EAP method used (it shows 5 but that's just an example).
So let's plug in an EAP method that has been proposed for use in EAP-only,
EAP-pwd (EAP-EKE has also been proposed but it is exactly the same). This
is figure 2 from the EAP-pwd I-D (soon to be an RFC!):

           +--------+                                     +--------+
           |        |                  EAP-pwd-ID/Request |        |
           |  EAP   |<------------------------------------|  EAP   |
           |  peer  |                                     | server |
           |        | EAP-pwd-ID/Response                 |        |
           |        |------------------------------------>|        |
           |        |                                     |        |
           |        |              EAP-pwd-Commit/Request |        |
           |        |<------------------------------------|        |
           |        |                                     |        |
           |        | EAP-pwd-Commit/Response             |        |
           |        |------------------------------------>|        |
           |        |                                     |        |
           |        |             EAP-pwd-Confirm/Request |        |
           |        |<------------------------------------|        |
           |        |                                     |        |
           |        | EAP-pwd-Confirm/Response            |        |
           |        |------------------------------------>|        |
           |        |                                     |        |
           |        |          EAP-Success                |        |
           |        |<------------------------------------|        |
           +--------+                                     +--------+

So you see this EAP method does 3 request-response exchanges then a
success. That's 7 messages and 7 + 5 = 12 messages to do this exchange
using the EAP-only technique.

  Here's the same underlying key exchange done in SPSK, figure 4 from
the I-D:

     Initiator                          Responder
      -----------                        -----------
       HDR, SAi1, KEi, Ni       -->
                                <--    HDR, SAr1, KEr, Nr, [CERTREQ]
       HDR, SK {IDi, Commit, [IDr,]
                SAi2, TSi, TSr} -->
                                <--    HDR, SK {IDr, Commit, Confirm}
       HDR, SK {Confirm, AUTH}  -->
                                <--    HDR, SK {AUTH, SAr2, TSi, TSr}

That's 6 messages.

  So we have 6 messages for SPSK and 12 for EAP-only plus EAP method.
A more uncharitable, but arguably accurate, way of looking at this is
to note that the IKEv2 exchange, by itself, is 4 messages so SPSK only
adds 2 while EAP-only plus an EAP method adds 8. So really EAP-only plus
an EAP method is _4 times the number of messages_ of SPSK, not double.
And any channel bindings solution necessary for EAP-only will just
increase the number of messages.

  Dan.

On Mon, December 7, 2009 4:34 am, Michael Richardson wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
>>>>>> "Dan" == Dan Harkins <dhark...@lounge.org> writes:
>     >>> 2. solves the specific problem it is aimed at poorly-- doubling
>     >>> of the number of messages, requiring writing and testing of new
>     >>> state EAP state machines that are, otherwise, unnecessary; and,
>     >> Does it double, or does it really just "n+1", which is doubling
>     >> if the rest of the protocol has "n=1"?  I also wonder if this is
>     >> really a sufficiently compelling reason to have two sets of code.
>
>     Dan>   For the proposed EAP methods, EAP-EKE and EAP-PWD, it really
>     Dan> is double. I don't think it's possible to do the kind of
>     Dan> exchange that's required-- mutual authentication, key
>     Dan> generation-- in n=1 messages.
>
>     Dan>   If you look at the SPSK draft, it is doing essentially the
>     Dan> same exchange as EAP-PWD and doing it in 6 messages total. If
>     Dan> you do EAP-only plus EAP-PWD (or EAP-only plus EAP-EKE, doesn't
>     Dan> matter) it's 12 messages total.
>
> Is this 6 messages, times 2 directions?
> Or just 6 messages. I can not quite see why the EAP encapsulation
> *doubles* the number of round trips.  I can see how it might increase it
> by 1, due to need to do some EAP thing.
>
>     Dan>   One of the big problems with EAP is that it is a completely
>     Dan> underspecified shim. That's why every EAP method needs to
>     Dan> roll-its-own identity exchange (the identity obtained by EAP is
>     Dan> not suitable for authentication purposes) and roll-its-own
>
> Yes, I completed understand this problem.
> I'm suggesting that if we care for channel bindings for EAP, that we
> (security people who care) need to solve this once and for all.
>
>     Dan>   Keep in mind, though, that however channel bindings gets
>     Dan> solved, it is only going to further increase the number of
>     Dan> messages necessary to get what you can get in SPSK in 6, and
>     Dan> only 6, messages :-)
>
> Again, I do not know why it has to double the number of round trips.
> I see one extra round trip caused by the EAP-ID process, and then it's
> the same number both ways.
>
> Perhaps you can draw a time-sequence diagram for this to convince me?
>
> - --
> ]       He who is tired of Weird Al is tired of life!           |
> firewalls  [
> ]   Michael Richardson, Sandelman Software Works, Ottawa, ON    |net
> architect[
> ] m...@sandelman.ottawa.on.ca http://www.sandelman.ottawa.on.ca/ |device
> driver[
>    Kyoto Plus: watch the video
> <http://www.youtube.com/watch?v=kzx1ycLXQSE>
>                      then sign the petition.
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Finger me for keys
>
> iQEVAwUBSxz2WICLcPvd0N1lAQInLQgAiLf0gKq8aHRAKq4r7oaAUXGYYqt9q3Kk
> g+KQYGjBrTmfXCEOYziSNonIN7XrjX4ePn7LHWk9AsWWh22y/esYF3Y5n4fkhktV
> an2SY9AE9CYz2PsXACZut2oRAM/YtHSeSnvvPbTzQ6i5bYoVeJqwthM4XIhpoFL1
> 6J9wY2owu1JzPI5KZeDDefbZscNjI7JVvHvI5deR8qtdykn2W2oOaxhaEEEpPY7p
> gIwkBIhFsnwSslF2sWUPmosDI/CTmo+KKFCa0QbXOP/D93raAgnNmKdDno9AwGjU
> FgAXkh/Z7102hkytkc64D6Lg7wU0fhxo+T+m5OkKV3RlfszjSQe9YA==
> =nC7X
> -----END PGP SIGNATURE-----
> _______________________________________________
> IPsec mailing list
> IPsec@ietf.org
> https://www.ietf.org/mailman/listinfo/ipsec
>


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

Reply via email to