[OAUTH-WG] draft-ietf-oauth-proof-of-possession-01: Closing Open Issues before the Deadline

Hannes Tschofenig <hannes.tschofenig@gmx.net> Wed, 04 March 2015 14:41 UTC

Return-Path: <hannes.tschofenig@gmx.net>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3B6B91A1BCB for <oauth@ietfa.amsl.com>; Wed, 4 Mar 2015 06:41:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.769
X-Spam-Level:
X-Spam-Status: No, score=-1.769 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_SBL=0.141, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=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 1Wjp9BUB7fHt for <oauth@ietfa.amsl.com>; Wed, 4 Mar 2015 06:41:00 -0800 (PST)
Received: from mout-xforward.gmx.net (mout-xforward.gmx.net [82.165.159.14]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4C5D11A1B8E for <oauth@ietf.org>; Wed, 4 Mar 2015 06:41:00 -0800 (PST)
Received: from [192.168.131.141] ([80.92.121.102]) by mail.gmx.com (mrgmx003) with ESMTPSA (Nemesis) id 0Lcjgd-1XjQKL0BMd-00k4Am for <oauth@ietf.org>; Wed, 04 Mar 2015 15:40:58 +0100
Message-ID: <54F71978.5090804@gmx.net>
Date: Wed, 04 Mar 2015 15:40:56 +0100
From: Hannes Tschofenig <hannes.tschofenig@gmx.net>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: "oauth@ietf.org" <oauth@ietf.org>
OpenPGP: id=4D776BC9
Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="GjmJmP7dUBacekC17HwmnFjxbQWOehLDG"
X-Provags-ID: V03:K0:7JIFqMLQF84gk+ISBwhGnTrkheWVONNudYPjIfthocSG2bZk3UI 7V1Jpc+TGmedfjoKafDifWY6oKJ4nAdQqnA7H++0lTL/u84kmDQBisaDZo6SpwSBDGFwPTV SkEHMtTKplrWHfaPHljLk3+dkwLVdB+zq6NiiOjqKGF4BLNm9TCUpU+JvMmamekR+1PY80k eb5fVfE+5ACJHCbVxL0zw==
X-UI-Out-Filterresults: junk:10;
Archived-At: <http://mailarchive.ietf.org/arch/msg/oauth/Q-LSc3jZJ1ybZ8Q7JhtP-j3LZ8s>
Subject: [OAUTH-WG] draft-ietf-oauth-proof-of-possession-01: Closing Open Issues before the Deadline
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Mar 2015 14:41:02 -0000

Hi all,

as the deadline is approaching I would like to close the open issues of
the document. There are two open issues listed in the document and I
propose ways to resolve them below

Open Issue #1:

"In some conversations, we have said that it is the issuer of the JWT
   that possesses the key, and in some conversations, we have said that
   it is the presenter of the JWT that possesses the key.  Which
   description should we use?
"

There are the following parties in the entire picture (as the PoP
architecture document illustrates quite nicely):

* Issuer: Party that creates the JWT and binds a key to the token.
The key may be a symmetric key or a public key. To bind the key to the
JWT the issuer needs to compute a digital signature or a keyed message
digest over the JWT.

* Presenter: Party that demonstrates possession of a private key (for
asymmetric key cryptography) and secret key (for symmetric key
cryptography) to a recipient.

* Recipient: Party that receives the JWT together with the proof of
possession of the key (typically in form of a digital signature or a
keyed message digest).

Mapping this terminology to the OAuth context would look as follows:
 - Issuer: OAuth Authorization Server
 - Presenter: OAuth Client
 - Recipient: OAuth Resource Server

Adding the above-mentioned terminology to the terminology section (and
deleting the currently listed presenter) would resolve the issue IMHO.

Open Issue#2:

Mike added an editorial note to the introduction saying:
"
 [[ Editorial Note: This paragraph needs to be updated to provide more
   context and possibly also to describe the use of asymmetric keys
   instead.  It's not clear that the symmetric case is as useful or
   valuable, and it is certainly more complicated.]]
"

The design team work clearly indicated that both symmetric and
asymmetric cryptography has to be supported. The JWT mechanism actually
supports both and hence we should also describe both. What can, however,
be done is to also describe the asymmetric key case and here is my text
proposal for the introduction.

----
1.  Introduction

   This specification defines how to bind a key to a JSON Web
   Token (JWT) [JWT]. Three parties act in such a scenario:

* Issuer: Party that creates the JWT and binds a key to the token.
The key may be a symmetric key or a public key. To bind the key to
the JWT the issuer needs to compute a digital signature or a keyed
message digest over the JWT.

* Presenter: Party that demonstrates possession of a private key
(for asymmetric key cryptography) and secret key (for symmetric
key cryptography) to a recipient. This property is also sometimes
described as the presenter being a holder-of-key.

* Recipient: Party that receives the JWT together with the proof of
possession of the key (typically in form of a digital signature or a
keyed message digest).

[I-D.ietf-oauth-pop-architecture] describes the use of
proof-of-possession semantics for JSON Web Tokens (JWTs) for the use
with OAuth.

   Envision the following two use cases. The first use case describes
   the use of a symmetric key and the second use case focuses on
   asymmetric cryptography.

   An OAuth 2.0 authorization server generates a JWT
   and places an encrypted symmetric key inside the newly introduced
   confirmation claim.  This symmetric key is encrypted with a key known
   only to the authorization server and the recipient. The entire JWT
   is then integrity protected.  The JWT is then sent to the
   presenter.  Since the presenter is unable to obtain the
   encrypted symmetric key from the JWT itself, the authorization
   server conveys that symmetric key separately to the presenter.  Now,
   the presenter is in possession of the symmetric key as well as the
   JWT (which includes the confirmation claim member).  When the
   presenter needs to present the JWT to the recipient, it also needs
   to demonstrate possession of the symmetric key; the presenter, for
   example, uses the symmetric key in a challenge/response protocol
   with the recipient.  The recipient is able to verify that it is
   interacting with the genuine presenter by decrypting the JWK
   contained inside the confirmation claim of the JWT.  By doing this
   the recipient obtains the symmetric key, which it then uses to
   verify cryptographically protected messages exchanged with the
   presenter.

   This symmetric key mechanism described above is conceptually similar
   to the use of Kerberos tickets.

   In the second case consider a presenter that generates a public /
   private key pair. It then sends the public key to an OAuth 2.0
   authorization server, which creates a JWT and places an public key
   (or a fingerprint of it) inside the newly introduced confirmation
   claim. The entire JWT is then integrity protected using a digital
   signature to protect it against modifications.

   The JWT is then sent to the presenter. When the presenter needs to
   present the JWT to the recipient, it also needs to demonstrate
   possession of the private key. The presenter, for example, uses the
   private key in TLS exchange with the recipient.  The recipient
   is able to verify that it is interacting with the genuine presenter
   by extracting the public key from the confirmation claim of the
   JWT (after verifying the digital signature of the JWT) and utilizing
   it with the private key in the TLS exchange.

   The asymmetric key mechanism described above is conceptually similar
   to a certificate.

   In both cases the JWT may contain various claims that are included
   based on the policy of the authorization server.

----

Due to the IETF draft submission deadline we would appreciate a response
by next Sunday.

Ciao
Hannes