Re: [MLS] Proposal: Change AES-GCM to AES-SIV

Dennis Jackson <dennis.jackson@cs.ox.ac.uk> Thu, 27 September 2018 11:36 UTC

Return-Path: <dennis.jackson@cs.ox.ac.uk>
X-Original-To: mls@ietfa.amsl.com
Delivered-To: mls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 857F9131026 for <mls@ietfa.amsl.com>; Thu, 27 Sep 2018 04:36:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] 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 8WAcgQgf5-Nf for <mls@ietfa.amsl.com>; Thu, 27 Sep 2018 04:36:22 -0700 (PDT)
Received: from relay11.mail.ox.ac.uk (relay11.mail.ox.ac.uk [129.67.1.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 75C54130F0B for <mls@ietf.org>; Thu, 27 Sep 2018 04:36:22 -0700 (PDT)
Received: from smtp6.mail.ox.ac.uk ([163.1.2.206]) by relay11.mail.ox.ac.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <dennis.jackson@cs.ox.ac.uk>) id 1g5Uah-0000Lb-ZV for mls@ietf.org; Thu, 27 Sep 2018 12:36:20 +0100
Received: from 61.ip-51-38-113.eu ([51.38.113.61] helo=T-200) by smtp6.mail.ox.ac.uk with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <dennis.jackson@cs.ox.ac.uk>) id 1g5Uag-0000FT-Ly for mls@ietf.org; Thu, 27 Sep 2018 12:36:18 +0100
Date: Thu, 27 Sep 2018 12:36:17 +0100
From: Dennis Jackson <dennis.jackson@cs.ox.ac.uk>
To: mls@ietf.org
Message-ID: <20180927123617.6ec40fce@T-200>
In-Reply-To: <20180926223043.106fb209@T-200>
References: <20180926223043.106fb209@T-200>
X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Oxford-Username: exet4027
X-Oxmail-Spam-Status: score=0.0 tests=none
X-Oxmail-Spam-Level: /
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/jbvRrPi_i8UXMUunYZe6S34hkvc>
Subject: Re: [MLS] Proposal: Change AES-GCM to AES-SIV
X-BeenThere: mls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Messaging Layer Security <mls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mls>, <mailto:mls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mls/>
List-Post: <mailto:mls@ietf.org>
List-Help: <mailto:mls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mls>, <mailto:mls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Sep 2018 11:36:35 -0000

In response to the questions about implementations, I've quickly 
trawled for libraries supporting AES-SIV: 

[BoringSSL] - Google's port of OpenSSL 

[IntelIPP] - Intel, implemented in ANSI C 

[libaes_siv] - Akamai, implemented in C

[Miscreant] - Go, Rust, C#, Javascript, Python, Ruby 

[siv-mode] - Java, audited by Cure 53

[openssl] - PR, Awaiting second review before release

[AESSIVWrapper] - iOS Obj-C Wrapper

Summary:  all major languages seem to have at least one implementation. That said,
AES-GCM enjoys much wider support. I'm not an implementation person, so I can't 
speak as to whether this is a blocker for considering AES-SIV at all. 

References: 

[Miscreant] https://github.com/miscreant/miscreant

[BoringSSL] https://github.com/google/boringssl/blob/master/include/openssl/aead.h

[IntelIPP] https://software.intel.com/en-us/ipp-crypto-reference-aes-siv-functions

[libaes_siv] https://github.com/dfoxfranke/libaes_siv

[siv-mode] https://github.com/cryptomator/siv-mode

[openssl] https://github.com/openssl/openssl/pull/3540

[AESSIVWrapper] - https://github.com/daresaydigital/AESSIVWrapper

On Wed, 26 Sep 2018 22:30:43 +0100
Dennis Jackson <dennis.jackson@cs.ox.ac.uk> wrote:

> Proposal: Change AES-GCM to AES-SIV
> 
> Rationale: 
> 
> AES-GCM requires a unique nonce for every message, otherwise it
> fails catastrophically by directly leaking the authentication key
> and consequently provides no resistance to active attacks on 
> confidentiality. 
> 
> AES-SIV is a drop in replacement for AES-GCM which significantly
> mitigates the impact of repeated nonces. For a message pair with
> repeated nonces the attacker only learns if the two plaintexts were
> equal. There is no other loss of confidentiality or authenticity. This
> is provably the minimum leakage possible in the event of a repeated
> nonce. 
> 
> Handling nonces is a tricky part of any implementation and easy to get
> wrong in the presence of state loss or concurrency. Failures
> in nonce generation are both catastrophic and subtle. Richard Barnes
> has already improved the specification by moving from explicit to
> implicit nonces which can aid the discovery of faulty implementations.
> However, implicit nonces are not a silver bullet and recent papers
> have uncovered serious nonce reuse issues in both TLS [1] and WPA
> [2]. 
> 
> + AES-SIV significantly mitigates the impact of nonce reuse
> + AES-SIV is a drop in replacement with the same interface as AES-GCM
> + AES-SIV makes use of the same hardware support as AES-GCM
> + AES-SIV has a proof of security [3] and is described in RFC 5297 [4]
> * AES-SIV has reasonable (but not extensive) library support
> (including OpenSSL, BoringSSL, Intel IPP)
> * Despite being over 10 years old, AES-SIV has not seen widespread
>   deployment
> * AES-SIV Encryption is ~70% of the speed of AES-GCM Encryption
>   (Decryption is the same speed as AES-GCM)
> 
> References: 
> 
> [1]
> https://www.usenix.org/system/files/conference/woot16/woot16-paper-bock.pdf
> 
> [2] https://www.krackattacks.com/
> 
> [3] http://web.cs.ucdavis.edu/~rogaway/papers/keywrap.pdf
> 
> [4] https://datatracker.ietf.org/doc/rfc5297/
> 
> _______________________________________________
> MLS mailing list
> MLS@ietf.org
> https://www.ietf.org/mailman/listinfo/mls



-- 
PGP Fingerprint: 5B93 F0B9 D6A8 9BC1 546B C98C 6105 A775 8CD2 46AC