Return-Path: <jricher@mitre.org>
X-Original-To: jose@ietfa.amsl.com
Delivered-To: jose@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix)
 with ESMTP id 9FD7C11E80E7 for <jose@ietfa.amsl.com>;
 Tue, 28 Aug 2012 14:16:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.562
X-Spam-Level: 
X-Spam-Status: No, score=-6.562 tagged_above=-999 required=5 tests=[AWL=0.036,
 BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com
 [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w8mzNE7-KfLe for
 <jose@ietfa.amsl.com>; Tue, 28 Aug 2012 14:16:01 -0700 (PDT)
Received: from smtpksrv1.mitre.org (smtpksrv1.mitre.org [198.49.146.77]) by
 ietfa.amsl.com (Postfix) with ESMTP id 7AED511E80A5 for <jose@ietf.org>;
 Tue, 28 Aug 2012 14:16:01 -0700 (PDT)
Received: from smtpksrv1.mitre.org (localhost.localdomain [127.0.0.1]) by
 localhost (Postfix) with SMTP id BFBC221B0C2D;
 Tue, 28 Aug 2012 17:16:00 -0400 (EDT)
Received: from IMCCAS04.MITRE.ORG (imccas04.mitre.org [129.83.29.81]) by
 smtpksrv1.mitre.org (Postfix) with ESMTP id 9840A21B08A0;
 Tue, 28 Aug 2012 17:16:00 -0400 (EDT)
Received: from [10.146.15.29] (129.83.31.58) by IMCCAS04.MITRE.ORG
 (129.83.29.81) with Microsoft SMTP Server (TLS) id 14.2.309.2;
 Tue, 28 Aug 2012 17:16:00 -0400
Message-ID: <503D34B4.9040606@mitre.org>
Date: Tue, 28 Aug 2012 17:14:28 -0400
From: Justin Richer <jricher@mitre.org>
User-Agent: Mozilla/5.0 (X11; Linux i686;
 rv:14.0) Gecko/20120714 Thunderbird/14.0
MIME-Version: 1.0
To: Brian Campbell <bcampbell@pingidentity.com>
References: <4E1F6AAD24975D4BA5B1680429673943667A93F8@TK5EX14MBXC284.redmond.corp.microsoft.com>
 <CAHcDwFzh6HcgsJYFXq71RWSwKWkMADBNQH7_goAtTFNmz-wSwQ@mail.gmail.com>
 <503CD692.4020007@mitre.org>
 <F668D905-31C6-4D76-935F-4AD4A8859876@ve7jtb.com>
 <CAAJ++qHK0NwCxYVoWNdF_h-of4s3nXn+bOVHVHMzeNqfmiwsMg@mail.gmail.com>
 <CA+k3eCQbFQQo50tvjreuAbNwQFpOABCrXsuNbxWc0hAdqHzwTw@mail.gmail.com>
In-Reply-To: <CA+k3eCQbFQQo50tvjreuAbNwQFpOABCrXsuNbxWc0hAdqHzwTw@mail.gmail.com>
Content-Type: multipart/alternative;
 boundary="------------010303090806060809000209"
X-Originating-IP: [129.83.31.58]
Cc: Axel Nennker <ignisvulpis@googlemail.com>,
 Jim Schaad <ietf@augustcellars.com>, Breno de Medeiros <breno@google.com>,
 Mike Jones <Michael.Jones@microsoft.com>, "jose@ietf.org" <jose@ietf.org>,
 John Bradley <ve7jtb@ve7jtb.com>
Subject: Re: [jose] DISCUSS: Nonce/Timestamp parameter
X-BeenThere: jose@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Javascript Object Signing and Encryption <jose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jose>,
 <mailto:jose-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/jose>
List-Post: <mailto:jose@ietf.org>
List-Help: <mailto:jose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jose>,
 <mailto:jose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Aug 2012 21:16:04 -0000

--------------010303090806060809000209
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit

So the obvious question (to me) is whether or not the claim should move 
to the JOSE layer.

  -- Justin

On 08/28/2012 04:46 PM, Brian Campbell wrote:
> Isn't the pool question really about JOSE (this is the JOSE list after 
> all) and if a nonce or timestamp type thing should be defined in 
> JWE/JWS as a Reserved Header Parameter Name?
>
> I don't think it can be said that we already have an issued time 
> defined. "iat" (Issued At) is a claim defined in JWT. That's all 
> together a different thing than a JOSE header and I don't see anything 
> like it anywhere in the JOSE docs. JWT is a layer above JOSE and, 
> while there is a lot of overlap of people, is being developed in a 
> completely different WG.
>
> I'm, at this point, saying we need this thing but rather just trying 
> to clarify the question.
>
> On Tue, Aug 28, 2012 at 1:06 PM, Breno de Medeiros <breno@google.com 
> <mailto:breno@google.com>> wrote:
>
>     I agree that this should be looked independently of oauth2.
>
>     Nonce is a generally used concept in crypto, though sometimes
>     protocol designers have called for nonces with bad outcomes
>     because the difficulty of implementing nonce-checking was
>     disregarded. However, difficulties to implement nonces in general
>     are not relevant if there is a compelling use case that is able to
>     leverage nonces effectively.
>
>     As for timestamps: we already have issued time and the nonce can
>     embed a timestamp additionally. So I don't think we need to
>     concern ourselves with timestamps when considering nonces.
>
>
>
>
>     On Tue, Aug 28, 2012 at 8:09 AM, John Bradley <ve7jtb@ve7jtb.com
>     <mailto:ve7jtb@ve7jtb.com>> wrote:
>
>         In OAuth 2 state gets overloaded with a bunch of things from
>         preventing XSRF to providing a handle to look up who the the
>         authorization request was sent to.
>
>         In Connect we added a nonce sent by client that is returned
>         inside the signed id_token (JWT) to allow the client to detect
>         replay, and optionally reference a specific browser session
>         that presents the id_token.
>
>         The nonce I suggested for JOSE is not ether of those.
>
>         I used nonce in the sense that it is used with stream cyphers
>         when the same key is used over multiple messages.
>
>         JOSE will be used for more than OAuth and JWT.   There are
>         cases where adding entropy to the header will be a security
>         benefit.  I would like to have a standard claim for doing that.
>         If people want to call it something else that is fine, but it
>         is a nonce by definition.
>         If used it should be a random or pseudo random value that is
>         time variant with sufficient granularity to ensure a nonce is
>         used only once.
>
>         John B.
>
>         On 2012-08-28, at 10:32 AM, Justin Richer <jricher@mitre.org
>         <mailto:jricher@mitre.org>> wrote:
>
>>         On 08/25/2012 03:37 AM, Axel Nennker wrote:
>>>         To clarify: What is the base specification that Jim mentioned?
>>>         Is it:
>>>         http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-03 ?
>>>
>>>         Would somebody please present a use-case for either nonce or
>>>         timestamp?
>>>         If a jwt is used with oauth2 then what is the difference
>>>         between nonce and state? Nonce would be signed while state
>>>         is not?
>>>
>>
>>         Nonce would generally be generated by the entity creating the
>>         token. State in OAuth is generated by the client, and would
>>         only be protected if the client had a means to make a signed
>>         request to the server, using either a MAC binding or a
>>         JWT-based OIDC-style RequestObject.
>>
>>          -- Justin
>>
>>>         I guess I am missing some information that those in the room
>>>         who voted "yes" had?
>>>
>>>         Axel
>>>
>>>         2012/8/25 Mike Jones <Michael.Jones@microsoft.com
>>>         <mailto:Michael.Jones@microsoft.com>>
>>>
>>>             I'll note for discussion purposes that a nonce and a
>>>             timestamp are not the same thing (although sometimes
>>>             they are used to achieve similar/related goals).  A
>>>             nonce tends to be an opaque value that must be preserved
>>>             across the communication.  Whereas a timestamp typically
>>>             has defined semantics - sometimes simply a
>>>             non-decreasing integer value - and sometimes a
>>>             representation of time, and then, sometimes with a
>>>             uniqueness requirement.
>>>
>>>             For discussion purposes, I'll say that the simplest
>>>             thing for us to do (should we decide to do anything in
>>>             this regard) would be to define the nonce as an opaque
>>>             string value that must be preserved.
>>>
>>>             We could also define a timestamp parameter, but as I
>>>             wrote above, that would likely require us to specify
>>>             additional semantics - starting with whether it's a
>>>             non-decreasing integer or a representation of a time
>>>             value.  This seems much harder to define and possibly to
>>>             use than a nonce.
>>>
>>>             Would it make sense to define a nonce parameter now and
>>>             hold off on defining a timestamp parameter until there's
>>>             a clear demonstrated use case for which a nonce is not
>>>             sufficient?  That would be my personal recommendation.
>>>
>>>             Best wishes,
>>>             -- Mike
>>>
>>>             -----Original Message-----
>>>             From: jose-bounces@ietf.org
>>>             <mailto:jose-bounces@ietf.org>
>>>             [mailto:jose-bounces@ietf.org
>>>             <mailto:jose-bounces@ietf.org>] On Behalf Of Jim Schaad
>>>             Sent: Friday, August 17, 2012 12:05 AM
>>>             To: jose@ietf.org <mailto:jose@ietf.org>
>>>             Subject: [jose] POLL: Nonce/Timestamp parameter
>>>
>>>             <CHAIR>
>>>
>>>             If you voted at the face-2-face please do not vote
>>>             again.  If you want to provide comments please change
>>>             the title from POLL to DISCUSS.
>>>
>>>             Do we need to define a nonce/timestamp parameter in the
>>>             base specification?
>>>
>>>
>>>
>>>             Room vote:  6 yes, 0 no, 1 discuss
>>>
>>>
>>>             _______________________________________________
>>>             jose mailing list
>>>             jose@ietf.org <mailto:jose@ietf.org>
>>>             https://www.ietf.org/mailman/listinfo/jose
>>>
>>>
>>>             _______________________________________________
>>>             jose mailing list
>>>             jose@ietf.org <mailto:jose@ietf.org>
>>>             https://www.ietf.org/mailman/listinfo/jose
>>>
>>>
>>>
>>>
>>>         _______________________________________________
>>>         jose mailing list
>>>         jose@ietf.org  <mailto:jose@ietf.org>
>>>         https://www.ietf.org/mailman/listinfo/jose
>>
>>         _______________________________________________
>>         jose mailing list
>>         jose@ietf.org <mailto:jose@ietf.org>
>>         https://www.ietf.org/mailman/listinfo/jose
>
>
>         _______________________________________________
>         jose mailing list
>         jose@ietf.org <mailto:jose@ietf.org>
>         https://www.ietf.org/mailman/listinfo/jose
>
>
>
>
>     -- 
>     --Breno
>
>
>     _______________________________________________
>     jose mailing list
>     jose@ietf.org <mailto:jose@ietf.org>
>     https://www.ietf.org/mailman/listinfo/jose
>
>


--------------010303090806060809000209
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">So the obvious question (to me) is
      whether or not the claim should move to the JOSE layer.<br>
      <br>
      &nbsp;-- Justin<br>
      <br>
      On 08/28/2012 04:46 PM, Brian Campbell wrote:<br>
    </div>
    <blockquote
cite="mid:CA+k3eCQbFQQo50tvjreuAbNwQFpOABCrXsuNbxWc0hAdqHzwTw@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      Isn't the pool question really about JOSE (this is the JOSE list
      after all) and if a nonce or timestamp type thing should be
      defined in JWE/JWS as a Reserved Header Parameter Name?&nbsp; <br>
      <br>
      I don't think it can be said that we already have an issued time
      defined. "iat" (Issued At) is a claim defined in JWT. That's all
      together a different thing than a JOSE header and I don't see
      anything like it anywhere in the JOSE docs. JWT is a layer above
      JOSE and, while there is a lot of overlap of people, is being
      developed in a completely different WG.<br>
      <br>
      I'm, at this point, saying we need this thing but rather just
      trying to clarify the question. <br>
      <br>
      <div class="gmail_quote">On Tue, Aug 28, 2012 at 1:06 PM, Breno de
        Medeiros <span dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:breno@google.com" target="_blank">breno@google.com</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">I agree that
          this should be looked independently of oauth2.
          <div><br>
          </div>
          <div>Nonce is a generally used concept in crypto, though
            sometimes protocol designers have called for nonces with bad
            outcomes because the difficulty of implementing
            nonce-checking was disregarded. However, difficulties to
            implement nonces in general are not relevant if there is a
            compelling use case that is able to leverage nonces
            effectively.</div>
          <div><br>
          </div>
          <div>As for timestamps: we already have issued time and the
            nonce can embed a timestamp additionally. So I don't think
            we need to concern ourselves with timestamps when
            considering nonces.</div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div class="gmail_extra">
            <div>
              <div class="h5"><br>
                <br>
                <div class="gmail_quote">On Tue, Aug 28, 2012 at 8:09
                  AM, John Bradley <span dir="ltr">&lt;<a
                      moz-do-not-send="true"
                      href="mailto:ve7jtb@ve7jtb.com" target="_blank">ve7jtb@ve7jtb.com</a>&gt;</span>
                  wrote:<br>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    <div style="word-wrap:break-word">In OAuth 2 state
                      gets overloaded with a bunch of things from
                      preventing XSRF to providing a handle to look up
                      who the the authorization request was sent to.
                      <div>
                        <br>
                      </div>
                      <div>In Connect we added a nonce sent by client
                        that is returned inside the signed id_token
                        (JWT) to allow the client to detect replay, and
                        optionally reference a specific browser session
                        that presents the id_token.</div>
                      <div><br>
                      </div>
                      <div>The nonce I suggested for JOSE is not ether
                        of those. &nbsp;</div>
                      <div><br>
                      </div>
                      <div>I used nonce in the sense that it is used
                        with stream cyphers when the same key is used
                        over multiple messages.</div>
                      <div>
                        <br>
                      </div>
                      <div>JOSE will be used for more than OAuth and
                        JWT. &nbsp; There are cases where adding entropy to
                        the header will be a security benefit. &nbsp;I would
                        like to have a standard claim for doing that.</div>
                      <div>If people want to call it something else that
                        is fine, but it is a nonce by definition.</div>
                      <div>If used it should be a random or pseudo
                        random value that is time variant with
                        sufficient granularity to ensure a nonce is used
                        only once.</div>
                      <div><br>
                      </div>
                      <div>John B.</div>
                      <div>
                        <div>
                          <div><br>
                          </div>
                          <div>
                            <div>
                              <div>On 2012-08-28, at 10:32 AM, Justin
                                Richer &lt;<a moz-do-not-send="true"
                                  href="mailto:jricher@mitre.org"
                                  target="_blank">jricher@mitre.org</a>&gt;
                                wrote:</div>
                              <br>
                              <blockquote type="cite">
                                <div bgcolor="#FFFFFF" text="#000000">
                                  <div>On 08/25/2012 03:37 AM, Axel
                                    Nennker wrote:<br>
                                  </div>
                                  <blockquote type="cite"> To clarify:
                                    What is the base specification that
                                    Jim mentioned? <br>
                                    Is it: <a moz-do-not-send="true"
                                      href="http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-03"
                                      target="_blank">http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-03</a>
                                    ?<br>
                                    <br>
                                    Would somebody please present a
                                    use-case for either nonce or
                                    timestamp?<br>
                                    If a jwt is used with oauth2 then
                                    what is the difference between nonce
                                    and state? Nonce would be signed
                                    while state is not?<br>
                                    <br>
                                  </blockquote>
                                  <br>
                                  Nonce would generally be generated by
                                  the entity creating the token. State
                                  in OAuth is generated by the client,
                                  and would only be protected if the
                                  client had a means to make a signed
                                  request to the server, using either a
                                  MAC binding or a JWT-based OIDC-style
                                  RequestObject.<br>
                                  <br>
                                  &nbsp;-- Justin<br>
                                  <br>
                                  <blockquote type="cite">I guess I am
                                    missing some information that those
                                    in the room who voted "yes" had?<br>
                                    <br>
                                    Axel<br>
                                    <br>
                                    <div class="gmail_quote">2012/8/25
                                      Mike Jones <span dir="ltr">&lt;<a
                                          moz-do-not-send="true"
                                          href="mailto:Michael.Jones@microsoft.com"
                                          target="_blank">Michael.Jones@microsoft.com</a>&gt;</span><br>
                                      <blockquote class="gmail_quote"
                                        style="margin:0 0 0
                                        .8ex;border-left:1px #ccc
                                        solid;padding-left:1ex"> I'll
                                        note for discussion purposes
                                        that a nonce and a timestamp are
                                        not the same thing (although
                                        sometimes they are used to
                                        achieve similar/related goals).
                                        &nbsp;A nonce tends to be an opaque
                                        value that must be preserved
                                        across the communication.
                                        &nbsp;Whereas a timestamp typically
                                        has defined semantics -
                                        sometimes simply a
                                        non-decreasing integer value -
                                        and sometimes a representation
                                        of time, and then, sometimes
                                        with a uniqueness requirement.<br>
                                        <br>
                                        For discussion purposes, I'll
                                        say that the simplest thing for
                                        us to do (should we decide to do
                                        anything in this regard) would
                                        be to define the nonce as an
                                        opaque string value that must be
                                        preserved.<br>
                                        <br>
                                        We could also define a timestamp
                                        parameter, but as I wrote above,
                                        that would likely require us to
                                        specify additional semantics -
                                        starting with whether it's a
                                        non-decreasing integer or a
                                        representation of a time value.
                                        &nbsp;This seems much harder to
                                        define and possibly to use than
                                        a nonce.<br>
                                        <br>
                                        Would it make sense to define a
                                        nonce parameter now and hold off
                                        on defining a timestamp
                                        parameter until there's a clear
                                        demonstrated use case for which
                                        a nonce is not sufficient? &nbsp;That
                                        would be my personal
                                        recommendation.<br>
                                        <br>
                                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                                        Best wishes,<br>
                                        &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                                        -- Mike<br>
                                        <br>
                                        -----Original Message-----<br>
                                        From: <a moz-do-not-send="true"
