On Sun, 30 Jun 2019, D. Hugh Redelmeier wrote:
I don't specify any cryptosuites -- I just let them default.
Much to my surprise, the CentOS Responder refuses the Fedora Initiator's
negotiation:
initiator guessed wrong keying material group (ECP_256); responding with
INVALID_KE_PAYLOAD requesting MODP2048
responding to IKE_SA_INIT (34) message (Message ID 0) from 99.241.4.30:500
with unencrypted notification INVALID_KE_PAYLOAD
Looks like libreswan on RHEL/CentOS didnt add the ECP groups to the
defaults? On RHEL7/centos7 there is no crypto-policies package yet, so
it is using the libreswan defaults. Since you picked up a package from
download.libreswan.org, that should be the stock 3.29. I see the
defaults as:
000 "test": IKE algorithms:
AES_GCM_16_256-HMAC_SHA2_512+HMAC_SHA2_256-DH19+DH20+DH21+MODP2048+MODP3072+MODP4096+MODP8192,
CHACHA20_POLY1305-HMAC_SHA2_512+HMAC_SHA2_256-DH19+DH20+DH21+MODP2048+MODP3072+MODP4096+MODP8192,
AES_CBC_256-HMAC_SHA2_512+HMAC_SHA2_256-DH19+DH20+DH21+MODP2048+MODP3072+MODP4096+MODP8192,
AES_GCM_16_128-HMAC_SHA2_512+HMAC_SHA2_256-DH19+DH20+DH21+MODP2048+MODP3072+MODP4096+MODP8192,
AES_CBC_128-HMAC_SHA2_256-DH19+DH20+DH21+MODP2048+MODP3072+MODP4096+MODP8192
The ECP groups are DH 19-21 which are part of the default proposal set
there. So I'm not sure what happened on your setup.
This response is fairly useless since the Initiator ought ignore
unencrypted notifications. This is surely a limitation of the protocol
standard.
Nope.
https://tools.ietf.org/html/rfc7296#section-1.2
Because the initiator sends its Diffie-Hellman value in the
IKE_SA_INIT, it must guess the Diffie-Hellman group that the
responder will select from its list of supported groups. If the
initiator guesses wrong, the responder will respond with a Notify
payload of type INVALID_KE_PAYLOAD indicating the selected group. In
this case, the initiator MUST retry the IKE_SA_INIT with the
corrected Diffie-Hellman group. The initiator MUST again propose its
full set of acceptable cryptographic suites because the rejection
message was unauthenticated and otherwise an active attacker could
trick the endpoints into negotiating a weaker suite than a stronger
one that they both prefer.
It's also seems pretty dumb to not have defaulted cryptosuites be
compatable. I'm sure that there are excuses. What are they?
I dont know why yours is odd. If it is 3.29 it should have it on both
fedora and rhel/centos
ipsec auto --up prints progress information, but does not report this
notification, making debugging harder than it should be.
It should. Eg see
ikev2-invalid-ke-03-default-initiator/west.console.txt:
west #
ipsec auto --up westnet-eastnet-ipv4-psk-ikev2
002 "westnet-eastnet-ipv4-psk-ikev2" #1: initiating v2 parent SA
1v2 "westnet-eastnet-ipv4-psk-ikev2" #1: initiate
1v2 "westnet-eastnet-ipv4-psk-ikev2" #1: STATE_PARENT_I1: sent v2I1, expected
v2R1
002 "westnet-eastnet-ipv4-psk-ikev2" #1: Received unauthenticated
INVALID_KE_PAYLOAD response to DH MODP2048; resending with suggested DH MODP4096
1v2 "westnet-eastnet-ipv4-psk-ikev2" #1: STATE_PARENT_I1: sent v2I1, expected
v2R1
1v2 "westnet-eastnet-ipv4-psk-ikev2" #2: STATE_PARENT_I2: sent v2I2, expected
v2R2 {auth=IKEv2 cipher=AES_GCM_16_256 int eg=n/a prf=HMAC_SHA2_256 group=MODP4096}
002 "westnet-eastnet-ipv4-psk-ikev2" #2: IKEv2 mode peer ID is ID_FQDN: '@east'
003 "westnet-eastnet-ipv4-psk-ikev2" #2: Authenticated using authby=secret
002 "westnet-eastnet-ipv4-psk-ikev2" #2: negotiated connection
[192.0.1.0-192.0.1.255:0-65535 0] -> [192.0.2.0-192.0.2.2 55:0-65535 0]
004 "westnet-eastnet-ipv4-psk-ikev2" #2: STATE_V2_IPSEC_I: IPsec SA established
tunnel mode {ESP=>0xESPESP <0xESPESP xfr m=AES_GCM_16_256-NONE NATOA=none NATD=none
DPD=passive}
- why would 3.29 default to something 3.29 doesn't accept?
I don't know.
- what is the minimal adition that I can make to the conn to allow
interop? I don't wish to specify any part of the cryptosuites but I
certainly don't want to provide a complete and detailed specification.
Your logs showed the invalid_ke was not the problem. A resend happens
and then you have a bad RSA signature detected.
Paul
_______________________________________________
Swan-dev mailing list
[email protected]
https://lists.libreswan.org/mailman/listinfo/swan-dev