Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: robbat2@g.o, "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH v4 00/14] GLEP 63 update
Date: Sat, 07 Jul 2018 05:56:42
Message-Id: 20180707055623.28603-1-mgorny@gentoo.org
1 Hi,
2
3 Here's the next iteration of the GLEP, integrating even more suggestions
4 from developers. Full text below.
5
6 Also, please do not reply to previous versions, as this is making
7 the discussion really hard to follow.
8
9 --
10 Best regards,
11 Michał Górny
12
13 Michał Górny (14):
14 glep-0063: Use 'OpenPGP' as appropriate
15 glep-0063: RSAv4 -> OpenPGP v4 key format
16 glep-0063: 'Gentoo subkey' → 'Signing subkey'
17 glep-0063: Root key → primary key
18 glep-0063: Split out the signing subkey into a separate point
19 glep-0063: Explain minimal & recommended sections
20 glep-0063: Change the recommended RSA key size to 2048 bits
21 glep-0063: Allow ECC curve 25519 keys
22 glep-0063: Stop recommending DSA subkeys
23 glep-0063: Update and unify expiration term
24 glep-0063: Require renewal 2 weeks before expiration
25 glep-0063: Disallow using DSA keys
26 glep-0063: Remove whitespace from LDAP field
27 glep-0063: Remove recommended gpg.conf
28
29 glep-0063.rst | 158 ++++++++++++++++++++++++--------------------------
30 1 file changed, 76 insertions(+), 82 deletions(-)
31
32 --
33 2.18.0
34
35 ---
36 GLEP: 63
37 Title: Gentoo OpenPGP policies
38 Author: Robin H. Johnson <robbat2@g.o>,
39 Andreas K. Hüttel <dilfridge@g.o>,
40 Marissa Fischer <blogtodiffer@×××××.com>,
41 Michał Górny <mgorny@g.o>
42 Type: Standards Track
43 Status: Final
44 Version: 2
45 Created: 2013-02-18
46 Last-Modified: 2018-07-07
47 Post-History: 2013-11-10
48 Content-Type: text/x-rst
49 ---
50
51 Credits
52 =======
53
54 Many developers and external sources helped in this GLEP.
55
56 Abstract
57 ========
58
59 This GLEP provides both a minimum requirement and a recommended set of
60 OpenPGP key management policies for the Gentoo Linux distribution.
61
62 Changes
63 =======
64
65 v2
66 The distinct minimal and recommended expirations have been replaced
67 by a single requirement. The rules have been simplified to use
68 the same maximum time of 900 days for both the primary key and subkeys.
69
70 An additional rule requesting key renewal 2 weeks before expiration
71 has been added. This is in order to give services and other developers time
72 to refresh the key.
73
74 The usage of DSA keys has been disallowed.
75
76 The ``gpgfingerprint`` LDAP field has been altered to remove optional
77 whitespace.
78
79 The recommended ``gpg.conf`` contents have been removed as they were
80 seriously outdated and decreased security over the modern defaults.
81
82 v1.1
83 The recommended RSA key size has been changed from 4096 bits
84 to 2048 bits to match the GnuPG recommendations [#GNUPG-FAQ-11-4]_.
85 The larger recommendation was unjustified and resulted in people
86 unnecessarily replacing their RSA-2048 keys.
87
88 Minimal specification has been amended to allow for ECC keys.
89
90 The option of using DSA subkey has been removed from recommendations.
91 The section now specifies a single recommendation of using RSA.
92
93 Motivation
94 ==========
95
96 Given the increasing use and importance of cryptographic protocols in internet
97 transactions of any kind, unified requirements for OpenPGP keys used in Gentoo
98 Linux development are sorely needed. This document provides both a set of
99 bare minimum requirements and a set of best practice recommendations for
100 the use of GnuPG (or other OpenPGP providers) by Gentoo Linux developers.
101 It is intended to provide a basis for future improvements such as, e.g.,
102 consistent ebuild or package signing and verifying by end users.
103
104 Specifications for OpenPGP keys
105 ===============================
106
107 Bare minimum requirements
108 -------------------------
109 This section specifies obligatory requirements for all OpenPGP keys used
110 to commit to Gentoo. Keys that do not conform to those requirements can
111 not be used to commit.
112
113 1. SHA2-series output digest (SHA1 digests internally permitted),
114 256bit or more::
115
116 personal-digest-preferences SHA256
117
118 2. Signing subkey that is different from the primary key, and does not
119 have any other capabilities enabled.
120
121 3. Primary key and the signing subkey are both of type EITHER:
122
123 a. RSA, >=2048 bits (OpenPGP v4 key format or later only)
124
125 b. ECC curve 25519
126
127 4. Expiration date on key and all subkeys set to no more than 900 days
128 into the future
129
130 5. Key expiration date renewed at least 2 weeks before the previous
131 expiration date.
132
133 6. Upload your key to the SKS keyserver rotation before usage!
134
135 Recommendations
136 ---------------
137 This section specifies the best practices for Gentoo developers.
138 The developers should follow those practices unless there is a strong
139 technical reason not to (e.g. hardware limitations, necessity of replacing
140 their primary key).
141
142 1. Primary key and the signing subkey are both of type RSA, 2048 bits
143 (OpenPGP v4 key format or later)
144
145 2. Key expiration renewed annually to a fixed day of the year
146
147 3. Create a revocation certificate & store it hardcopy offsite securely
148 (it's about ~300 bytes).
149
150 4. Encrypted backup of your secret keys.
151
152 Gentoo LDAP
153 ===========
154
155 All Gentoo developers must list the complete fingerprint for their primary
156 keys in the "``gpgfingerprint``" LDAP field. It must be exactly 40 hex digits,
157 uppercase, without whitespace.
158
159 The prior "``gpgkey``" field will be removed, as it is a subset
160 of the fingerprint field. In any place that presently displays
161 the "``gpgkey``" field, the last 16 hex digits of the fingerprint should
162 be displayed instead.
163
164 Backwards Compatibility
165 =======================
166
167 There is no consistent standard for GPG usage in Gentoo to date. There is
168 conflicting information in the Devmanual [#DEVMANUAL-MANIFEST]_ and the GnuPG
169 Gentoo user guide [#GNUPG-USER]_. As there is little enforcement of Manifest
170 signing and very little commit signing to date, there are no backwards
171 compatibility concerns.
172
173 External documentation
174 ======================
175
176 Much of the above was driven by the following:
177
178 * NIST SP 800-57 recommendations [#NISTSP800571]_, [#NISTSP800572]_
179
180 * Debian GPG documentation [#DEBIANGPG]_
181
182 * RiseUp.net OpenPGP best practices [#RISEUP]_
183
184 * ENISA Algorithms, Key Sizes and Parameters Report 2013 [#ENISA2013]_
185
186 References
187 ==========
188
189 .. [#GNUPG-FAQ-11-4] GnuPG FAQ: Why doesn’t GnuPG default to using RSA-4096?
190 (https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096)
191
192 .. [#DEBIANGPG] Debian GPG documentation
193 (https://wiki.debian.org/Keysigning)
194
195 .. [#EKAIA] Ana's blog: Creating a new GPG key
196 (http://ekaia.org/blog/2009/05/10/creating-new-gpgkey/)
197
198 .. [#RISEUP] RiseUp.net OpenPGP best practices
199 (https://help.riseup.net/en/security/message-security/openpgp/best-practices)
200
201 .. [#DEVMANUAL-MANIFEST] Gentoo Development Guide: Manifest
202 (http://devmanual.gentoo.org/general-concepts/manifest/index.html)
203
204 .. [#GNUPG-USER] GnuPG Gentoo User Guide
205 (http://www.gentoo.org/doc/en/gnupg-user.xml)
206
207 .. [#NISTSP800571] NIST SP 800-57: Recommendation for Key Management:
208 Part 1: General (Revision 3)
209 (http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57_part1_rev3_general.pdf)
210
211 .. [#NISTSP800572] NIST SP 800-57: Recommendation for Key Management:
212 Part 2: Best Practices for Key Management Organization
213 (http://csrc.nist.gov/publications/nistpubs/800-57/SP800-57-Part2.pdf)
214
215 .. [#ISSUER-ANNOTATE] Including the entire fingerprint of the issuer
216 in an OpenPGP certification
217 (http://thread.gmane.org/gmane.mail.notmuch.general/3721/focus=7234)
218
219 .. [#ENISA2013] ENISA Algorithms, Key Sizes and Parameters Report,
220 2013 recommendations, version 1.0 (October 2013)
221 (https://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/algorithms-key-sizes-and-parameters-report)
222
223 Copyright
224 =========
225 Copyright (c) 2013 by Robin Hugh Johnson, Andreas K. Hüttel, Marissa Fischer,
226 Michał Górny.
227
228 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
229 Unported License. To view a copy of this license, visit
230 http://creativecommons.org/licenses/by-sa/3.0/.

Replies

Subject Author
[gentoo-dev] [PATCH v4 01/14] glep-0063: Use 'OpenPGP' as appropriate "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 02/14] glep-0063: RSAv4 -> OpenPGP v4 key format "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 03/14] glep-0063: 'Gentoo subkey' → 'Signing subkey' "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 04/14] glep-0063: Root key → primary key "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 05/14] glep-0063: Split out the signing subkey into a separate point "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 06/14] glep-0063: Explain minimal & recommended sections "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 07/14] glep-0063: Change the recommended RSA key size to 2048 bits "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 08/14] glep-0063: Allow ECC curve 25519 keys "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 09/14] glep-0063: Stop recommending DSA subkeys "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 10/14] glep-0063: Update and unify expiration term "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 11/14] glep-0063: Require renewal 2 weeks before expiration "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 12/14] glep-0063: Disallow using DSA keys "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 13/14] glep-0063: Remove whitespace from LDAP field "Michał Górny" <mgorny@g.o>
[gentoo-dev] [PATCH v4 14/14] glep-0063: Remove recommended gpg.conf "Michał Górny" <mgorny@g.o>
Re: [gentoo-dev] [PATCH v4 00/14] GLEP 63 update Ulrich Mueller <ulm@g.o>