Re: [openpgp] User ID Attribute Subpacket

"Derek Atkins" <derek@ihtfp.com> Mon, 04 March 2019 14:38 UTC

Return-Path: <derek@ihtfp.com>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0DF43129BBF for <openpgp@ietfa.amsl.com>; Mon, 4 Mar 2019 06:38:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.689
X-Spam-Level:
X-Spam-Status: No, score=-1.689 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=ihtfp.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 EszYZjhjkmyo for <openpgp@ietfa.amsl.com>; Mon, 4 Mar 2019 06:38:21 -0800 (PST)
Received: from mail2.ihtfp.org (MAIL2.IHTFP.ORG [204.107.200.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 604F41200D8 for <openpgp@ietf.org>; Mon, 4 Mar 2019 06:38:21 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by mail2.ihtfp.org (Postfix) with ESMTP id B3043E2040; Mon, 4 Mar 2019 09:38:15 -0500 (EST)
Received: from mail2.ihtfp.org ([127.0.0.1]) by localhost (mail2.ihtfp.org [127.0.0.1]) (amavisd-maia, port 10024) with ESMTP id 17051-09; Mon, 4 Mar 2019 09:38:05 -0500 (EST)
Received: by mail2.ihtfp.org (Postfix, from userid 48) id CCB04E2045; Mon, 4 Mar 2019 09:38:05 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ihtfp.com; s=default; t=1551710285; bh=8aAHfGtL2vjLDqNyn1IOQxZvuraAAALbX7pCK1KGy0Y=; h=In-Reply-To:References:Date:Subject:From:To:Cc; b=gKkYXR4aGyD909viRbfmHoJsgD8c1d4JJEKOJnTLHuS3oguG8HnSKWOXOFdOuWFsL x9RpUWW87WvOgbY+Iiy6dd4lKt7U26e/2MsF+IFHfYBU7TmC6VNX5wdvCpYaFoUEE9 V75KHokHpky7gW3OvHWP83G+MPVkT0PK7RXY0NDo=
Received: from 99.46.190.172 (SquirrelMail authenticated user warlord) by mail2.ihtfp.org with HTTP; Mon, 4 Mar 2019 09:38:05 -0500
Message-ID: <546b32d041f2cd0227aaa737f8841b26.squirrel@mail2.ihtfp.org>
In-Reply-To: <CA+t5QVuUEjR+6KmzPQJOZXaq3NhavMHa=qTMd8dQwdcT=2dwQQ@mail.gmail.com>
References: <CA+t5QVsS871zG30dhW_GZ9ALq8bDASD-D3p0YQp9iGJEXUddmA@mail.gmail.com> <d34d0310-2851-dc4b-b5b3-79c7ec530e73@metacode.biz> <CA+t5QVsTATuw4pRhEdMOogh3YA237Rd2zOzzX3B3tZL04tfE0w@mail.gmail.com> <d7bf74c8-8415-da7a-4bf9-5bd455fb657e@metacode.biz> <sjmwolu30jc.fsf@securerf.ihtfp.org> <CA+t5QVuUEjR+6KmzPQJOZXaq3NhavMHa=qTMd8dQwdcT=2dwQQ@mail.gmail.com>
Date: Mon, 04 Mar 2019 09:38:05 -0500
From: Derek Atkins <derek@ihtfp.com>
To: Justus Winter <justuswinter@gmail.com>
Cc: openpgp@ietf.org
User-Agent: SquirrelMail/1.4.22-14.fc20
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
X-Virus-Scanned: Maia Mailguard 1.0.2a
Archived-At: <https://mailarchive.ietf.org/arch/msg/openpgp/IaXdMDBlpsWlN3bGa1DnLA4h-QY>
Subject: Re: [openpgp] User ID Attribute Subpacket
X-BeenThere: openpgp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/openpgp>, <mailto:openpgp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp/>
List-Post: <mailto:openpgp@ietf.org>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/openpgp>, <mailto:openpgp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Mar 2019 14:38:23 -0000

Hi,

On Mon, March 4, 2019 5:38 am, Justus Winter wrote:
> Sorry, this makes no sense at all.
>
> On Wed, Feb 20, 2019 at 5:08 PM Derek Atkins <derek@ihtfp.com> wrote:
>> 2) The reason for the User ID Attribute subpacket was that we wanted to
>>    have multiple Attribute subpackets included in the certificate in a
>>    primary signature, but this was not possible with 4880.  My memory is
>
> User Attribute subpackets are not in the signature, but in the User
> Attribute
> packet.

Please re-read what I wrote.  Note that when I say "in the signature" I
mean "protected by the signature."  This could also be read as "included
in the hash that is signed."

Also, if you read draft-atkins-openpgp-device-certificates (even though it
expired), it explains this in gory detail:

   RFC 4880 section 12.1 defines a v4 Public Key Format as a sequence of
   packets starting with a Primary Key and then a sequence of packets
   and subpackets that add Revocations, User IDs, and Signatures.

   The description in RFC 4880 requires a User ID.  Implementors of this
   specification can loosen that requirement such that an augmented V4
   device certificate looks like the following sequence (no longer
   requiring a User ID packet):

           Primary-Key
              [Revocation Self Signature]
              [Direct Key Signature...]
              [User ID [Signature ...] ...]
              [User Attribute [Signature ...] ...]
              [[Subkey [Binding-Signature-Revocation]
                      Primary-Key-Binding-Signature] ...]

The issue at hand was that you cannot make a single signature that covers
both a User ID packet and a User Attribute packet.  Moreover, the format
REQUIRED a User ID packet, which meant that if you wanted to sign a bunch
of User Attributes you HAD to have TWO signatures in the certificate.

My goal was to reduce that to a SINGLE signature by allowing the User ID
to exist as a User Attribute Subpacket.  This would let you use the User
Attribute signature type and include a User ID (attribute subpacket) along
with additional attribute subpackets all protected by a single signature.

> The only thing that having UserID subpackets for the User Attribute packet
> is that you can have multiple userids bound by one binding signature.  But
> that is a feature that I dislike, because then we can no longer strip down
> TPKs so that they only include a subset of the userids, which can enhance
> the privacy of our users.  This is important for pEp, Autocrypt, and
> Hagrid.

It is not the only thing -- see above.  It lets you bind a User ID and
additional attributes with a single signature, which is the primary goal.

Note that you can already have multiple UserIDs on a key.  If your main
gripe is that you could have multiple User ID Attribute Subpackets bound
by the same signature, I am fine if you want to limit that and say that an
implementation MUST NOT (or SHOULD NOT) include more than one in a single
Attribute packet.

>>    hazy on what the exact issue was, but IIRC you could EITHER have a
>>    UserID packet OR a set of Attribute packets, but not both.  Because I
>>    wanted both a UserID *AND* additional attributes in a single
>>    signature, this seemed the best way to do it.
>
> Given that you, the person who requested this addition, can no longer make
> a solid case for it, I request for the UserID subpacket to be removed.

I said I was hazy -- this was proposed FIVE YEARS ago, so it's taken me a
while to swap those issues back into my brain.  So let me restate the
issues as to why I did this and request it:

1) I want to enable a certificate where the primary key cannot sign
2) I want to have a single binding signature that binds a User ID AND
additional attributes
3) I want to enable a reduction in space consumption due to a bunch of
notations that we use
4) I introduced some additional notation types which we use (and should be
useful to others)

The User ID Attribute is really part of #2.

Thanks for your consideration.

-derek
-- 
       Derek Atkins                 617-623-3745
       derek@ihtfp.com             www.ihtfp.com
       Computer and Internet Security Consultant