Re: [COSE] Authentication tag

Renzo Navas <renzoefra@gmail.com> Tue, 21 March 2017 13:06 UTC

Return-Path: <renzoefra@gmail.com>
X-Original-To: cose@ietfa.amsl.com
Delivered-To: cose@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 67EB8129865 for <cose@ietfa.amsl.com>; Tue, 21 Mar 2017 06:06:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 jXW4Do-kWXhj for <cose@ietfa.amsl.com>; Tue, 21 Mar 2017 06:06:41 -0700 (PDT)
Received: from mail-qk0-x234.google.com (mail-qk0-x234.google.com [IPv6:2607:f8b0:400d:c09::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 97022129484 for <cose@ietf.org>; Tue, 21 Mar 2017 06:06:41 -0700 (PDT)
Received: by mail-qk0-x234.google.com with SMTP id y76so134035969qkb.0 for <cose@ietf.org>; Tue, 21 Mar 2017 06:06:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=H506FpoTXxRsJ/mFiChXhwxpoXLMkTDXg0m4hpxnR9E=; b=uydSDHF8sOiK16EyRGhCDnk0PHZx5vXxEvjzwtWu+pmaiu/V/DSDusLKycW6AxN5cb CfXIafnoTwB0Nu+9NorxHu7NVVXIuPOwTdIxVyumQmUN77VAlAKopyboObN4rVutHVUx bwRlvJef83CK6QX/Q3JEwmU9bTWkLGKuNzn4nea6CtDrfzW25E17ogCxOQhe6m1uMf1D pysa4uHN3LsGlN5uu2lPHHxdZiJwdOiNguBWubgibujftrkimOkBaBJUNlYoaDB0I5eo Pf4TkyRgiAeAkJusLKtrw8I5ERK2/VLtEOv55tUEpjfkQu6oXKAvyW7b/pzhTzVVIjQk yI8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=H506FpoTXxRsJ/mFiChXhwxpoXLMkTDXg0m4hpxnR9E=; b=a0rSGbgCvu9IyAHCjVHqiSlAYG72ni6++D+gP61rnP33p/IfH5w/bTsEzvrxGKFLmf RNLsQCmJtLfRLLNjl+8TgfU6SB2pwKRN3Fk7nnGi9eWaxg6aBEdox3AWN2vNnDJ2ZScl QrKIOfpG91BGrswYQZvwnkxrPR9C6QUTXNl8IZa4kRI9dc2KODVbuc2atUYV3XmlINOp 5Tjd42OfbVEykZj5PybY7Oa0h29jZ4k4uq3/TEBotFcYRBZ1FOQfVocN17a9vQgvyypZ bo5TQJTJKvurSApbJgf/y/ve/pz/2iKXFX2O/z49UR/rc9jfpqS5GO11z0IwfJum+Wbv eZxA==
X-Gm-Message-State: AFeK/H02c7hKiLWWbkPBjGndksiIs+lbO076o4sbKGI/T79eifTSurHpfoOLJQCrkO3K//Bb4RUwb4ist3pHDg==
X-Received: by 10.55.217.72 with SMTP id u69mr18785026qki.20.1490101600626; Tue, 21 Mar 2017 06:06:40 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.200.36.21 with HTTP; Tue, 21 Mar 2017 06:06:20 -0700 (PDT)
In-Reply-To: <44DF8A98-2191-4E9F-811F-E000D7FB7092@mit.edu>
References: <CAF2hCbYALonNaZ6BrmEhYosCrNsJqLmHs3YMupjOCeRxav2X9A@mail.gmail.com> <00f701d29f43$c278fd60$476af820$@augustcellars.com> <CAF2hCbbsEm7YNpPmQj_e2b-zfKyZ9B9E1BjLUPyZjbd44jtcNw@mail.gmail.com> <016501d2a02b$ecd2edd0$c678c970$@augustcellars.com> <CAF2hCbZB_QtDHWexdzWWzhe4iWfF38JMBJf6CLwnPtL_KuESCA@mail.gmail.com> <CAF2hCbboTj+v9GgVxeP+r2aRjwDT3qhyjTuVHBO-f2MeK-Zqbw@mail.gmail.com> <44DF8A98-2191-4E9F-811F-E000D7FB7092@mit.edu>
From: Renzo Navas <renzoefra@gmail.com>
Date: Tue, 21 Mar 2017 14:06:20 +0100
Message-ID: <CAD2CPUFXfZ1S1eYDgc9hQC9Gq_TWCtUD-1z5EH4WGd30ef9P-g@mail.gmail.com>
To: Justin Richer <jricher@mit.edu>
Cc: Samuel Erdtman <samuel@erdtman.se>, Jim Schaad <ietf@augustcellars.com>, cose <cose@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/cose/EKUnuPcjzLOsjcFNXDKNm95bRjI>
Subject: Re: [COSE] Authentication tag
X-BeenThere: cose@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: CBOR Object Signing and Encryption <cose.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cose>, <mailto:cose-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cose/>
List-Post: <mailto:cose@ietf.org>
List-Help: <mailto:cose-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cose>, <mailto:cose-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Mar 2017 13:06:44 -0000

Hi COSE WG!

Just to add weight to the request of clarifying this on the COSE
document (if its already possible),

I faced the same problem as Samuel (up until this morning),
I am implementing decryption of Encrypt0 cose objects; testing with a
decryption of a COSE Enc0 object AES-CCM-16-64-128 generated with
https://github.com/cose-wg/COSE-JAVA

And the clearer text I found was on "1.1. Design changes from JOSE"  :
 " * Combine the authentication tag for encryption algorithms with the
cipher text."
Now Jim pointed section 10 that also clarifies that.



I think that putting some text on section 5.2/5.3/5.4 will be really
helpful for implementers.
Then reading only Section 5.2-5.4 will clarify almost everything to
needed to decrypt/encrypt an Encrypt0 object.

For instance on Section 5.3 (how to encrypt)
"5.  .. Place the returned cipher text [with the appended returned
authentication tag] into the 'ciphertext' field of the structure."

The decryption instruction will need a little bit more phrasing to
explain; but once at least the encryption is clear, will be easily
understandable for anyone reading the doc.


Thank you for the work Jim and the nice already working implementations!

Renzo


On Mon, Mar 20, 2017 at 9:09 PM, Justin Richer <jricher@mit.edu> wrote:
> Well you weren’t necessarily *wrong* the first time.
>
>  — Justin, not as chair
>
>
> On Mar 20, 2017, at 3:58 PM, Samuel Erdtman <samuel@erdtman.se> wrote:
>
> *implementers
>
> On Mon, Mar 20, 2017 at 8:57 PM, Samuel Erdtman <samuel@erdtman.se> wrote:
>>
>> Thanks again!
>>
>> I think this will add some clarity for tormentors.
>>
>> //Samuel
>>
>> On Sat, Mar 18, 2017 at 10:09 PM, Jim Schaad <ietf@augustcellars.com>
>> wrote:
>>>
>>> There are two different schools of thought about where to put the
>>> authentication tag.  RFC 5116 was designed so that it is part of the
>>> standard set of parameters rather than separate.  Thus, for GCM, it is
>>> included as part of the cipher text.  For SIV mode it is the IV and there is
>>> no extra authentication tag.
>>>
>>>
>>>
>>> Other encodings have made the fields be separate, JOSE and CMS keep the
>>> tag and the cipher text as separate items and, for some systems, you then
>>> get the opposite world of needed to combined them when doing decryption
>>> operation.   The decision of where and how authentication tags are placed is
>>> always going to be an encoding decision and not part of the encryption
>>> algorithm.
>>>
>>>
>>>
>>> The decision was made to combine them for COSE because it saved an
>>> additional field, and thus one or more bytes are removed from the encoding.
>>> This followed the guidance of trying for very short encodings.
>>>
>>>
>>>
>>> I have filed an issue to remember this at the next revision.
>>>
>>>
>>>
>>> Jim
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> From: Samuel Erdtman [mailto:samuel@erdtman.se]
>>> Sent: Saturday, March 18, 2017 1:08 PM
>>> To: Jim Schaad <ietf@augustcellars.com>; ilariliusvaara@welho.com
>>> Cc: cose <cose@ietf.org>
>>> Subject: Re: Authentication tag
>>>
>>>
>>>
>>> Thanks Jim and Ilari for the quick replies.
>>>
>>> So if I understand it correctly RFC 5116 defines AE and AEAD with the
>>> requirement to bundle the tag with the ciphertext, so it would not be
>>> allowed to put the tag in the COSE headers.
>>>
>>> Section 10 Content Encryption Algorithms, gives a hint of where to find
>>> the tag, 'normally' appended. Forgive me my ignorance, but does GCM have a
>>> more normative requirement on the location of the tag in a ciphertext?
>>>
>>> If GCM does not mandate the location of the tag in the ciphertext and we
>>> cannot put it in a header attribute then I would like more explicit language
>>> about where to find/put the tag.
>>>
>>> Once again thanks for the quick and enlightening reply.
>>>
>>> Cheers
>>>
>>> //Samuel
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Mar 17, 2017 at 6:27 PM, Jim Schaad <ietf@augustcellars.com>
>>> wrote:
>>>
>>> From Section 10:
>>>
>>>
>>>
>>> COSE restricts the set of legal content encryption algorithms to those
>>> that support authentication both of the content and additional data. The
>>> encryption process will generate some type of authentication value, but that
>>> value may be either explicit or implicit in terms of the algorithm
>>> definition. For simplicity sake, the authentication code will normally be
>>> defined as being appended to the cipher text stream. The encryption
>>> functions are:
>>>
>>>
>>>
>>>
>>>
>>> From: Samuel Erdtman [mailto:samuel@erdtman.se]
>>> Sent: Friday, March 17, 2017 9:50 AM
>>> To: cose <cose@ietf.org>; Jim Schaad <ietf@augustcellars.com>
>>> Subject: Authentication tag
>>>
>>>
>>>
>>> Hi
>>>
>>> I´m working on a JavaScript implementation of the COSE msg specification,
>>> currently working on the GCM encryption.
>>>
>>> In the nodejs crypto environment the authentication tag is set separately
>>> i.e. a specific setAuthTag call. I looked into openssl and could see that
>>> that was the case there too.
>>>
>>> In the examples provided with the COSE specification I could find out
>>> that the auth tag is appends to the end of the ciphertext.
>>>
>>> I tried to find this described in the COSE specification but could not
>>> find it. It might be described in some refereed specification but it was not
>>> obvious to me at least.
>>>
>>> If it is not to late I would suggest that authentication tag is lifted
>>> out from the ciphertext and into the unprotected header similar to IV. Or
>>> that it is explicitly described that the authentication tag should be
>>> appended to the ciphertext.
>>>
>>> Cheers
>>>
>>> Samuel Erdtman
>>>
>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> COSE mailing list
> COSE@ietf.org
> https://www.ietf.org/mailman/listinfo/cose
>
>
>
> _______________________________________________
> COSE mailing list
> COSE@ietf.org
> https://www.ietf.org/mailman/listinfo/cose
>