Confirmed users
502
edits
Gdestuynder (talk | contribs) m (Gdestuynder moved page Security/Key Management to Security/Guidelines/Key Management: Reorg under the expected location) |
Gdestuynder (talk | contribs) (Automated sync from https://github.com/mozilla/wikimo_opsec) |
||
| Line 10: | Line 10: | ||
|- | |- | ||
| <span style="color:orange;">'''DRAFT'''</span> || | | <span style="color:orange;">'''DRAFT'''</span> || | ||
* Version 1.2: kang: Bump key requirements see also <https://www.nsa.gov/ia/programs/suiteb_cryptography/index.shtml>, rationale: historically when the NSA has such high requirements they're aware of significant weaknesses with lower requirements. | |||
* Version 1.1: kang: migrated OpenSSH key handling to [[Security/Guidelines/OpenSSH]] | * Version 1.1: kang: migrated OpenSSH key handling to [[Security/Guidelines/OpenSSH]] | ||
* Version 1: kang/ulfr: creation | * Version 1: kang/ulfr: creation | ||
| Line 26: | Line 27: | ||
= Algorithms by security levels = | = Algorithms by security levels = | ||
This section organizes algorithms and key sizes for a given validity period | This section organizes algorithms and key sizes by rating (modern, intermediate, old) for a given validity period. | ||
Regardless of the rating choosen, we do recommend prefering 2 years keys with a reliable key rotation instead of trying | |||
to keep key material for long periods of time. | |||
This allow for faster operational reaction time when new algorithm weaknesses are discovered. | |||
== Modern - 10 years (default) == | |||
These may be used if expiring within 10 years and should be the default choice unless limited by technological factors | |||
such as client/server support or performance. | |||
Use of EC is favored over RSA for performances purposes. | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| Line 35: | Line 44: | ||
| Asymmetric encryption || RSA 4096 bits || 144 bits | | Asymmetric encryption || RSA 4096 bits || 144 bits | ||
|- | |- | ||
| Asymmetric encryption || ECDSA | | Asymmetric encryption || ECDSA 512 bits || 256 bits | ||
|- | |- | ||
| Symmetric encryption || AES-GCM | | Symmetric encryption || AES-GCM 256 bits || 256 bits | ||
|- | |- | ||
| Hash & HMAC || SHA- | | Hash & HMAC || SHA-512 || 256 bits | ||
|- | |- | ||
| Hash & HMAC || SHA3- | | Hash & HMAC || SHA3-512 || 256 bits | ||
|} | |} | ||
== 2 years | == Intermediate - 2 years == | ||
These maybe be used if expiring within 2 years or up to 2020 whichever comes first. | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Type !! Algorithm and key size !! Bits of security | ! Type !! Algorithm and key size !! Bits of security | ||
|- | |- | ||
| Asymmetric keys || RSA | | Asymmetric keys || RSA 3072 bits || 128 bits | ||
|- | |- | ||
| Asymmetric keys || ECDSA | | Asymmetric keys || ECDSA 256 bits || 128 bits | ||
|- | |- | ||
| Symmetric encryption || AES-CBC 128 bits || 128 bits | | Symmetric encryption || AES-CBC 128 bits || 128 bits | ||
| Line 60: | Line 71: | ||
|} | |} | ||
== | == Old - do not use == | ||
The following algorithms and sizes are still widely used but do not provide sufficient security for modern services and should be deprecated as soon as possible | The following algorithms and sizes are still widely used but do not provide sufficient security for modern services and should be deprecated as soon as possible. | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| Line 72: | Line 84: | ||
| Symmetric encryption || 3DES || 112 bits | | Symmetric encryption || 3DES || 112 bits | ||
|- | |- | ||
| Symmetric encryption || RC4 || | | Symmetric encryption || RC4 || | ||
|- | |- | ||
| Hash & HMAC || SHA-1 || 80 bits | | Hash & HMAC || SHA-1 || 80 bits | ||
| Line 119: | Line 131: | ||
File: ~/.gnupg/gpg.conf | File: ~/.gnupg/gpg.conf | ||
<source> | <source> | ||
personal-digest-preferences SHA512 SHA384 | personal-digest-preferences SHA512 SHA384 | ||
cert-digest-algo SHA256 | cert-digest-algo SHA256 | ||
default-preference-list SHA512 SHA384 | default-preference-list SHA512 SHA384 AES256 ZLIB BZIP2 ZIP Uncompressed | ||
keyid-format 0xlong | keyid-format 0xlong | ||
</source> | </source> | ||
| Line 128: | Line 140: | ||
== Bits of security == | == Bits of security == | ||
Security Bits estimate the computational steps or operations (not machine instructions) required to solve a cryptographic problem (i.e. crack the key/hash). | Security Bits estimate the computational steps or operations (not machine instructions) required to solve a cryptographic problem (i.e. crack the key/hash). | ||
Of course, these do not factor in weaknesses in the algorithms which would reduce the effective amount of security bits | |||
and therefore is only used as an indicator of the width of the total (maximum) space to exhaust to ensuring finding the key. | |||
For a more detailed definition, see http://en.wikipedia.org/wiki/Key_size and http://www.cryptopp.com/wiki/Security_Level#Security_Bits. | For a more detailed definition, see http://en.wikipedia.org/wiki/Key_size, https://en.wikipedia.org/wiki/Secure_Hash_Algorithm and http://www.cryptopp.com/wiki/Security_Level#Security_Bits. | ||