Re: [jose] #82: Section 6. Encrypted JWK and Encrypted JWK Set Format

"Manger, James H" <James.H.Manger@team.telstra.com> Mon, 02 September 2013 04:44 UTC

Return-Path: <James.H.Manger@team.telstra.com>
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 2760411E81BA for <jose@ietfa.amsl.com>; Sun, 1 Sep 2013 21:44:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.811
X-Spam-Level:
X-Spam-Status: No, score=-1.811 tagged_above=-999 required=5 tests=[AWL=-0.910, BAYES_00=-2.599, HELO_EQ_AU=0.377, HOST_EQ_AU=0.327, RELAY_IS_203=0.994]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sI6mr5luZXFc for <jose@ietfa.amsl.com>; Sun, 1 Sep 2013 21:44:30 -0700 (PDT)
Received: from ipxbvo.tcif.telstra.com.au (ipxbvo.tcif.telstra.com.au [203.35.135.204]) by ietfa.amsl.com (Postfix) with ESMTP id D5C4811E811B for <jose@ietf.org>; Sun, 1 Sep 2013 21:44:29 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.89,1004,1367935200"; d="scan'208";a="156390457"
Received: from unknown (HELO ipcbvi.tcif.telstra.com.au) ([10.97.217.204]) by ipobvi.tcif.telstra.com.au with ESMTP; 02 Sep 2013 14:44:29 +1000
X-IronPort-AV: E=McAfee;i="5400,1158,7185"; a="158057651"
Received: from wsmsg3703.srv.dir.telstra.com ([172.49.40.171]) by ipcbvi.tcif.telstra.com.au with ESMTP; 02 Sep 2013 14:44:28 +1000
Received: from WSMSG3153V.srv.dir.telstra.com ([172.49.40.159]) by WSMSG3703.srv.dir.telstra.com ([172.49.40.171]) with mapi; Mon, 2 Sep 2013 14:44:28 +1000
From: "Manger, James H" <James.H.Manger@team.telstra.com>
To: jose issue tracker <trac+jose@trac.tools.ietf.org>, "draft-ietf-jose-json-web-key@tools.ietf.org" <draft-ietf-jose-json-web-key@tools.ietf.org>, "ietf@augustcellars.com" <ietf@augustcellars.com>
Date: Mon, 02 Sep 2013 14:44:27 +1000
Thread-Topic: [jose] #82: Section 6. Encrypted JWK and Encrypted JWK Set Format
Thread-Index: Ac6dMyZTm8F621SYTLi/U0F5gacj3AKYIkNg
Message-ID: <255B9BB34FB7D647A506DC292726F6E1152FA472C1@WSMSG3153V.srv.dir.telstra.com>
References: <061.ed2dc15f379477074fd266a8f9af62ba@trac.tools.ietf.org>
In-Reply-To: <061.ed2dc15f379477074fd266a8f9af62ba@trac.tools.ietf.org>
Accept-Language: en-US, en-AU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US, en-AU
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Cc: "jose@ietf.org" <jose@ietf.org>
Subject: Re: [jose] #82: Section 6. Encrypted JWK and Encrypted JWK Set Format
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: Mon, 02 Sep 2013 04:44:37 -0000

> #82: Section 6. Encrypted JWK and Encrypted JWK Set Format
> 
>  A. The existence of private material is not easily identifiable for an
> entity that does not have full and update information on a kty value.
>  This means that they either need to not allow them to be processed or
> they  need to not worry about the fact that information may be private.
> This  can be fixed by defining a JWK element "private" and requiring
> that all  private material be placed in that object. This should be
> evaluated


Perhaps instead of (or in addition to) a "private" field, JWK should have a "pub" field.

"pub" would hold just those components needed to perform a public key calculation (eg "n" and "e"; or "crv", "x", and "y"). Metadata such as "use", "kid", "x5*" etc would not be under "pub". The JWE "epk" field, for instance, would be defined to hold the "pub" field of a JWK, not a whole JWK.

That would avoid the current ambiguity in which kid/x5c/x5u/x5t can appear at the top-level of a JWE/JWS and can also appear one layer down in a "jwk" (or "epk") field.


JWK has no current way to represent a key when the private components are hardware-protected. For instance, on a TPM chip, Secure Element, or smart card (or just behind a crypto API such as PKCS#11). To use such a key you need its "address" (eg TPMKEY URI [draft-mavrogiannopoulos-tpmuri]) and perhaps a password. Should a JWK for such a key use a different "kty" value, or would unnecessarily break apps that only want to use the public components?

--
James Manger