> On Jul 5, 2018, at 4:53 PM, Michał Górny <mgo...@gentoo.org> wrote:
> 
> Hi,
> 
> Here's third version of the patches.  I've incorporated the feedback
> so far and reordered the patches (again) to restore their
> degree-of-compatibility order.  The full text is included below.
> 
> 
> Michał Górny (12):
>  glep-0063: Use 'OpenPGP' as appropriate
>  glep-0063: RSAv4 -> OpenPGP v4 key format
>  glep-0063: 'Gentoo subkey' → 'Signing subkey'
>  glep-0063: Root key → primary key
>  glep-0063: Split out the signing subkey into a separation point
>  glep-0063: Explain minimal & recommended sections
>  glep-0063: Change the recommended RSA key size to 2048 bits
>  glep-0063: Allow ECC curve 25519 keys
>  glep-0063: Stop recommending DSA subkeys
>  glep-0063: Make 2-yearly expiration term mandatory
>  glep-0063: Require renewal 2 weeks before expiration
>  glep-0063: Disallow using DSA keys
> 
> glep-0063.rst | 97 +++++++++++++++++++++++++++++++++------------------
> 1 file changed, 64 insertions(+), 33 deletions(-)
> 
> 
> ---
> GLEP: 63
> Title: Gentoo OpenPGP policies
> Author: Robin H. Johnson <robb...@gentoo.org>,
>        Andreas K. Hüttel <dilfri...@gentoo.org>,
>        Marissa Fischer <blogtodif...@gmail.com>
> Type: Standards Track
> Status: Final
> Version: 2
> Created: 2013-02-18
> Last-Modified: 2018-07-05
> Post-History: 2013-11-10
> Content-Type: text/x-rst
> ---
> 
> Credits
> =======
> 
> Many developers and external sources helped in this GLEP.
> 
> Abstract
> ========
> 
> This GLEP provides both a minimum requirement and a recommended set of
> OpenPGP key management policies for the Gentoo Linux distribution.
> 
> Changes
> =======
> 
> v2
>  The distinct minimal and recommended expirations have been replaced
>  by a single requirement. The rules have been simplified to use
>  the same time of 2 years for both the primary key and subkeys.
> 
>  An additional rule requesting key renewal 2 weeks before expiration
>  has been added. This is in order to give services and other developers time
>  to refresh the key.
> 
>  The usage of DSA keys has been disallowed.
> 
> v1.1
>  The recommended RSA key size has been changed from 4096 bits
>  to 2048 bits to match the GnuPG recommendations [#GNUPG-FAQ-11-4]_.
>  The larger recommendation was unjustified and resulted in people
>  unnecessarily replacing their RSA-2048 keys.
> 
>  Minimal specification has been amended to allow for ECC keys.
> 
>  The option of using DSA subkey has been removed from recommendations.
>  The section now specifies a single recommendation of using RSA.
> 
> Motivation
> ==========
> 
> Given the increasing use and importance of cryptographic protocols in internet
> transactions of any kind, unified requirements for OpenPGP 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 (or other OpenPGP providers) 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 OpenPGP keys
> ===============================
> 
> Bare minimum requirements
> -------------------------
> This section specifies obligatory requirements for all OpenPGP keys used
> to commit to Gentoo. Keys that do not conform to those requirements can
> not be used to commit.
> 
> 1. SHA2-series output digest (SHA1 digests internally permitted),
>   256bit or more::
> 
>       personal-digest-preferences SHA256
> 
> 2. Signing subkey that is different from the primary key, and does not
>   have any other capabilities enabled.
> 
> 3. Primary key and the signing subkey are both of type EITHER:
> 
>   a. RSA, >=2048 bits (OpenPGP v4 key format or later only)
> 
>   b. ECC curve 25519
> 
> 4. Expiration date on key and all subkeys set to at most 2 years
> 
> 5. Key expiration date renewed at least 2 weeks before the previous
>   expiration date.
> 
> 6. Upload your key to the SKS keyserver rotation before usage!
> 
> Recommendations
> ---------------
> This section specifies the best practices for Gentoo developers.
> The developers should follow those practices unless there is a strong
> technical reason not to (e.g. hardware limitations, necessity of replacing
> their primary key).
> 
> 1. Copy ``/usr/share/gnupg/gpg-conf.skel`` to ``~/.gnupg/gpg.conf``, append
>   the following block::
That file no longer exists.
> 
>       keyserver pool.sks-keyservers.net
This is less secure than the default according to K_F in #gentoo-infra.
> 
>       emit-version
K_F indicated that this harms security too.
> 
>       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
This makes the key ids shorter. ^_^;;
> 
>       # 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-...@notations.openpgp.fifthhorseman.net=%g
> 
>       # when making an OpenPGP certification, use a stronger digest than the 
> default SHA1:
>       cert-digest-algo SHA256

Could we just drop the recommended gpg.conf? Many of these suggestions are 
outdated.
> 
> 2. Primary key and the signing subkey are both of type RSA, 2048 bits
>   (OpenPGP v4 key format or later)
> 
> 3. Key expiration renewed annually
> 
> 4. Create a revocation certificate & store it hardcopy offsite securely
>   (it's about ~300 bytes).
> 
> 5. Encrypted backup of your secret keys.
> 
> Gentoo LDAP
> ===========
> 
> All Gentoo developers must list the complete fingerprint for their primary
> 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
> ==========
> 
> .. [#GNUPG-FAQ-11-4] GnuPG FAQ: Why doesn’t GnuPG default to using RSA-4096?
>   (https://www.gnupg.org/faq/gnupg-faq.html#no_default_of_rsa4096)
> 
> .. [#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
> =========
> Copyright (c) 2013 by Robin Hugh Johnson, Andreas K. Hüttel, Marissa Fischer.
> 
> 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/.
> 
> 
> --
> Best regards,
> Michał Górny
> 
> -- 
> 2.18.0
> 
> 


Reply via email to