premail (0.46-9) doc-0.46.txt

Summary

 doc-0.46.txt | 1053 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1053 insertions(+)

    
download this patch

Patch contents

--- premail-0.46.orig/doc-0.46.txt
+++ premail-0.46/doc-0.46.txt
@@ -0,0 +1,1053 @@
+
+   This document is available online at
+   [1]http://www.c2.net/~raph/premail/.
+   
+Introduction to premail
+
+     This is the documentation for version 0.46 of premail, an e-mail
+     privacy package by [2]Raph Levien. It is organized as a single,
+     large document so as to be easily readable when printed. You can,
+     however, jump directly to one of these topics: [3]installation,
+     [4]secrets, [5]preferences, [6]Netscape, [7]Pine, [8]other mailers,
+     [9]command line, [10]encryption, [11]decoding, [12]anonymity,
+     [13]nyms, [14]usenet, [15]address book, [16]smime, [17]debugging,
+     [18]technical notes, [19]related documents, (end of list).
+     
+     The main function of premail is adding support for encrypted e-mail
+     to your mailer, using plain PGP, [20]PGP/MIME, [21]MOSS, or
+     [22]S/MIME.
+     
+     In addition, premail provides a seamless, transparent interface to
+     the [23]anonymous remailers, including full support for Mixmaster
+     remailers and the nymservers. Nymservers provide cryptographically
+     protected, fully anonymous accounts for both sending and receiving
+     e-mail.
+     
+     While premail can be used as a stand-alone application, it works
+     best when integrated with your mailer. Currently, premail is
+     integrated completely seamlessly and transparently only with
+     Netscape 3.0's built-in mailer. It works fairly well with [24]Pine
+     3.94 or later, as well (plain PGP is supported, but decryption of
+     MIME-based e-mail encryption protocols is still missing).
+     Transparent integration of outgoing mail only is supported for any
+     mailer in which the mail sending program can be configured,
+     including Berkeley mail, most emacs mailers, and [25]MH. For these
+     mailers, you can decode messages with a single command.
+     
+     To integrate with your mailer, premail places itself between the
+     mailer and the actual mail transport. For outgoing mail, premail
+     masquerades as sendmail. You configure your mailer to call premail
+     instead of sendmail. Then, premail performs the encryption or
+     signing, and invokes sendmail to actually send the message.
+     
+     For mailers that call a command to receive incoming mail (including
+     Netscape 3.0), the situation is similar. Netscape, for example, can
+     be configured to call movemail to get incoming mail. To integrate
+     premail, you'd configure Netscape to call premail instead, which
+     would in turn call movemail to actually get the mail, then would
+     decode it.
+     
+     You need the following software in order to effectively use
+     premail:
+     
+     * Unix. Unfortunarely, premail does not work on Mac or Windows.
+     * [26]Perl 5.000 or later.
+     * [27]PGP (version 2.6.2 recommended).
+     * [28]RIPEM 3.0b2 or later (optional, for S/MIME support)
+       
+       [29]TIS/MOSS 7.1 (optional, for MOSS support)
+     
+       [30]Mixmaster (optional, for higher security anonymous mail)
+     
+     [31]Lynx (only if you're behind a firewall)
+   
+Installation
+
+     First, you need to get premail. The source code is available from
+     an [32]export-control Web server. You may also be able to find a
+     copy on the [33]Hacktic FTP site in the Netherlands. In either
+     case, you want to get the file premail-0.46.tar.gz.
+     
+     After you've gotten the file, unpack it. This command should do it:
+     
+   gzip -dc premail-0.46.tar.gz | tar xvf -
+
+     The unpacking process will create a subdirectory called
+     premail-0.46, containing the following files:
+     
+                  README A short description of the contents
+                      premail The premail program itself
+                    preferences A skeletal preferences file
+                                      
+     Test to see if you can run premail. These commands should print a
+     usage summary:
+     
+   cd premail-0.46
+   ./premail
+
+     If you get an error message reading "command not found," then you
+     will have to edit the first line of premail to refer to the actual
+     pathname of the perl5 interpreter. One good way to find out the
+     pathname is to do "which perl5" or "which perl".
+     
+     On the other hand, if you get a string of syntax errors, then the
+     problem is that you are running perl4, while premail needs perl5.
+     Try to see if you can find perl5 on your machine. Otherwise, you
+     may need to install perl5 yourself.
+     
+     If you will be using premail from the command line frequently, then
+     you may want to copy (or symlink) the premail program into a
+     location in your $PATH. For example, if you have permission to add
+     files into /usr/local/bin, then you may consider running this
+     command:
+     
+   cp -p premail /usr/local/bin
+
+     At this point, you are ready to test whether premail actually
+     works. We are assuming that you already have PGP installed and have
+     generated your own public key. Type this command, substituting in
+     your own e-mail address:
+     
+   ./premail -t
+   To: your@own.email.addr ((encrypt-pgp))
+   Subject: Test
+
+   Does this really work?
+   .
+
+     If all goes well, you should be back at the command line within a
+     couple of seconds. If it seems to hang without any disk or net
+     activity, try typing randomly for a minute, under the assumption
+     that PGP needs random keystrokes. This shouldn't happen if PGP is
+     already set up correctly (including having generated your own
+     public key), but on the chance that it isn't, hanging while waiting
+     for random keystrokes is one of the more common failure modes.
+     
+     This is also the point at which you may get a PGP error. Two common
+     problems are that premail can't find the PGP program, in which case
+     you will want to add a line to your preferences file (see
+     [34]below), or that it can't find the public key corresponding to
+     your e-mail address.
+     
+     If the test was successful you now have a PGP-encrypted message in
+     your mailbox, then you should now have a PGP-encrypted message in
+     your mailbox.
+     
+Preferences
+
+     While premail's default configuration is designed to be sufficient
+     for the the most common cases, you may want to change some of the
+     configuration options. This is done by adding lines to the
+     preferences file.
+     
+     The default location for the preferences file is
+     ~/.premail/preferences, where ~ represents your home directory. The
+     premail distribution comes with a skeleton preferences file, but it
+     does not automatically copy it into the ~/.premail directory. You
+     might choose to do that yourself, or you might create one from
+     scratch.
+     
+     The format of the preferences file is a sequence of lines such as
+     the following:
+     
+   $config{'option'} = 'value';
+
+     All other lines (including those beginning with #) are considered
+     to be comments and are ignored. Here's a typical preferences file
+     (actually, the one on my home machine):
+     
+   $config{'logfile'} = '/home/raph/premail/log';
+   $config{'debug'} = 'chvl';
+   $config{'movemail'} = '/home/raph/bin/movehome';
+   $config{'ripem'} = '/home/raph/install/ripem/main/ripem';
+   $config{'pgp'} = '/usr/local/bin/pgp';
+
+     As you can see, a major use for the preferences file is to specify
+     full pathnames for the helper programs. In addition, I've set it up
+     to produce a full log, which I find useful, because I'm constantly
+     tracking down bugs :-)
+     
+     Here's a table of all the configuration options, their defaults,
+     and a very brief description. More complete descriptions are found
+     in the preferences file included in the premail distribution.
+     
+   _option
+   default_ _explanation_
+   pgp
+   _pgp_ The location of the PGP executable.
+   sendmail
+   _/usr/lib/sendmail_ The location of the sendmail executable.
+   mixmaster
+   _mixmaster_ The location of the Mixmaster executable (useful for more
+   secure anonymous mail).
+   movemail
+   _movemail_ The location of the movemail executable (useful for
+   integrating Netscape 3.0).
+   ripem
+   _ripem_ The location of the ripem executable (needed for S/MIME
+   messages).
+   mossbin
+   __The directory containing the TIS/MOSS executables (needed for MOSS
+   messages).
+   post
+   _post_ The location of the MH post executable (needed for MH
+   integration).
+   geturl
+   __A command for getting files from the Web. Use "lynx -source" if
+   behind a firewall.
+   dead-letter
+   _~/dead.letter_ The file where premail stores undeliverable mail.
+   logfile
+   __The location where premail stores its log, if the l debug flag is
+   set.
+   storefile
+   __If set, the location where premail stores outgoing mail, instead of
+   calling sendmail.
+   tmpdir
+   _/tmp_ Where premail stores its temporary files.
+   charset
+   _iso-8859-1_ The default charset for outgoing 8-bit messages.
+   encrypt
+   _yes_ Set to blank to disable PGP encryption to remailers.
+   ack
+   __If set, nymservers will send acknowledgements for all outgoing mail.
+   extrablank
+   __If set, premail adds an extra blank on remailer messages. Useful if
+   behind a broken mail proxy.
+   debug
+   __Debugging flags (see section on [35]debugging).
+   signuser
+   __The user id of the default PGP secret key used to sign messages.
+   default-reply-to
+   __Adds a Reply-To: header field with this address when sending
+   anonymous e-mail.
+   addresses
+   _~/.premail/addresses_ The file containing your addresses.
+   rlist
+   _~/.premail/rlist_ The file where premail stores the remailer list.
+   pubring
+   _~/.premail/pubring.pgp_ The file where premail stores the public
+   keyring for the remailers.
+   premail-secrets-pgp
+   _~/.premail/secrets.pgp_ The file where premail stores the encrypted
+   secrets file.
+   premail-secrets
+   _/tmp/premail-secrets.$<_ The location of your secrets file
+   rlist-url
+   _http://kiwi.cs.berkeley.edu/rlist _The URL for the remailer list.
+   pubring-url
+   _http://kiwi.cs.berkeley.edu/pubring.pgp_ The URL for the remailer
+   public keyring.
+   type2-list-url
+   _http://www.jpunix.com/type2.html_ The URL for the Mixmaster type2
+   list.
+   pubring-mix-url
+   _http://www.jpunix.com/pubring.html_ The URL for the Mixmaster
+   pubring.
+   
+Secrets
+
+     To create signatures, decrypt messages, or use nyms, you need to
+     set up a "premail secrets" file. If you will only be using premail
+     to encrypt outgoing mail, you can skip this section.
+     
+     The default filename is /tmp/.premail-secrets.$< , where $< is
+     equal to your numeric user id. To change the filename, use a
+     preferences line such as this one:
+     
+   $config{'premail-secrets'} = '/mnt/cryptdisk/premail-secrets';
+
+     If you don't know your numeric user id, you can find it by running
+     "echo $uid" (from csh or tcsh), "echo $UID" (from sh or bash), or:
+     
+   perl -e 'print "$<\n"'
+
+     The premail secrets file has this format:
+     
+   $pgppass{'user'} = 'PGP passphrase for user';
+   $pgppass{'alternate'} = 'PGP passphrase for alternate';
+   $penetpass = 'Passphrase for anon.penet.fi';
+
+     However, make sure your premail secrets file has restrictive
+     permissions, so other people on your system can't read your
+     passphrases! This command is well recommended (substituting your
+     actual user id, of course):
+     
+   chmod 600 /tmp/.premail-secrets.7437
+
+  Logging in and logging out
+  
+     Generally, premail stores its secrets file in the /tmp directory.
+     In some cases, this is good enough security. In other cases, it
+     might be better to store the file encrypted most of the time, and
+     only decrypt it when necessary. To use this capability of premail,
+     first set a passphrase with:
+     
+   premail -setpass
+
+     You will be prompted for a passphrase. You can use the same
+     passphrase as for your PGP key, or a different one, depending on
+     how many passphrases you want to remember. This command leaves you
+     logged in with the new passphrase set.
+     
+     To log out:
+     
+   premail -logout
+
+     You might consider adding this command to your .logout file, so
+     that it occurs automatically every time you log out of your
+     account.
+     
+     To log in again:
+     
+   premail -login
+
+     If you are running on a system with X, then premail will
+     automatically pop up a window to log in whenever the secrets are
+     needed. If you are not running X, and the secrets are needed, you
+     will get an error. In this case, you can log in manually and try
+     the command again.
+     
+Netscape
+
+     This section describes how to integrate premail into Netscape 3.0's
+     built-in mailer. Skip this section if you won't be using Netscape
+     mail.
+     
+     1. Create symbolic links to premail called "prezilla" and
+     "premailmove". To do this, make sure you are in the same directory
+     as premail itself, and type:
+     
+   ln -s premail prezilla
+   ln -s premail premailmove
+
+     2. Find a working movemail. If you have emacs installed, then you
+     most likely have one in /usr/lib/emacs/etc/movemail or a similar
+     location. If you don't already have one, then the source (or
+     possibly binary) for one is included in the Netscape Navigator
+     distribution and you can build it (no need if a binary is
+     included). Then, make sure premail can find it by adding a line
+     such as this one to your preferences file:
+     
+   $config{'movemail'} = '/usr/lib/emacs/etc/movemail';
+
+     This usage assumes that you get your mail from a mail spool, as
+     opposed to POP or some such. You may be able to get it to work for
+     POP as well, but you need to figure out how to invoke movemail to
+     move the mail from your mailbox to a file (specified as the second
+     argument to the movemail script).
+     
+     3. Add this line to your .cshrc, assuming your shell is csh or
+     tcsh:
+     
+   setenv NS_MSG_DELIVERY_HOOK /your/path/to/prezilla
+
+     Also run this command from the shell so it takes effect
+     immediately. The syntax is slightly different if your shell is sh
+     or bash _(note: is this right?)_:
+     
+   NS_MSG_DELIVERY_HOOK=/your/path/to/prezilla
+   export NS_MSG_DELIVERY_HOOK
+
+     4. Start Netscape (exit first if it's already running). Go to the
+     Options|Mail and News Preferences dialog, select the Servers tab.
+     Click on "External Movemail" and set the value to
+     /your/path/to/premailmove.
+     
+     Try sending yourself mail, and clicking on "Get Mail" from the
+     Netscape Mail window. The mail should show up in the Inbox,
+     correctly decoded.
+     
+     To view the X-Premail-Auth: header field to see the result of
+     signature checking, select Options|Show All Headers from the
+     Netscape Mail window.
+     
+     Note: as of Netscape v3.0, there is still a bug in the handling of
+     the Bcc: header field, which causes it to be ignored. Do not use
+     this field. Hopefully, this will be fixed in a future version of
+     Netscape.
+     
+     Note: some 3.0 beta versions modify the PATH environment variable.
+     If premail seems to work correctly from the command line, but not
+     from Netscape, try setting absolute pathnames for the programs used
+     by premail.
+     
+Pine
+
+     As of Pine 3.94, premail integrates both outgoing mail and the
+     decryption of plain PGP incoming mail. Unfortunately, decryption of
+     MIME-based mail is not yet supported.
+     
+     Two Pine configuration options need to be set to integrate premail
+     (i.e. from the main Pine screen, S for setup, then C for
+     configure). First, sendmail-path should be set to a value similar
+     to this (substituting the actual path to premail):
+     
+   /your/path/to/premail -oem -t -oi
+
+     Second, display_filters should be set to a value similar to this:
+     
+   _BEGINNING("-----BEGIN PGP")_ /your/path/to/premail -decode -body
+
+     If you have trouble finding these options in the setup screen, then
+     you can edit the .pinerc file directly.
+     
+     One caveat when using Pine: it usually tries to be "smart" and
+     remove comments from e-mail addresses, which includes the
+     double-paren commands such as ((encrypt-pgp)). There are a few ways
+     to deal with this problem:
+     
+     * Use "( )" instead of (( )). _Note: I think this works, but I
+       haven't tested it._
+     * Use the alternative caret syntax. These two lines mean the same
+       thing:
+
+   To: raph@cs.berkeley.edu ((encrypt-key, sign))
+   To: raph@cs.berkeley.edu^encrypt-key^sign
+     * Avoid setting the encryption options on the command line
+       altogether, and set them in the addresses file instead (see
+       [36]below).
+       
+Other mailers
+
+     This section describes how to integrate premail with MH, emacs, and
+     UCBMail. With these mailers, premail will only handle outgoing mail
+     automatically. To decode incoming mail, you still need to invoke
+     premail -decode by hand.
+     
+  Integrating premail with Emacs
+  
+     To add premail support to emacs, just add this line to your .emacs
+     file:
+     
+   (setq sendmail-program "/your/path/to/premail")
+
+  Integrating premail with MH
+  
+     In whatever directory you keep the premail executable, create a
+     symbolic link as follows:
+     
+   ln -s premail prepost
+
+     Under the name "prepost", premail will masquerade as MH's post
+     program rather than sendmail. You can get MH to call premail
+     instead of post by adding this line to your .mh_profile:
+     
+   postproc: /your/path/to/prepost
+
+     One thing to keep in mind is that premail's processing is done
+     before that of post. Thus, if you have MH aliases, they will get
+     expanded after the call to premail. If you use only premail
+     aliases, only MH aliases, or neither, this won't be a problem.
+     
+     Alternatively, if you have appropriate privileges, you can add this
+     line to /usr/lib/mh/mtstailor:
+     
+   sendmail: /your/path/to/premail
+
+     You may also have to configure MH to call sendmail locally rather
+     than connecting to an SMTP server. Don't do both the mtstailor and
+     mh_profile methods -- that would run premail twice.
+     
+  Installing premail with UCBmail
+  
+     UCBmail is a simple mailer front-end (also known as Mail and
+     mailx). If, when you type "mail user@site.dom", the mailer asks you
+     for a "Subject: " line, you are undoubtedly using UCBmail. If so,
+     you are in luck - it integrates very easily with premail. Just add
+     this line to your ~/.mailrc file:
+
+   set sendmail=/your/path/to/premail
+
+     Using premail with UCBmail is not very different from using premail
+     by itself, but you do get some handy features, such as including
+     files and using an editor on the mail.
+     
+Command line
+
+     Hopefully, you have integrated premail into your mail client, and
+     you won't have to invoke it from the command line. However, there
+     may still be times when it is convenient to use premail from the
+     command line.
+     
+     The most basic use of premail is as a replacement for sendmail. For
+     example, you can send mail directly from the command line, as
+     follows (here, the > represents the Unix prompt):
+     
+   > premail -t
+   To: raph@cs.berkeley.edu ((sign))
+   Subject: premail bug report
+
+   Here's a bug in premail: ...
+   .
+   >
+
+     The -t option specifies that the recipients are extracted from the
+     header fields (To:, Cc:, Bcc:, and the Resent- variants of each).
+     As in sendmail, you can specify the recipients on the command line
+     instead of using the -t option.
+     
+     In addition, you can set configuration options from the command
+     line, using the +option=value syntax. This is especially useful
+     with the [37]debug option. For example, to show you what happens
+     when formatting mail for remailers, but not actually send the
+     message:
+     
+
+   > premail +debug=ry -t
+   To: raph@cs.berkeley.edu ((chain=1))
+   Subject: test of remailer
+
+   test
+   .
+   Chose chain exon
+   /usr/lib/sendmail -oi remailer\@remailer\.nl\.com
+
+ There is one configuration option that can only be set from the
+command line in this fashion, which is the location of the preferences
+file itself. The configuration option is preferences, and the
+default value is ~/.premail/preferences.
+
+
+Encryption
+
+     Once you've got premail set up, actually using encryption is easy.
+     You simply add commands in double parentheses to the e-mail
+     addresses. The encrypt-pgp command (which can be abbreviated to
+     key) adds encryption to the outgoing mail, and the sign command
+     signs it.
+     
+     For example, to send me encrypted mail, you'd send it to
+     raph@cs.berkeley.edu ((encrypt-pgp)). You need to have a key with
+     this user id on your PGP public keyring, otherwise you'll get an
+     error message. If the user id on the key doesn't match the e-mail
+     address, you can specify it directly. For example, to send mail
+     directly to my workstation, but using the same public key as above,
+     use raph@kiwi.cs.berkeley.edu ((key=raph@cs.berkeley.edu)).
+     
+     Signing works much the same way. I can sign mail by adding
+     ((sign=raph@cs.berkeley.edu)) to the outgoing address. Actually,
+     because I set the signuser configuration option in my preferences
+     file, all I have to add is ((sign)).
+     
+     Doing both encryption and signing is just as easy. For example, to
+     send me signed, encrypted mail, use this line:
+     
+   To: raph@cs.berkeley.edu ((encrypt-pgp, sign))
+
+     Each recipient is treated separately - the double-paren commands
+     after an e-mail address apply to that recipient only. However, you
+     can add a Sign: header field to indicate that your message is
+     signed for all recipients. Example:
+     
+   To: vp@company, secretary@company, employees@company,
+       friend@outside ((encrypt-pgp))
+   Subject: Important announcement
+   Sign:
+
+   ...
+
+     In this example, all recipients will get a signed message, and the
+     message to friend@outside will be encrypted as well.
+     
+Decoding
+
+     The basic way to decode encrypted messages is to use premail
+     -decode as a command line. You can either give a filename as an
+     argument, or premail will accept the encrypted message on its
+     standard input. In either case, the decoded message will be printed
+     on the standard output.
+     
+     The message can be a standard e-mail message (RFC 822 format), or
+     it can be an entire mailbox. In the latter case, premail will
+     decode each of the messages individually. If you don't have premail
+     directly integrated into your mailer, then here's a handy way to
+     view your mail:
+     
+   premail -decode $MAIL | more
+
+     If the message is actually encrypted, then premail will need to
+     access the secrets file. If you are logged out of premail, then
+     premail will try to open an xterm window for you to type the
+     passphrase for the secrets file. If that doesn't succeed, premail
+     will print an error message. At that point, you might choose to log
+     in (i.e. premail -login) and then try the decoding again.
+     
+     If, as in many mailers, you have easy access to the body of the
+     message but not the header, then you can use premail -decode -body
+     on the body. This works well for plain PGP encrypted messages, but
+     unfortunately does not work for MIME-based message formats, because
+     important information is contained in the header.
+     
+     The results of the decoding (including signature verification) are
+     given in an X-Premail-Auth: header field. This header field is
+     protected against forgery; if the original message contains it, it
+     is changed to X-Attempted-Auth-Forgery.
+     
+Anonymity
+
+     The original reason for writing premail was to provide good support
+     for [38]anonymous remailers. If you're not interested in sending
+     anonymous mail, you can skip this section.
+     
+     Sending anonymous mail is very similar to sending encrypted mail.
+     Simply add the ((chain)) command to the recipient's e-mail address.
+     Alternatively, you can add a Chain: header field, and the mail will
+     be send anonymously to all recipients.
+     
+     Even though the chain command is simple, a lot is going on under
+     the surface. The default chain is 3, which asks that three "good"
+     remailers be chosen randomly. To make sure that it makes its choice
+     based on fresh, up-to-date information, premail downloads the
+     remailer list and a set of PGP public keys for the remailers from
+     the Web (the actual URLs are configuration options). After choosing
+     the remailers, the message is multiply encrypted with the PGP
+     public keys, and finally sent to the first remailer in the chain.
+     
+     The automatic chain selection process is very good. My tests
+     indicate that reliability is consistently above 99%. Further, the
+     chain selection process avoids some potential problems. For
+     example, some remailers are known not to work well in chains,
+     probably because of incorrectly configured "block lists." Also,
+     some remailers are "linked," in the sense of being hosted on the
+     same machine, or being administered by the same person. Choosing a
+     sequence of linked remailers wouldn't offer much security, so
+     premail doesn't.
+     
+     You can also choose the chain length. A shorter chain will be
+     faster and more reliable, but less secure, and conversely for
+     longer chains. For example, ((chain=5)) selects a chain of five
+     remailers.
+     
+     If this isn't enough control, you can specify the exact chain of
+     remailers by hand. For example, ((chain=replay;jam;exon)) bounces
+     the message around a few times outside the US.
+     
+     Mixmaster chains are specified inside an additional set of
+     parentheses. At the moment, there is no way to automatically select
+     a chain of Mixmaster remailers, so you have to do it by hand. For
+     example: ((chain=(replay;ecafe-mix;lcs))). You can even mix
+     Mixmaster and type-1 remailers; for example,
+     ((chain=(anon);1;(replay))) will sandwich one well-chosen remailer
+     between the two Mixmaster remailers.
+     
+     Extra header fields can be placed in the outgoing message by
+     prefixing the header with "Anon-". A particularly common usage is
+     an Anon-Reply-To: field, which specifies a reply-to address in the
+     mail delivered to the recipient. The Reply-To: header field is used
+     often enough that premail includes a default-reply-to configuration
+     option, which automatically adds it to all anonymous messages.
+     
+     The following header fields are passed through to the anonymized
+     message, even without the Anon- prefix:
+     
+   Mime-Version:
+   Content-Type:
+   Content-Transfer-Encoding:
+   Newsgroups:
+   X-Anon-To:
+   In-Reply-To:
+   References:
+
+Using nyms
+
+     This section describes how to create and use _nyms_, which are
+     accounts for sending and receiving anonymous mail. There are two
+     types of nymservers: alpha (named after the now defunct
+     alpha.c2.org), and newnym. For the most part, the operation of the
+     two is similar.
+     
+     To create a new nym, type
+     
+   premail -makenym
+
+     and follow the prompts. This command is also good for updating an
+     existing nym, which is important if one of the nym's remailers goes
+     down.
+     
+     You can also create or update a nym from the command line, as
+     follows:
+     
+   premail -makenym you@alias.cyberpass.net your@real.email.address
+
+     When premail creates a nym, it chooses random passphrases (one for
+     each remailer in the chain). The passphrases and other details of
+     the nym are stored in the premail secrets file. Thus, the nym is
+     fairly secure (much more so than, say, anon.penet.fi).
+     
+     The decode mechanism handles responses to nyms, again looking up
+     the passphrases in the premail secrets file.
+     
+     You can also send mail from your nym, in one of two ways. Assume
+     for the sake of example that your nym is you@alias.cyberpass.net.
+     Then, you would use a chain of 2;cyber=you. Alternatively, you can
+     use a chain of 2;cyber and include this header field:
+     
+   Anon-From: you@alias.cyberpass.net (You Know Who)
+
+     If you want the nymserver to send you a confirmation every time you
+     send mail from your nym, add a $config{'ack'} = 'yes'; line to your
+     preferences file.
+     
+     To delete a nym:
+     
+   premail -makenym you@alias.cyberpass delete
+
+     Please delete nyms if you are not actually using them; this helps
+     free up disk space and prevents the nymservers from being
+     overloaded.
+     
+     As of version 0.46, premail now supports the newnym type of
+     nymserver. This nymserver is more richly featured than the alpha
+     type. You do have to answer a few more prompts when creating nyms
+     for the newnym type, including creating a new PGP key. It's worth
+     it, though. The newnym servers seem to be working a lot better than
+     the alpha ones ever did. For more information on newnym, see the
+     [39]nym.alias.net homepage. If you want to exchange nyms between
+     premail and other programs (or a manual setup), then take a look at
+     the -importnym and -exportnym commands, which are explained in the
+     documentation for the [40]patch that upgraded premail 0.44 to have
+     newnym capability.
+     
+Posting to Usenet
+
+     Even though some remailers can post directly to Usenet, premail
+     does not support that. Thus, if you want to post to Usenet, you
+     should use a mail-to-news gateway.
+     
+     To find a working mail-to-news gateway, check Don Kitchen's
+     [41]list. There are two basic kinds: sites that scan the header
+     fields, and sites that include the newsgroup in the address.
+     
+     Using the address-parsing kind, to post to alt.anonymous, you'd
+     just send mail to alt.anonymous@myriad.alias.net (assuming, of
+     course, that myriad.alias.net is still functioning).
+     
+     Using the header-scanning kind, send mail to
+     mail2news@myriad.alias.net, and include this header field:
+     
+   Newsgroups: alt.anonymous
+
+     The header scanning kind has one advantage: you can cross-post to
+     multiple newsgroups using one mail message.
+     
+     One frequently asked question is: how can I follow up on a thread
+     while posting anonymously? This is easy. Find the Message-Id:
+     header field in the post you're responding to, and change it into a
+     References: field in your outgoing mail.
+     
+     Here's an example that ties it all together. Let's say you wanted
+     to reply to this post:
+     
+   From: Edward Brian Kaufman <ebk8@columbia.edu>
+   Newsgroups: alt.privacy.anon-server, alt.anonymous
+   Subject: A few questions about anon posts
+   Message-ID: <Pine.SUN.3.94L.960630113156@aloha.cc.columbia.edu>
+
+   Hi,
+
+   I'd like to know what the best/easiest way to do anon posts is and
+   how to do them.  Thank you,
+
+   Ed
+
+     To post the reply anonymously, send this mail:
+     
+   To: mail2news@myriad.alias.net ((chain))
+   Cc: Edward Brian Kaufman <ebk8@columbia.edu> ((chain))
+   Newsgroups: alt.privacy.anon-server, alt.anonymous
+   Subject: Re: A few questions about anon posts
+   References: <Pine.SUN.3.94L.960630113156@aloha.cc.columbia.edu>
+
+   If you have a Unix machine, using premail is the best way. To find
+   out how, read the manual.
+
+Address book
+
+     Adding the extra encryption commands is not difficult, but it can
+     be tedious and potentially error prone. Thus, premail provides an
+     address book for specifying commands to be used with specific
+     e-mail addresses.
+     
+     For example, let's say that one of your correspondents tells you
+     that she prefers mail to be PGP encrypted. Then, instead of typing
+     ((encrypt-pgp)) every time you send her mail, you could add this
+     line to your addresses file:
+     
+   her@email.address: ((encrypt-pgp))
+
+     The addresses file is usually at ~/.premail/addresses, but the
+     location is a configurable option.
+     
+     Another example was the hackerpunks mailing list (now defunct), in
+     which all of the subscribers have alpha.c2.org nyms. Since
+     haqr@alpha.c2.org had this line in his addresses file, he was able
+     to post to the list with just "To: hpunks":
+     
+   hpunks: hackerpunks@alpha.c2.org ((chain=2;alpha=haqr))
+
+     An address book entry can also expand to a list of addresses. For
+     example:
+     
+   alice: alice@crypto.com ((encrypt-pgp))
+   bob: bwhite@got.net ((key=bobw@netcom.com))
+   eric: eric@ecsl.org ((encrypt-pgp))
+
+   friends: alice, bob, eric
+
+     Sending mail to friends would then do what you'd expect: send
+     encrypted mail to each of alice, bob, and eric's full e-mail
+     addresses.
+     
+S/MIME
+
+     Version 0.46 of premail contains limited support for S/MIME
+     messages. Basic message formatting works, but there are problems
+     with creating usable certificates, and there is still no support
+     for an encryption algorithm interoperable with RC2. However, a few
+     hearty souls may wish to experiment with the S/MIME functionality
+     that is present. This section explains how to do it.
+     
+     First, you must install RIPEM 3.0b2 (or later). This is available
+     from the ripem export-controlled [42]FTP site. You'll need to get
+     an account on the server in order to download any of the
+     export-controlled code - the [43]GETTING_ACCESS file on the site
+     explains how.
+     
+     Once you have RIPEM installed (and the ripem configuration option
+     pointing to the executable), create a public key with this command:
+     
+   premail -ripemkey
+
+     You will then be prompted for your e-mail address. Alternatively,
+     you can give your e-mail address as a command line argument to
+     premail -ripemkey.
+     
+     After your key is created, you can send signed messages by adding
+     the ((ssign)) command. If you send a signed message to another
+     premail user, they will have your public key, and can send you
+     mail, by using ((encrypt=your@user.id)).
+     
+     The default encryption is Triple-DES. If the recipient can't handle
+     it, then ((encrypt-des)) will fall back to plain DES, which most
+     users will be able to decrypt - probably including "export"
+     versions of S/MIME. Of course, the disadvantage of using plain DES
+     is that any competent spy organization will also be able to decrypt
+     the messages ;-).
+     
+     Unfortunately, RIPEM 3.0b2 has some significant differences from
+     other S/MIME implementations in the way it handles public key
+     certificates. These prevent you from getting a VeriSign certificate
+     you can use. It is, however, possible to accept VeriSign class 1
+     beta certificates by running the following (prompts and messages
+     are in normal font, what you type is in boldface; you can find out
+     the password by looking in the secrets file):
+     
+   > _rcerts -u your@user.id_
+   Enter password to private key:
+   E - Enable standard issuers...
+   _...other choices..._
+     Enter choice:
+   _e_
+   ...V - VeriSign something or other...
+   _v_
+     Enter the number of months the certificate will be valid, or blank to canc
+el:
+   _12_
+     Enter choice:
+   _q_
+
+Debugging
+
+     If you run into trouble with premail, it might be of value to turn
+     on some of the debugging options. This can be done on the command
+     line, or in the .premailrc file. In the former case, add a
+     +debug=chvy argument to the command line. In the latter case, try:
+     
+   $config{'debug'} = 'chvy';
+
+     Here are the meanings of the debug options:
+     
+     c: Print command line invocation.
+     h: Print headers of input message.
+     l: Debug output goes to log instead of stdout.
+     p: Print finished message, do PGP.
+     r: Print chain chosen (useful in debugging chain selection).
+     y: Print finished message, don't do PGP.
+     v: Print all kinds of verbose info.
+     
+     Note that +debug=p puts the encrypted message on stdout. This may
+     be useful for constructing reply blocks, among other things.
+     
+     If there are problems with premail, then one of the best ways to
+     track them down is through the log. Try setting the debug
+     configuration option to chvl, setting the logfile configuration
+     option (for example, to ~/.premail/log), and then examining the
+     log. Also, if you're bringing bugs to my attention, it helps a lot
+     if you can send me relevant excerpts from the log.
+     
+Technical notes
+
+     This section covers a number of techincal notes related to the
+     operation of premail. This information should not be necessary for
+     ordinary use.
+     
+  Multiple recipients
+  
+     One of the tricky problems with mail encryption packages such as
+     premail is how to deal with multiple recipients. Based on
+     experience with previous versions, this version of premail tries
+     very hard to "get it right." However, as a consequence, the exact
+     behavior can sometimes be difficult to understand.
+     
+     The hard part is when some of the recipients have encryption
+     specified and others don't. What premail does is to split the
+     recipients up into groups. If two recipients can receive the same
+     actual message, they are in the same group, otherwise not. For
+     example, recipients getting an encrypted and an unencrypted message
+     cannot be in the same group. However, multiple recipients appearing
+     in To: and Cc: fields that use the same encryption method will be
+     in the same group. A single message, encrypted to multiple
+     recipients, will be sent, which is considerably more efficient than
+     encrypting separately for each recipient.
+     
+     One subtle point is the handling of Bcc: recipients. The semantics
+     of Bcc: specify that the mail be sent to each of the Bcc:
+     recipients, but that none of the other recipients be able to find
+     out their identity. However, encrypting to multiple recipients
+     would defeat this, because it is possible to indentify all of the
+     recipients of the encrypted message. Thus, each encrypted Bcc:
+     recipient gets its own group.
+     
+     Each recipient of an anonymous message also gets its own group, for
+     similar reasons.
+     
+     An attempt is made to make the headers in the message received by
+     the recipient be the same as if no encryption were used.
+     Specifically, the complete To: and Cc: header fields will be
+     present, but the Bcc: field will be missing. One exception to this
+     rule is anonymous messages, in which case the recipient can't see
+     any information about the other recipients.
+     
+  Error handling
+  
+     The goal is to handle errors in the same way as sendmail. Thus, the
+     exact handling depends on the setting of the -oe command line
+     option. The default (as in sendmail) is -oep, meaning that the
+     error message is printed to standard out, and the mail message is
+     appended to the dead letter file (the location of which is a
+     configuration option).
+     
+     Another choice is -oem, in which case the error message and the
+     mail message are packaged together and mailed back to the user.
+     This is appropriate when the mailer has no way to deal with error
+     messages returned from premail.
+     
+     One additional choice, not provided by sendmail, is -oed, which
+     prints the error message on standard out, but drops the mail
+     message. This is a good choice if the mailer can interpret a
+     non-zero return status code as indication of an error. This is the
+     mode used by Netscape (and is automatically selected when premail
+     is invoked as prezilla).
+     
+  Security issues
+  
+     In designing premail, usefulness and convenience were considered
+     more important than top security. Nonetheless, it can provide good
+     security, especially if you are aware of the security issues.
+     
+     One overriding assumption was that your machine is secure, and that
+     the serious threats were those of eavesdroppers on the network and
+     e-mail forgers. In general, premail handles passive attacks quite
+     well, while containing a number of vulnerabilities to active
+     attacks.
+     
+     Here are some potential security pitfalls with premail:
+     
+     * Stores secrets information on disk file.
+     * Stores (potentially sensitive) temporary files on disk.
+     * Does not check authenticity of remailer list, remailer public key
+       ring, or Mixmaster information gotten from the Web.
+     * Accessing the Web signals when anonymous mail is about to be sent,
+       perhaps aiding traffic analysis.
+     * Does not evaluate the trustworthiness of public keys used for
+       encryption and signature checking.
+       
+  Useless features
+  
+     Over the years, premail has accumulated a number of features of
+     dubious value. One of them is support for MOSS, a nice encryption
+     protocol that nevertheless failed to catch on. If you feel the urge
+     to use it, documentation is available in the [44]release notes for
+     version 0.43.
+     
+     One potentially cool feature is a server for decoding e-mail. This
+     _would_ be a useful feature if there were any mailers which used
+     it. The protcol for the server was designed to be fast (much, much
+     faster than invoking premail -decode separately for each message),
+     as well as "crypto-neutral," meaning that it doesn't contain any
+     features designed just for crypto, and that it could be used for
+     other tasks, for example converting image formats or character
+     sets. Thus, a client designed to use this protocol would like be
+     fully exportable from the US. If you're interested in integrating
+     support for this protocol into a popular e-mail client, please get
+     in touch with me.
+     
+Related documents
+
+     * The [45]README file for premail version 0.33a.
+     * [46]Release notes for version 0.43 of premail.
+       
+     _________
+     
+     [47]premail home
+
+References
+
+   1. http://www.c2.net/~raph/premail/
+   2. http://kiwi.cs.berkeley.edu/~raph/
+   3. file://localhost/home/raph/premail/doc-0.46.html#install
+   4. file://localhost/home/raph/premail/doc-0.46.html#secrets
+   5. file://localhost/home/raph/premail/doc-0.46.html#pref
+   6. file://localhost/home/raph/premail/doc-0.46.html#netscape
+   7. file://localhost/home/raph/premail/doc-0.46.html#pine
+   8. file://localhost/home/raph/premail/doc-0.46.html#other
+   9. file://localhost/home/raph/premail/doc-0.46.html#command
+  10. file://localhost/home/raph/premail/doc-0.46.html#encrypt
+  11. file://localhost/home/raph/premail/doc-0.46.html#decode
+  12. file://localhost/home/raph/premail/doc-0.46.html#anon
+  13. file://localhost/home/raph/premail/doc-0.46.html#nyms
+  14. file://localhost/home/raph/premail/doc-0.46.html#usenet
+  15. file://localhost/home/raph/premail/doc-0.46.html#address
+  16. file://localhost/home/raph/premail/doc-0.46.html#smime
+  17. file://localhost/home/raph/premail/doc-0.46.html#debug
+  18. file://localhost/home/raph/premail/doc-0.46.html#notes
+  19. file://localhost/home/raph/premail/doc-0.46.html#docs
+  20. http://www.c2.net/~raph/pgpmime.html
+  21. http://www.tis.com/docs/Research/moss.html
+  22. http://www.rsa.com/rsa/S-MIME/
+  23. http://www.cs.berkeley.edu/~raph/remailer-list.html
+  24. http://www.cac.washington.edu/pine/
+  25. http://www.smartpages.com/faqs/mh-faq/part1/faq.html
+  26. http://www.perl.com/perl/index.html
+  27. http://web.mit.edu/network/pgp-form.html
+  28. ftp://ripem.msu.edu/pub/crypt/ripem/
+  29. http://www.tis.com/docs/Products/tismoss.html
+  30. http://www.obscura.com/~loki/
+  31. http://www.ukans.edu/about_lynx/about_lynx.html
+  32. http://kiwi.cs.berkeley.edu/premail-form.html
+  33. ftp://ftp.hacktic.nl/pub/replay/pub/remailer/
+  34. file://localhost/home/raph/premail/doc-0.46.html#pref
+  35. file://localhost/home/raph/premail/doc-0.46.html#debug
+  36. file://localhost/home/raph/premail/doc-0.46.html#address
+  37. file://localhost/home/raph/premail/doc-0.46.html#debug
+  38. http://www.cs.berkeley.edu/~raph/remailer-list.html
+  39. http://kiwi.cs.berkeley.edu/~raph/n.a.n.html
+  40. http://kiwi.cs.berkeley.edu/~raph/n.a.n.premail-info
+  41. http://students.cs.byu.edu/~don/mail2news.html
+  42. ftp://ripem.msu.edu/pub/crypt/ripem/
+  43. ftp://ripem.msu.edu/pub/crypt/ripem/GETTING_ACCESS
+  44. http://www.c2.net/~raph/premail/premail.notes.0.43
+  45. file://localhost/home/raph/premail-readme.html
+  46. file://localhost/home/raph/premail/premail.notes.0.43
+  47. file://localhost/home/raph/premail.html