Re: [Rats] Requesting a Nonce from a Verifier

hannes.tschofenig@gmx.net Sun, 03 March 2024 14:01 UTC

Return-Path: <hannes.tschofenig@gmx.net>
X-Original-To: rats@ietfa.amsl.com
Delivered-To: rats@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3D9B5C14F61E for <rats@ietfa.amsl.com>; Sun, 3 Mar 2024 06:01:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.102
X-Spam-Level:
X-Spam-Status: No, score=-7.102 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, 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 (2048-bit key) header.d=gmx.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 z5tisqPPyJ2c for <rats@ietfa.amsl.com>; Sun, 3 Mar 2024 06:01:20 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8028FC14F5E7 for <rats@ietf.org>; Sun, 3 Mar 2024 06:01:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=s31663417; t=1709474473; x=1710079273; i=hannes.tschofenig@gmx.net; bh=LDx1ag+Y5zb7eMkpmDgZCpxW0mBQxizdJl5alFrevvU=; h=X-UI-Sender-Class:From:To:Cc:References:In-Reply-To:Subject: Date; b=s6eDwmDwgULBK/mKIqtgQolrax9y+CJdLyfsSU+lWcs0mKMwPf6Z2v1/KPY/8QDb RPVcrCb+2yf3hbRfxnvUBXqBooeZVvglXTlLiBzmTq5wSHMtKHDyzuFzZFjMKDUJE drDxs8dwCP/hjTxD694Fp0t9AwYr+eobYxHYG2qqeZl4Lh0HSjYRKx43ufESYvsjm dlvMoljzXYzpKzHtZNbGFW4peYQ7T13wZTqaSHfS4fTvt3yrxAtlf/Q04+LxicHpN NHaiL9O0YPFvuch/hCPAgkNSOJIhWEHDxuURpvZ2j7Ob62Bgx2z4GyKldIyzhAX+5 CkJIzO6TJ7vn+39m2Q==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from Surface ([213.162.73.184]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MMXQ5-1rOyhb2OGN-00Jbob; Sun, 03 Mar 2024 15:01:12 +0100
From: hannes.tschofenig@gmx.net
To: 'Orie Steele' <orie@transmute.industries>
Cc: "'Smith, Ned'" <ned.smith@intel.com>, 'Henk Birkholz' <henk.birkholz@ietf.contact>, 'rats' <rats@ietf.org>
References: <02c501da6987$d2d64490$7882cdb0$@gmx.net> <ecf9ac86-82f2-80b7-160a-bdde42387ef0@ietf.contact> <2E3E84DF-F528-420D-BB70-B6E23FEE0978@intel.com> <CAN8C-_LO+J+gj3=RutGiyxzpvint3Jb40-OwEEraGht-1dhdBw@mail.gmail.com> <010201da6d59$dc8a9ec0$959fdc40$@gmx.net> <CAN8C-_LH+oeMRUuEZrWr1Ksn53CuFL2qx6V1pAwZ59-ZgmSg2g@mail.gmail.com>
In-Reply-To: <CAN8C-_LH+oeMRUuEZrWr1Ksn53CuFL2qx6V1pAwZ59-ZgmSg2g@mail.gmail.com>
Date: Sun, 03 Mar 2024 15:01:10 +0100
Message-ID: <029501da6d73$4040dbf0$c0c293d0$@gmx.net>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0296_01DA6D7B.A2078DE0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQHkjc8NO12IKOZuXw2UILj14z9qVAJzCjp3AbxM7HwA1+FgWwGemtPnAWRB47ew0XZtwA==
Content-Language: de-at
X-Provags-ID: V03:K1:v4jZSyKha/DdmQWZ3V/l90Kc70vfBUYpPbHHQ8knjvVSOUpQhzQ Sai9setoUhNaZq1gRkmbZwYbkeLEUH5n1IvG+NuX+fO0Nv7WcT3POkph1G3BTUV19zuePk7 25AEdTM3byXxSDiXm4UuRA7i3DNUV4i743q3sTUKq6OKZxAz5gJesRxxpbpVCM2z0rrCFSl agp+EnkR0RWCUszhvUhNQ==
UI-OutboundReport: notjunk:1;M01:P0:iQWxqgYBUCo=;9zQV22HKIVTm3+V04pyiReHsj+e qsz7vVdWDjbR3/sU/KPwjOByVAXQJswbgDtvq5aj6nXtVjCur4sXBkIJI7Bmhv4lCWjYQ+kwq 41BTaG3qEwzT8I5QkD3V0YQmOYhMU0SbiYVyjkj1xTYG+XgWjH9alil8QVP/fINRKIDeVMLEe swdnTTy7WtRocObIp8oV38c4KacIbTSmAz++GI0PESygAHMUJpfNldzPcrs0ltK3lJNtStU0V iX4tFMoY0e1gBPgdVHLfWxmAkAfaKSkqylkuA4JXUIH3WC2QC6lhquO9fcXfmqzTv5Tfum5Uz k2NZLRKLCmOh5Ijp62gHE6Iue8iO0Pjxr58L4T1h2wMMCUXNKUppc/T7VzbB4zMia0WttfuSU vIEIbL2IdHUAQ/qJT2ulXG9Ax7/BbIQeLlvmDAVmxfruJb7sZcpcS2IBZvelZscwwbwjwTxX+ H9oOXxRuqQOWGNLA9pvsj11a/3F2o3zvguwHBS9gu4ePTVDKP8/nsR9AWgx0HhEy/ScyUahJG PVb5uFDtG25AyVCMCnYu68hP9+nerfBLq1c1Fd6hTfgYF2cOUvr3T7qc8IxH3jhsY7eUH5+ra efpzwETVZ6Krif3EAGrnVWgM2Piq8mqAvUzV0qmm4uko/y1Gli0EGJkswylBCCtdc/tHAdXKU CeWW22EoWLc/IIojRn2bsQ+VaW+e7qbfd6CCUNUG3HiRkX1IsTkiEEQHKSTN8X5hhL6wM/vOf /XZs0DdYhxjO5AS20W3WP7x9DCpv1KBcQzyfNnOVS7ncs9frOdRBiPe/BLCNhUgL7KEtfjvk9 RqwseTe3LxzG7Cg3yYtri5TSs1b7T9S5RL6ACU6EqiPHY=
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/s0kpY-PgZupGtzg-olZD1-9HZQs>
Subject: Re: [Rats] Requesting a Nonce from a Verifier
X-BeenThere: rats@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Remote ATtestation procedureS <rats.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rats>, <mailto:rats-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rats/>
List-Post: <mailto:rats@ietf.org>
List-Help: <mailto:rats-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rats>, <mailto:rats-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Mar 2024 14:01:24 -0000

Hi Orie,

 

I think a lot of what you wrote in your email below regarding the use case should go into the draft. I wonder whether it would make sense to put the content of the nonce draft together with your other draft. 

 

Regarding being stateless: If you borrow the ticket design from TLS, see https://datatracker.ietf.org/doc/html/rfc5077, then you can be stateless. There is even a recommended ticket construction that is very lightweight (and widely used in deployments). 

 

That’s at least what Hendrik and I have been considering. In the attestation context we couldn’t, however, use the ticket design directly because the size of the ticket exceeds the expected size of a nonce. Hence, we would have to convey the nonce along with the ticket to the device and then return the CSR + evidence + ticket in the response. That would be yet another change to the CSR attestation draft …

 

In your use case nonce size limitations does not seem to exist. Hence, you could more or less copy the ticket design from TLS.

 

Ciao
Hannes

 

 

The draft is meant to support use cases where a nonce is needed in digital credential issuance and presentations.

 

Using a signed or encrypted value allows the verifier to remain stateless. Which prevents DoS against table based nonce solutions.

 

It also enables scope or context binding for the nonce value.

 

In the attested status draft the credential holder needs to demonstrate possession in order to receive a fresh status attestation... This means they need to aquire a nonce first.

 

For a concrete example, imagine a digital wallet requests proof that a digital drivers license is not suspended, every few days.

 

The wallet proves possession of the license, the issuer provides a fresh proof of non revocation, and then later (within some validity period window for the status attestation) the wallet can present both the credential and the proof of non suspension, even to an offline verifier.

 

OAuth has a number of endpoints that are anonymous access, but endpoints that perform more expensive operations, such as encryption or signatures, should consider more aggressive restrictions... Suggestions are welcome :)

 

 

