TFM


by Jesse Zbikowski - Newspeak Staff

Pretty Good Privacy is a military-grade public-key cryptography system which is used by people all over the world to securely exchange information via the Internet. The need for such a system is evidenced by the repeated attempts of our own government to control and monitor everything sent over the Net, including the House's current bill which would involve 5-year prison sentences for _receiving_ obscene email (see last week's Electronic Engineering Times). Rather than getting bogged down in a political discussion on the need for good cryptography, I refer the interested reader to this month's Communications of the ACM (December '95) - special issue on ethics in computing. Suffice it to say that if you aren't worried by what the government plans for the Internet, you aren't paying attention.

This article explains how to get started using PGP on the WPI Unix systems. PGP provides two major services.

1) Authentication. When you PGP-sign an email message or post, its recipients can be sure it comes from you and not an imposter (an all-too-real threat nowadays).

2) Facilitating private communication between two people over the Internet. When you send out unencrypted email, it can be read and searched by many different people along the way to its destination. Electronic surveillance by the government and other organizations is very real, and many people wish to assert their right to privacy by using PGP.

First you'll need to create your own public and secret key pair. Make a directory called ".pgp" in your home; then run "pgp -kg". This will make a secret key-ring file, which stores your secret key, and a public key-ring file, which stores the public keys of yourself and your friends. You'll need to think of a pass phrase to access your secret key with. You should choose this carefully, since one of the only vulnerabilities of PGP is to the "dictionary attack"; i.e., obvious pass phrases can be guessed by trying common words in a dictionary. The recommended technique for inventing a phrase which is hard to guess but easy to remember is to invent "shocking nonsense" - something which involves juxtaposing ridiculous and obscene ideas. Don't worry; no one else will ever even see it. Something like ELEPHANT WAN... uh, I'm sure you can come up with your own examples... (hey, I'm not making this stuff up; this is real cognitive-psychology at work).

Next you will want to sign your public key. This will prevent other people from tampering with your public key block in order to misdirect email sent to you. "pgp -ks" does this for you. Later, you may wish to have someone else sign your key, to increase other people's confidence that you are who you claim to be.

After that, you can distribute your public key so that people can send encrypted email to you. One common way to do this is to extract your public key in an ASCII-encoded format, and insert it into your ~/.plan. This is the reason for those "Finger for PGP key" addenda you see on the Net. Use "pgp -kxa" to generate the public key block; the "-a" part is always used in pgp commands when you want to create ASCII files instead of the default binary ones.

You will now be able to PGP-sign messages you send in such a way that the recipient can be sure it originated from you, and no one else. Type "pgp -sa " to create a file encrypted with your secret key. Anyone can decrypt this file with your public key; type "pgp " to re-create the original and verify that the encryptor was yourself. If the original file was binary (e.g., a zip file), PGP-signing has the convenient effect of putting it in all-ASCII format so it can be sent via email (just like uuencoding does). If the original file is text, you may choose to just append a PGP signature at the end, instead of encrypting the whole file, by typing "pgp -sat ". Essentially this creates a checksum, which verifies not only your authorship of the message, but that it has not been altered by anyone en route to its destination.

In order to encrypt messages so that they can only be read by one individual, or to read messages PGP-signed by someone else, you will need to put other people's public keys in your public key-ring. Often these keys can be found by fingering them, or at the end of their posts and email messages. Once you have somebody's PGP public key block in a file, run "pgp -ka " to add it to your public key-ring. You can now read messages PGP-signed by this person, just by running "pgp " on it. Likewise, other people will need to put your public key into their own key-rings in order to read messages signed by you; this is why you want to make your public key available. Now to securely encrypt message for someone, type "pgp -ea person", or "pgp -eat person" if it's just text. "person" here is a substring of the user_id which appears in his or her public key; usually their first name or email address will work. Note that even you cannot read the encrypted file now! It can only be decrypted with the secret key of the specified recipient. You can also encrypt it so that several different people may decrypt it, provided you have public keys in your key-ring for each of them; just "pgp -eat user-1 user-2 ... user-n". Finally, to both PGP-sign and PGP-encrypt the message at once, you can combine the flags using "pgp -east users"; this probably the most common formulation.

I don't want to name names, but there happens to be a _certain_ text editor which has all this cool PGP stuff integrated right in with its built-in mail program. Just put the expression (require 'mailcrypt) in your ~/.vm file to make use of it. For more information on using PGP, there is a great Web page you should check out -

http://draco.centerline.com:8080/~franl/pgp/

This also has more info on integrating pgp with your other mail agents. The newsgroup _alt.security.pgp_ may be of interest as well, particularly the FAQ.

When using PGP on our Unix systems or any other multi-user environment, be aware that your key and pass phrase will not be completely and totally secure. (Of course, our own administrators would never dream of poking through their users' email and files... *cough*). If you need maximum privacy for your transactions, download PGP 2.6.2 for DOS and run it on your own machine; it's availble from lots of sites, including ftp.csua.berkeley.edu in /pub/cypherpunks/pgp/. My advice: get it while it's still legal; the author of PGP is now facing up to 51 months in jail for making the program available on the Net.

And look into Tempest shielding while you're at it.



WPI Community Newspeak This Issue
Give feedback: newspeak@wpi.wpi.edu
Maintained by: Troy Thompson