Re: [TLS] A closer look at ROBOT, BB Attacks, timing attacks in general, and what we can do in TLS

Hubert Kario <hkario@redhat.com> Wed, 03 January 2018 11:45 UTC

Return-Path: <hkario@redhat.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0CCBB126CD6 for <tls@ietfa.amsl.com>; Wed, 3 Jan 2018 03:45:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.931
X-Spam-Level:
X-Spam-Status: No, score=-6.931 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
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 BxmFoIv_mRXI for <tls@ietfa.amsl.com>; Wed, 3 Jan 2018 03:45:23 -0800 (PST)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2D099126579 for <tls@ietf.org>; Wed, 3 Jan 2018 03:45:23 -0800 (PST)
Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A79CE13AAB; Wed, 3 Jan 2018 11:45:22 +0000 (UTC)
Received: from pintsize.usersys.redhat.com (ovpn-200-22.brq.redhat.com [10.40.200.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4B49C60177; Wed, 3 Jan 2018 11:45:22 +0000 (UTC)
From: Hubert Kario <hkario@redhat.com>
To: tls@ietf.org
Date: Wed, 03 Jan 2018 12:45:14 +0100
Message-ID: <3291250.UCJXXru3mW@pintsize.usersys.redhat.com>
In-Reply-To: <CAAF6GDeeo2xjv1Xu7SFXVZ_zM=XUVJHT=eqH4_-G3+4UHsfvgg@mail.gmail.com>
References: <CAAF6GDeeo2xjv1Xu7SFXVZ_zM=XUVJHT=eqH4_-G3+4UHsfvgg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="nextPart2083121.HPee8E1sgr"; micalg="pgp-sha512"; protocol="application/pgp-signature"
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 03 Jan 2018 11:45:22 +0000 (UTC)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/fVdrTz3BsRHkWpuVN9EyvWYpOrk>
Subject: Re: [TLS] A closer look at ROBOT, BB Attacks, timing attacks in general, and what we can do in TLS
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jan 2018 11:45:25 -0000

On Thursday, 14 December 2017 23:20:54 CET Colm MacCárthaigh wrote:
> Based on our experiences with all of this over the last few weeks, I'd like
> to summarize and throw out a few suggestions for making TLS stacks more
> defensive and robust against problems of this class. One or two may be even
> worth considering as small additions to the forthcoming TLS RFC, and I'd
> love to get feedback on that.
> 

> *Second: hide all alerts in suspicious error cases*
> Next, when the handshake does fail, we do two non-standard things. The
> first is that we don't return an alert message, we just close the
> connection. 
> 
> *Third: mask timing side-channels with a massive delay*
> The second non-standard thing we do is that in all error cases, s2n behaves
> as if something suspicious is going on and in case timing is involved, we
> add a random delay. It's well known that random delays are only partially
> effective against timing attacks, but we add a very very big one. We wait a
> random amount of time between a minimum of 10 seconds, and a maximum of 30
> seconds.

Note that both of those things only _possibly_ frustrate attackers while they 
definitely frustrate researchers trying to characterise your implementation as 
vulnerable or not. In effect making it seem secure while in reality it may not 
be.

-- 
Regards,
Hubert Kario
Senior Quality Engineer, QE BaseOS Security team
Web: www.cz.redhat.com
Red Hat Czech s.r.o., Purkyňova 115, 612 00  Brno, Czech Republic