Re: [TLS] RFC 7457, Lucky 13, mitigation, DTLS 1.2

"Paterson Kenneth" <> Mon, 09 September 2019 08:45 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6632E120105 for <>; Mon, 9 Sep 2019 01:45:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.897
X-Spam-Status: No, score=-6.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id HgxAiLcc18bG for <>; Mon, 9 Sep 2019 01:45:35 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 9465C1200E9 for <>; Mon, 9 Sep 2019 01:45:33 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.468.0; Mon, 9 Sep 2019 10:45:33 +0200
Received: from (2001:67c:10ec:5602::26) by (2001:67c:10ec:5603::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Mon, 9 Sep 2019 10:45:29 +0200
Received: from ([fe80::7114:d795:2066:d254]) by ([fe80::7114:d795:2066:d254%3]) with mapi id 15.01.1779.004; Mon, 9 Sep 2019 10:45:29 +0200
From: "Paterson Kenneth" <>
To: Achim Kraus <>, "" <>
Thread-Topic: [TLS] RFC 7457, Lucky 13, mitigation, DTLS 1.2
Thread-Index: AQHVZt+gq7brsQuAZUmWx5AkWPY+nacjCB6A
Date: Mon, 9 Sep 2019 08:45:29 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: de-CH, en-US
Content-Language: en-GB
x-originating-ip: []
x-tm-snts-smtp: 0DB218CADFF87BA6F465C8B20B62ED4EA2D53E05ECF4BEBD4D81E1A2CEF924BC2000:8
Content-Type: text/plain; charset="utf-8"
Content-ID: <>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <>
Subject: Re: [TLS] RFC 7457, Lucky 13, mitigation, DTLS 1.2
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 09 Sep 2019 08:45:39 -0000

Hi Achim,

See below for a comment on your analysis.

-----Original Message-----
From: TLS <>; on behalf of Achim Kraus <>;
Date: Monday, 9 September 2019 at 09:24
To: ""; <>;
Subject: [TLS] RFC 7457, Lucky 13, mitigation, DTLS 1.2

    RFC 7457, Lucky 13, mitigation, DTLS 1.2
    Dear List,
    currently I try to do some investigation about the simplest way to
    mitigate the “lucky 13” attack without using RFC 7366.
    Therefore I read the slides in [1] and also the recommended mitigation
    in [2], which is cited in RFC 7457.
     From the slides, my impression is, that the “defined padding & padding
    check” was used to reduce the “timing side channel” of MAC depending on
    the data fragment size. Lucky 13 demonstrates, that this “defined
    padding” could be tricked out.
    The recommended mitigation in [2] describes on page 539 to do,
    a) the padding check “time side channel” free by using always “256 compares”
    b) and the MAC check “time side channel” free, by adjust the number of
    compression function evaluations with extra evaluations on dummy data to
    achieve always the same number of evaluations.
    FMPOV b) is the one, which closes the “time side channel”.
    But a) seems to be more a left over. It doesn’t protect enough, as lucky
    13 shows, and complicated algorithms, as “always 256 compares” even on
    shorter messages, may harm more.
    So, why should that “defined padding” check be done, if b) is applied?
    Wouldn’t a simple check, if the padding length exceeds the amount of
    data, and on failure, set it to 0, simplify the mitigation?
That would still leave a timing side channel which would reveal whether the padding length exceeds the amount of data. I'd need to dig into it more to be certain, but my sense is that such a side channel could be turned into at least a partial plaintext recovery attack, and possibly a full plaintext recovery attack. 

You might want to read Adam Langley's account of how L13 was addressed in OpenSSL: