本文发表在 rolia.net 枫下论坛PGPi 2.6.3i 的安装和用法
by Loking 01/22/1997
PGPi 指 PGP 国际版,PGPi 的开发者是瑞士的 Stale Schumacher。在
美国境外使用这个版本是合法的,2.6.3i 也是目前最新的版本。
◎ PGPi 2.6.3i 的获得
PGPi 是免费软件,在各FTP站上可以合法地获得。PGPi有多种平台下的版
本,同时还提供源代码。详情参见与本文件同时提供的《PGPi 问答集》。
◎ PGPi 2.6.3i 的安装
安装的细节详见PGPi的发行压缩包中的文件 SETUP.DOC。我在这里简单介
绍一下在MS-DOS环境下安装 PGPi 的步骤:
① 获得发行包 PGP263I.ZIP 文件(313832 字节)。PKUNZIP 2.0 以上版。
② 在硬盘上建立一个子目录,例如 D:\pgp
③ 在这个子目录下用下列命令展开发行包:
pkunzip c:\pgp263i (假设发行包在c:\下)
④ 在子目录下你将得到一个 PGP263II.ZIP 文件,继续展开:
pkunzip -d pgp263ii (这个 -d 参数不要漏掉)
⑤ 安装完成。在校验完 PGP263II.ZIP 文件的合法性后可以将它删去。
◎ PGPi 2.6.3i 的设置
PGP的运行需要一些设置,大部分参数在 config.txt 文件中,这个设置
文件的文件名也可以是 pgp.ini(在Unix版本中,它叫 .pgprc)。我先讲讲
程序运行环境的设定:
① 时区:Time Zone,需要对你所在时区设置一个环境变量TZ,在DOS命令行
下用 set tz=gmt-8 可以设置成北京时间。当然把这行命令加入autoexec.bat
中也可以。
② 工作目录:Work Directory,PGP通过这个环境变量找到数据文件
set pgppath=d:\pgp
③ 路径:把 pgp.exe 所在目录加入搜索路径会方便许多。
set path=c:\dos;c:\windows;......;d:\pgp;
有了上述基本设置,你就可以运行 PGP 2.6.3i 了。
◎ 生成你的第一个PGP密匙
这是大多数人第一个想到的事。不错!你首先要有自己的密匙才能使用
它。除非你
只是想校验一下发行包,否则你应该先生成一个密匙,这里有点小错误,应
该是一对密匙,是公匙体系嘛。
但由于你是PGP的新手,我要提醒你,生成的密匙一定要保管好,当然指
私匙啦。要是你决定以后使用这次生成的密匙,那就要把私匙环文件保存好。
把secring.pgp 文件用软盘备份好,注意不要让别人得到这份文件,尽管没
有你的口令无法释放私匙,但多一层保护要安全许多。我在这里就不多说安
全问题了,请参见随这份文件同时提供的《PGP的安全性》一文。
在DOS命令行输入: pgp -kg
程序会提示你一步步进行密匙生成工作:
① 选择密匙长度。我建议用1024位,安全性相当有保障。
② 输入用户名。注意取名要尽量避免混淆,在前几个字母就能看出你的
特色来最好。
③ 选择口令。和所有密码一样啦,尽量取得难猜一点。PGP是区分口令
大小写的。 在生成过程中程序为了得到尽可能随机的随机数,会请
你随意地在键盘上敲一系列的键,注意尽量多敲些不同的键,时间间
隔不要太相近。
等待一会之后,你就拥有自己的一对PGP密匙了。
◎ 校验你得到的发行包的完整性
这是你PGP系统的第一个应用,确认一下 pgp263ii.zip 文件是否完整,
它的签名是否和 pgp263ii.asc 文件中提供的作者 Stale 的公匙相符。为
了校验签名,你可以用:
pgp pgp263ii.asc
程序会提示你这是一个签名而不是文本,然后问你它是为哪个文件签的
名,你输入
pgp263ii.zip
PGP会提示你,这是一个相符的签名,它来自:
Stale Schumacher
这个用户,同时PGP还会告诉你,这个签名不可信赖,因为你并没有认证
这个 Stale Schumacher 的公匙。当然不可靠了。一定要从一开始牢牢记住,
公匙的认证是公匙体系最大的弱点,不重视就容易出事。
关于公匙认证的细节请参见《PGP简介》和《PGP的安全性》。
◎ PGP命令和参数简介
因为PGP的概念和它的功能是密切相关的,所以我在这里不可能解释每个名
词,如果有的用语不清楚,请参见《PGP简介》和《PGP名词解释》。
PGP程序的功能分为两大类:加解密和密匙管理。
① 加密解密命令:
pgp -e[a] 源文件 收件人ID [其他收件人ID]
用公匙环中收件人的公匙加密源文件,得到密文。加上 a 参数后将
得到7bits编码的密文(.asc后缀),否则是二进制形式密文(.pgp后缀)。
pgp -s[a] 源文件 [-u 我的ID]
用私匙环中我的私匙给源文件签名,如果不用缺省用户名就要用 -u
参数指定某个特定ID的私匙。同样,加上 a 参数可以得到7bits编码输出。
pgp -se[a] 源文件 收件人ID [其他收件人ID] [-u 我的ID]
即先签名再加密,参数意义同上。
pgp -sb[a] [+clearsig=on] 主文件 [-u 我的ID]
产生与主文件分开的签名文件,a与-u参数的意义同上。+clearsig=on
参数的意义是当为一份二进制主文件签名时,生成的签名是7bits可识别的
形式。这个参数也可以在 pgp.ini 文件中设置。
pgp -c 源文件
用IDEA加密算法对源文件加密,由用户给出口令。这里没有使用RSA算
法,因此只是一种传统加密。PGP也为你提供了这么一种相当不错的加密手
段。
pgp -a 源文件
用 RADIX 64 编码对原文件编码,输出文件缺省用.asc作扩展名。由于PGP采用
加密前压缩方法(采用PKZIP算法),所以有时编码后的ASCII文件比原来的二进
制文件还要小。所以说PGP是个比UUencode更好的编码工具。RADIX 64编码和Email
中常用的 MIME BASE64 编码是兼容的,用 MIME 的解码工具可以解开PGP的编码。
pgp [-d] [-p] [-b] 密文
解密或检查签名,-d 参数用来保留密文(缺省删除密文),-p 参数用来恢复源文
件加密时的文件名(否则PGP使用密文的根文件名,在DOS下根文件名就是指文件名
中的前半部分,比如 example.pgp 解密后自动生成 example 文件)。
pgp -b 被签名后的文件
从被签名的文件中分离出签名文件来。
pgp 签名文件 [主文件]
对照上面的 -sb 命令就很清楚了。如果主文件文件名不是与签名文件的根文件名,
可以在命令行加上主文件名。
② 密匙管理命令:
pgp -kg [密匙长度]
生成密匙,可以给出长度。注意:如果PGP文档不在 pgp.exe 所在目录的 doc\子目
录下( pgpdoc1.txt 和 pgpdoc2.txt ),PGP将拒绝产生密匙。解决办法是在本
命令后加一个参数: +nomanual 。这是为了防止用户随便摘掉文档,实际上只要你
仔细阅读文档,就会发现作者还是提供了这个参数。当然我建议大家先读文档。
pgp -ka 密匙文件 [密匙环]
这里的密匙文件是PGP专门用来传递密匙的文件,可以用 -kx 命令从密匙环中生成。
他人的公匙就是用这个命令加入你的公匙环的。当加入非缺省密匙环时可以给出密
匙环文件名。
pgp -kx[a] 用户名 密匙文件 [密匙环]
从你的密匙环释放或者说拷贝一个密匙到密匙文件。加 a 参数将产生一个
用7bits编码的密匙文件,从而方便你通过Email传递它。
pgp -kv[v] [用户名] [密匙环]
查看密匙。一般是公匙环中的密匙,v 参数代表详细列出公匙上附着的签名。
pgp -kvc [用户名] [密匙环]
列出密匙的“指纹”,方便与密匙所有者核对密匙。
pgp -kc [用户名] [密匙环]
列出你公匙环的内容和检查密匙的签名情况,例如某人的信任参数等等。
pgp -ke 用户名 [密匙环]
编辑私匙环中密匙的用户名或者更换口令,用这个命令可以加入一个新的用
户名。还可以用它修改公匙环中用户的信任参数。
pgp -kr 用户名 [密匙环]
从公匙环中删除一个密匙或者仅仅删除一个用户名。
pgp -ks 对方被签名ID [-u 你用来签名的ID] [密匙环]
对你公匙环中的一个公匙进行签名认证。如果不用 -u 参数,将使用你的缺省
私匙签名。
pgp -krs 用户名 [密匙环]
从一个指定用户的公匙上删除一个签名。
pgp -kd 你的ID [密匙环]
永久性地废除一个密匙,并且生成一个“密匙废除证明”。用生成文件通知外界
废除你的这个密匙。
pgp -kd 别人的ID [密匙环]
从公匙环中暂时屏蔽或是重新唤醒一个公匙。
③ 其他参数说明:
[a] 用7bits编码输出,实际用的是 MIME 兼容的 BASE64 编码。
[f] 用来作流式重定向用。用法:(pgp -f[参数表] <输入文件 >输出文件)
[w] 在加密操作后自动删除明文。
[m] 强制在解密时,明文只显示而不输出到文件。
[t] 声明明文是纯ASCII码的,接受方就可以针对不同平台作换行符的转换。
[-o 输出文件] 指定输出文件名。
[-@ 用户名列表] 当有很多收件人时,可以用此参数一次引入。
[-z "口令"] 命令行给出口令,加""号是为了口令中可能有空格,这种方法不太
安全,建议不要使用。只是在大批自动化处理时有用。
[+batchmode] 指定进入批处理模式,程序将返回错误代码。在批处理程序中可以
获得 errorlevel 的返回值。
PGP除了TZ和PGPPATH之外还支持其他几个环境变量:
TMP: 用来指出临时文件的存放路径。它的优先级比 pgp.ini 文件中的
TMP=项要高。
PGPPASS:可以存放私匙的口令,当需要输入口令时可以不用再输。这对那
些每天需要处理大量需要用到私匙的信件的人,这一点特别方便。
当然这里又有一个安全性问题,就是你把口令存放在了你的记忆
以外的地方。记住!!!即使你要用这个功能也不要把设置口令
变量的语句放在 autoexec.bat 或其他任何文件里,你一定要在
使用前手工设置这个变量,并且一定记住要在用完后删除这个变
量或者重新启动计算机。尤其当你是在一个多用户环境中使用计
算机时,更要小心这一点。PGP是个数据安全产品,因此我必须
一再强调安全问题。作为安全一些的替代方法,你可以考虑用命
令行参数:-z,它也可以减轻一部分工作,但安全一些。
另外,要提一句的是在你的口令中含有空格时,在给PGPPASS变量
赋值时要用引号将它括起来。例如:set pgppass="a space char"。
◎ 参数文件 pgp.ini 的修改
为了清楚起见,我列出 pgp.ini 的原文逐一注解。
---- Begin of original config.txt ----
# Sample config.txt file for PGP 2.6.3i.
#
# Blank lines are ignored, as is anything following a '#'.
# Keywords are not case-sensitive.
# Whatever appears in here can be overridden on the command line,
# by specifying (for example) "+armor=on".
# 用“#”号开头的行是注释。所有在这里出现的选项都可以被命令行的
# 相应参数替代,如果命令行中没有出现则以此为准。
# MyName is substring of default userid for secret key to make signatures.
# If not set, PGP will use the first key on your secret keyring (the last
# key you created) if you don't specify the user with -u
# MyName = "John Q. Public"
# myname 参数可以指定缺省私匙用来签名。
# The language we will be using for displaying messages to the user.
# 不同的语言模块可以用来改变运行时的提示语种。
# Available languages:
# en = English (default)
# es = Spanish, fr = French, de = German, it = Italian,
# sv = Swedish, da = Danish, no = Norwegian, fi = Finnish,
# nl = Dutch, pl = Polish, ru = Russian, el = Greek,
# cz = Czech, ro = Romanian, hu = Hungarian, sr = Serbian,
# br = Brazilian Portuguese, lt = Lithuanian, ja = Japanese
# 上列语言的支持可以从下列地址得:
# Language modules may be obtained from:
# http://www.ifi.uio.no/pgp/modules.shtml
# ftp://ftp.ifi.uio.no/pub/pgp/lang/
#
# Languages not yet available:
# ar = Arabic, iw = Hebrew, tr = Turkish, lv = Latvian, ko = Korean,
# pt = Portugese, is = Icelandic, zh = Chinese, esp = Esperanto
# 上述语言还未获支持。不过我觉得仅仅汉化提示信息没太大意思。
# Most of these codes are the ISO 639-1988 2-letter "Codes for
# Representation of Names of Languages"
#
Language = en
# 大家用英语提示应该不困难。
# Character set for displaying messages and for conversion of text files.
# If you set this variable to anything else than latin1, koi8 or noconv,
# PGP will do character set conversions if TextMode = on or if you specify
# the -t option when encrypting or signing a file.
# 这里有个字符集的问题,汉字的话用latin1,cp850,noconv好象都没问题。
# Available character sets:
#
# latin1 - ISO-Latin/1 (ISO 8859/1)
# cp850 - IBM codepage 850 (International)
# cp852 - IBM codepage 852 (Eastern Europe)
# cp860 - IBM codepage 860 (Portuguese)
# cp866 - IBM codepage 866 (Russian)
# alt_codes - Cyrillic (Russian)
# koi8 - Cyrillic (Russian)
# keybcs2 - KEYBCS 2 (Eastern Europe)
# next - NeXTSTEP
# mac - Macintosh
# ascii - 7-bit ASCII
#
# For MSDOS with a standard character set you should use cp850 to get
# correct character translations. Russian character sets for MSDOS are
# usually alt_codes.
#
# Note that noconv, latin1, and koi8 are all treated as equivalent.
# Also note that cp852 and keybcs2 convert to/from latin2 rather that
# latin1.
# 我建议如果大家想对汉字文章作明文签名(clear signature)的话,把下面
# 的CharSet设为latin1。
# CharSet = cp850
# TMP is the directory name for PGP scratch files, usually a RAM disk.
# It can be overridden by the environment variable TMP.
# TMP = "e:\"
# 临时目录位置。
# Pager is the file viewing program used for viewing messages with -m
# If not set or set to "pgp", a built-in pager will be used. The pager set
# in config.txt will override the environment variable PAGER.
# Pager = "list"
# 用 -m 参数设定只许收件人看信而不能存盘时,需要指定一个阅览器。缺省的是
# PGP内置的一个,如果没有中文环境要看中文信的时候,可以在这里指定一个中
# 文阅览器。如果在中文环境下就用PGP内置的也不错。
# ArmorLines is the maximum number of lines per packet when creating a
# transport armored file. Set to 0 to disable splitting in parts.
# 这个参数是确定对大文件编码时,要不要分成小文件。因为通过Email传输时
# 大文件可能会遇到麻烦,因此你可以设定让PGP每多少行换一个文件。
# 设为零就是不分裂文件的意思。
ArmorLines = 0
# The following commented-out settings are *not* the defaults.
# Uncomment (remove the leading "#" character) them to get the
# non-default behaviour indicated.
# 下面的参数说明被注释了,它们都不是缺省值。因此如果你要修改的话
# 只要简单地去掉“#”就行了。注释所说的状态都是去掉 # 后的状态。
# 千万不要看错了呀!
# Armor = on # Use -a flag for ASCII armor whenever applicable
# 只要可能就使用7bits编码
# TextMode = on # Attempt to use -t option where applicable
# 只要可能就当做纯ASCII文件处理
# ClearSig = off # Use ASCII armor even for unencrypted signed messages
# 对没加密的签过名的文件也用7bits编码
# KeepBinary = on # Decrypt will not delete intermediate .pgp file
# 保留临时文件
# Verbose = 2 # Verbose diagnostic messages
# 显示详细调试信息
# Verbose = 0 # Be quiet
# 安静模式,没有响铃声提示。
# Compress = off # Suppress compression to aid debugging
# 为了调试方便,关闭加密前压缩
# ShowPass = on # Echo password when user types it
# 当用户输入口令时显示它(太可怕了,不过确实有人需要)
# Interactive = on # Interactively prompt the user when adding keys (-ka)
# 当加入新密匙时,交互式地由用户确定
# EncryptToSelf = on # Encrypt all messages with your own public key
# 把所有信息用自己的公匙加密(别人就看不了了)
# AutoSign = off # Don't sign new userids
# 不要自动对新用户名签名,用在生成密匙时。
# 自己对自己的公匙签名有什么意思呢?
# Legal_Kludge = off # Use backwards-compatible format
# 去掉 # 吧!我们不用遵守美国法律。
# 去掉 # 就可以和 PGP 2.3a 兼容了。
# BakRing is the path to a backup copy of your secret keyring, usually
# on floppy disk. Your secret keys will be compared with the backup copy
# when doing a keyring check (pgp -kc)
# 设置私匙环的备份路径(一般在软盘上),私匙环千万要看好!!!
# BakRing = "a:\secring.pgp"
# Number of completely trusted signatures needed to make a key valid.
# 使一个密匙有效所必须的完全信任的签名个数,目前是一个。
Completes_Needed = 1
# Number of marginally trusted signatures needed to make a key valid.
# 使一个密匙有效所必须的部分信任的签名个数,目前是两个。
Marginals_Needed = 2
# How many levels of introducers may introduce other introducers.
# 介绍人可以转介另外的介绍人的层次,目前是四层。
Cert_Depth = 4
# TZFix is hours to add to time() to get GMT, for GMT timestamps.
# Since MSDOS assumes local time is US Pacific time, and pre-corrects
# Pacific time to GMT, make TZFix=0 for California, -1 for Colorado,
# -2 for Chicago, -3 for NY, -8 for London, -9 for Amsterdam.
# However, if your MSDOS environmental variable TZ is properly defined
# for your timezone, you can leave TZFix=0. Unix systems probably
# shouldn't need to worry about setting TZFix.
# 时区修正,如果TZ环境变量设对就不用了。北京时间 TZ=GMT-8。
# TZFix = 0
# Paths to keyrings and seed file for random generator.
# 生成密匙时密匙环和随机数种子文件的路径,没太大意思。
# PubRing = "a:\pubring.pgp"
# SecRing = "a:\secring.pgp"
# RandSeed = "a:\randseed.bin"
# Add optional comment to ASCII armor output.
# PGPi 的特色哟。你在下面用 Comment = 加入的话将原样出现在你的明文签名上。
# PGPi 支持十行以内的注释哦。我在一个所谓 hack version 的 PGP 2.6i 里看到
# 一个 Comment 好象是:Privacy is basic Human right。很有道理。
# Comment = "Requires PGP version 2.6 or later."
---- End of original config.txt ----
◎ 公匙服务器 (public keyservers)
取得他人的公匙后才能让PGP真正运行起来,如何取得公匙呢?目前较好的方法是
通过公匙服务器。PGP的公匙服务器是指一些运行在 Internet 上的程序。它们接收
通过Email提出的访问要求。例如下面一封信就是johnoe@some.site.edu向一个服务器
发出的 Help 要求,结果是服务器将寄回一份帮助文件给他。
To: pgp-public-keys@keys.pgp.net
From: johndoe@some.site.edu
Subject: help
这种通过Email标题的方式来下达的命令除了 help 外还有下面的几个:
命令 命令功能 相应在服务器端的命令
--------------------------------------------------------------------------
ADD 将你的公匙证明(放在Email正文 (-ka)
中,7bits编码形式的)加入你的
公匙以及密匙签名,或宣布废除
密匙。
INDEX 列出该服务器上所有的公匙的信息。 (-kv)
VERBOSE INDEX 以详细形式,列出该服务器上所有 (-kvv)
公匙的信息。
GET 得到服务器上整个公匙环。 (-kxa *)
GET <用户名> 得到服务器某个用户的公匙。 (-kxa <用户名>)
MGET <用户名> 得到所有与给出用户名匹配的用户公匙。
LAST 得到最近 n 天内加入的新公匙。
--------------------------------------------------------------------------
从上表中容易看出,所谓公匙服务器也是运行着一个PGP程序来管理密匙。
下面是几个用 MGET 命令的例子:
MGET michael 把所有用户名中有"michael"的公匙传回。
MGET 0AF605A5|683A738B 把密匙标识为0AF605A5和683A738B的公匙传回。
如果你要得到整个服务器上的公匙环(恐怕只有是当你想自己也开一个时),
你最好从下面提供的FTP站下载,因为Email程序会分很多部分传回整个密匙环,你
还需要在收到后将它们拼接成一个文件才能被PGP读入。
截至一九九五年十月十日,世界上有下列公匙服务器在运行:
pgp-public-keys@uit.no
(aka pgp-public-keys@keys.no.pgp.net)
Borge Brunes
pgp-public-keys@informatik.uni-hamburg.de
(aka pgp-public-keys@keys.de.pgp.net)
Vesselin V. Bontchev
pgp-public-keys@kub.nl
(aka pgp-public-keys@keys.nl.pgp.net)
Teun Nijssen
pgp-public-keys@pgp.ox.ac.uk
(aka pgp-public-keys@keys.uk.pgp.net)
Paul Leyland
pgp-public-keys@pgp.pipex.net
Mark Turner
pgp-public-keys@dsi.unimi.it
David Vincenzetti
pgp-public-keys@goliat.upc.es
Alvar Vinacua
pgp-public-keys@srce.hr
Cedomir Igaly
pgp-public-keys@kiae.su
pgp-public-keys@ext221.sra.co.jp
Hironobu Suzuki
pgp-public-keys@sw.oz.au
Jeremy Fitzhardinge
pgp-public-keys@pgp.mit.edu (*)
(aka pgp-public-keys@keys.us.pgp.net)
Derek Atkins
public-key-server@martigny.ai.mit.edu (*)
Brian A. LaMacchia
pgp-public-keys@pgp.iastate.edu (*)
Michael Graff
pgp-public-keys@burn.ucsd.edu (*)
Andy Howard
pgp-public-keys@pgp.dhp.com (*)
DJ Wipeout
pgp-public-keys@jpunix.com (*)
John Perry
pgp-public-keys@gondolin.org (*)
由于法律问题,上面标有 * 号的服务器(在美国的)只接收标有 PGP 2.4 版或
以上的公匙。(对 PGPi 来说只要没关闭 legal_kludge 参数就不用担心这个问题。)
有一个地址是所谓随机服务器,就是说发往:pgp-public-keys@keys.pgp.net
的Email会被随机的转往下列服务器:(我推荐大家使用这个地址,因为比较可靠)
pgp-public-keys@keys.de.pgp.net
pgp-public-keys@keys.nl.pgp.net
pgp-public-keys@keys.no.pgp.net
pgp-public-keys@keys.uk.pgp.net
pgp-public-keys@keys.us.pgp.net
可通过WWW访问的节点有:
http://www.service.uit.no/pgp/servruit.eng.html
http://www.cl.cam.ac.uk/PGP/pks-toplev.html
http://www.nic.surfnet.nl/pgp/pks-toplev.html
http://goliat.upc.es/~alvar/pks/pks-toplev.html
http://martigny.ai.mit.edu/~bal/pks-toplev.html
可通过FTP获得密匙环的地址有:
ftp://ftp.uit.no/pub/crypto/pgp/keys/pubring.pgp
ftp://ftp.informatik.uni-hamburg.de/pub/virus/crypt/pgp/pubkring.pgp
ftp://ftp.dsi.unimi.it/pub/security/crypt/PGP/public-keys.pgp
ftp://ftp.ox.ac.uk/pub/crypto/pgp/keys/pubring.pgp
ftp://ftp.sunet.se/pub/security/tools/crypt/pgp/keys/pubring.pgp
ftp://ftp.funet.fi/pub/crypt/cryptography/pgp/keys/pubring.pgp
ftp://pgp.mit.edu/pub/keys/public-keys.pgp
ftp://pgp.iastate.edu/pub/pgp/public-keys.pgp
ftp://burn.ucsd.edu/Crypto/public-keys.pgp
ftp://jpunix.com/pub/PGP/
除了上述非官方的服务器外,还有一些商业性的密匙服务器可以利用。当然
需要交费,我就不说了。详细信息参见PGP 2.6.3i中的 keyservs.doc。
有关公匙服务器的最新信息可以从下列地址得到:
http://www.prairienet.org/~jalicqui/pgpfaq.txt
ftp://ftp.prairienet.org/pub/providers/pgp/pgpfaq.txt
◎ PGP的前端程序和扩展程序
由于PGP的界面是文本的,在Windows下出现了一大批PGP的外壳程序。像 WinPGP
等,它们的共同特点是必须先在DOS下配置好PGP的使用环境,它们只是提供一个方便
的操作界面。实际上没有真正Windows下的PGP代码。只要记住这一点就很容易使用各
种PGP的前端(Front Door)和扩展(Add On)。它们大多支持剪贴板和拖放操作,比较
方便,当然在安全性方面多经过几道手肯定要差一些。
我在这里推荐两个程序,分别是在 Eudora 和 Pegasus Mail 这两个Email程序
下使用PGP的扩展模块。用这些模块可以方便地在收发Email的同时使用PGP加密和签
名,而不用先生成文件,这比那些专门的PGP外壳就实用多了。它们实际上是利用了
Eudora 和 Pegasus Mail 的外嵌模块编程接口实现的,同样也要求在使用前先设置
好PGP的使用环境,当然设置工作可以完全在 Autoexec.bat 中完成。这两个程序的
使用是很简单易学的,参考它们的文档很快就能学会。不过毕竟是通过Shell操作,
总有些不尽人意的地方。这只能等 PGP 3.0 发行后解决了,可到那时可能就不会再
免费了。我会将这两个程序和这些文档一起提供,文件名分别是PGPEU024.ZIP和
PGPJN.ZIP。更多精彩文章及讨论,请光临枫下论坛 rolia.net
by Loking 01/22/1997
PGPi 指 PGP 国际版,PGPi 的开发者是瑞士的 Stale Schumacher。在
美国境外使用这个版本是合法的,2.6.3i 也是目前最新的版本。
◎ PGPi 2.6.3i 的获得
PGPi 是免费软件,在各FTP站上可以合法地获得。PGPi有多种平台下的版
本,同时还提供源代码。详情参见与本文件同时提供的《PGPi 问答集》。
◎ PGPi 2.6.3i 的安装
安装的细节详见PGPi的发行压缩包中的文件 SETUP.DOC。我在这里简单介
绍一下在MS-DOS环境下安装 PGPi 的步骤:
① 获得发行包 PGP263I.ZIP 文件(313832 字节)。PKUNZIP 2.0 以上版。
② 在硬盘上建立一个子目录,例如 D:\pgp
③ 在这个子目录下用下列命令展开发行包:
pkunzip c:\pgp263i (假设发行包在c:\下)
④ 在子目录下你将得到一个 PGP263II.ZIP 文件,继续展开:
pkunzip -d pgp263ii (这个 -d 参数不要漏掉)
⑤ 安装完成。在校验完 PGP263II.ZIP 文件的合法性后可以将它删去。
◎ PGPi 2.6.3i 的设置
PGP的运行需要一些设置,大部分参数在 config.txt 文件中,这个设置
文件的文件名也可以是 pgp.ini(在Unix版本中,它叫 .pgprc)。我先讲讲
程序运行环境的设定:
① 时区:Time Zone,需要对你所在时区设置一个环境变量TZ,在DOS命令行
下用 set tz=gmt-8 可以设置成北京时间。当然把这行命令加入autoexec.bat
中也可以。
② 工作目录:Work Directory,PGP通过这个环境变量找到数据文件
set pgppath=d:\pgp
③ 路径:把 pgp.exe 所在目录加入搜索路径会方便许多。
set path=c:\dos;c:\windows;......;d:\pgp;
有了上述基本设置,你就可以运行 PGP 2.6.3i 了。
◎ 生成你的第一个PGP密匙
这是大多数人第一个想到的事。不错!你首先要有自己的密匙才能使用
它。除非你
只是想校验一下发行包,否则你应该先生成一个密匙,这里有点小错误,应
该是一对密匙,是公匙体系嘛。
但由于你是PGP的新手,我要提醒你,生成的密匙一定要保管好,当然指
私匙啦。要是你决定以后使用这次生成的密匙,那就要把私匙环文件保存好。
把secring.pgp 文件用软盘备份好,注意不要让别人得到这份文件,尽管没
有你的口令无法释放私匙,但多一层保护要安全许多。我在这里就不多说安
全问题了,请参见随这份文件同时提供的《PGP的安全性》一文。
在DOS命令行输入: pgp -kg
程序会提示你一步步进行密匙生成工作:
① 选择密匙长度。我建议用1024位,安全性相当有保障。
② 输入用户名。注意取名要尽量避免混淆,在前几个字母就能看出你的
特色来最好。
③ 选择口令。和所有密码一样啦,尽量取得难猜一点。PGP是区分口令
大小写的。 在生成过程中程序为了得到尽可能随机的随机数,会请
你随意地在键盘上敲一系列的键,注意尽量多敲些不同的键,时间间
隔不要太相近。
等待一会之后,你就拥有自己的一对PGP密匙了。
◎ 校验你得到的发行包的完整性
这是你PGP系统的第一个应用,确认一下 pgp263ii.zip 文件是否完整,
它的签名是否和 pgp263ii.asc 文件中提供的作者 Stale 的公匙相符。为
了校验签名,你可以用:
pgp pgp263ii.asc
程序会提示你这是一个签名而不是文本,然后问你它是为哪个文件签的
名,你输入
pgp263ii.zip
PGP会提示你,这是一个相符的签名,它来自:
Stale Schumacher
这个用户,同时PGP还会告诉你,这个签名不可信赖,因为你并没有认证
这个 Stale Schumacher 的公匙。当然不可靠了。一定要从一开始牢牢记住,
公匙的认证是公匙体系最大的弱点,不重视就容易出事。
关于公匙认证的细节请参见《PGP简介》和《PGP的安全性》。
◎ PGP命令和参数简介
因为PGP的概念和它的功能是密切相关的,所以我在这里不可能解释每个名
词,如果有的用语不清楚,请参见《PGP简介》和《PGP名词解释》。
PGP程序的功能分为两大类:加解密和密匙管理。
① 加密解密命令:
pgp -e[a] 源文件 收件人ID [其他收件人ID]
用公匙环中收件人的公匙加密源文件,得到密文。加上 a 参数后将
得到7bits编码的密文(.asc后缀),否则是二进制形式密文(.pgp后缀)。
pgp -s[a] 源文件 [-u 我的ID]
用私匙环中我的私匙给源文件签名,如果不用缺省用户名就要用 -u
参数指定某个特定ID的私匙。同样,加上 a 参数可以得到7bits编码输出。
pgp -se[a] 源文件 收件人ID [其他收件人ID] [-u 我的ID]
即先签名再加密,参数意义同上。
pgp -sb[a] [+clearsig=on] 主文件 [-u 我的ID]
产生与主文件分开的签名文件,a与-u参数的意义同上。+clearsig=on
参数的意义是当为一份二进制主文件签名时,生成的签名是7bits可识别的
形式。这个参数也可以在 pgp.ini 文件中设置。
pgp -c 源文件
用IDEA加密算法对源文件加密,由用户给出口令。这里没有使用RSA算
法,因此只是一种传统加密。PGP也为你提供了这么一种相当不错的加密手
段。
pgp -a 源文件
用 RADIX 64 编码对原文件编码,输出文件缺省用.asc作扩展名。由于PGP采用
加密前压缩方法(采用PKZIP算法),所以有时编码后的ASCII文件比原来的二进
制文件还要小。所以说PGP是个比UUencode更好的编码工具。RADIX 64编码和Email
中常用的 MIME BASE64 编码是兼容的,用 MIME 的解码工具可以解开PGP的编码。
pgp [-d] [-p] [-b] 密文
解密或检查签名,-d 参数用来保留密文(缺省删除密文),-p 参数用来恢复源文
件加密时的文件名(否则PGP使用密文的根文件名,在DOS下根文件名就是指文件名
中的前半部分,比如 example.pgp 解密后自动生成 example 文件)。
pgp -b 被签名后的文件
从被签名的文件中分离出签名文件来。
pgp 签名文件 [主文件]
对照上面的 -sb 命令就很清楚了。如果主文件文件名不是与签名文件的根文件名,
可以在命令行加上主文件名。
② 密匙管理命令:
pgp -kg [密匙长度]
生成密匙,可以给出长度。注意:如果PGP文档不在 pgp.exe 所在目录的 doc\子目
录下( pgpdoc1.txt 和 pgpdoc2.txt ),PGP将拒绝产生密匙。解决办法是在本
命令后加一个参数: +nomanual 。这是为了防止用户随便摘掉文档,实际上只要你
仔细阅读文档,就会发现作者还是提供了这个参数。当然我建议大家先读文档。
pgp -ka 密匙文件 [密匙环]
这里的密匙文件是PGP专门用来传递密匙的文件,可以用 -kx 命令从密匙环中生成。
他人的公匙就是用这个命令加入你的公匙环的。当加入非缺省密匙环时可以给出密
匙环文件名。
pgp -kx[a] 用户名 密匙文件 [密匙环]
从你的密匙环释放或者说拷贝一个密匙到密匙文件。加 a 参数将产生一个
用7bits编码的密匙文件,从而方便你通过Email传递它。
pgp -kv[v] [用户名] [密匙环]
查看密匙。一般是公匙环中的密匙,v 参数代表详细列出公匙上附着的签名。
pgp -kvc [用户名] [密匙环]
列出密匙的“指纹”,方便与密匙所有者核对密匙。
pgp -kc [用户名] [密匙环]
列出你公匙环的内容和检查密匙的签名情况,例如某人的信任参数等等。
pgp -ke 用户名 [密匙环]
编辑私匙环中密匙的用户名或者更换口令,用这个命令可以加入一个新的用
户名。还可以用它修改公匙环中用户的信任参数。
pgp -kr 用户名 [密匙环]
从公匙环中删除一个密匙或者仅仅删除一个用户名。
pgp -ks 对方被签名ID [-u 你用来签名的ID] [密匙环]
对你公匙环中的一个公匙进行签名认证。如果不用 -u 参数,将使用你的缺省
私匙签名。
pgp -krs 用户名 [密匙环]
从一个指定用户的公匙上删除一个签名。
pgp -kd 你的ID [密匙环]
永久性地废除一个密匙,并且生成一个“密匙废除证明”。用生成文件通知外界
废除你的这个密匙。
pgp -kd 别人的ID [密匙环]
从公匙环中暂时屏蔽或是重新唤醒一个公匙。
③ 其他参数说明:
[a] 用7bits编码输出,实际用的是 MIME 兼容的 BASE64 编码。
[f] 用来作流式重定向用。用法:(pgp -f[参数表] <输入文件 >输出文件)
[w] 在加密操作后自动删除明文。
[m] 强制在解密时,明文只显示而不输出到文件。
[t] 声明明文是纯ASCII码的,接受方就可以针对不同平台作换行符的转换。
[-o 输出文件] 指定输出文件名。
[-@ 用户名列表] 当有很多收件人时,可以用此参数一次引入。
[-z "口令"] 命令行给出口令,加""号是为了口令中可能有空格,这种方法不太
安全,建议不要使用。只是在大批自动化处理时有用。
[+batchmode] 指定进入批处理模式,程序将返回错误代码。在批处理程序中可以
获得 errorlevel 的返回值。
PGP除了TZ和PGPPATH之外还支持其他几个环境变量:
TMP: 用来指出临时文件的存放路径。它的优先级比 pgp.ini 文件中的
TMP=项要高。
PGPPASS:可以存放私匙的口令,当需要输入口令时可以不用再输。这对那
些每天需要处理大量需要用到私匙的信件的人,这一点特别方便。
当然这里又有一个安全性问题,就是你把口令存放在了你的记忆
以外的地方。记住!!!即使你要用这个功能也不要把设置口令
变量的语句放在 autoexec.bat 或其他任何文件里,你一定要在
使用前手工设置这个变量,并且一定记住要在用完后删除这个变
量或者重新启动计算机。尤其当你是在一个多用户环境中使用计
算机时,更要小心这一点。PGP是个数据安全产品,因此我必须
一再强调安全问题。作为安全一些的替代方法,你可以考虑用命
令行参数:-z,它也可以减轻一部分工作,但安全一些。
另外,要提一句的是在你的口令中含有空格时,在给PGPPASS变量
赋值时要用引号将它括起来。例如:set pgppass="a space char"。
◎ 参数文件 pgp.ini 的修改
为了清楚起见,我列出 pgp.ini 的原文逐一注解。
---- Begin of original config.txt ----
# Sample config.txt file for PGP 2.6.3i.
#
# Blank lines are ignored, as is anything following a '#'.
# Keywords are not case-sensitive.
# Whatever appears in here can be overridden on the command line,
# by specifying (for example) "+armor=on".
# 用“#”号开头的行是注释。所有在这里出现的选项都可以被命令行的
# 相应参数替代,如果命令行中没有出现则以此为准。
# MyName is substring of default userid for secret key to make signatures.
# If not set, PGP will use the first key on your secret keyring (the last
# key you created) if you don't specify the user with -u
# MyName = "John Q. Public"
# myname 参数可以指定缺省私匙用来签名。
# The language we will be using for displaying messages to the user.
# 不同的语言模块可以用来改变运行时的提示语种。
# Available languages:
# en = English (default)
# es = Spanish, fr = French, de = German, it = Italian,
# sv = Swedish, da = Danish, no = Norwegian, fi = Finnish,
# nl = Dutch, pl = Polish, ru = Russian, el = Greek,
# cz = Czech, ro = Romanian, hu = Hungarian, sr = Serbian,
# br = Brazilian Portuguese, lt = Lithuanian, ja = Japanese
# 上列语言的支持可以从下列地址得:
# Language modules may be obtained from:
# http://www.ifi.uio.no/pgp/modules.shtml
# ftp://ftp.ifi.uio.no/pub/pgp/lang/
#
# Languages not yet available:
# ar = Arabic, iw = Hebrew, tr = Turkish, lv = Latvian, ko = Korean,
# pt = Portugese, is = Icelandic, zh = Chinese, esp = Esperanto
# 上述语言还未获支持。不过我觉得仅仅汉化提示信息没太大意思。
# Most of these codes are the ISO 639-1988 2-letter "Codes for
# Representation of Names of Languages"
#
Language = en
# 大家用英语提示应该不困难。
# Character set for displaying messages and for conversion of text files.
# If you set this variable to anything else than latin1, koi8 or noconv,
# PGP will do character set conversions if TextMode = on or if you specify
# the -t option when encrypting or signing a file.
# 这里有个字符集的问题,汉字的话用latin1,cp850,noconv好象都没问题。
# Available character sets:
#
# latin1 - ISO-Latin/1 (ISO 8859/1)
# cp850 - IBM codepage 850 (International)
# cp852 - IBM codepage 852 (Eastern Europe)
# cp860 - IBM codepage 860 (Portuguese)
# cp866 - IBM codepage 866 (Russian)
# alt_codes - Cyrillic (Russian)
# koi8 - Cyrillic (Russian)
# keybcs2 - KEYBCS 2 (Eastern Europe)
# next - NeXTSTEP
# mac - Macintosh
# ascii - 7-bit ASCII
#
# For MSDOS with a standard character set you should use cp850 to get
# correct character translations. Russian character sets for MSDOS are
# usually alt_codes.
#
# Note that noconv, latin1, and koi8 are all treated as equivalent.
# Also note that cp852 and keybcs2 convert to/from latin2 rather that
# latin1.
# 我建议如果大家想对汉字文章作明文签名(clear signature)的话,把下面
# 的CharSet设为latin1。
# CharSet = cp850
# TMP is the directory name for PGP scratch files, usually a RAM disk.
# It can be overridden by the environment variable TMP.
# TMP = "e:\"
# 临时目录位置。
# Pager is the file viewing program used for viewing messages with -m
# If not set or set to "pgp", a built-in pager will be used. The pager set
# in config.txt will override the environment variable PAGER.
# Pager = "list"
# 用 -m 参数设定只许收件人看信而不能存盘时,需要指定一个阅览器。缺省的是
# PGP内置的一个,如果没有中文环境要看中文信的时候,可以在这里指定一个中
# 文阅览器。如果在中文环境下就用PGP内置的也不错。
# ArmorLines is the maximum number of lines per packet when creating a
# transport armored file. Set to 0 to disable splitting in parts.
# 这个参数是确定对大文件编码时,要不要分成小文件。因为通过Email传输时
# 大文件可能会遇到麻烦,因此你可以设定让PGP每多少行换一个文件。
# 设为零就是不分裂文件的意思。
ArmorLines = 0
# The following commented-out settings are *not* the defaults.
# Uncomment (remove the leading "#" character) them to get the
# non-default behaviour indicated.
# 下面的参数说明被注释了,它们都不是缺省值。因此如果你要修改的话
# 只要简单地去掉“#”就行了。注释所说的状态都是去掉 # 后的状态。
# 千万不要看错了呀!
# Armor = on # Use -a flag for ASCII armor whenever applicable
# 只要可能就使用7bits编码
# TextMode = on # Attempt to use -t option where applicable
# 只要可能就当做纯ASCII文件处理
# ClearSig = off # Use ASCII armor even for unencrypted signed messages
# 对没加密的签过名的文件也用7bits编码
# KeepBinary = on # Decrypt will not delete intermediate .pgp file
# 保留临时文件
# Verbose = 2 # Verbose diagnostic messages
# 显示详细调试信息
# Verbose = 0 # Be quiet
# 安静模式,没有响铃声提示。
# Compress = off # Suppress compression to aid debugging
# 为了调试方便,关闭加密前压缩
# ShowPass = on # Echo password when user types it
# 当用户输入口令时显示它(太可怕了,不过确实有人需要)
# Interactive = on # Interactively prompt the user when adding keys (-ka)
# 当加入新密匙时,交互式地由用户确定
# EncryptToSelf = on # Encrypt all messages with your own public key
# 把所有信息用自己的公匙加密(别人就看不了了)
# AutoSign = off # Don't sign new userids
# 不要自动对新用户名签名,用在生成密匙时。
# 自己对自己的公匙签名有什么意思呢?
# Legal_Kludge = off # Use backwards-compatible format
# 去掉 # 吧!我们不用遵守美国法律。
# 去掉 # 就可以和 PGP 2.3a 兼容了。
# BakRing is the path to a backup copy of your secret keyring, usually
# on floppy disk. Your secret keys will be compared with the backup copy
# when doing a keyring check (pgp -kc)
# 设置私匙环的备份路径(一般在软盘上),私匙环千万要看好!!!
# BakRing = "a:\secring.pgp"
# Number of completely trusted signatures needed to make a key valid.
# 使一个密匙有效所必须的完全信任的签名个数,目前是一个。
Completes_Needed = 1
# Number of marginally trusted signatures needed to make a key valid.
# 使一个密匙有效所必须的部分信任的签名个数,目前是两个。
Marginals_Needed = 2
# How many levels of introducers may introduce other introducers.
# 介绍人可以转介另外的介绍人的层次,目前是四层。
Cert_Depth = 4
# TZFix is hours to add to time() to get GMT, for GMT timestamps.
# Since MSDOS assumes local time is US Pacific time, and pre-corrects
# Pacific time to GMT, make TZFix=0 for California, -1 for Colorado,
# -2 for Chicago, -3 for NY, -8 for London, -9 for Amsterdam.
# However, if your MSDOS environmental variable TZ is properly defined
# for your timezone, you can leave TZFix=0. Unix systems probably
# shouldn't need to worry about setting TZFix.
# 时区修正,如果TZ环境变量设对就不用了。北京时间 TZ=GMT-8。
# TZFix = 0
# Paths to keyrings and seed file for random generator.
# 生成密匙时密匙环和随机数种子文件的路径,没太大意思。
# PubRing = "a:\pubring.pgp"
# SecRing = "a:\secring.pgp"
# RandSeed = "a:\randseed.bin"
# Add optional comment to ASCII armor output.
# PGPi 的特色哟。你在下面用 Comment = 加入的话将原样出现在你的明文签名上。
# PGPi 支持十行以内的注释哦。我在一个所谓 hack version 的 PGP 2.6i 里看到
# 一个 Comment 好象是:Privacy is basic Human right。很有道理。
# Comment = "Requires PGP version 2.6 or later."
---- End of original config.txt ----
◎ 公匙服务器 (public keyservers)
取得他人的公匙后才能让PGP真正运行起来,如何取得公匙呢?目前较好的方法是
通过公匙服务器。PGP的公匙服务器是指一些运行在 Internet 上的程序。它们接收
通过Email提出的访问要求。例如下面一封信就是johnoe@some.site.edu向一个服务器
发出的 Help 要求,结果是服务器将寄回一份帮助文件给他。
To: pgp-public-keys@keys.pgp.net
From: johndoe@some.site.edu
Subject: help
这种通过Email标题的方式来下达的命令除了 help 外还有下面的几个:
命令 命令功能 相应在服务器端的命令
--------------------------------------------------------------------------
ADD 将你的公匙证明(放在Email正文 (-ka)
中,7bits编码形式的)加入你的
公匙以及密匙签名,或宣布废除
密匙。
INDEX 列出该服务器上所有的公匙的信息。 (-kv)
VERBOSE INDEX 以详细形式,列出该服务器上所有 (-kvv)
公匙的信息。
GET 得到服务器上整个公匙环。 (-kxa *)
GET <用户名> 得到服务器某个用户的公匙。 (-kxa <用户名>)
MGET <用户名> 得到所有与给出用户名匹配的用户公匙。
LAST 得到最近 n 天内加入的新公匙。
--------------------------------------------------------------------------
从上表中容易看出,所谓公匙服务器也是运行着一个PGP程序来管理密匙。
下面是几个用 MGET 命令的例子:
MGET michael 把所有用户名中有"michael"的公匙传回。
MGET 0AF605A5|683A738B 把密匙标识为0AF605A5和683A738B的公匙传回。
如果你要得到整个服务器上的公匙环(恐怕只有是当你想自己也开一个时),
你最好从下面提供的FTP站下载,因为Email程序会分很多部分传回整个密匙环,你
还需要在收到后将它们拼接成一个文件才能被PGP读入。
截至一九九五年十月十日,世界上有下列公匙服务器在运行:
pgp-public-keys@uit.no
(aka pgp-public-keys@keys.no.pgp.net)
Borge Brunes
pgp-public-keys@informatik.uni-hamburg.de
(aka pgp-public-keys@keys.de.pgp.net)
Vesselin V. Bontchev
pgp-public-keys@kub.nl
(aka pgp-public-keys@keys.nl.pgp.net)
Teun Nijssen
pgp-public-keys@pgp.ox.ac.uk
(aka pgp-public-keys@keys.uk.pgp.net)
Paul Leyland
pgp-public-keys@pgp.pipex.net
Mark Turner
pgp-public-keys@dsi.unimi.it
David Vincenzetti
pgp-public-keys@goliat.upc.es
Alvar Vinacua
pgp-public-keys@srce.hr
Cedomir Igaly
pgp-public-keys@kiae.su
pgp-public-keys@ext221.sra.co.jp
Hironobu Suzuki
pgp-public-keys@sw.oz.au
Jeremy Fitzhardinge
pgp-public-keys@pgp.mit.edu (*)
(aka pgp-public-keys@keys.us.pgp.net)
Derek Atkins
public-key-server@martigny.ai.mit.edu (*)
Brian A. LaMacchia
pgp-public-keys@pgp.iastate.edu (*)
Michael Graff
pgp-public-keys@burn.ucsd.edu (*)
Andy Howard
pgp-public-keys@pgp.dhp.com (*)
DJ Wipeout
pgp-public-keys@jpunix.com (*)
John Perry
pgp-public-keys@gondolin.org (*)
由于法律问题,上面标有 * 号的服务器(在美国的)只接收标有 PGP 2.4 版或
以上的公匙。(对 PGPi 来说只要没关闭 legal_kludge 参数就不用担心这个问题。)
有一个地址是所谓随机服务器,就是说发往:pgp-public-keys@keys.pgp.net
的Email会被随机的转往下列服务器:(我推荐大家使用这个地址,因为比较可靠)
pgp-public-keys@keys.de.pgp.net
pgp-public-keys@keys.nl.pgp.net
pgp-public-keys@keys.no.pgp.net
pgp-public-keys@keys.uk.pgp.net
pgp-public-keys@keys.us.pgp.net
可通过WWW访问的节点有:
http://www.service.uit.no/pgp/servruit.eng.html
http://www.cl.cam.ac.uk/PGP/pks-toplev.html
http://www.nic.surfnet.nl/pgp/pks-toplev.html
http://goliat.upc.es/~alvar/pks/pks-toplev.html
http://martigny.ai.mit.edu/~bal/pks-toplev.html
可通过FTP获得密匙环的地址有:
ftp://ftp.uit.no/pub/crypto/pgp/keys/pubring.pgp
ftp://ftp.informatik.uni-hamburg.de/pub/virus/crypt/pgp/pubkring.pgp
ftp://ftp.dsi.unimi.it/pub/security/crypt/PGP/public-keys.pgp
ftp://ftp.ox.ac.uk/pub/crypto/pgp/keys/pubring.pgp
ftp://ftp.sunet.se/pub/security/tools/crypt/pgp/keys/pubring.pgp
ftp://ftp.funet.fi/pub/crypt/cryptography/pgp/keys/pubring.pgp
ftp://pgp.mit.edu/pub/keys/public-keys.pgp
ftp://pgp.iastate.edu/pub/pgp/public-keys.pgp
ftp://burn.ucsd.edu/Crypto/public-keys.pgp
ftp://jpunix.com/pub/PGP/
除了上述非官方的服务器外,还有一些商业性的密匙服务器可以利用。当然
需要交费,我就不说了。详细信息参见PGP 2.6.3i中的 keyservs.doc。
有关公匙服务器的最新信息可以从下列地址得到:
http://www.prairienet.org/~jalicqui/pgpfaq.txt
ftp://ftp.prairienet.org/pub/providers/pgp/pgpfaq.txt
◎ PGP的前端程序和扩展程序
由于PGP的界面是文本的,在Windows下出现了一大批PGP的外壳程序。像 WinPGP
等,它们的共同特点是必须先在DOS下配置好PGP的使用环境,它们只是提供一个方便
的操作界面。实际上没有真正Windows下的PGP代码。只要记住这一点就很容易使用各
种PGP的前端(Front Door)和扩展(Add On)。它们大多支持剪贴板和拖放操作,比较
方便,当然在安全性方面多经过几道手肯定要差一些。
我在这里推荐两个程序,分别是在 Eudora 和 Pegasus Mail 这两个Email程序
下使用PGP的扩展模块。用这些模块可以方便地在收发Email的同时使用PGP加密和签
名,而不用先生成文件,这比那些专门的PGP外壳就实用多了。它们实际上是利用了
Eudora 和 Pegasus Mail 的外嵌模块编程接口实现的,同样也要求在使用前先设置
好PGP的使用环境,当然设置工作可以完全在 Autoexec.bat 中完成。这两个程序的
使用是很简单易学的,参考它们的文档很快就能学会。不过毕竟是通过Shell操作,
总有些不尽人意的地方。这只能等 PGP 3.0 发行后解决了,可到那时可能就不会再
免费了。我会将这两个程序和这些文档一起提供,文件名分别是PGPEU024.ZIP和
PGPJN.ZIP。更多精彩文章及讨论,请光临枫下论坛 rolia.net