Want to encrypt a file, but don't know where to start? Here's a quick and clean introduction to file encryption using GnuPG:
$ gpg -c test.txt Enter passphrase: Repeat passphrase:
When encrypting, GnuPG asks for a passphrase twice, just like when you set a new password. The new encrypted file has the same name, but with the extension .gpg added. The original file is left intact.
The -c stands for conventional encryption, also known as symmetric encryption. Normally, GnuPG defaults to public key encryption, but we haven't generated or loaded any public keys, so for now we have to stay with conventional.
This type of encryption is most useful only if you want to decrypt your files, but you don't trust where your files are stored. For example, easily lost or stolen storage can be protected with this type of encryption. This type of encryption is especially useful for off-site backups.
To extract the encrypted file, simply type:
$ gpg filename.gpg
GnuPG automatically detects that the file is encrypted with a passphrase and asks for that passphrase. Then it writes the decrypted data to a file with the same name but without the .gpg extension. As with encrypting, the encrypted file is left intact. If you want the output file to be written to a different filename, use standard redirection, exactly as with the --dearmor example. Note that both input and output redirection must be used, or GnuPG becomes confused:
$ gpg < filename.gpg > filename.txt
If you want someone else to decrypt the file, you have to tell this person the passphrase without leaking the passphrase to anyone else. A simple and straightforward way to do this is in person. That might seem not very useful, as the original file also could be given in person. But that passphrase can now be reused safely multiple times on different files in the future. Just like passwords, however, passphrases should be changed regularly. Never reuse a passphrase with other people, unless you want them to decrypt all of the files you ever encrypted with that passphrase.
Note: this warning is normal when using passphrase encryption in GnuPG. This can be avoided with public key encryption:
gpg: WARNING: message was not integrity protected
The passphrase is a secret that keeps the other secrets, which makes it the most important part of GnuPG security. Unfortunately, in practice, passphrases are also the weak part. This is because creating good passphrases is difficult, and remembering them is even more difficult.
I highly recommend Diceware, but if it doesn't appeal to you, take a look at the Wikipedia article (see Resources) or the passphrase Web pages recommended by your favorite Web search engine.
Regardless of what method you choose, a simple guide to passphrase security is that longer is usually better (Table 1).
Table 1. Password and passphrase strengths compared with estimated time to crack.
|Type||Length||Bits||Total Bits||Time to Crack|
|Single word of any language||8 characters||24||24||Seconds|
|Random mono-case letters||8 characters||4.7||37||Minutes|
|Random mono-case letters||16 characters||4.7||75||Decades|
|base64 [A-Za-z0-9+/=]||10 characters||6||60||Months|
|base64 [A-Za-z0-9+/=]||20 characters||6||120||Uncrackable?|
|Completely random printable||6 characters||6.5||40||Minutes|
|Completely random printable||8 characters||6.5||52||Hours|
|Completely random printable||12 characters||6.5||78||Decades|
|Completely random printable||15 characters||6.5||97||Centuries|
|Completely random printable||20 characters||6.5||130||Uncrackable?|
|Diceware passphrase||2 words||12.9||26||Seconds|
|Diceware passphrase||4 words||12.9||51||Hours|
|Diceware passphrase||6 words||12.9||78||Decades|
|Diceware passphrase||8 words||12.9||120||Uncrackable?|
The time estimates in Table 1 are wide, because money and time can be traded evenly. Computing power keeps getting cheaper, so time to crack keeps getting shorter. Cracking costs start at free and go up.
If you cannot remember a GnuPG passphrase, the data encrypted with that passphrase is probably gone forever. There are no known back doors in GnuPG nor any way to recover a lost passphrase short of guessing. How long it takes depends on how good the passphrase was. A good 20-character passphrase could take billions of years to guess, even using all current and future computers.
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems
Join editor Bill Childers and Bit9's Paul Riegle on April 27 at 12pm Central to learn how to keep your Linux systems secure.
Free to Linux Journal readers.Register Now!
|diff -u: What's New in Kernel Development||Aug 20, 2014|
|Security Hardening with Ansible||Aug 18, 2014|
|Monitoring Android Traffic with Wireshark||Aug 14, 2014|
|IndieBox: for Gamers Who Miss Boxes!||Aug 13, 2014|
|Non-Linux FOSS: a Virtualized Cisco Infrastructure?||Aug 11, 2014|
|Linux Security Threats on the Rise||Aug 08, 2014|
- diff -u: What's New in Kernel Development
- Security Hardening with Ansible
- NSA: Linux Journal is an "extremist forum" and its readers get flagged for extra surveillance
- New Products
- Tech Tip: Really Simple HTTP Server with Python
- [<Megashare>] Watch Mrs Brown's Boys Movie Online Full Movie HD 2014
- Monitoring Android Traffic with Wireshark
- Returning Values from Bash Functions
- RSS Feeds
- Raspberry Pi: the Perfect Home Server