Gentoo Archives: gentoo-project

From: "Michał Górny" <mgorny@g.o>
To: gentoo-project@l.g.o
Subject: Re: [gentoo-project] [pre-GLEP RFC] New GLEP: Gentoo OpenPGP Authority Keys
Date: Sun, 24 Feb 2019 17:10:49
Message-Id: 1551028237.21411.4.camel@gentoo.org
In Reply to: Re: [gentoo-project] [pre-GLEP RFC] New GLEP: Gentoo OpenPGP Authority Keys by Alec Warner
1 On Sun, 2019-02-24 at 12:04 -0500, Alec Warner wrote:
2 > On Sun, Feb 24, 2019 at 9:14 AM Michał Górny <mgorny@g.o> wrote:
3 >
4 > > ---
5 > > glep-9999.rst | 359 ++++++++++++++++++++++++++++++++++++++++++++++++++
6 > > 1 file changed, 359 insertions(+)
7 > > create mode 100644 glep-9999.rst
8 > >
9 > > diff --git a/glep-9999.rst b/glep-9999.rst
10 > > new file mode 100644
11 > > index 0000000..d66398b
12 > > --- /dev/null
13 > > +++ b/glep-9999.rst
14 > > @@ -0,0 +1,359 @@
15 > > +---
16 > > +GLEP: 9999
17 > > +Title: Gentoo OpenPGP Authority Keys
18 > > +Author: Michał Górny <mgorny@g.o>
19 > > +Type: Standards Track
20 > > +Status: Draft
21 > > +Version: 1
22 > > +Created: 2019-02-24
23 > > +Last-Modified: 2019-02-24
24 > > +Post-History:
25 > > +Content-Type: text/x-rst
26 > > +Requires: 63
27 > > +---
28 > > +
29 > > +Abstract
30 > > +========
31 > > +This GLEP proposes using Authority Keys to provide developer key
32 > > +validity proofs that are compatible with web of trust. The signatures
33 > > +on ``@gentoo.org`` UIDs are automatically maintained, and user can
34 > > +follow the current set of valid keys by importing and trusting a single
35 > > +Authority Key. The system operates within standard features of GnuPG
36 > > +and requires only minimal setup from the user.
37 > > +
38 > > +
39 > > +Motivation
40 > > +==========
41 > > +All the recent efforts on improving OpenPGP usage in Gentoo were focused
42 > > +on internal usage and distribution. The existing policies and tooling
43 > > +are sufficient to account for verify specific usage, including commit
44 > > +signing (with both internal and user-oriented verification via custom
45 > > +tools) or release media verification. However, they do not provide
46 > > +for rapid OpenPGP deployment for secure communications usage.
47 > > +
48 > > +The Gentoo webservers distribute both convenient key bundles
49 > > +and individual keys via Web Key Directory. While in both cases
50 > > +the transfer is secured via HTTPS, providing authenticity verification
51 > > +via PKI/DNSSEC, those channels are meant to *distribute* the keys
52 > > +and not provide implicit guarantees on their *validity*. For example,
53 > > +they provide no guarantees that the user identifiers on the keys are
54 > > +legitimate. [#KEY-BUNDLES]_
55 > > +
56 > > +Internally, Gentoo's LDAP directory serves as the canonical source
57 > > +of information on key validity. It stores a list of key fingerprints
58 > > +for each Gentoo developers, and therefore allows the system to establish
59 > > +which keys are acceptable in context of a specific developer. However,
60 > > +the LDAP directory is not available to the public and therefore is only
61 > > +suitable for internal infrastructure use. [#LDAP-GUIDE]_
62 > > +
63 > > +The Gentoo website is focused on service keys and not individual
64 > > +developer keys. While it could easily be amended with full fingerprints
65 > > +of all developer keys, the necessity of manually verifying such a large
66 > > +number of keys would be inconvenient to the end user.
67 > > +[#WWW-SIGNATURES]_
68 > > +
69 > > +The key package provided in the Gentoo repository is also focused
70 > > +on service keys, and has limited value in verifying key validity
71 > > +(currently, it assumes all UIDs on all keys in the keyring are valid).
72 > > +Providing a package with developer keys would both require frequent
73 > > +semi-manual updates, and establishing a more precise validity model.
74 > > +[#KEY-PACKAGE]_
75 > > +
76 > > +Gentoo-keys project provides so-called seed files that carry enough
77 > > +information to establish key validity, and are authenticated via HTTPS.
78 > > +However, they rely on installing custom software that does not integrate
79 > > +well with regular use of GnuPG e.g. in mail clients, and that is not
80 > > +easily usable in other systems. [#GENTOO-KEYS]_
81 > > +
82 > > +The Authority Key proposal aims to provide a more standard way of
83 > > +establishing validity of Gentoo developer keys. It builds upon the web
84 > > +of trust model, requiring no special software and minimal setup from end
85 > > +users.
86 > > +
87 > > +
88 > > +Specification
89 > > +=============
90 > > +Purpose and usage
91 > > +-----------------
92 > > +The purpose of the Authority Keys is to provide an automatically issued
93 > > +signatures on Gentoo developer OpenPGP keys, based on the information
94 > > +provided internally in the Gentoo LDAP directory. The service
95 > > +is provided for all active Gentoo developers, from the moment of their
96 > > +recruitment.
97 > > +
98 > > +Whenever a developer account is created, reactivated, renamed or has
99 > > +a new key fingerprint added, a signature is automatically created
100 > > +on the appropriate ``@gentoo.org`` UIDs and pushed to the keyservers.
101 > > +Whenever an old signature expires, a new one is automatically created.
102 > > +Whenever a developer account is disabled, renamed or has a fingerprint
103 > > +removed, the signatures from obsolete UIDs are automatically revoked.
104 > > +
105 > > +The signatures are issued only on the UIDs matching the Gentoo
106 > > +developer's ``@gentoo.org`` mailbox address, on keys whose primary key
107 > > +fingerprints are listed in Gentoo LDAP ``gpgfingerprint`` records. Keys
108 > > +missing such an UID are ignored. **Names on the relevant user
109 > > +identifiers are not verified**. The signatures are issued with
110 > > +an expiration date of 1 year from being issued.
111 > > +
112 > > +
113 > > +L1 and L2 keys
114 > > +--------------
115 > > +The Authority Keys are issued in two layers, appropriately called L1
116 > > +and L2.
117 > > +
118 > > +The single L1 Authority Key is used only to (manually) certify the L2
119 > > +Keys, and is kept securely offline following the Infrastructure policies
120 > > +on protecting primary keys. The fingerprint of this key is published
121 > > +on the Gentoo website and users are requested to sign this key to enable
122 > > +key validity via Authority Keys.
123 > >
124 >
125 > +
126 > > +The L2 Authority Keys are used directly to sign developer keys. Since
127 > > +they are used in an automated service, they are exposed to attacks.
128 > > +They are trust-signed by the L1 key and can be revoked and rotated more
129 > > +frequently than the L1 key.
130 > > +
131 > > +This dual-layer model aims to combine improved security with user
132 > > +convenience. While the individual Gentoo keys are signed by the L2 key,
133 > > +the users sign only the L1 key and the validity is established via chain
134 > > +L1 → L2 → developer key. This makes it possible to replace the L2 key
135 > > +if it ever becomes compromised without requiring the users to
136 > > +reestablish trust. Since the replacement key will be also signed
137 > > +by the L1 key (provided that it was not compromised), the validity
138 > > +of developer keys will remain established.
139 > > +
140 > > +
141 > > +Validating the L1 key
142 > > +---------------------
143 > > +Establishing the authenticity of the L1 Authority Key is essential
144 > > +to the system. Initially, the users will be able to determine
145 > > +the authenticity via comparing the key fingerprint with the one
146 > > +published on the website. This will shift the authenticity verification
147 > > +to HTTPS (PKI/DNSSEC).
148 > > +
149 > > +However, at the same time users are encouraged to sign the key upon
150 > > +verifying it. This will effectively make it possible to establish key's
151 > > +validity via OpenPGP web of trust.
152 > >
153 >
154 > Is the L1 specific to signing packages, or does it have other duties?
155
156 "The single L1 Authority Key is used only to (manually) certify the L2
157 Keys". No more duties.
158
159 >
160 >
161 > > +
162 > > +
163 > > +Rationale
164 > > +=========
165 > > +Authority Key model vs web of trust
166 > > +-----------------------------------
167 > > +The regular web of trust model relies on individuals verifying
168 > > +the Gentoo developer identity and access to the particular
169 > > +``@gentoo.org`` e-mail address. The particular UID is considered valid
170 > > +if a sufficient number of people trusted by the user in question have
171 > > +confirmed the developer's identity. This specifically relies on being
172 > > +able to establish a chain of trust between the developer and user.
173 > > +
174 > > +At the moment, many of the existing Gentoo developers did not even
175 > > +stablish a chain of trust between one another, not to mention establish
176 > >
177 >
178 > establish
179
180 Fixed.
181
182 > +web of trust coverage that would make it feasible for users to reach any
183 > > +specific developer. Efforts towards improving that were rejected
184 > > +by the developers, mostly based on argumentation that many developers
185 > > +find it impossible to meet any other community member for the purpose
186 > > +of identity verification.
187 > > +
188 > > +The Authority Key model, on the other hand, assumes that there is
189 > > +a single trusted authority that verifies Gentoo developers' keys.
190 > > +The user verifies the key representing this authority and trusts it.
191 > > +The validity of keys used by all developers is established via a single
192 > > +point of trust.
193 > > +
194 > > +The procedure of establishing the validity of a specific key does not
195 > > +involve the necessity of meeting anyone or verifying identity. While
196 > > +the validity is exposed in a manner compatible with web of trust, it is
197 > > +verified against LDAP which implicitly proves authenticity of the keys.
198 > > +
199 > > +Therefore, the Authority Key model is much easier to set up. The user
200 > > +merely needs to verify a single key and trust it, while pure WoT would
201 > > +probably require trusting multiple third party identities. It is also
202 > > +more secure as it limits the attack vector to a single key rather than
203 > > +one of potentially large number of keys that need to be trusted by
204 > > +the user. If the user decides to stop trusting ``@gentoo.org`` UIDs,
205 > > +the validity can easily be reverted by disabling the single Authority
206 > > +Key.
207 > >
208 >
209 > Yeah I like the revocation a lot better in this proposal, the previous one
210 > seemed a bit impractical.
211
212 Revocation is the same as in the original. Maybe worded more verbosely?
213
214 --
215 Best regards,
216 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies