diff options
Diffstat (limited to 'glep-0063.rst')
-rw-r--r-- | glep-0063.rst | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/glep-0063.rst b/glep-0063.rst new file mode 100644 index 0000000..1be52fb --- /dev/null +++ b/glep-0063.rst @@ -0,0 +1,197 @@ +GLEP: 63 +Title: Gentoo GPG key policies +Version: $Revision$ +Last-Modified: $Date$ +Author: Robin H. Johnson <robbat2@gentoo.org>, Andreas K. Hüttel <dilfridge@gentoo.org>, Marissa Fischer <blogtodiffer@gmail.com> +Status: Final +Type: Standards Track +Content-Type: text/x-rst +Created: 18-Feb-2013 +Post-History: 10-Nov-2013 + +Credits +======= + +Many developers and external sources helped in this GLEP. + +Abstract +======== + +This GLEP provides both a minimum requirement and a recommended set of GPG +key management policies for the Gentoo Linux distribution. + +Motivation +========== + +Given the increasing use and importance of cryptographic protocols in internet +transactions of any kind, unified requirements for GnuPG keys used in Gentoo +Linux development are sorely needed. This document provides both a set of +bare minimum requirements and a set of best practice recommendations for +the use of GnuPG by Gentoo Linux developers. It is intended to provide +a basis for future improvements such as, e.g., consistent ebuild or package +signing and verifying by end users. + +Specifications for GnuPG keys +============================= + +Bare minimum requirements +------------------------- +1. SHA2-series output digest (SHA1 digests internally permitted), + 256bit or more:: + + personal-digest-preferences SHA256 + +2. Root key and signing subkey of EITHER: + + a. DSA, 2048-bit + + b. RSA, >=2048 bits, RSAv4 or later only + +3. Key expiry: 5 years maximum + +4. Upload your key to the SKS keyserver rotation before usage! + +Recommendations +--------------- + +1. Copy ``/usr/share/gnupg/gpg-conf.skel`` to ``~/.gnupg/gpg.conf``, append + the following block:: + + keyserver pool.sks-keyservers.net + + emit-version + + default-recipient-self + + # -- All of the below portion from the RiseUp.net OpenPGP best practices, and + # -- many of them are also in the Debian GPG documentation. + + # when outputting certificates, view user IDs distinctly from keys: + fixed-list-mode + + # long keyids are more collision-resistant than short keyids (it's trivial to make a key + # with any desired short keyid) + # NOTE: this breaks kmail gnupg support! + keyid-format 0xlong + + # when multiple digests are supported by all recipients, choose the strongest one: + personal-digest-preferences SHA512 SHA384 SHA256 SHA224 + + # preferences chosen for new keys should prioritize stronger algorithms: + default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 BZIP2 ZLIB ZIP Uncompressed + + # If you use a graphical environment (and even if you don't) you should be using an agent: + # (similar arguments as https://www.debian-administration.org/users/dkg/weblog/64) + use-agent + + # You should always know at a glance which User IDs gpg thinks are legitimately bound to + # the keys in your keyring: + verify-options show-uid-validity + list-options show-uid-validity + + # include an unambiguous indicator of which key made a signature: + # (see http://thread.gmane.org/gmane.mail.notmuch.general/3721/focus=7234) + # (and http://www.ietf.org/mail-archive/web/openpgp/current/msg00405.html) + sig-notation issuer-fpr@notations.openpgp.fifthhorseman.net=%g + + # when making an OpenPGP certification, use a stronger digest than the default SHA1: + cert-digest-algo SHA256 + +2. Root key type RSA, 4096 bits, RSAv4 or later + + This may require creating an entirely new key. + +3. Dedicated signing subkey of EITHER: + + a. DSA 2048 bits exactly. + + b. RSA 4096 bits exactly. + +4. Key expiry: + + a. Root key: 3 years maximum, expiry date renewed annually. + + b. Gentoo subkey: 1 year maximum, expiry date renewed every 6 months. + +5. Create a revocation certificate & store it hardcopy offsite securely + (it's about ~300 bytes). + +6. Encrypted backup of your secret keys. + +Gentoo LDAP +=========== + +All Gentoo developers must list the complete GPG fingerprint for their root +keys in the "``gpgfingerprint``" LDAP field. It must be exactly 40 hex digits, +uppercase, with optional spaces every 8 hex digits. Regular expression for +validation:: + + ^([[:space:]]*[[:xdigit:]]{8}){5}$ + +The prior "``gpgkey``" field will be removed, as it is a subset +of the fingerprint field. In any place that presently displays +the "``gpgkey``" field, the last 16 hex digits of the fingerprint should +be displayed instead. + +Backwards Compatibility +======================= + +There is no consistent standard for GPG usage in Gentoo to date. There is +conflicting information in the Devmanual [#DEVMANUAL-MANIFEST]_ and the GnuPG +Gentoo user guide [#GNUPG-USER]_. As there is little enforcement of Manifest +signing and very little commit signing to date, there are no backwards +compatibility concerns. + +External documentation +====================== + +Much of the above was driven by the following: + +* NIST SP 800-57 recommendations [#NISTSP800571]_, [#NISTSP800572]_ + +* Debian GPG documentation [#DEBIANGPG]_ + +* RiseUp.net OpenPGP best practices [#RISEUP]_ + +* ENISA Algorithms, Key Sizes and Parameters Report 2013 [#ENISA2013]_ + +References +========== + +.. [#DEBIANGPG] Debian GPG documentation + (https://wiki.debian.org/Keysigning) + +.. [#EKAIA] Ana's blog: Creating a new GPG key + (http://ekaia.org/blog/2009/05/10/creating-new-gpgkey/) + +.. [#RISEUP] RiseUp.net OpenPGP best practices + (https://help.riseup.net/en/security/message-security/openpgp/best-practices) + +.. [#DEVMANUAL-MANIFEST] Gentoo Development Guide: Manifest + (http://devmanual.gentoo.org/general-concepts/manifest/index.html) + +.. [#GNUPG-USER] GnuPG Gentoo User Guide + (http://www.gentoo.org/doc/en/gnupg-user.xml) + +.. [#NISTSP800571] NIST SP 800-57: Recommendation for Key Management: + Part 1: General (Revision 3) + (http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57_part1_rev3_general.pdf) + +.. [#NISTSP800572] NIST SP 800-57: Recommendation for Key Management: + Part 2: Best Practices for Key Management Organization + (http://csrc.nist.gov/publications/nistpubs/800-57/SP800-57-Part2.pdf) + +.. [#ISSUER-ANNOTATE] Including the entire fingerprint of the issuer + in an OpenPGP certification + (http://thread.gmane.org/gmane.mail.notmuch.general/3721/focus=7234) + +.. [#ENISA2013] ENISA Algorithms, Key Sizes and Parameters Report, + 2013 recommendations, version 1.0 (October 2013) + (https://www.enisa.europa.eu/activities/identity-and-trust/library/deliverables/algorithms-key-sizes-and-parameters-report) + +Copyright +========= + +This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 +Unported License. To view a copy of this license, visit +http://creativecommons.org/licenses/by-sa/3.0/. |