OS

 

 

On Sun, Mar 3, 2024, 4:59 AM <hannes.tschofenig@gmx.net <mailto:hannes.tschofenig@gmx.net> > wrote:

Hi Orie,

 

Thanks for sharing the draft. Of course, I have been aware of it.

 

I have been wondering about three aspects of your design:

 

1.	What use cases do you have in mind? Obviously, this draft was not written for DPoP since that already has a solution. You also haven’t written it for attestation in OAuth since there is this other great document that also specifies a solution.
2.	Why do you require encryption of the nonce?
3.	How do you protect the nonce issuer from DoS attacks?

 

The write-up in the CMP/EST nonce draft was inspired by  the Attestation Verifier implementation.

 

Ciao

Hannes

 

 

From: RATS <rats-bounces@ietf.org <mailto:rats-bounces@ietf.org> > On Behalf Of Orie Steele
Sent: Mittwoch, 28. Februar 2024 02:42
To: Smith, Ned <ned.smith@intel.com <mailto:ned.smith@intel.com> >
Cc: Henk Birkholz <henk.birkholz@ietf.contact <mailto:henk.birkholz@ietf.contact> >; rats <rats@ietf.org <mailto:rats@ietf.org> >
Subject: Re: [Rats] Requesting a Nonce from a Verifier

 

In the context of OAuth DPoP the same endpoint that requires proof of possession, can return a fresh nonce, in error messages, and there is also this draft:

 

https://datatracker.ietf.org/doc/draft-demarco-oauth-nonce-endpoint/

 

