On Sep 7, 2009, at 4:41 PM, Tero Kivinen wrote: > Yoav Nir writes: >> OK. Let's try this again. Is this acceptable? >> >> 2.21. Error Handling >> >> There are many kinds of errors that can occur during IKE >> processing. >> If a request is received that is badly formatted, or unacceptable >> for >> reasons of policy (e.g., no matching cryptographic algorithms), >> the >> response MUST contain a Notify payload indicating the error. If >> an >> error occurs in the processing of a response, then the initiator >> SHOULD initiate an INFORMATIONAL exchange with a Notify payload >> describing the problem. > > I think MAY is better than SHOULD there, or even forbidding this > completely. > > As said before I do not know any implementation which does this now, > and there is also problem that there is no way to correlate the > INFORMATIONAL exchange to the exchange which caused this problem. I.e. > if you have window size 5, and you have 3 CREATE_CHILD_SA exchanges > going, and then you get response to second of them that is invalid and > you send INFORMATIONAL exchange out saying there was something wrong > with the response, then there is no way for the other end to know to > which of those exchanges that INFORMATIONAL related. >
Agreed. How about SHOULD, but adding "if the error occurred in the response to an IKE_AUTH exchange, and in payloads related to authentication. A new exchange SHOULD NOT be triggered for reporting errors in child SAs, CFG, or notifications." >> All errors that occur in an IKE_AUTH exchange, causing the >> authentication to fail for whatever reason (invalid shared secret, >> invalid ID, untrusted certificate issuer, revoked or expired >> certificate, etc.) SHOULD result in an AUTHENTICATION_FAILED >> notification. If the error occurred on the responder, the >> notification is returned in the protected response, and should be >> the >> only payload in that response. > > When we discussed about the ticket #9 Pasi proposed a text that > explains this case better, i.e. specifying that the "although the > IKE_AUTH messages are encrypted and integrity protected, if the peer > receiving this notification has not authenticated the other end yet, > the information needs to be treated with caution." > > http://www.ietf.org/mail-archive/web/ipsec/current/msg04096.html > > This was supposed to be added to section 1.2, but it is not there. > Perhaps we should add it here instead of 1.2 then (or at least add it > to 1.2 if not here). > >> If the error occurs on the >> initiator, >> the notification MAY be returned in a separate INFORMATIONAL >> exchange, usually with no other payloads. > > Here creating new INFORMATIONAL exchanges based on the errors in > response may be allowed as there is no problems with correlating the > message (no other exchanges is allowed before IKE_AUTH finishes), and > there should not problems with loops, as the error notification was > related to the IKE_AUTH not generic stuff. > > Also if there was problem when processing IKE_AUTH response, I would > indicate that then the IKE_AUTH didn't finishs, thus we do not have > IKE SA. If the problem was only in the Chid / IPsec SA part of the > exchange then that can be fixed by deleting the IPsec SA. > >> Note, however, that >> messages that contain an unsupported critical payload, or where >> the >> whole message is malformed (rather than just bad payload >> contents), >> MUST be rejected in their entirety, and only lead to an >> UNSUPPORTED_CRITICAL_PAYLOAD or INVALID_SYNTAX Notification. The >> receiver should not verify the payloads related to >> authentication in >> this case. >> >> If authentication has succeeded in the IKE_AUTH exchange, the >> IKE SA >> is established, but establishing the child SA, or requesting >> configuration information may still fail. This failure does not >> automatically cause the IKE SA to be deleted. Specifically, a >> responder may include all the payloads associated with >> authentication >> (IDr, Cert and AUTH) while sending error notifications for the >> piggybacked exchanges (FAILED_CP_REQUIRED, INVALID_SELECTORS, >> NO_PROPOSAL_CHOSEN, etc.), and the initiator MUST NOT fail the >> authentication because of this. The initiator MAY, of course, for >> reasons of policy later delete such an IKE SA. >> >> Only authentication failures and malformed messages lead to a >> deletion of the IKE SA without requiring an explicit INFORMATIONAL >> exchange carrying a DELETE payload. Other error conditions >> require >> such an exchange, if policy dictates that this is needed. >> >> In an IKE_SA_INIT exchange, any error notification causes the >> exchange to fail, although some, like COOKIE, INVALID_KE_PAYLOAD >> or >> INVALID_MAJOR_VERSION may lead to a subsequent successful >> exchange. >> In an IKE_AUTH exchange, or in the INFORMATIONAL exchnage > ^^^^^^ > > Typo. > >> immediately >> following it, only the following notifications cause the IKE SA to >> be >> deleted or not created, without a DELETE payload: >> o UNSUPPORTED_CRITICAL_PAYLOAD >> o INVALID_SYNTAX >> o AUTHENTICATION_FAILED >> >> Extension documents may define new error notifications with these >> semantics, but MUST NOT use them unless the peer is known to >> understand them. > > This still leaves it bit open what happens if "malformed messages" are > received later for example in CREATE_CHILD_SA exchange, and responder > of the exchange detects that payload is malformed and returns > INVALID_SYNTAX error notification. The last part says that in IKE_AUTH > it will cause sa not to be created, but it does not talk about future > exchanges. On the other hand earlier it says "Only ... malformed > messages lead to a deletion of the IKE SA withotu requiring an > explicit INFORMATIONAL exchange carrying a DELETE payload". > > For me that would also indicate that if I get INVALID_SYNTAX (which is > returned if you send malformed messages) then you can silently delete > the IKE SA. > > Perhaps we should add new paragraph about that too. I think that any of these would be fatal to the particular exchange, but will not cause a silent discard of the IKE SA. You might have a policy that tells you to delete any IKE SA where you got or sent an INVALID_SYNTAX, but because it can also be a policy matter, we shouldn't really mandate it. > -- > kivi...@iki.fi > > Scanned by Check Point Total Security Gateway. _______________________________________________ IPsec mailing list IPsec@ietf.org https://www.ietf.org/mailman/listinfo/ipsec