Re: [kitten] The Hashed-Token SASL Mechanism (SASL-HT)

Florian Schmaus <flo@geekplace.eu> Tue, 17 October 2017 08:19 UTC

Return-Path: <fschmaus@gmail.com>
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 733741326FE for <kitten@ietfa.amsl.com>; Tue, 17 Oct 2017 01:19:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.22
X-Spam-Level:
X-Spam-Status: No, score=-1.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.199, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=no 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 aZ8BDHIvJsnM for <kitten@ietfa.amsl.com>; Tue, 17 Oct 2017 01:19:05 -0700 (PDT)
Received: from mail-wm0-f45.google.com (mail-wm0-f45.google.com [74.125.82.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 67451126CB6 for <kitten@ietf.org>; Tue, 17 Oct 2017 01:19:05 -0700 (PDT)
Received: by mail-wm0-f45.google.com with SMTP id b189so2077403wmd.4 for <kitten@ietf.org>; Tue, 17 Oct 2017 01:19:05 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:references:to:from:cc:message-id:date :user-agent:mime-version:in-reply-to; bh=w163+wK3UmIM8YJYhPxZ6adY7cyQ/m6nPtY8b3iQsvI=; b=hCjl4D7WAhYqftNxjmhOuWyMTKvR3Q1nJDaHpDjA1+5A5p6ylA8dY8tQkT2rS5uypN 4AYkv1AVfFABDIFWe5j049LKN0AXzkgKSb04GCf1WRepDv/TQNRRDGafZEySY6o5s7Sq m2ti+oQAvVn+Va2Yvx/Li4s/kR9sXgtltTfgnCJAj5ztzsYDNa+AIPG95ad53uyXyb20 KCy7yP7r6JoBN1BUThgfgBZmAyivDWVVaOd08jLOwmijW/Fh1vqXsQcsguPnVWY0po2L GPnC1nMM9zI7An/BmkZuPmSHXkVwp9JAsRst0G6uxWDz9xcz+hu7wOFMgoCkoPU0ToZa qDFQ==
X-Gm-Message-State: AMCzsaVueGYCshr1AyNW3nxqDOduMX8HpOLQADMA/h555SnHVLYJkMux NTDoohJQqCe0r31/fz3eRpsKrNJl
X-Google-Smtp-Source: AOwi7QCtNn0uWU7sUP+AQ1YGMPAIqrWBZo1tPAd9+26OTJs/ZaRRTIHf64DRi5a2is6W7uCjrqTVog==
X-Received: by 10.80.132.232 with SMTP id 95mr16142988edq.294.1508228343621; Tue, 17 Oct 2017 01:19:03 -0700 (PDT)
Received: from [131.188.34.88] (flowubook.informatik.uni-erlangen.de. [131.188.34.88]) by smtp.googlemail.com with ESMTPSA id o55sm7085142edc.90.2017.10.17.01.19.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Oct 2017 01:19:02 -0700 (PDT)
References: <9913d71b-ae22-cc48-34b8-fb29fdf9a00c@geekplace.eu> <20171016025117.GL96685@kduck.kaduk.org>
To: kitten@ietf.org
From: Florian Schmaus <flo@geekplace.eu>
Cc: Christoph Egger <egger@cs.fau.de>
Message-ID: <e6ed6e0c-0d2b-60e2-eeac-b4f48c203612@geekplace.eu>
Date: Tue, 17 Oct 2017 10:19:00 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <20171016025117.GL96685@kduck.kaduk.org>
Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="SJsCR2QaMtIlAWJq7LljUdSjupDlupQwO"
Archived-At: <https://mailarchive.ietf.org/arch/msg/kitten/cvQN1xjrt_kkM_-1g52hQ6aWCuc>
Subject: Re: [kitten] The Hashed-Token SASL Mechanism (SASL-HT)
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 17 Oct 2017 08:19:07 -0000

On 16.10.2017 04:51, Benjamin Kaduk wrote:
> On Fri, Sep 29, 2017 at 11:08:10AM +0200, Florian Schmaus wrote:
>> I would like to note the existence of draft-schmaus-kitten-sasl-ht-01:
>>
>> https://tools.ietf.org/html/draft-schmaus-kitten-sasl-ht-01
> 
> Thanks, I just got a chance to look it over.

Much appreciated, thank you. :)

> [...]
> 
>> Thus we initially authenticate an XMPP session using a strong mechanism
>> like SCRAM, but at resumption-time we want a single round trip
>> mechanism. The basic idea of such a mechanism is that the client
>> requests a short-lived, exclusively ephemeral token after being
>> authenticated, which can be used to authenticate the resumption in an
>> efficient manner.
> [...]
>> The SASL HT-* mechanism outlined is attempting to provide a reasonably
>> secure authentication based around a token obtained over the application
>> protocol, in a single round-trip. This single-round-trip is a key
>> requirement. The proposal uses a single-use token as a shared secret,
>> provides channel binding and mutual authentication.
> 
> There does seem to be some value in having a fast "session resumption"
> SASL mechanism to avoid repeated reauthentication (though presumably there
> should be some guidance to periodically require a full authentication;
> various flows elsewhere do this on a month timescale, roughly).

Good point. I'll write down some recommendations.

> It's a little unfortunate that this ends up requiring TLS for confidentiality
> (as there is some desire to have standalone mechanisms), but that seems
> to be an acceptable tradeoff for this sort of application.

Yes, I think TLS is a requirement to achieve what HT-* tries to achieve
in a secure fashion.

> Without my chair hat, the document is a little rough in some places,
> but it should be pretty straightforward to clean up.  I do appreciate
> the reference to RFC 6919 in particular, but it should really only be
> cited by other "April 1st" RFCs.

I don't remember explicit putting it there, so it is likely a leftover
from the I-D template [1] I've used. Err, I mean it put it there to test
if someone actually reads it. You have passed. :) I've removed the
reference in 02-SNAPSHOT [2].


One important point regarding SASL HT-* I'd like to discuss and hope to
get some insights from such a discussion is, if (and how) we should
combine it with TLS 1.3 early data.

It would be theoretically possible to exploit TLS 1.3 early data for 1
round trip session resumption. The current version of the I-D stays
defensive and forbids the usage of TLS 1.3 early data. However if the
early data *only* contains the HT-* initiator-msg and potential SASL
profile framing of the application protocol, and nothing else, then it
should be safe as far as I can tell. If that is the case, then I really
feel tempted to make use of it.

I'm happy to hear everyone's thoughts on this.

- Florian

1:
https://github.com/miekg/mmark/blob/master/rfc/rfc7511.md#conventions-and-terminology
2:
http://geekplace.eu/xeps/draft-schmaus-kitten-sasl-ht/draft-schmaus-kitten-sasl-ht-02.html