Pretty Good Privacy Version 2.6.3i Installation Guide by Perry Metzger, Colin Plumb, Derek Atkins, Jeffrey I. Schiller and others . Updated for PGP 2.6.3i by Stale Schumacher How to Install PGP ================== The first question is, what platform are you on? The base PGP 2.6.3i distribution runs on MS-DOS, OS/2, Atari, VMS, Archimedes and several varieties of Unix. Naturally, installation instructions differ depending on your hardware. Separate instructions are provided here for MSDOS, OS/2, Unix and VMS. See the section below for your system's particular installation instructions. If you do not have any of these systems, you will either have to port the sources to your machine or find someone who has already done so. ######################################################################## For MSDOS and OS/2: PGP is distributed in a compressed archive format, which keeps all the relevant files grouped together, and also saves disk space and transmission time. The current version, 2.6.3i, is archived with the ZIP utility, and the PGP executable binary is in a file named PGP263I.ZIP (MSDOS 16-bit), PGP263IX.ZIP (MSDOS 32-bit), PGP263I2.ZIP (OS/2 FAT) or pgp263i-os2.zip (OS/2 HPFS). This contains the executable program, the user documentation, and a few keys and signatures. There is also another file available containing the C and assembly source code, called PGP263IS.ZIP. This should be available from the same source from which you got PGP263I.ZIP. If not, send email to pgp@hypnotech.com with "INFO PGP" in the subject field. You will need PKUNZIP version 2.0 or later to uncompress and split the ZIP archive file into individual files. PKUNZIP is shareware and is widely available on MSDOS and OS/2 machines. Create a directory for the PGP files. For this description, let's use the directory C:\PGP as an example, but you should substitute your own disk and directory name if you use something different. Type these commands to make the new directory: c: md \pgp cd \pgp Uncompress the distribution file to the directory. For this example, we will assume the file is on floppy drive A - if not, substitute your own file location, e.g.: pkunzip -d a:pgp263i This will create the files PGP263II.ZIP and PGP263II.ASC. Unzip PGP263II.ZIP with the command: pkunzip -d pgp263ii If you omit the -d flag, all the files in the doc subdirectory will be deposited in the pgp directory. This merely causes clutter. Keep the PGP263II.ZIP file around. Once you have PGP working you can use PGP263II.ASC to verify the digital signature on PGP263II.ZIP. It should come from Stale Schumacher (whose key is included in KEYS.ASC). Setting the Environment ----------------------- Next, you can set an "environment variable" to let PGP know where to find its special files, in case you use it from other than the default PGP directory. Use your favorite text editor to add the following lines to your AUTOEXEC.BAT (MSDOS) or CONFIG.SYS (OS/2) file (usually on your C: drive): SET PGPPATH=C:\PGP SET PATH=C:\PGP;%PATH% Substitute your own directory name if different from "C:\PGP". The CONFIG.TXT file contains various preferences. You can change the language PGP operates in, and the character set it uses. The IBM PC's default character set, "Code Page 850" will be used if the line "charset = cp850" appears in the config.txt file. You probably want to add that line. Another environmental variable you should set is "TZ", which tells your operating system what time zone you are in. This helps PGP create GMT timestamps for its keys and signatures. If you properly define TZ in AUTOEXEC.BAT (CONFIG.SYS), then MSDOS (OS/2) will give you good GMT timestamps, and will handle daylight savings time adjustments for you. Here are some sample lines depending on your time zone: For Los Angeles: SET TZ=PST8PDT For Denver: SET TZ=MST7MDT For Arizona: SET TZ=MST7 (Arizona never uses daylight savings time) For Chicago: SET TZ=CST6CDT For New York: SET TZ=EST5EDT For London: SET TZ=GMT0BST For Amsterdam: SET TZ=MET-1DST For Moscow: SET TZ=MSK-3MSD For Aukland: SET TZ=NZT-12DST Now reboot your system to set up PGPPATH and TZ. Generating Your First Key ------------------------- One of the first things you will want to do to really use PGP (other than to test itself) is to generate your own key. This is described in more detail in the "RSA Key Generation" section of the PGP User's Guide. Remember that your key becomes something like your written signature or your bank card code number or even a house key - keep it secret and keep it secure! Use a long, unguessable pass phrase and remember it. Right after you generate a key, put it on your key rings and copy your secret keyring (SECRING.PGP) to a blank floppy and write protect the floppy. If you are a first-time user of PGP, it is a good idea to generate a short test key, with a short passphrase, to play around with PGP for a little bit and see how it works, or even more than one so you can pretend to be sending messages between two different people. Since you won't be guarding any secrets, this can be short and have a simple pass phrase. But when you generate your permanent key, that you intend to give to others so they can send secure messages to you, be much more careful. After you generate your own key pair, you can add a few more public keys to your key ring. A collection of sample public keys is provided with the release in the file KEYS.ASC. To add them to your public key ring, see the PGP User's Guide, in the section on adding keys to your key ring. Verifying the PGP distribution ------------------------------ Now that you have PGP up and running and have read in the KEYS.ASC file you can verify the integrity of the original distribution. To do this type: pgp pgp263ii.asc It will inform you that pgp263ii.asc contains a signature but no text. It may then ask you to provide the name of the file that it applies to. Type in "pgp263ii.zip", the internal ZIP file. PGP should tell you that it has a Good Signature from: Stale Schumacher It will also tell you that it doesn't "trust" this key. This is because PGP does not *know* that the enclosed key really belongs to me. Don't worry about this now. Read the section "How to Protect Public Keys from Tampering" in Volume 1 of the PGP manual. READ THE FINE MANUAL (RTFM) --------------------------- READ THE DOCUMENTATION. At least read Volume I of the PGP User's Guide. Cryptography software is easy to misuse, and if you don't use it properly much of the security you could gain by using it will be lost! You might also be unfamiliar with the concepts behind public key cryptography; the manual explains these ideas. Even if you are already familiar with public key cryptography, it is important that you understand the various security issues associated with using PGP. PGP may be an unpickable lock, but you have to install it in the door properly or it won't provide security. ######################################################################## For UNIX: You likely will have to compile PGP for your system; to do this, first make sure the unpacked files are in the correct unix textfile format (the files in pgp263is.zip are in MSDOS CRLF format, so for Unix you must unpack with "unzip -a"; the tar files pgp263is.tar.Z and pgp263is.tar.gz use normal Unix line feed conventions). If you intend to compile PGP 2.6.3i for use within the USA, you will need the RSAREF package written by RSA Data Security. It is NOT included with the PGP 2.6.3i distribution. When you untar pgp263is.tar (either compression format) you will find that it contains 5 files. pgp263ii.tar contains all non-binary files for PGP including all source code. This tar archive has been created assuming that you will untar it directly into your PGP 2.6.3i "build" directory. pgp263ii.asc is a detached digital signature of pgp263ii.tar (which you can verify after you have PGP operating, see the section above titled "Verifying the PGP Distribution"). If you don't have an ANSI C compiler you will need the unproto package written by Wietse Venema. unproto was posted on comp.sources.misc and can be obtained from the various sites that archive this newsgroup (volume 23: v23i012 and v23i013) or ftp.win.tue.nl file: /pub/programming/unproto4.shar.Z. Read the file README in the unproto distribution for instructions on how to use unproto. If your system doesn't have a target in the makefile you will have to edit the makefile, make sure you compile for the correct byte order for your system: define HIGHFIRST if your system is big-endian (eg. Motorola 68030). There are also some platform-specific parameters in the include file "platform.h". Some platforms may have to modify this file. If you successfully create a target rule for a new platform, please send the patches to pgp-bugs@ifi.uio.no, so it can be added to the next release. Note: PGP 2.6.3i requires the function memmove. Not all machines have this in the standard C library. There is an implementation of memmove included with this distribution. If you find that your platform requires memmove, but the makefile rule for your platform does not include memmove (look at the sun4gcc or sun386i rules for an example of how to include it), please send mail to pgp-bugs@ifi.uio.no, so I can correct the problem. If you have any problems, bugs, patches, etc., please send mail to pgp-bugs@ifi.uio.no. If all goes well, you will end up with an executable file called "pgp". Before you install pgp, run these tests: (do not create your real public key yet, this is just for testing pgp) - create a .pgp directory in your home directory - create a public/secret key pair (enter "test" as userid/password): pgp -kg - add the keys from the file "keys.asc" to the public keyring: pgp -ka keys.asc pgp will ask if you want to sign the keys you are adding, answer yes for at least one key. - do a keyring check: pgp -kc - encrypt pgpdoc1.txt: pgp -e pgpdoc1.txt test -o testfile.pgp - decrypt this file: pgp testfile.pgp This should produce the file "testfile". Compare this file with pgpdoc1.txt If everything went well, install pgp in a bin directory. Place the documentation, pgpdoc1.txt and pgpdoc2.txt somewhere where you can reasonably read it. The software looks for it when running (especially generating keys), so someplace reasonably obvious would be good. "pgp -kg" will give you full details if it can't find the manuals. Place the man page (pgp.1) in an appropriate spot. If you don't know anything about how man pages work, you can make the man page look human readable yourself by typing "nroff -man pgp.1 >pgp.man" and reading "pgp.man". Create a subdirectory somewhere in your home directory hierarchy to hold your public and private key rings and anything else pgp might need (like the language.txt file). The default name PGP assumes is ~/.pgp. If you want to use a different name, you must set the environment variable "PGPPATH" to point to this place before you use the system. > IMPORTANT: This directory cannot be shared! It will contain your < > personal private keys! < If you are installing PGP for yourself, copy the files "language.txt", "config.txt", and the ".hlp" files from the distribution into this subdirectory. If you are installing PGP system-wide, the directory to use is /usr/local/lib/pgp for the config, language and help files. This can be changed in fileio.h when compiling. It's the value of PGP_SYSTEM_DIR. Tell PGP the character set and language you wish to use in the config.txt file. If you have a terminal that only displays 7-bit ASCII, use "charset=ascii" to display an approximation (accents are omitted) of extended characters. >> IMPORTANT: Please read the sections in the man page and manual << >> about vulnerabilities before using this software on a multi- << >> user machine! << Now, if you haven't done so yet, GO READ THE MANUAL. ######################################################################## For VMS: Usage is generally: 1) Unzip your PGP 2.6.3i sources in [.PGP] using the -aa option 2) Set default to [.PGP.SRC] 3) Type @PGPINSTAL and answer the questions See the file [.pgp.src]pgpinstal.com for more detailed information. For proper operation, the logical name PGPPATH *must* be defined to point to a directory containing the PGP help files, language files, your keyrings (keyrings get created automatically), and your CONFIG.TXT. Refer to the PGP documentation for information on how the PGPPATH "environment variable" is used.