LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1021|回复: 7

使用GnuPG-zt

[复制链接]
发表于 2003-12-27 15:08:52 | 显示全部楼层 |阅读模式
使用GnuPG
及永刚
jungle@soforge.com

2003年6月2日Version:0.1

版权声明 本LATEX文档,以及由本文档生成的html、pdf等格式文档,使用GNU Free Documentation License许可证。您可以自由地使用本文档,但此文档没有任何形式的担保,因此使用本文档造成的任何直接或间接的后果都由使用者自己承担。


Contents
为什么要使用GnuPG
安装
生成key
公钥的使用
加密和解密
签名
在Mutt中使用GnuPG
发信
读信


About this document ...


为什么要使用GnuPG
现在很多人使用计算机的主要目的是与其他人通讯。收发电子邮件,文件传递是每天上网做的最多的事情。但是很少有人想到,当你点下发送按钮,发出去的邮件实际上是“明信片”,每个人都有可能来瞄上一眼;传送出去的文件也可以被随意截获或拷贝。如果是普通的问寒问暖的邮件倒没关系,但对商业信函就是一种泄密了。还有一种情况,其他人发出的邮件可以冒用你的邮件地址作为发信人,收信人只看邮件地址,很容易误认为是你发来的,你的信誉会因此大受影响。
怎么办?这里我介绍使用加密来防止上面提到的问题。比较成熟的加密方法是PGP,但是PGP算法太安全了,属于美国政府严格禁止传入中国的计算机产品。感谢GNU和自由软件运动,让我们可以使用GnuPG,它的安全性与PGP一样强,可以充分地保护每个用户的隐私。



安装
你可以从 www.gnupg.org 网站上直接下载对应操作系统的二进制文件,也可以下载源代码自己编译。假如你和我一样,是Debian GNU/Linux 的用户,只需:
apt-get install gnupg gnupg-doc

其中gnupg是主执行文件,gnupg-doc是文档。下载gnupg-doc这个包,是因为里面有一份中文Mini-HOWTO,所在路径是:/usr/share/doc/gnupg-doc/mini-HOWTO/ch/。这份Mini-HOWTO中文文档链接有点小问题,将index.html改名为GPGMiniHowto.html就可以了。


生成key
使用GnuPG的第一步是为自己生成一对儿key。这对key由公钥和密钥两部分组成:公钥用于发布给其他人,别人用它来加密寄给你的东西;同样你也用他们的公钥加密文件,然后再寄给公钥发布者。私钥需要你收藏好,千万不能让别人获得,为了安全,私钥必需设置口令,使用的时候要先输入正确的口令才可以用。
在命令行下键入下面命令就可以生成GnuPG key。

gpg --gen-key

生成的过程中会有一些提示和选择,如果搞不明白选项间的区别,就用GnuPG默认的吧。其中有一点要注意,给私钥设口令的时候,不要选用容易猜到的生日、电话号码等来做口令。也不要临时想个挺复杂的,过后让自己都想不起来。
生成的key会保存在你的home目录下.gnupg子目录里面。是结尾为 .gpg的二进制文件。



公钥的使用
接下来要做的工作是输出一个用来发布的公钥:
gpg --export -a -o yourpubkey.asc

-a 是ASCII编码形式,-o 说明输出公钥到 yourpubkey.asc 文件。要发布这个公钥,可以将yourpubkey.asc文件放在你的主页上,也可以通过邮件寄给朋友。
当你收到朋友发来的公钥,你需要将这把公钥导入你的钥匙库。例如,他寄给你的公钥是 friendpubkey.asc ,使用下面命令就可以导入进钥匙库:

gpg --import friendpubkey.asc

导入完毕,你可以用下面命令浏览钥匙库:
gpg --list-keys



加密和解密
忙活了半天,现在该使用这些钥匙了:-) 假设你要发给同事Tom一个文件 report.tex ,用下面命令进行加密:
gpg -r Tom -e report.tex

