Re: [openpgp] The Argon2 proposal seems incomplete (Draft 6)

"brian m. carlson" <sandals@crustytoothpaste.net> Fri, 29 July 2022 22:21 UTC

Return-Path: <sandals@crustytoothpaste.net>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 293E4C13C231 for <openpgp@ietfa.amsl.com>; Fri, 29 Jul 2022 15:21:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (3072-bit key) header.d=crustytoothpaste.net
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p1SkyFERx9wZ for <openpgp@ietfa.amsl.com>; Fri, 29 Jul 2022 15:21:15 -0700 (PDT)
Received: from ring.crustytoothpaste.net (ring.crustytoothpaste.net [IPv6:2600:3c04::f03c:92ff:fe9e:c6d8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3412CC13C22F for <openpgp@ietf.org>; Fri, 29 Jul 2022 15:21:15 -0700 (PDT)
Received: from tapette.crustytoothpaste.net (unknown [IPv6:2001:470:b056:101:e59a:3ed0:5f5c:31f3]) (using TLSv1.2 with cipher ECDHE-RSA-CHACHA20-POLY1305 (256/256 bits)) (No client certificate requested) by ring.crustytoothpaste.net (Postfix) with ESMTPSA id 41FEE5A1AB; Fri, 29 Jul 2022 22:21:13 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=crustytoothpaste.net; s=default; t=1659133273; bh=H66RWjitW0yMCaosfAVXtwikiuPfpWZqyZp67oVWLaE=; h=Date:From:To:Cc:Subject:References:Content-Type: Content-Disposition:In-Reply-To:From:Reply-To:Subject:Date:To:CC: Resent-Date:Resent-From:Resent-To:Resent-Cc:In-Reply-To:References: Content-Type:Content-Disposition; b=V7YPIyLEohUaav3lo8Tso3NKgQxYass9Yv2wXuX7cdBMaydJedhDvRBcyUzzqQwRt Uek6Z2j1/urLe3PEXNbv719erBmfYo0JJYtKVzxSqAb8l9y34kL4cIKUVa6m6fPBir T33HLbqZxpivnLceQZqPFaEk6O4+/ln21g/FilsVF/93CqrDAQWuwG2iQEYcZOHIZx x7QS6NttVRppIWxP8ZU+lS9S+o5Kg536GCgBpI8bmbH3VTkI4vnBNtnavT8EFD+A5P vgQnXj4gD8igo4L0pT8f+V7yBXGevsr7ga9GprZ6u4reJfMeJv4IVzuqjqHV+Ag5ei WiEDPGlXM1oZZEti9jzqMbDSSupkSNOmpyK/rOFQdss4m7Wvxmja49Qq6fbyDNGHhz SGOpouh84zgrQXU1Iqnk3oiQt26oC2DYUkj3oaUm4K5OB+l5eOnGJMLnC2ZjyC7hFx pqqN1O8ezceAdjvK5xE2bkrU7cE56u0KGFUxutxKA8KaGR2ybwu
Date: Fri, 29 Jul 2022 22:21:11 +0000
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Bruce Walzer <bwalzer@59.ca>
Cc: Justus Winter <justus@sequoia-pgp.org>, openpgp@ietf.org
Message-ID: <YuRdV/XwUAveN56B@tapette.crustytoothpaste.net>
References: <YuAErZRsF/KbOw1s@watt.59.ca> <87edy7keb6.fsf@thinkbox> <YuFc+w02FiRQmHcg@watt.59.ca> <87bktajjvq.fsf@thinkbox> <YuKpxp0/Dy1DfC19@watt.59.ca> <875yjhjg2c.fsf@thinkbox> <YuP093G0UKhAJF4U@watt.59.ca>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="gp+I9OfIuQFA3G5D"
Content-Disposition: inline
In-Reply-To: <YuP093G0UKhAJF4U@watt.59.ca>
User-Agent: Mutt/2.2.6 (2022-06-05)
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/ZHvcJnf-Fa38Ke2MOVgxcrKtnxc>
Subject: Re: [openpgp] The Argon2 proposal seems incomplete (Draft 6)
X-BeenThere: openpgp@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/openpgp>, <mailto:openpgp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp/>
List-Post: <mailto:openpgp@ietf.org>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/openpgp>, <mailto:openpgp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Jul 2022 22:21:19 -0000

On 2022-07-29 at 14:55:51, Bruce Walzer wrote:
> The issue I am most concerned about is that it appears that the Argon2
> proposal was dropped into the draft without any definite rationale. I
> think that things like benefits, costs, and in this case, usability
> should be pinned down before discussion and potential inclusion in a
> draft. You can't really come to terms with something if no one can be
> sure exactly what it is. The fact that we are currently discussing
> mere practicality supports my concern. This sort of thing can bring
> the entire process into disrepute.

It's my experience that Argon2 has been discussed quite a bit on the
list, at least in the past.  It is the winner of the Password Hashing
competition and is extensively used.  It's memory hard, which is the
cryptographic norm these days, and it has a variety of implementations
across languages, including in languages such as Rust which can be used
in web browsers.

It is the case that there are more parameters here.  The RFC provides
recommended parameters for when there isn't any other context.  Whether
an implementation allows for customization of these parameters or use of
parameters other than the defaults based on additional context is a
quality of implementation issue.  For example, a custom implementation
which is designed to be used only on embedded devices will almost
certainly use a different parameter set which is not customizable but
which is appropriate for the context.

It is also the case that the sender can send a message which exceeds the
resources of the receiving system.  If the sender earnestly wishes to
communicate to the receiver, that is of course silly and should be
avoided.  This is, however, no different than using a cipher or AEAD
algorithm that the receiver cannot support (or, for that matter, using
any other password hashing algorithm, such as bcrypt, with excessive
settings for the parameters), and can be dealt with in exactly the same
way, and the customizability here is also a quality of implementation
issue.  If the sender wishes to be very conservative, they can use a
sending implementation which uses the RFC-recommended small parameter
set, just as they can adopt the must-implement algorithms when sending.

The fact that there are more parameters is intrinsic to all memory-hard
password hashing functions.  scrypt and yescrypt have similar parameters
as well; Argon2 is not alone here.  If we are to adopt the state of the
art in password hashing functions, we will have to acknowledge this as
an intrinsic quality of the algorithm we adopt.

The WG charter is to work on a crypto refresh.  That implies that we
should adopt a set of algorithms which are presently thought to be
secure and are expected to be so long term.  Argon2, in my view, fits
that criteria, as would other memory-hard password hashes like scrypt.
I don't believe that an algorithm which is not memory-hard would
qualify, given current cryptographic norms, and I doubt such an
algorithm would achieve working group consensus.

If you specifically believe that some other algorithm is superior given
the working group charter, I'd invite you to propose that algorithm.
However, I think given the contributions of other contributors, that the
status quo is clearly inadequate in terms of security, and since, in my
view, a memory-hard password hash is the only viable choice
cryptographically, we need to consider some algorithm meeting that
criterion.  Nobody has yet proposed such an alternative that has met
working group support, so unless you plan to do so, I would suggest we
keep Argon2.
-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA