Dear Experts,
I ran into a ESP dh-group mismatch problem in StrongSwan 4.4.1. Re-tested the
scenario in 4.6.1 with same results.
The esp (and ike) transforms of the peers are as follow:
host65
========
ike=3des-sha2_384-modp1024!
esp=aes128-sha1-ecp256!
host118
==========
ike=3des-sha2_384-modp1024!
esp=aes128-sha1-modp2048!
When host118 initiated the connection, both sides said that they received ESP
proposal with no dhgroup:
192.168.12.65 side
===================
Jul 21 19:29:56 host65 charon: 16[IKE] maximum IKE_SA lifetime 28267s
Jul 21 19:29:56 host65 charon: 16[CFG] selecting proposal:
Jul 21 19:29:56 host65 charon: 16[CFG] proposal matches
Jul 21 19:29:56 host65 charon: 16[CFG] received proposals:
ESP:AES_CBC_128/HMAC_SHA1_96/NO_EXT_SEQ
Jul 21 19:29:56 host65 charon: 16[CFG] configured proposals:
ESP:AES_CBC_128/HMAC_SHA1_96/ECP_256/NO_EXT_SEQ
Jul 21 19:29:56 host65 charon: 16[CFG] selected proposal:
ESP:AES_CBC_128/HMAC_SHA1_96/NO_EXT_SEQ
192.168.12.118 side
===================
Jul 21 19:29:56 host118 charon: 16[CFG] selecting proposal:
Jul 21 19:29:56 host118 charon: 16[CFG] proposal matches
Jul 21 19:29:56 host118 charon: 16[CFG] received proposals:
ESP:AES_CBC_128/HMAC_SHA1_96/NO_EXT_SEQ
Jul 21 19:29:56 host118 charon: 16[CFG] configured proposals:
ESP:AES_CBC_128/HMAC_SHA1_96/MODP_2048/NO_EXT_SEQ
Jul 21 19:29:56 host118 charon: 16[CFG] selected proposal:
ESP:AES_CBC_128/HMAC_SHA1_96/NO_EXT_SEQ
Despite in strict mode, the log said that they chose the received proposal with
no dh-group.
Not so amiable at re-key time:
=======================
Jul 21 20:12:59 host118 charon: 12[CFG] selecting proposal:
Jul 21 20:12:59 host118 charon: 12[CFG] no acceptable DIFFIE_HELLMAN_GROUP
found
Jul 21 20:12:59 host118 charon: 12[CFG] received proposals:
ESP:AES_CBC_128/HMAC_SHA1_96/ECP_256/NO_EXT_SEQ
Jul 21 20:12:59 host118 charon: 12[CFG] configured proposals:
ESP:AES_CBC_128/HMAC_SHA1_96/MODP_2048/NO_EXT_SEQ
Jul 21 20:12:59 host118 charon: 12[IKE] no acceptable proposal found
Jul 21 20:12:59 host118 charon: 12[IKE] failed to establish CHILD_SA, keeping
IKE_SA
This left the tunnel in a peculiar state.
Question 1:
Is there anything I can do (in terms of messing with strongswan.conf or
ipsec.conf or changing charon code) to make the mismatch detected at setup time?
But problem seems a match with the last paragraph in Section 1.2 of RFC 5996:
IKE_AUTH does not contain KE or Nounce payloads... IKE_AUTH exchange cannot
contain Transform Type 4 (Diffie-Hellman group) with any value other than NONE.
Question 2:
If this is indeed a RFC standard problem, is it possible to configure
StrongSwan to not include the SA2i, SA2r in IKE_AUTH? Instead do a standalone
create_child_sa exchange. NB: our nodes only talk to StrongSwan that are
compiled in-house. We don't interop with other implementations very often.
Question 3:
Another option: I can append a no dh-group proposal to esp, i.e.
esp=aes128-sha1-ecp256,aes128-sha1!
Thus at re-key time, hopefully the no dh-group proposal will act as a safety
net.
Question is, will ecp256 be the first choice at re-key time? Or will the no
dh-group proposal take precedence because, at IKE INIT time it matches? (The
one with dh-group can never match if my interpretion of rfc5996 is right.)
Question 4:
Another thing I can do is ban dh-group in ESP altogehter. Man page and RFC
5996 all said that will make the connection less secure. Is there anything I
can to mitigate the risk? E.g. make the ikelifetime shorter than keylifetime
so that at re-key time SK_d is fresh.
Thanks in advance for help.
Simon
_______________________________________________
Users mailing list
[email protected]
https://lists.strongswan.org/mailman/listinfo/users