href="mailto:jose-bounces@ietf.org" target="_blank">jose-bounces@ietf.org</a>
                                        [mailto:<a
                                          moz-do-not-send="true"
                                          href="mailto:jose-bounces@ietf.org"
                                          target="_blank">jose-bounces@ietf.org</a>]
                                        On Behalf Of Jim Schaad<br>
                                        Sent: Friday, August 17, 2012
                                        12:05 AM<br>
                                        To: <a moz-do-not-send="true"
                                          href="mailto:jose@ietf.org"
                                          target="_blank">jose@ietf.org</a><br>
                                        Subject: [jose] POLL:
                                        Nonce/Timestamp parameter<br>
                                        <br>
                                        &lt;CHAIR&gt;<br>
                                        <br>
                                        If you voted at the face-2-face
                                        please do not vote again. &nbsp;If
                                        you want to provide comments
                                        please change the title from
                                        POLL to DISCUSS.<br>
                                        <br>
                                        Do we need to define a
                                        nonce/timestamp parameter in the
                                        base specification?<br>
                                        <br>
                                        <br>
                                        <br>
                                        Room vote: &nbsp;6 yes, 0 no, 1
                                        discuss<br>
                                        <br>
                                        <br>
_______________________________________________<br>
                                        jose mailing list<br>
                                        <a moz-do-not-send="true"
                                          href="mailto:jose@ietf.org"
                                          target="_blank">jose@ietf.org</a><br>
                                        <a moz-do-not-send="true"
                                          href="https://www.ietf.org/mailman/listinfo/jose"
                                          target="_blank">https://www.ietf.org/mailman/listinfo/jose</a><br>
                                        <br>
                                        <br>
