ike-natd: Create fake NAT-D payloads in a more static way
authorTobias Brunner <tobias@strongswan.org>
Fri, 25 Sep 2015 17:24:44 +0000 (19:24 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 9 Nov 2015 15:25:59 +0000 (16:25 +0100)
commit8484d2b01d5475abd1ded60b6b451a22cec99a61
tree58e2f31b0bab0056b09ea40b69fa0d31770d85a5
parent2533c857ba3f5e003a8b7e113227030b75aef51a
ike-natd: Create fake NAT-D payloads in a more static way

In some scenarios an IKE_SA might get restarted multiple times (e.g.
due to retransmits and delayed INVALID_KE_PAYLOAD notifies) so that
two IKE_SA_INIT messages might be sent that only differ in the
previously randomly generated NAT_DETECTION_SOURCE_IP payload.
This could cause an authentication failure on the responder if the two
peers don't use the same IKE_SA_INIT message in their InitiatorSignedOctets.

While the payload is generated in a reproducible way it will still change
when the daemon is restarted, which should make detecting the payloads
as fake a bit harder (compared to e.g. just using 0.0.0.0:0 as address).

Fixes #1131.
src/libcharon/sa/ikev2/tasks/ike_natd.c