Which seeks to solve a similar challenge, without overloading an error response.

 

OS

 

On Tue, Feb 27, 2024, 7:24 PM Smith, Ned <ned.smith@intel.com <mailto:ned.smith@intel.com> > wrote:

Given 9334 outlines several possible ways to incorporate freshness and recentness and given the reference interaction models I-D provides patterns for exchanging information that should possibly include freshness and recentness considerations. And considering the WG charter biases the WG to focus on augmenting existing protocols over designing new ones, it seems Henk's suggestion to improve the reference interaction models I-D make sense. 

If this thread is focused on an I-D that modifies an existing protocol with freshness and recentness, then would it make sense to use the interactions models I-D to work out the general principles for how freshness/recentness is achieved first. Then, can it be cited as background for other I-Ds that describe specific modifications for an existing protocol?

-Ned (not as chair)

On 2/27/24, 11:35 PM, "RATS on behalf of Henk Birkholz" <rats-bounces@ietf.org <mailto:rats-bounces@ietf.org>  <mailto:rats-bounces@ietf.org <mailto:rats-bounces@ietf.org> > on behalf of henk.birkholz@ietf.cont <mailto:henk.birkholz@ietf.cont>  <mailto:henk.birkholz@ietf.cont <mailto:henk.birkholz@ietf.cont> >act> wrote:


Hi Hannes,


I am in a weird TZ offset, so just a quick reply.


On 27.02.24 15:18, hannes.tschofenig=40gmx.net@dmarc.ietf.org <mailto:40gmx.net@dmarc.ietf.org>  <mailto:40gmx.net@dmarc.ietf.org <mailto:40gmx.net@dmarc.ietf.org> > wrote:
> Hi all,
> 
> Hendrik and I have been working on an update of the CMP/EST extensions, 
> which allow an Attester to request a nonce via the Relying Party (in the 
> background check model). This “nonce draft”, see 
> draft-tschofenig-lamps-nonce-cmp-est, aims to provide freshness for the 
> CSR attestation draft (see draft-ietf-lamps-csr-attestation).


Why focus on a nonce for a combination of recentness and freshness, when 
you could also use an epoch marker?


> 
> We have been wondering about the design of this protocol interface. At a 
> minimum, the attester needs to indicate the length of the nonce being 
> requested from the verifier.


Why? It can cut it short, the Verifier will understand? Are there 
obvious security considerations that I am missing here? The nonce is 
requested via an authenticated channel, I assum?


> EAT, however, supports also an array of 
> nonces in the nonce claim. Should such a protocol interface allow a 
> request for multiple nonces?


Sure, the you do not have to request a nonce for ever interaction and 
the Verifier can keep track.


> Furthermore, the Attester may also need to 
> provide information about the Verifier. This is necessary when there are 
> many Verifiers in the system and not everyone of them might be able to 
> successfully verify the Evidence. Should the request for a nonce also 
> include information about the attestation technology supported by the 
> attester?


Discovery of appropriate Verifier and "requesting nonces" (which kinda 
is still shooting from the back into the eye) are different things. You 
can compose both protocol action, but my initial reply would be: 
Discovery, Feature negotiation, and then epoch marker requests are quite 
different things.


> 
> We thought that this type of foundational feature is described in detail 
> in one of the RATS working group documents and the 
> draft-ietf-rats-reference-interaction-models seemed like a good starting 
> point for such details. Unfortunately, this document falls short in 
> explaining these types of aspects because it is heavily focused on a 
> specific TPM deployment.


That is bad. Please help us fix that.


> 
> Has someone in the group thought about this aspect already or has 
> otherwise gained experience with this aspect?


Requesting a nonce and therefore taking on the role of a challenger in 
arequest/response interaction model to then get a nonce to provide a 
solicited push of Evidence is bit of a flaky procedure, isn't it?


How do you assure that the recently received nonce is used to convey 
fresh evidence? Is there a timeout? Can you cache it? (like with the 
array of nonces). Why can't the Attester just trigger the Verifier to do 
the challenge/response? That seems a bit more straight forward? Maybe I 
am missing something very obvious here.


> 
> Ciao
> 
> Hannes
> 
> 


Viele Grüße,


Henk


> _______________________________________________
> RATS mailing list
> RATS@ietf.org <mailto:RATS@ietf.org>  <mailto:RATS@ietf.org <mailto:RATS@ietf.org> >
> https://www.ietf.org/mailman/listinfo/rats <https://www.ietf.org/mailman/listinfo/rats>


_______________________________________________
RATS mailing list
RATS@ietf.org <mailto:RATS@ietf.org>  <mailto:RATS@ietf.org <mailto:RATS@ietf.org> >
https://www.ietf.org/mailman/listinfo/rats <https://www.ietf.org/mailman/listinfo/rats>



_______________________________________________
RATS mailing list
RATS@ietf.org <mailto:RATS@ietf.org> 
https://www.ietf.org/mailman/listinfo/rats