I have been looking for an operational security guide for generating one's asymmetric key pair for (Open)PGP. I have found plenty of technical guides for how to use GnuPG to generate RSA key-pairs, for example, but not much organized content of how to do so securely.
The use case is an average user wishing to use asymmetric encryption for signing, encrypting, and decrypting email and other file types. The threat model for creating the key pair does not include having to fend off three-letter agencies, organized crime, terrorists, or malicious corporations (i.e., there doesn't need to be a step regarding hiring body-guards or getting 24/7 security systems).
I've gleaned from various sources online (including the very helpful GnuPG mailing list & documentation, the Debian Wiki, RiseUp.net, and this guide) the following steps as a general guide, but I am not sure if I am missing something. What else does one need to consider in this scenario?
- Find a computer that you think is relatively free of malware
- Download a Live Linux distro CD/DVD/USB, and verify its signatures to make sure you are not installing a tainted version
- Launch the verified Linux distro
- Make sure the distro is completely disconnected from any network connection before proceeding
- Configure GnuPG by editing the .gnupg/gpg.conf file to follow the guidelines here
- Use GnuPG to create private RSA key, and two subkeys (signing &
encrypting)
- Set expiration date on (public) sub-key
- Create both a paper and digital backup of master private key
- Store the backups in two different physical locations, so no single point of failure
- Create a revocation certificate for the private master key
- Create both a paper and digital backup of the revocation certificate
- Store the backups in two different physical locations, so no single point of failure
- Strip the master private key from the keychain
- Copy over GnuPG keychain without master private key to work computer, personal laptop, etc.