Re: [core] integrity protection for trial-and-error determine of token length

Michael Richardson <mcr+ietf@sandelman.ca> Thu, 01 October 2020 19:17 UTC

Return-Path: <mcr+ietf@sandelman.ca>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1D2DA3A0E60 for <core@ietfa.amsl.com>; Thu, 1 Oct 2020 12:17:16 -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 CFYoOgd5EHOP for <core@ietfa.amsl.com>; Thu, 1 Oct 2020 12:17:14 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0364E3A0E5E for <core@ietf.org>; Thu, 1 Oct 2020 12:17:13 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by tuna.sandelman.ca (Postfix) with ESMTP id 0B74238A13 for <core@ietf.org>; Thu, 1 Oct 2020 15:22:14 -0400 (EDT)
Received: from tuna.sandelman.ca ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with LMTP id UpfJCy7llKUH for <core@ietf.org>; Thu, 1 Oct 2020 15:22:10 -0400 (EDT)
Received: from sandelman.ca (obiwan.sandelman.ca [209.87.249.21]) by tuna.sandelman.ca (Postfix) with ESMTP id 00F4C38A0E for <core@ietf.org>; Thu, 1 Oct 2020 15:22:10 -0400 (EDT)
Received: from localhost (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id A9E26CF4 for <core@ietf.org>; Thu, 1 Oct 2020 15:17:08 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
to: core@ietf.org
In-Reply-To: <17803.1601577368@localhost>
References: <30317.1601403281@localhost> <99764840-E759-40AF-A80D-1E5F4984C334@tzi.org> <17803.1601577368@localhost>
X-Mailer: MH-E 8.6+git; nmh 1.7+dev; GNU Emacs 26.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha512"; protocol="application/pgp-signature"
Date: Thu, 01 Oct 2020 15:17:08 -0400
Message-ID: <27172.1601579828@localhost>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/7UVEPOJWEUrdpraLDfog7wc_FuQ>
Subject: Re: [core] integrity protection for trial-and-error determine of token length
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 01 Oct 2020 19:17:16 -0000

    > #5 lack of integrity protection results in spoofed responses
    > https://github.com/core-wg/stateless/issues/5

bk> Also, when integrity protection is not in use, the client is susceptible
bk> to spoofed responses that had no corresponding request -- only a very
bk> limited subset of request/response pairs are safe to convert to
bk> "unauthenticated server push", as that would effectivley do, and we
bk> should probably mention that explicitly.

This is, I think, not about the responses to the trial-and-error, but about
fake/spoofed replies to queries that the client makes that have a token.

I'm not sure how stateless is intended to interact with OBSERVE, which I
think that this is about.   Have I understood this part?


bk> I'd also suggest noting that a self-encrypted state token bears
bk> significant resemblance to a TLS self-encrypted session ticket, and
bk> reference the RFC 5077 security considerations. (Yes, I know that RFC
bk> 8446 Obsoletes RFC 5077; it would be an informational reference only.)

It's certainly similar in that it is a self-encrypted thing in which state is
placed.  I don't think that a reference to RFC5077 will be helpful here, but
I can look for a good place to insert this if desired.

bk> This could also lead to some discussion about having in general an
bk> appropriate amount of sanity checks on the returned token that may or may
bk> not reflect serialized state, to limit the scope of various attacks even
bk> in the absence of cryptographic protections.

I think that an appropriate thing is to caution against using state tokens
that do not have integrity protection.  I think that we try to do this in
5.2, but maybe we do in text too cryptic:

5.2.  Stateless Clients and Intermediaries

...
   It is generally expected that the use of encryption, integrity
   protection, and replay protection for serialized state is
   appropriate.  In the absence of integrity and reply protection, an
   on-path attacker or rogue server/intermediary could return a state
   (either one modified in a reply, or an unsolicited one) that could
   alter the internal state of the client.  However, a careful analysis
   of any potential attacks to the security and privacy properties of
   the system might reveal that there are cases where such cryptographic
   protections do not add value in a specific case.


https://github.com/core-wg/stateless/pull/13

diff --git a/draft-ietf-core-stateless.xml b/draft-ietf-core-stateless.xml
index aa44479..748ef21 100644
--- a/draft-ietf-core-stateless.xml
+++ b/draft-ietf-core-stateless.xml
@@ -856,10 +856,15 @@
           in a reply, or an unsolicited one) that could alter the internal state
           of the client.

-          However, a careful analysis of any potential attacks to the security
-          and privacy properties of the system might reveal that there are cases
-          where such cryptographic protections do not add value in a specific
-          case.
+          It is this reason that at least the use of integrity protection on
+          the token is always recommended.
+        </t>
+
+        <t>
+          It maybe that in some very specific case, as a result of a careful
+          and detailed analysis of any potential attacks,  that there may be cases
+          where such cryptographic protections do not add value.  The authors
+          of this document have not found such a use case as yet.
         </t>

         <t>



--
Michael Richardson <mcr+IETF@sandelman.ca>   . o O ( IPv6 IøT consulting )
           Sandelman Software Works Inc, Ottawa and Worldwide