Tero writes:
>David Wierbowski writes:
>> Tero writes:
>> >I do not consider very open protocols which allow all kind of things
>> >"just for fun" and "in case we someday get scenario which can use it"
>> >as good thing.
>>
>> I do not think we are allowing the initiator and responder to
>> be both a taker and a maker just for fun.  There are cases where
>> either side can initiate and it makes sense in those cases.
>
>Can you give example of such setup, preferrable something that I have
>not already covered in my previous emails and explained why QCD is not
>needed there.

Consider a business partner relationship where data exchanged between
the partners are protected by IPsec.  In these environments it is often
common for either end to initiate a negotiation and for either end to
initiate sending data.  For example perhaps they share a process
management system or order fulfillment system.  One end might initiate
a connection to submit an request/order.  Days later the other end might
initiate a connection to indicate the fulfillment of the request/order.
There truly envirnoments that do and can initiate from either end.

The ability to initiate an IKE_SA is not the only case where allowing
both endpoint be takers and makers is applicable.  Consider the
following:

Host (responder) <======> GW (initiator) <-------> Client

The Client is connecting to the Host.  The GW chooses to initiate a
single SA per client behind the GW.  The Client's connection has data
streaming in from the host -- perhaps the Client is downloading a
significant database replication update.  The GW oes down.  The Client
connection is still viable.  If the GW goes down and I am the host I do
not want to depend on the GW being smart enough to receive my ESP packet
and negotiate a new tunnel, especially when QCD might let me (the host)
initiate a new tunnel.  It really does not matter if the Host could have
done this initial negotiation.  It just to be able to reconstitute the SA.

When the GW goes down the host still has the IKE and Child SAs, and in
many cases it should be able to renegotiate them just as though it were
reauthenticating.

It seems unlikely to me that every GW behaves as Tero suggests here.  In
case that do not behave as Tero suggest QCD will allow me to drive a faster

recovery.

I think allowing both the initiator and responder to be token makers
actually keeps the protocol simpler.  From an implementation perspective
I'd prefer to take advantage of QCD as a rather than rely on the fact that
every gateway behaves as Tero suggests.  Using QCD seems like a simpler
and safer approach.

>> In a previous append Tero said:
>> >As I explained that if both ends can initiate the creation of the IKE
>> >SA, then QCD is not needed as both end can simply recreate the IKE SA
>> >immediately (with INITIAL_CONTACT notify) when they are up and running
>> >(or when they receive first unknown ESP packet from the configured
>> >peer). This is simple and already specified by the IKEv2, so no new
>> >code is needed.
>>
>> I certainly would not advise creating an IKE_SA based on the receipt of
>> an unknown ESP packet from a configured peer.  If the ESP packet is
>> unknown then it is not authenticated and could have come from anywhere.
>
>Yes it is not authenticated, but you do have limited number of
>configured IP-addresses in your configuration file, which means that
>attacker can only set up IKE SA for exactly those hosts, not any
>other, and as you only create the IKE SA if you do not have any, then
>only thing attacker can cause is you to create the IKE SA even when
>you do not yet have traffic to go that way.

I'm not so sure that having a limited number of configured IP addresses in
the configuration file equates to having a small number of address.  It is
also likely that one could easily determine the range of valid addresses.

>
>> Prior to QCD, if the initiator of the initial IKE_SA reboots and then
>> receives a packet with an invalid ESP SPI from the responder the
>> initiator would send an INVALID_SPI notify to the responder.
>
>As I said, in our case we do check our configuration and if the
>invalid ESP packet has IP-address which matches a known peer in the
>configuration file, our implementation do set up the IKE SA for the
>peer and do send Child SA delete for the ESP SPI to clean up the
>state.

But how do you authenticate that address?  Are you saying that if I
find an addresses in your config file that I can sit there all day
sending you bogus ESP packets and watch you initiate IKE_SAs?  I must
be missing something here.


Dave Wierbowski

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

Reply via email to