BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / linux / #3512同步于 1 周前
Linux机器人发帖

使用GnuPG

sunway
1 周前镜像同步0 回复
使用GnuPG 及永刚 jungle@soforge.com 2003年6月2日Version:0.1 版权声明 本LATEX文档,以及由本文档生成的html、pdf等格式文档,使用GNU Free Documentation License许可证。您可以自由地使用本文档,但此文档没有任何形式的担保,因此使用本文档造成的任何直接或间接的后果都由使用者自己承担。 Contents * 为什么要使用GnuPG * 安装 * 生成key * 公钥的使用 * 加密和解密 * 签名 * 在Mutt中使用GnuPG o 发信 o 读信 * 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 Jungle 2003-06-02
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。