> On Mar 20, 2016, at 17:25, Graham Bartlett (grbartle) <grbar...@cisco.com> > wrote: > > Hi Valery / Paul > > Paul - does your implementation send the INFORMATIONAL + other messages > (Private Use Error) to a single SA_INIT? Just to clarify the issue > observed seemed to be SA_INIT is sent by Initiator, Responder sends an > SA_INIT reply plus numerous INFORMATIONAL messages separately to this > single SA_INIT message containing Private Use Errors.
No. Only one message is sent. So no amplification is caused. > > GB> I’ve made some comments inline for clarity. > > cheers > >> On 20/03/2016 06:43, "Valery Smyslov" <sva...@gmail.com> wrote: >> >> Hi Graham, >> >> thank you for the updated text. >> >>> I¹ve made some amendments to the proposed text based on Valerys >>> comments. >>> >>> I¹ve also added text around the correct sending of INFORMATIONAL >>> messages >>> due to a Responder receiving an SA_INIT, this is a known problem today >>> with a number of implementations. (seen by Tero and myself). >> >> Sorry, your text is wrong (or at least is not accurate). The responder >> must never reply to an IKE_SA_INIT with INFORMATIONAL message. >> See section 1.5 of RFC 7296: >> >> In the second and third cases, the message is always sent without >> cryptographic protection (outside of an IKE SA), and includes either >> an INVALID_IKE_SPI or an INVALID_MAJOR_VERSION notification (with no >> notification data). The message is a response message, and thus it >> is sent to the IP address and port from whence it came with the same >> IKE SPIs and the Message ID and Exchange Type are copied from the >> request. The Response flag is set to 1, and the version flags are >> set in the normal fashion. >> >> Note, thet Exchange Type is copied from the request, so if some >> IKE_SA_INIT >> request has unsupported major version the responder will send >> INVALID_MAJOR_VERSION in the IKE_SA_INIT (not INFORMATIONAL) response. > > GB> Thanks Valery - this is now clear. However not only was I confused, as > Paul confirms there’s other implementations that are also confused. Seeing > as there’s confusion with regards to this wording and it can lead to an > amplification attack I personally feel we should include the following > text for clarification? > > "RFC7296 Section 1.5 describes the generating of informational messages a > Responder will send. Only a single instance of the generated message > should ever be sent for a received request and under no circumstances > should a received request cause the generation of more than a single > message in reply." I don't think mitigation text for blatant RFC errors should be added. The original error should just be fixed. If they don't comply with 7296, this document will make no difference either. > > > > > >> >> The only case unprotected INFORMATIONAL message is sent is when >> the host receives AH/ESP packet with unknown SPI. And all these cases >> are covered in Section 1.5 of RFC 7296 in sufficient detail, including >> DoS attacks prevention measures (rate limiting). >> I don't think we should repeat all this in the draft. >> >>> I have also moved text to section 11. Security Consideration. >>> >>> I¹ve added some words around the checking of the IDi/IDr. I¹ve >>> personally >>> seen some issues when misconfigured clients have presented an identical >>> IDi, resulting in INITIAL_CONTACT deleting the Œother¹ clients SA. >> >> Since INITIAL_CONTACT is processed after peer authentication, >> malicious user cannot use it to perform DoS attack >> (unless he/she is able to impersonate legitimate user, but in this case >> he/she can do much worse things). And what about misconfiguration - >> Section 2.4 of RFC 7296 already has all due warnings: >> >> This notification MUST NOT be sent by an entity that may be >> replicated (e.g., a roaming user's credentials where the user is >> allowed to connect to the corporate firewall from two remote systems >> at the same time). >> >> Again, I don't think we should copy all the requirements concerning >> INITIAL_CONTACT from RFC7296. > > > > GB> For this example I’ve personally seen misconfigured clients, this > isn’t exactly the 'entity being replicated' (or not intentionally). As an > example VPN architecture, the authentication use Digital Signatures, but > send the ID as FQDN. Your laptop is provisioned with ID of > FQDN=valery.example.com, mine should be FQDN=graham.example.com, however > due to an IT engineer provision error I have the same ID as you in my VPN > profile. When I connect, if the VPN gateway does not check the presented > FQDN is in the certificate (where a mismatch would occur), I pass > authentication and INITIAL_CONTACT deletes your session. The strict check > of ensuring that the ID is contained within the certificate will mitigate > the mis-configuration and also malicious intent. > > For the malicious example, it’s easy to spoof an ID, but it’s > computationally impossible to spoof a certificate, hence the > ID-Certificate check will mitigate any mis-conftguation or malicious > intention. The behaviour of INITIAL_CONTACT is really being exploited in > this case (IMO). > > > > GB> Hi Paul - this (IMO) is an issue with any authentication mechanism, > not just RFC7619, so if someone is looking to protect RFC7296 against > DDOS, would they read RFC7619? I know it's more apparent in RFC7619, but > there’s still cases (and seem to be common) where it can happen. > > > >> >>> I did think about exhaustion of IP addresses when using configuration >>> payload to allocate clients IPs, if a malicious or misconfigured client >>> could exhaust the pool. But I feel the wording in section 8 covers this. >>> Unless others think otherwise? >> >> Again, allocation of IP addresses takes place after user authentication, >> so it cannot be used as DoS attack by malicious user. > > GB> Think of mischievous users or misconfigured, as anyone who CAN pass > authentication. Let me give you this example. I’m granted access to a VPN > gateway for 24 hours, where a security policy is applied so that I only > access read access to a single file. I’m an ‘untrusted’ user, this gateway > also serves ’trusted’ users. I am granted very limited access. I exhaust > the pool of IP addresses so that no other (legitimate) users can connect. > This is similar to DHCP exhaustion on a LAN. We can mitigate against that > (DHCP snooping etc), I feel that we should protect IKE from a similar > attack. > > GB> I’m seeing a lot of cases (IoT), where IKE is used, however the > devices aren’t secured and are not really trusted. Examples are; Sensor on > a pole in the middle of no-where, or unsecured in a lift shaft. For the > IoT case although the authentication exchange passes, the client still > isn’t fully trusted, so we should protect the control-plane (IKE) as best > we can. > > GB> FWIW - I feel that the text in section 8 does sort of cover this, but > wanted to describe the issue and if others feel the text doesn’t > adequately mitigate the issue of IP address exhaustion I can add some > words. > > >>> cheers >> >> Regards, >> Valery. >> _______________________________________________ IPsec mailing list IPsec@ietf.org https://www.ietf.org/mailman/listinfo/ipsec