-r 后面的Tom是接收者的UID,GnuPG根据这个UID匹配钥匙库里面的公钥。加密命令生成一个 report.tex.gpg 密件,将它发给Tom。
Tom收到后,因为他有对应的密钥,可以用下面命令解密,还原为 report.tex。

gpg -o report.tex -d report.tex.gpg

这份密件在传输过程中即使被其他人得到,但由于他们没有密钥,无法看到真正的内容,这样加密就达到了安全保密的目的。


签名
上面例子中,Tom得到了 report.tex.gpg,但是没有任何信息证明这个密件是由你发出的,因为Tom的公钥是任何人都能获得的。为了表明发件人的身份,需要用到签名。
gpg -s -r Tom -e report.tex

加了-s 之后得到的report.tex.gpg文件中包含了你的签名。
当Tom解密这个密件的时候,他会看到你的签名,显示签发人信息。当然,他的钥匙库里面有要你的公钥才行。

签名不只用在密件中,还可以对明文进行签注:

gpg -b -a note.txt

这个命令另外生成一个签章文件 note.txt.asc,然后你将note.txt和note.txt.asc一起寄出。
收到文件的人使用:

gpg --verify note.txt.asc

就能判定是不是由你发出的。


在Mutt中使用GnuPG
GnuPG用的最多的地方,还是在收发邮件的过程中。这里以Mutt作为邮件客户端来举例。
Mutt对GnuPG支持的非常好,并且如果你不做任何设置,它会自动到.gnupg目录下调用公钥和密钥。


发信
写完一封信,在发出之前,可以使用下列功能:
附上你的公钥:ESC k ,Mutt寻问使用哪个ID,输入后从列表中选择一个,按回车,即将公钥附加在这封信里。
加密或签名:p,再按e加密,或按s签名,或按b同时加密和签名。

读信
当你收到一封朋友寄来的加密信件时,Mutt会在邮件索引页中,用P表示是加密过的信件,用s表明有签名。
要打开一封P标志的信时,Mutt提示先输入使用密钥的口令。口令输入正确,Mutt用密钥自动解密该邮件。当你关闭Mutt,下次再看这封邮件时,需要再次输入口令和解密过程。 打开一封s标志的信,Mutt自动匹配钥匙库里面的公钥,显示信件内容的同时也显示签名信息。


About this document ...
使用GnuPG
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -no_subdir -split 0 -no_navigation using_gnupg.tex

The translation was initiated by Jungle on 2003-06-02
发表于 2004-2-12 11:20:40 | 显示全部楼层

gnupg & mozilla

k6:
  您在文后讲述的是将mutt与gnupg配合使用,不知能否告知如何将mozilla与gnupg整合,据说要有一个叫engimail的插件,不知是不是?

Terry
发表于 2004-2-12 11:22:34 | 显示全部楼层

gnupg & mozilla

k6兄:
  您在文后讲述的是将mutt与gnupg配合使用,不知能否告知如何将mozilla与gnupg整合,据说要有一个叫engimail的插件,不知是不是?

Terry
发表于 2004-2-12 12:41:43 | 显示全部楼层
问题是跟我通信的人都不用,这东西岂不就没有用?
发表于 2004-2-12 12:58:40 | 显示全部楼层

gnupg

hi,cathayan:
    其实过一段时间,一定会在国内很流行的。毕竟有许多重要邮件是大家都不愿意被监听的。只是现在群众基础不够而已。至少它用来对自己重要的文档加密还是很有用处的。对不?


Terry
发表于 2004-3-28 16:55:16 | 显示全部楼层
发表于 2004-3-29 22:04:40 | 显示全部楼层

回复: gnupg & mozilla

最初由 terryshi 发表
k6兄:
  您在文后讲述的是将mutt与gnupg配合使用,不知能否告知如何将mozilla与gnupg整合,据说要有一个叫engimail的插件,不知是不是?

Terry


http://www.gentoo.org/doc/tw/gnupg-user.xml   
发表于 2005-4-29 17:26:05 | 显示全部楼层
有点意思,希望楼主再深入谈谈
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表