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/. |