[jose] JSON Web Key support of private and symmetric keys

Mark Watson <watsonm@netflix.com> Fri, 09 November 2012 21:19 UTC

Return-Path: <watsonm@netflix.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 3F16921F86D0 for <jose@ietfa.amsl.com>; Fri, 9 Nov 2012 13:19:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.265
X-Spam-Level:
X-Spam-Status: No, score=-10.265 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_HI=-8]
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 vnxy2pd+rx+O for <jose@ietfa.amsl.com>; Fri, 9 Nov 2012 13:19:43 -0800 (PST)
Received: from exout103.netflix.com (exout101.netflix.com [69.53.237.162]) by ietfa.amsl.com (Postfix) with ESMTP id 9B07621F86CE for <jose@ietf.org>; Fri, 9 Nov 2012 13:19:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=s2048; d=netflix.com; h=from:to:subject:date:message-id:content-type:mime-version; bh=5k9eM9UpwGt/bRzNNqz83qxW9UM=; b=dN8DZBqKx489iI+A0HlDBCyPxNEYJ82XeBPsI0f08EqN/1k9tCAlAh+qaFSiW371qSXw1vts Tg7A+dhuttMbTjZlLF6Trh55uqvV32mCWZSmxtOI0bgN+lWon9WTPStxV1g/I//0LqpN4nXW N364gPRGSo6xlnZkRSooOZYZxSl5sUc7FiNcRIFIOWOHiV8K+Lga6VcOa0IR7rt55dE5Elu2 3nAKlWPWCBbfN7OloIAaCUAeh53sNIeE5ymnZeA7IEhiLpYo7bydrTGEKRpEfaD1iE9GWf1m wVhRUp0SgpOjHaz8w0h4h+lfzx7e+2sGKKtbIH/rxs3WEUqaePlcbg==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=netflix.com; h=from:to:subject:date:message-id:content-type:mime-version; b=AfSZv+HyqTZ92dAOxj2WzYbBrIAcBJQujFHnHcZ+XVTuGRhqi4GHk76nChf/4kG2LBkbaGH8 q1HX7CajtDTg8yT71Fhpl1+dD2ancrCDy8qCG1zi6SKWKor8YWPi+RIXgwsNaTaEMOM4NzHg ghFqOJxEohiVAaDIWdxjMId7/3UEAl3xj7tYJn2+SilhiktfZAL3aGwwFz81wRMWPdYkvS0U BCe5NOkip774B2zY9m/H1CqfV6nP5qBGrwa1j1HseeRyxmM3eAaoFwJaLTHjhGECvRGlI27n Da9Y7xDNkJ0WcTA/6OXdspA3zcHmVrjJKoZFv0PbCN9vaNqz9uHP0A==
Received: from EXFE101.corp.netflix.com (10.64.32.161) by exout103.netflix.com (10.64.240.73) with Microsoft SMTP Server (TLS) id 14.2.298.4; Thu, 8 Nov 2012 13:17:25 -0800
Received: from EXMB106.corp.netflix.com ([169.254.6.135]) by exfe101.corp.netflix.com ([10.64.32.161]) with mapi id 14.02.0283.003; Thu, 8 Nov 2012 13:17:23 -0800
From: Mark Watson <watsonm@netflix.com>
To: "jose@ietf.org" <jose@ietf.org>
Thread-Topic: JSON Web Key support of private and symmetric keys
Thread-Index: AQHNvfZxrHCAF4SnVEyTBV5l1FgV6Q==
Date: Thu, 08 Nov 2012 21:17:22 +0000
Message-ID: <23AEA030-D4B7-4F12-A2AA-9F7571C2A09A@netflix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.64.26.153]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <0219AC00EDEEF349AB6FB9211B7A844B@netflix.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: [jose] JSON Web Key support of private and symmetric keys
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: Fri, 09 Nov 2012 21:19:44 -0000

> All,
> 
> First let me introduce myself. I work for Netflix and have been working on standardization of various components that we need for support of our service in pure HTML/Javascript. Specifically, the HTML Encrypted Media Extensions [1], Media Source Extension [1] and the WebCrypto API [3] in W3C (the latter to provide us the ability to implement a secure application protocol in Javascript).
> 
> At last week's W3C meeting in Lyon, two requirements came up that we believe could be met very well by the extension of JWK to support private and symmetric keys:
> 
> (1) Key wrap/unwrap in the WebCrypto API
> 
> The WebCrypto API can manage keys below the API boundary, avoiding the sharing of keying material with the Javascript environment. This has advantage in certain security models where the JS is less trusted than the UA.
> 
> We are working on the specification of key import/export functions including import/export of wrapped keys. Both these functions require an explicit binary representation of the key material to be defined. In the latter case it is required that not only the key itself is protected by the wrapping operation, but also attributes associated with the key, most importantly the "exportable" attribute which determines whether the key can later be exported back to the JS layer.
> 
> JWK seems attractive for this purpose since it is straightforward to define additional attributes to be carried with the key. The entire JWK JSON structure would then be wrapped using the key wrapping algorithm (for example AES Key Wrap).
> 
> WebCrypto supports public/private key pairs and symmetric keys. Hence JWK would need to be extended to support private and symmetric keys to be used for this purpose.
> 
> (2) Provision of keys to the HTML Encrypted Media Extensions "clear key" keysystem 
> 
> The Encrypted Media Extensions provide an API for a script to interact with a "Content Decryption Module" within the UA that provides key exchange and content decryption capabilities. It is expected that the well-known DRM vendors will provide "Content Decryption Modules" that are integrated into browsers and/or that platform APIs for such modules will be available for browsers to integrate with (e.g. in the case that the capability is present within the OS on a given platform.)
> 
> Additionally, the W3C group itself will define a simple "clearkey" Content Decryption Module in which the key is passed, in the clear, directly from the JS to the UA. This keysystem has application in certain specific security models (for example if the user is also the owner of the content) and for testing.
> 
> The keying material is passed to the CDM in the form of an opaque keysystem-specific byte array, which for clearkey must specify one or more (symmetric, likely AES) keys and associated Key Ids. Again, JWK seems an excellent simple candidate for this purpose, if it supported symmetric keys.
> 
> 
> I understand that the JWK specification can be extended by registering the necessary additional attributes with IANA on a "Specification Required" basis. However, it was generally agreed in last week's W3C meetings that it would be better if this work was done in the IETF JOSE group.
> 
> Therefore, the upshot of this email is to ask if there is support in the IETF JOSE group for adding private and symmetric keys to JWK ?
> 
> I understand there is a draft for private keys already existing. I would be more than happy to propose a draft for symmetric keys if there is interest in progressing that here.
> 
> Finally, just to avoid any confusion, I should say that whilst the above approaches had general support in last week's W3C meeting, this is not a formal communication from the W3C (W3C groups tend not to send formal "liaisons").
> 
> Best regards,
> 
> Mark Watson
> Netflix
> 
> [1] http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html
> [2] http://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html
> [3] http://www.w3.org/2012/webcrypto/WebCryptoAPI/