Re: FW: external mobike-protocol-02 review (technical) (issue 42)

Jari Arkko <[email protected]>
Newsgroups gmane.ietf.mobike
Message-ID <[email protected]>
Pekka Savola wrote:

> a) some people will be (at least slightly) concerned that MOBIKE will 
> reveal the internal topology of the site. This may or may not be a big 
> issue (especially as probably the most IPsec sessions will go to at 
> least semi-trusted nodes), but if we don't state it now, someone is 
> going to invent a fancy MOBIKE "exploit" 5 years down the road. A 
> sentence or two in a separate paragraph in Security Considerations 
> section would probably be sufficient.

Agreed.

> b) as the conveyed addresses are used for address selection, there 
> might be issues with that. Let's say, the responder tells it has 
> addresses 20.20.20.20 and 10.0.0.2. The initiator has 10.0.0.1, and 
> possibly 30.30.30.30. The initiator and responder are in different 
> sites (a NAT between them). Now the initiator's address selection 
> policy might get skewed if it'd prefer particular kind of addresses.
> This may be one issue where an explicit warning might be useful.

Yes. I'd be even happier if we were able to know
which addresses are behind a NAT, but...

>> "While no specific timeout lengths are required, it is
>> suggested that responders continue retransmitting IKEv2
>> requests for at least five minutes before giving up."
>
>
> No problem with me, though that doesn't give any help on how 
> aggressive you should be to start with..

This would be useful to specify, I think.

>
>>> The data associated with this notification is the SHA-1
>>> hash [FIPS180-2] of the following data:
>>>
>>> ==> this spec is not algorithm-agile. (I can't find the ref
>>> right now where this is encouraged.) In this case, maybe it
>>> doesn't need to be considering the impact (I don't take a
>>> stance on that) -- but this probably deserves at least brief
>>> discussion in the security considerations section.
>>
>>
>> This part is basically copied from IKEv2 NAT detection payloads,
>> which also use SHA-1 (and IKEv2 spec didn't include any
>> discussion about this either)....
>>
>> However, here the situation might actually be slightly different,
>> since the security implications of NAT_DETECTION_*_IP payloads
>> and NO_NATS_ALLOWED are different. The simplest solution might
>> be just to place the IP addresses in this payload (and mandate
>> comparing them with the IP header)...
>>
>> Any comments from other on this?
>
>
> As these issues have seen some debate (see the thread starting from 
> http://www1.ietf.org/mail-archive/web/ipv6/current/msg05627.html as an 
> example), this seems to be something that needs to be at least 
> mentioned in security considerations; that may be sufficient, though 
> if one can easily engineer around it without hurting security, that 
> might not be a bad idea either.
>
> But the bottom line is that if the algorithm is glued in (which may be 
> OK given that you can only spoof the NAT prohibition), I think it 
> needs to be said explicitly (and it might not hurt to get tentative 
> early review from more folks in the sec area).

I think its fine to say the algorithm is "fixed" and that this
is something inherited from main IKEv2 spec.

But note that there's a difference in the algorithm being
fixed as a part of the the protocol versus fixing an algorithm
in an identifier (as in Julien's draft that you pointed) - there
may be ways of upgrading the protocol but identifier upgrading
is much harder.

>
>>> ==> I would also consider splitting out 2.3 in subsections for
>>> readability and more exact references. For example,
>>> initiator's first steps could be 2.3.1, Responder's reply
>>> 2.3.2, initiator's reply 2.3.3, and the exception 2.3.4.
>>
>>
>> Hmm... as it's currently organized, I'm not sure if splitting
>> it would actually improve the readability (it might even be
>> confusing if the subsection suddenly changes in the middle of
>> the description).
>
>
> If others have no opinion, I'm OK either way. It required a bit more 
> work from the reader to figure out which part of the section you were 
> referring to when saying "see Section 2.3" because that includes a 
> number of different things. Above would have made it shorter and 
> easier to point to, but with more careful reading, the current one 
> should be readable as well.

Close call, but I think I'd rather see one big section 2.3
than a set of sub-subsections.

>>
>> I think "includes" is correct, since it's describing a logical
>> necessity, not a choice (where we could discuss whether it
>> should be a MAY, SHOULD or MUST).
>
>
> My reasoning above was, could an implementer try to optimize the 
> protocol so that it will only send NO_NATS_ALLOWED with some but not 
> all update messages (saving bits). I.e., would the processing be any 
> different for the exchange responder if NO_NATS_ALLOWED was sometimes 
> present and sometimes not.
>
> Hence I proposed a MUST implying "if you are going to send 
> NO_NATS_ALLOWED, you have to send it *every time*, instead of just 
> when you feel like it".
>
> But if folks want to leave this a bit more open, that's fine with me..

I'd rather see the if-you-do-this-then-you-need-to-do-it-in-every-message
approach. But I'm not sure if there's need for a MUST; SHOULD appears
sufficient here.

--Jari
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.