Re: [Spud] The reset middleboxes attack
Yoav Nir <ynir.ietf@gmail.com> Sun, 29 March 2015 08:28 UTC
Return-Path: <ynir.ietf@gmail.com>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id 3CB1F1A00C3
for <spud@ietfa.amsl.com>; Sun, 29 Mar 2015 01:28:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,
DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44])
by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 4yYmBHwKXKRr for <spud@ietfa.amsl.com>;
Sun, 29 Mar 2015 01:28:07 -0700 (PDT)
Received: from mail-wi0-x22d.google.com (mail-wi0-x22d.google.com
[IPv6:2a00:1450:400c:c05::22d])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 80C521A007C
for <spud@ietf.org>; Sun, 29 Mar 2015 01:28:07 -0700 (PDT)
Received: by wiaa2 with SMTP id a2so85429792wia.0
for <spud@ietf.org>; Sun, 29 Mar 2015 01:28:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
h=content-type:mime-version:subject:from:in-reply-to:date:cc
:content-transfer-encoding:message-id:references:to;
bh=1aWR4cBF3sMGOg1mxEcWL5VLIXT2WEESx/2p00XCvA4=;
b=OAQopWdo/Ushle2C9aslUgAAwQIPSrbLqypr9/c6+eCe1yq8RfIWFhAaVtiPdOdfBQ
zs2HZDXc1VU/wFQk9tmJaYS8wlygp1PcfCjvnI5dVfHuS6ZMGA2qHMcs9T/RhJybWRIe
m+DTUZbA/mx1qjDeuL2UsYNsR4Ie6edyciKU0m28hdHnbfirh8ffQ0DrpqnhIsWnRLgw
R3iAlcEVIuTRS64c9N43iAdwIL9P/nfmvL2gcYFLDUPnAKrh75orFM/qMs4olSZyY/6/
rDgw0BOX4VZBeN2a3yeA6APSPc81n4VUcQH/vfKmzzSeQ0K9Lqcol/YomH3ZCyYfBL8S
QIGw==
X-Received: by 10.194.222.197 with SMTP id qo5mr51621815wjc.142.1427617686096;
Sun, 29 Mar 2015 01:28:06 -0700 (PDT)
Received: from [192.168.1.17] ([46.120.13.132])
by mx.google.com with ESMTPSA id i10sm10265874wja.40.2015.03.29.01.28.04
(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
Sun, 29 Mar 2015 01:28:05 -0700 (PDT)
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Yoav Nir <ynir.ietf@gmail.com>
In-Reply-To: <DM2PR0301MB0655748F52C0984FB6BF8E93A8F60@DM2PR0301MB0655.namprd03.prod.outlook.com>
Date: Sun, 29 Mar 2015 11:28:02 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <33962F88-F1E9-4ED7-863A-97AED7836A75@gmail.com>
References: <DM2PR0301MB0655748F52C0984FB6BF8E93A8F60@DM2PR0301MB0655.namprd03.prod.outlook.com>
To: Christian Huitema <huitema@microsoft.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/Us9_wrne0Wma86BGYU1rJS-aPhY>
Cc: Jana Iyengar <jri@google.com>, Eric Rescorla <ekr@rtfm.com>,
"spud@ietf.org" <spud@ietf.org>
Subject: Re: [Spud] The reset middleboxes attack
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Session Protocol Underneath Datagrams <spud.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spud>,
<mailto:spud-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/spud/>
List-Post: <mailto:spud@ietf.org>
List-Help: <mailto:spud-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spud>,
<mailto:spud-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 29 Mar 2015 08:28:09 -0000
> On Mar 29, 2015, at 3:17 AM, Christian Huitema <huitema@microsoft.com> wrote: > > A key design element out of the SEMI workshop was a request to expose session "start and stop" to the path. The rationale is that middleboxes could then do a more efficient state management than the current timer-based solutions. The hosts would also benefit if they can do away with fewer keep alive packets to maintain the state open in the middleboxes. > > But there is a big issue. The end systems can distinguish between valid and invalid headers because the crypto ensures authentication of the clear text header. An attacker capable of packet injection cannot affect the state of the end systems, because the injected packets will fail the crypto checksum verification and be discarded. But if the hosts are protected, the middleboxes are not. They do not have access to the application credentials, and they cannot perform the crypto checksum verification. This opens the gates for two attacks. > > The first and obvious attack is the "middlebox reset" attack. An attacker injects a packet with a "stop" mark. Middleboxes on the path see that, and free the state associated with the session. NAT mapping disappear and firewall opening are closed. Even if the hosts are capable of rejecting the fake reset, their connection is still gone, because further packets will be discarded by the middleboxes. > > One of my coauthors (EKR or Jana, cannot remember) suggested a mitigation, which reminded me of the old "S-Key" scheme. Suppose that the "open" packet carries a "hash target" T, composed of an algorithm ID (say SHA256) and a binary string (32 bytes in the case of SHA256). The middleboxes remember that value as part of their state. We then require that the "stop" packets carry a "hash result" R, a binary string of arbitrary size. When the middleboxes on path see a reset packet, they check that H(R) = T. If it does not, they detect a spoofed reset, and discard the packet. > > I can see that implementers may not be enthusiastic with the additional complexity. But we would be naïve to just dismiss the attack. We do see attackers capable of eavesdropping traffic, and then injecting packets "from the side." I am sure that these attackers would find good use of a capability to nuke connections at will. Hi, Christian I understand the issue. Is this something we are really worried about? It has always been possible to do this with TCP by sending a RST, and that worked on the endpoints as well, and TLS has never protected us from that attack. To get the solution to work, presumably the initiator generates a secret and sends its has in the OPEN command. This allows the initiator to close the connection by sending the pre-image. But what if we want both sides to be able to close the connection? We either need to transmit the pre-image in the encrypted part of the protocol (what Joe’s architecture diagram calls “transport”), or we need a per-endpoint hash, requiring the responder to also send a hash in the ACK command. The latter doubles the state on the middlebox. Yoav
- [Spud] The reset middleboxes attack Christian Huitema
- Re: [Spud] The reset middleboxes attack Tirumaleswar Reddy (tireddy)
- Re: [Spud] The reset middleboxes attack Eric Rescorla
- Re: [Spud] The reset middleboxes attack Yoav Nir
- Re: [Spud] The reset middleboxes attack Phillip Hallam-Baker
- Re: [Spud] The reset middleboxes attack Yoav Nir
- Re: [Spud] The reset middleboxes attack Dave Dolson
- Re: [Spud] The reset middleboxes attack Caitlin Bestler
- Re: [Spud] The reset middleboxes attack Yoav Nir
- Re: [Spud] The reset middleboxes attack Bless, Roland (TM)
- Re: [Spud] The reset middleboxes attack Christian Huitema
- Re: [Spud] The reset middleboxes attack Bless, Roland (TM)