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

Bruce Walzer <bwalzer@59.ca> Tue, 26 July 2022 15:13 UTC

Return-Path: <bwalzer@59.ca>
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 E604EC13C505 for <openpgp@ietfa.amsl.com>; Tue, 26 Jul 2022 08:13:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
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 J95xJETqmYDn for <openpgp@ietfa.amsl.com>; Tue, 26 Jul 2022 08:13:54 -0700 (PDT)
Received: from mail.59.ca (mail.59.ca [205.200.229.83]) (using TLSv1.3 with cipher TLS_CHACHA20_POLY1305_SHA256 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA512) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D9EE3C14F73F for <openpgp@ietf.org>; Tue, 26 Jul 2022 08:13:54 -0700 (PDT)
Received: from [104.246.140.18] (helo=watt.59.ca) by mail.59.ca with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <bwalzer@59.ca>) id 1oGMFs-00059D-4k for openpgp@ietf.org; Tue, 26 Jul 2022 10:13:52 -0500
Date: Tue, 26 Jul 2022 10:13:49 -0500
From: Bruce Walzer <bwalzer@59.ca>
To: openpgp@ietf.org
Message-ID: <YuAErZRsF/KbOw1s@watt.59.ca>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/wRlPUH6Fvo2BWY5mX-k4touABpM>
Subject: [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: Tue, 26 Jul 2022 15:13:56 -0000

The Argon2 proposal seems incomplete (Draft 6)

This fell out of a discussion on a different thread. I think I can now
express this in a more coherent way.

Argon2 is a hash with a primary benefit of memory hardness intended to
prevent efficient attacks from GPU/FPGA/ASIC hash crackers. It is
normally only used and usable in situations where the hashing is all
done on the same system. Assigning more memory results in more
resistance against GPU/FPGA/ASIC hash crackers so the normal practice
is to assign as much memory as possible. This is often more than a
gigabyte of memory.

RFC 9106 (the reference for Argon2 in the draft) has no explicit
provision for the case where there is not enough memory available to
do a Argon2 hash. Dealing with this situation is treated as an attack
(time-memory tradeoff) in the context of Argon2 (RFC 9106, sec
7.2). Implementations could not be expected to handle this situation
and there is no standard that covers it.

OpenPGP is a messaging standard and has to be such that
interoperability is possible between different systems. That is at
odds with normal Argon2 usage. The current Argon2 proposal creates a
potential memory requirement on the part of the receiver of a
terabyte. If we were to limit it to current common Argon2 usage then
we would be in the gigabyte range which would still be beyond the
capacity of many systems. If we, say, limited it to 4 MiB to be
compatible with another discussion, then we would end up with a very
low resistance to GPU attacks. GPU attacks are the most likely as they
are the cheapest.

Since the protection given here is a continuum it would be good to
come up with a minimum tangible benefit for use in evaluating any
proposal. For example, I would consider an approach that did not at
least allow a user to drop a word from their passphrase to be not
worth the bother.

I think that more work needs to be done here to generate a valid
proposal. At this point it is not clear to me that such a proposal is
even possible. We might have to in the end consider other
approaches. As it is, we are basically dumping a complicated
technology into a long term standard with all the knobs exposed with
the hope that someone will come along later and find an effective use
for it.

Bruce