Re: [kitten] Requesting WG adoption of several SCRAM related documents

"Ruslan N. Marchenko" <me@ruff.mobi> Wed, 27 October 2021 06:53 UTC

Return-Path: <me@ruff.mobi>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 429853A0B1A for <kitten@ietfa.amsl.com>; Tue, 26 Oct 2021 23:53:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, 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 X2CPi4Imb0Lt for <kitten@ietfa.amsl.com>; Tue, 26 Oct 2021 23:53:49 -0700 (PDT)
Received: from vex.ruff.mobi (vex.ruff.mobi [37.120.177.103]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D95DF3A0B0C for <kitten@ietf.org>; Tue, 26 Oct 2021 23:53:48 -0700 (PDT)
Received: from pi.ruff.mobi (mx.ruff.mobi [IPv6:2001:470:741b:1::252]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "ruff.mobi", Issuer "R3" (not verified)) by vex.ruff.mobi (Postfix) with ESMTPS id C4B0014972CF; Wed, 27 Oct 2021 08:53:45 +0200 (CEST)
Received: from dei.ruff.mobi (unknown [IPv6:2001:470:741b::6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by pi.ruff.mobi (Postfix) with ESMTPSA id 552F113A47; Wed, 27 Oct 2021 08:53:39 +0200 (CEST)
Message-ID: <4bd586b18a84e72846f0ac53cc759c0ade26287e.camel@ruff.mobi>
From: "Ruslan N. Marchenko" <me@ruff.mobi>
To: Simon Josefsson <simon=40josefsson.org@dmarc.ietf.org>, Alexey Melnikov <alexey.melnikov@isode.com>
Cc: "kitten@ietf.org" <kitten@ietf.org>
Date: Wed, 27 Oct 2021 08:53:36 +0200
In-Reply-To: <87ilxjo6e1.fsf@latte.josefsson.org>
References: <4a14c16b-644f-ac40-7b3a-a1712c9aa3d2@isode.com> <87ilxjo6e1.fsf@latte.josefsson.org>
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.40.4
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/kitten/JZ9FX15rAbwtnqvDmTJhKJ4V_y8>
Subject: Re: [kitten] Requesting WG adoption of several SCRAM related documents
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Oct 2021 06:53:53 -0000

Hi Simon,
Am Dienstag, dem 26.10.2021 um 22:52 +0200 schrieb Simon Josefsson:
> Hi.  I'm not strongly opposed to these work items, but I do feel
> publishing these documents without adressing high-level concerns have
> a
> risk of causing problems during deployment.  I think the WG should
> understand and consider the implication before adopting the documents
> -
> maybe there is alternative work that needs to happen before/instead.
> 
> 1) For SCRAM-2FA how is user interaction supposed to work for
> applications that open many connections?  This is the problem that
> turned out to kill deployment of SAML20 and OPENID20 for typical
> environments.  I think this is a serious problem for any SASL
> mechanisms
> that works with non-long-term secrets, and I think we should ponder
> if
> there is some generic mechanism (like SASL re-authentication or
> authentication resumption) that needs to be standardized.  Otherwise
> I
> think SCRAM-2FA will end up in the same way, and cause people to do a
> lot of work to try to implement it and run into the same problems.
> 
> 2) Add new hashes for SCRAM causes complexity in applications to
> specify
> and support multiple database entries for different
> password-equivalents.  There is no real guidance on how clients and
> servers should treat multiple hash variants and negotiation between
> them.  SASL does not handle sub-mechanism negotiation well, so it has
> a
> security complexity cost.  I wrote about some of this in
> https://blog.josefsson.org/2021/06/08/whats-wrong-with-scram/ and at
> least one problem is worth repeating:
> 
>   How to negotiate which variant to use is not well-defined. Consider
> if
>   the server only has access to a SCRAM-SHA-1 hashed password for
> user X
>   and a SCRAM-SHA-256 hashed password for user Y. What mechanisms
> should
>   it offer to an unknown client? Offering both is likely to cause
>   authentication failures, and the fall-back behaviour of SASL is
> poor.
I think the problem statement goes beyond the scope of the protocol.
The SASL is pluggable protocol by design and offering many methods is a
differentiating feature of the protocol. Handling credentials database
or applicaiton protocol negotiation is responsibility of the
applicaiton and SASL as authenticaiton protocol cannot mandate that you
should store your passwords this or that way. Rather opposite,
depending on the way the passwords are stored you get an access to
either this or that method. However the protocol negotiates applicaiton
capabilities (which methods authentication backend supports, which of
them are allowed to be used) not application data (which elements are
stored and how). 

Hence adding a [more secure?] method to a protocol which is designed to
use many is an improvement. What needs to be discussed I believe is
whther the new method really adds any value (is more secure). I.e. does
it make sense artificially increasing complexity (bits & iterations of
the pbkdf2) of the hash function which is designed to be fast and
simple? Or instead focus on using high-complexity hashing and
derivation methods like argon2. My knowledge and experience are not
sufficient to answer this question however I _feel_ the added methods
are a workaround, not solution.

And then the problem stated is a good reason and a subject to develop a
new protocol, adaptive to various storage backends and storage methods,
resistant to negotiation mangling and downgrade (SASL already has this
problem with tls binding type negotiation).

Thanks & regards,
Ruslan