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

Replies

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