[jose] Fwd: RESEND: JSON Web Key support for private and symmetric keys

Mark Watson <watsonm@netflix.com> Fri, 09 November 2012 21:13 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 C25E621F87E5 for <jose@ietfa.amsl.com>; Fri, 9 Nov 2012 13:13:09 -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 ehH8GKEDrdkU for <jose@ietfa.amsl.com>; Fri, 9 Nov 2012 13:13:09 -0800 (PST)
Received: from exout104.netflix.com (exout102.netflix.com [69.53.237.163]) by ietfa.amsl.com (Postfix) with ESMTP id 294B521F875A for <jose@ietf.org>; Fri, 9 Nov 2012 13:13:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=s1024; d=netflix.com; h=from:to:subject:date:message-id:references:content-type:mime-version; bh=cRUETfamrUB8NH7Tx3dtO7dQUaI=; b=TVJqDRNVB92kroePcdAKpRlpI8Ia4TziYQaCsk4Jlgkknb/wqogyzgyyF5NVFw4ttHGwBEZ5 ddatE8dumt/9oLgxRq1DS39gOeERMXCUWJEelBIdP2pbmLkSFwmsv80bhAhqNdvJpc6v9G0I e2L8YWLzDgWw22fyH5BWHrT7+ss=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=netflix.com; h=from:to:subject:date:message-id:references:content-type:mime-version; b=gEepk/BtRqI5lVncBtvgaC/BXF3/OMT4cdK42ua3iSVD12HrBnrC1zy78Qcfq9aR9CkMsIfD v5Lq3MAHDDkUdqKM8+bpLZOneLus9ApX//mFtw9Uf0+kPuu3+RepmyRie0UTPfOOJf3cz0vI t6PNXz+edQSyit+s4upsPN5osgU=
Received: from EXFE103.corp.netflix.com (10.64.32.103) by exout104.netflix.com (10.64.240.74) with Microsoft SMTP Server (TLS) id 14.2.298.4; Wed, 7 Nov 2012 13:45:21 -0800
Received: from EXMB106.corp.netflix.com ([169.254.6.135]) by exfe103.corp.netflix.com ([10.64.32.103]) with mapi id 14.02.0283.003; Wed, 7 Nov 2012 13:45:28 -0800
From: Mark Watson <watsonm@netflix.com>
To: "jose@ietf.org" <jose@ietf.org>
Thread-Topic: RESEND: JSON Web Key support for private and symmetric keys
Thread-Index: AQHNu4w1mKMK4AWfQEKkA5HPNCBJqA==
Date: Wed, 07 Nov 2012 21:45:28 +0000
Message-ID: <26E00E85-A8B9-4E5C-87AC-F2087D7E7C58@netflix.com>
References: <2D8B50D1-6135-4D3F-B288-8B690F5B9ACA@netflix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.64.25.40]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A59C0165D4C2654AAD2BF2A2D098936F@netflix.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: [jose] Fwd: RESEND: JSON Web Key support for 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:13:09 -0000

> All, I was hoping to get this to you before your meeting, but get repeated delivery failures. One more try ...
> 
> Begin forwarded message:
> 
>> From: Mark Watson <watsonm@netflix.com>
>> Subject: JSON Web Key support for private and symmetric keys
>> Date: November 5, 2012 11:31:53 AM PST
>> To: <jose@ietf.org>
>> 
>> 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/
>