Hi Tommy,

thank you for your comments.

I tend to agree with Paul that I find it unlikely, from an implementor’s standpoint, that many Initiators will choose to implement the puzzle logic, especially ones that are running on mobile devices. It is unlikely that the phones will be able to solve the puzzles quickly enough to beat out botnets, and it would be hard to justify the battery consumption necessary. That being said, the document does a very good job of explaining the problem space, and the other parts of its solution (rate-limiting and suggesting session resumption) make good sense. Perhaps there can be more focus on how a responder
can best protect itself if indeed the majority of its clients do not support 
puzzles?

Sections 4 - 6 describe measures other than puzzles that the responder can use 
to defend itself against DDoS attack.
Do you think it is not enough? Puzzles are a new thing, that's why more text is 
needed to explain how they are fit
into the protocol. However the draft is not solely about puzzles, and I think it covers other defending techniques in sufficient details.

One question on section 7.1.2:

If the received message contains a PUZZLE notification and doesn't
contain a COOKIE notification, then this message is malformed because
it requests to solve the puzzle, but doesn't provide enough
information to do it.  In this case the Initiator SHOULD resend
IKE_SA_INIT request.  If this situation repeats several times, then
it means that something is wrong and the IKE SA cannot be
established.

I am concerned that the suggestion for the initiator reacting to malformed IKE_SA_INIT packets is to send more traffic to the responder. The responder should not legitimately send a PUZZLE notification without a COOKIE notification, since this would be invalid. If the initiator sees this, it can either assume that (a) the responder’s implementation is out of spec, or (b) some malicious third party is deliberately modifying the unencrypted packet. In the first case, trying to send the IKE_SA_INIT again would be in vain; in the second case, we have provided a way for a third party to cause initiators to send more traffic to the responder,
thus providing an attack vector. What are your thoughts on this?

A proper responder would not send a malformed packet. An attacker could send a 
malformed response immediately
after the initiator sends the request. By the time the initiator gets the real responder’s response, it has lost state.

That is why it is always a good idea (not just in this context) for the initiator to ignore malformed responses until the timeout is reached.

That makes sense. The wording, however, could imply that the Initiator should resend the request as if in response to the malformed packet. Based on your comment, the Initiator should wait for the usual amount of time before retrying, rather than immediately retrying the packet.
It may be useful to clarify this in the text.

You are right that the Initiator should wait for the retransission timer to 
expire before resending message.
I agree that the wording is ambiguous about that. How about the following?

  If the received message contains a PUZZLE notification and doesn't
  contain a COOKIE notification, then this message is malformed because
  it requests to solve the puzzle, but doesn't provide enough
  information to do it.  In this case the Initiator MUST ignore
  the received message and continue to wait until either the valid one
  is received or the retransmission timer fires. If it fails to receive the 
valid
  message after several retransmissions of IKE_SA_INIT request, then
  it means that something is wrong and the IKE SA cannot be established.

Regards,
Valery.

Thanks,
Tommy

_______________________________________________
IPsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to