Re: [openpgp] Registration of the 'proof' notation

Jon Callas <> Wed, 30 September 2020 23:14 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id F3D643A0D4C for <>; Wed, 30 Sep 2020 16:14:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id H-BWjSBi9ET0 for <>; Wed, 30 Sep 2020 16:14:24 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 748D53A0D4B for <>; Wed, 30 Sep 2020 16:14:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=1a1hai; t=1601507663; bh=mjGFQCSGQcH5x+32uygHRG9jfptxV19KsWVVxcuyTKo=; h=Content-Type:Mime-Version:Subject:From:Date:Message-Id:To; b=RiPQ7B7I3CgrQhXXrfweW3Iw6tLjqpFsHERgpo6hWnzHLx1Kd9uYigaVOrH/sHPfB B5s3CYTD/cuULgUiHcDjsSoGtfkRaAzFiYZfa2LfsBauWJObyxlTDzEc9vYqBsvxBo 65Z2SVUIgzB3m506EjQ9uKyg/R/bTl89kWig0t0bIgJBOqlZcgY/yGXEWxCKbahnZ1 rgruAn/x8lau5yJ2FZEtKTvIuWf2Egv/0rlhPxCbZTe6fJX0rswO1OqO0XLI7gcnor MGaBkR0KinkYwcJK/ildLK+yWpDyt7ciCKRNHqwpXx0Mr1IjLtOyCUkABwFFe0BsPA 37ihmy+e2Fsag==
Received: from [] ( []) by (Postfix) with ESMTPSA id 9CE1DA0DAF; Wed, 30 Sep 2020 23:14:22 +0000 (UTC)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.\))
From: Jon Callas <>
In-Reply-To: <>
Date: Wed, 30 Sep 2020 16:14:22 -0700
Cc: Jon Callas <>, "" <>
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <>
To: Wiktor Kwapisiewicz <>
X-Mailer: Apple Mail (2.3608.
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-09-30_13:2020-09-30, 2020-09-30 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-2006250000 definitions=main-2009300188
Archived-At: <>
Subject: Re: [openpgp] Registration of the 'proof' notation
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 30 Sep 2020 23:14:27 -0000

I've been reading through a lot of this documentation and I like the idea of whatever we want to call them.

I also think I agree that they'd be better as User Attributes than notations.

Notations are supposed to be an analogue to X.509v3 extensions; they are a way to write arbitrary, free-form data into a signature (and thus a certification). The name is significant. A signer makes a signature, and puts notes into that signature to express or clarify what the signature means.

In contrast, a User Attribute is the generalization of a User ID. It says "this key speaks for <ID>" whether that ID is an email address, etc. and then various keys make certification signatures stating that they agree with that.

So it seems to me that the proper syntax to do this within the structure of OpenPGP would be to have the statement be in a User Attribute, and then concurring keys certify that, possibly with notations.

I can think of another utterly different syntax, though, that would be similar to what Vinnie Moscaritolo and Tony Mione did in "PGP Tickets" which you can find as an I-D at <>. 

The idea here would be that it would be like an Attribute Certificate, or a capability. It would permit (e.g.) a sysadmin to be able to say that the holder of a key is the owner of a file path on a server. (Vinnie wrote software for this exact case. You could sign in to a file server with an OpenPGP key and the ticket could describe what authorizations you had.)

I don't think this is exactly what you want, but it's close. An advantage of the ticket approach is that you don't need anyone's permission to do it. It could literally be a bit of defined YAML or JSON that you clear-sign as text, and then poof, you're done. You don't have to listen to any of us give helpful comments about what you want to do, you just do it.