From owner-freebsd-net@freebsd.org Fri Aug 16 13:02:45 2019 Return-Path: Delivered-To: freebsd-net@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D945ACBCAC for ; Fri, 16 Aug 2019 13:02:45 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4693QF1FzHz4F8B for ; Fri, 16 Aug 2019 13:02:44 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id x7GD2ehM025492 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 16 Aug 2019 13:02:41 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id x7GD2b7G006588 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Fri, 16 Aug 2019 20:02:37 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: Software IPSEC AES-CTR/SHA-256 broken To: "freebsd-net@freebsd.org" References: <9650ba58-ed9b-ec6b-8b9f-ed5cb4853f9b@grosbein.net> From: Eugene Grosbein Message-ID: <8bda0919-a5da-243a-fd33-3418a98d16f4@grosbein.net> Date: Fri, 16 Aug 2019 20:02:31 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <9650ba58-ed9b-ec6b-8b9f-ed5cb4853f9b@grosbein.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 4693QF1FzHz4F8B X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-4.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-net@freebsd.org]; DMARC_NA(0.00)[grosbein.net]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_THREE(0.00)[3]; IP_SCORE(-0.93)[ip: (-0.85), ipnet: 2a01:4f8::/29(-1.95), asn: 24940(-1.84), country: DE(-0.01)]; R_SPF_PERMFAIL(0.00)[]; NEURAL_HAM_SHORT(-0.97)[-0.966,0]; TO_DN_EQ_ADDR_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2019 13:02:45 -0000 16.08.2019 19:45, Eugene Grosbein wrote: Sorry for some misprints, fixes follow: > Hi! > > I used IPSEC/gif (ipencap) with static Blowfish/SHA1 keys for years for VPN tunnels between FreeBSD routers. > > After recent Blowfish deprecation notice, I tried switching to AES-CTR/SHA-256 instead > only to find that transit RDP TCP streams start to break often (every 20 minutes or so). > I switched back to Blowfish/SHA1 and problem disappeared. > > While using AES-CTR/SHA-256, "netstat -p esp -ss" shows increasing counters for: > > packets dropped; bad encryption detected > packets dropped; bad authentication detected > > These counters stay zero when only Blowfish is used. > Both sides have no AES-NI hardware support and aesni.ko kernel module is not even loaded. > FreeBSD 11.2-STABLE/amd64 r343942 at one side is used and > 11.2-STABLE/amd64 r343953 at another side. > > I managed to reproduce the problem using simple ssh connection over tunnel built with commands: > > ifconfig gif1 create tunnel 1.1.1.1 2.2.2.2 For this side it should be instead: ifconfig gif1 create tunnel 2.2.2.2 1.1.1.1 > ifconfig gif1 inet 192.168.80.242 192.168.80.241 netmask 255.255.255.252 mtu 1440 > > And /etc/ipsec.conf: > > flush; > spdflush; > add 1.1.1.1 2.2.2.2 esp 1013 -m transport -E aes-ctr "M28_)KDFV,iFVHNIKO-p" -A hmac-sha2-256 "rdijokg&YRDYi(I%R0oMJN%()H532d92"; > add 2.2.2.2 1.1.1.1 esp 2013 -m transport -E aes-ctr "G5of)Gbn556reg_+;mVz" -A hmac-sha2-256 "?op;_rf{89CE$DC09*3$RFgi7y9)i-e]"; > > spdadd 2.2.2.2/32 1.1.1.1/32 icmp -P out none; > spdadd 2.2.2.2/32 1.1.1.1/32 esp -P out none; > spdadd 2.2.2.2/32 1.1.1.1/32 any -P out ipsec > esp/transport//require; > spdadd 1.1.1.1/32 2.2.2.2/32 any -P out ipsec > esp/transport//use; Last two lines should have "in" instead of "out": spdadd 1.1.1.1/32 2.2.2.2/32 any -P in ipsec esp/transport//use; > #EOF