_______________________________________________<br>
                                        jose mailing list<br>
                                        <a moz-do-not-send="true"
                                          href="mailto:jose@ietf.org"
                                          target="_blank">jose@ietf.org</a><br>
                                        <a moz-do-not-send="true"
                                          href="https://www.ietf.org/mailman/listinfo/jose"
                                          target="_blank">https://www.ietf.org/mailman/listinfo/jose</a><br>
                                      </blockquote>
                                    </div>
                                    <br>
                                    <br>
                                    <fieldset></fieldset>
                                    <br>
                                    <pre>_______________________________________________
jose mailing list
<a moz-do-not-send="true" href="mailto:jose@ietf.org" target="_blank">jose@ietf.org</a>
<a moz-do-not-send="true" href="https://www.ietf.org/mailman/listinfo/jose" target="_blank">https://www.ietf.org/mailman/listinfo/jose</a>
</pre>
                                  </blockquote>
                                  <br>
                                </div>
_______________________________________________<br>
                                jose mailing list<br>
                                <a moz-do-not-send="true"
                                  href="mailto:jose@ietf.org"
                                  target="_blank">jose@ietf.org</a><br>
                                <a moz-do-not-send="true"
                                  href="https://www.ietf.org/mailman/listinfo/jose"
                                  target="_blank">https://www.ietf.org/mailman/listinfo/jose</a><br>
                              </blockquote>
                            </div>
                            <br>
                          </div>
                        </div>
                      </div>
                    </div>
                    <br>
                    _______________________________________________<br>
                    jose mailing list<br>
                    <a moz-do-not-send="true"
                      href="mailto:jose@ietf.org" target="_blank">jose@ietf.org</a><br>
                    <a moz-do-not-send="true"
                      href="https://www.ietf.org/mailman/listinfo/jose"
                      target="_blank">https://www.ietf.org/mailman/listinfo/jose</a><br>
                    <br>
                  </blockquote>
                </div>
                <br>
                <br clear="all">
                <div><br>
                </div>
              </div>
            </div>
            <span class="HOEnZb"><font color="#888888">-- <br>
                --Breno<br>
                <br>
              </font></span></div>
          <br>
          _______________________________________________<br>
          jose mailing list<br>
          <a moz-do-not-send="true" href="mailto:jose@ietf.org">jose@ietf.org</a><br>
          <a moz-do-not-send="true"
            href="https://www.ietf.org/mailman/listinfo/jose"
            target="_blank">https://www.ietf.org/mailman/listinfo/jose</a><br>
          <br>
        </blockquote>
      </div>
      <br>
    </blockquote>
    <br>
  </body>
</html>

--------------010303090806060809000209--
