Re: [jose] issue #25 TEXT

"Jim Schaad" <ietf@augustcellars.com> Mon, 04 November 2013 19:37 UTC

Return-Path: <ietf@augustcellars.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 204DB21E80C7 for <jose@ietfa.amsl.com>; Mon, 4 Nov 2013 11:37:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level:
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[AWL=-0.001, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
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 4cgxVFWofJM5 for <jose@ietfa.amsl.com>; Mon, 4 Nov 2013 11:36:56 -0800 (PST)
Received: from smtp3.pacifier.net (smtp3.pacifier.net [64.255.237.177]) by ietfa.amsl.com (Postfix) with ESMTP id E620E21E80CF for <jose@ietf.org>; Mon, 4 Nov 2013 11:36:53 -0800 (PST)
Received: from Philemon (dhcp-a059.meeting.ietf.org [31.133.160.89]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: jimsch@nwlink.com) by smtp3.pacifier.net (Postfix) with ESMTPSA id 434DB38F15; Mon, 4 Nov 2013 11:36:53 -0800 (PST)
From: Jim Schaad <ietf@augustcellars.com>
To: 'Mike Jones' <Michael.Jones@microsoft.com>, 'Jim Schaad' <ietf@augutscellars.com>
References: <013501cebd4f$98fd82a0$caf887e0$@augutscellars.com> <4E1F6AAD24975D4BA5B168042967394377E3A6D4@TK5EX14MBXC288.redmond.corp.microsoft.com>
In-Reply-To: <4E1F6AAD24975D4BA5B168042967394377E3A6D4@TK5EX14MBXC288.redmond.corp.microsoft.com>
Date: Mon, 04 Nov 2013 11:35:32 -0800
Message-ID: <002c01ced995$07989e00$16c9da00$@augustcellars.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_002D_01CED951.F977A7F0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQFECYYeKE2Vu7OUOCqw8lTSH0o8EQICLuQtmxsEqaA=
Content-Language: en-us
Cc: jose@ietf.org
Subject: Re: [jose] issue #25 TEXT
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, 04 Nov 2013 19:37:02 -0000

The only problem that I have with the text in the last paragraph is that it
does not discuss where and how the hash algorithm is registered so that each
application does not create its own registry of hash algorithms but uses a
common one.  This could be done by having a new document that defines a body
type for this and point, but that is a new document that would need to be
written and discussed.

 

I also don't care for the second sentence.  The assumption is that the
recipient can create the exact payload rather than has access to it.  For
example adding the base64 wrapping is not an issue in terms of re-creating
the content.

 

Jim

 

 

From: jose-bounces@ietf.org [mailto:jose-bounces@ietf.org] On Behalf Of Mike
Jones
Sent: Monday, November 04, 2013 10:34 AM
To: Jim Schaad
Cc: jose@ietf.org
Subject: Re: [jose] issue #25 TEXT

 

Per my action item from the last call, I propose the following text to
address issue #25:

 

8.  Detached Content

 

In some contexts, it is useful integrity protect content that is not itself
contained in a JWS object.  There are two suggested ways of accomplishing
this using JWS objects.

 

One way is create a JWS object containing the payload in the normal fashion,
but then delete the payload representation, and send this modified object to
the recipient, rather than the JWS.  This method assumes that the recipient
has access to the exact payload used in the JWS.  When using the JWS Compact
Serialization, the deletion is accomplished by replacing the second field
(which contains BASE64URL(JWS Payload)) value with the empty string; when
using the JWS JSON Serialization, the deletion is accomplished by deleting
the "payload" member.  To use the modified object, the recipient
reconstructs the JWS by re-inserting the payload representation into the
modified object, and uses the resulting JWS in the usual manner.  Note that
this method needs no support from JWS libraries, as applications can use
this method by modifying the inputs and outputs of standard JWS libraries.

 

Another way to accomplish this is to have the JWS Payload be or include a
cryptographic hash of the detached content.  The application might also
include an identifier for the hash algorithm used in the JWS payload.  To
use this JWS, the recipient validates the JWS in the usual way and verifies
that the hash value contained in the JWS payload matches a cryptographic
hash of the detached content computed by the recipient.  This method also
needs no support from JWS libraries.

 

                                                            -- Mike

 

From: Jim Schaad [mailto:ietf@augutscellars.com] 
Sent: Sunday, September 29, 2013 1:08 PM
To: Mike Jones
Cc: jose@ietf.org
Subject: issue #25 TEXT

 

The following provides suggested text for addressing Issue #25

 

Jim

 

 

Text for the JWS document:

 

Section 7.2.1  Detached Content

 

Applications can do detached content with the JSON serialization.  Detached
content has the benefit of allowing the content to be transmitted in a more
natural format, and to avoid the expansion associated with applying the
base64 transformation.  It has the downside that how the content is
serialized into a text string is not preserved and therefore some type of
canonicalization process may need to be applied by both the sender and the
recipient.  In some circumstances this is not an issue (signing a binary
file), while in other circumstances it can be problematic (end of line
characters or ordering of JSON objects).  Applications cannot rely on this
feature to be implemented by libraries but need to do it themselves.

 

On serialization, the application removes the payload value from the JSON
structure before writing it out.  The contents of the signed field are then
transmitted separately from the JWS structure.  For instance, the JWS
serialized JSON structure could be transmitted as an HTTP header field,
while the content is transmitted as  the content of the HTTP body.

 

On deserialization, the application obtains the to be signed value from
where it is transferred, applies the necessary canonicalization and encoding
to it before creating the "payload" member of the JSON structure and passing
the resulting object to the library for processing.

 

 

Text for the JWE document:

 

Section 7.2.1 Detached Content

 

Applications can do detached content with the JSON serialization.  Detached
content has the benefit of allowing the content to be transmitted in a more
natural format, and to avoid the expansion associated with applying the
base64 transformation.  Since the output of the encryption process is always
an octet string, there are no canonicalization issues associated with
transporting the encrypted string separately from the encryption header.

 

On serialization, the application removes the "ciphertext" field from the
JSON structure before writing it out.  The contents of the "ciphertext"
field then have the base64 encoding removed and it is transmitted separated
from the JWE structure.  For instance, the JWE serialized JSON structure
could be transmitted as an HTTP header field, while the cipher  text could
be transmitted using binary transfer encoding as the HTTP body.

 

On deserialization, the application obtains the cipher text from where it
was transferred, applies the base64 transfer encoding and places it in the
"ciphertext" member of the JWE JSON structure.  The resulting object is then
passed to the JOSE library for process.