Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19733537
  • 博文数量: 679
  • 博客积分: 10495
  • 博客等级: 上将
  • 技术积分: 9308
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-18 10:51
文章分类

全部博文(679)

文章存档

2012年(5)

2011年(38)

2010年(86)

2009年(145)

2008年(170)

2007年(165)

2006年(89)

分类: LINUX

2009-02-03 11:31:47

文本的电子邮件客户端有elmpinemail等,这里不做介绍了。

§6.1 使用KMail

       由于KMail属于KDE桌面,暂不涉及,仅仅浏览一遍。

§6.2 使用Mozilla Mail & News

       目前一般附带的是火狐,从火狐进去的电子邮件客户端为:evolution。也可以考虑雷鸟:

      

§6.3 使用fetchmail接收邮件

       Fetchmail获取邮件,但不删除,它支持POP3IMAP.下载地址:

       获取邮件:fetchmail --protocol POP3 --username joeuser mail.isp.com.可以写入到:.fetchmailrc。记得修改权限:chmod 0600 ~/.fetchmailrc

         poll mail.isp.com with proto pop3 username joeuser password secret

§6.4 邮件加密

使用GNU Privacy Guard或者 GnuPG for short可以加密单个邮件和文件,进行数字签名。GnuPG的主要命令行工具是gpg,它是PGP的替代。后者是第一个内置强大密码系统的加密工具。

 

     对称加密

 

使用最简单的加密方式,用一个短语加密。

比如执行gpg --symmetric  send.out,它会生成加密文件:send.out.gpg。当然也可以指定输出名字,比如gpg --output music.gpg -c music.ogg。其中-c -o分别代表--symmetric —output

解密文件:gpg send.out.gpg。输出为send.out,也可以使用-o

感觉这个gpg类似windows中的winrarexcel之类的加密。

 

     公钥密码学

对称加密管理那么多key,有点麻烦。使用同一key则不安全。

mid-1970s, Whitfield Diffie Martin Hellman发明了一种新的key exchange方法。使用非对称加密。加密key是公开的,解密key是加密的。很多人可以加密,但是只有一个可以解密。

     创建密钥对

 

使用gpg --gen-key创建。Key产生的过程参见教材。生成的key一般存储在~/.gnupg中。

查看公钥:gpg --list-keys

查看私钥:gpg --list-secret-keys

把公钥上传到key服务器:gpg --keyserver wwwkeys.pgp.net --send key-idKeyserver可以记录在~/.gnupg/gpg.conf,这样命令行就不需要指定KeyserverPgp服务器能自动同步修改过的key

撤销证书:key泄密的时候或者是忘记了passphrase的时候需要撤销证书。创建撤销证书需要知道passphrase。所以需要在知道passphrase的时候提前创建好并存储在安全的地方。

撤销:gpg --armour --output rev-cert.gpg --gen-revoke key-id

--armour的意思为创建可打印版本,而不是二进制文件。这样就可以打印证书,存储在纸上面。

撤销过程:撤销证书:gpg < rev-cert.gpg;上传证书:gpg --send key-idKeyserver上面的key是不能移走的,但是可以添加。

 

     使用公钥加密

 

查找keygpg --search name-or-email。如果知道key-id可以直接下载:gpg --recv key-id

加密:gpg --encrypt --recipient recip_1 --recipient recip_2 ... file。缩写:gpg -e -r recip_1 -r recip_2 ... file

解密:gpg file.gpg

加密多个文件:gpg --multifile -e -r recip_1 ... file1 file2 ...

 

     数字签名

 

Public-key密码学可用于认证,比如说数字签名。使用key加密数据的检验和,在另外一端公钥可以使用key解密。

数字签名有2种。Clearsigneddetached.前者数据和签名位于同一文件;后者签名写入另一文件,一般后缀为.gpg 或者.asc.前者只使用文本文件,后者适用于所有文件。

创建签名:gpg --sign music.ogg 生成文件为music.ogg.gpg--sign可以缩写为-s。验证签名:gpg music.ogg.gpg

签名和加密的结合:gpg -es -r recip_1 -r recip_2 ... file,这样不会生成单独的签名文件,因为签名也被加密了。该方式不支持多文件,可以用如下方式:for i in *.ogg; do gpg --sign $i ; done

 

     可信的互联网

要确保从keyserver获取的公钥的正确性,OpenPGP使用了Web of Trust。一般指用户互相确认对方并签署对方的金钥。一般为对public key和相应的用户ID使用签名实现。

比如Alice想发送加密消息给Bob,不能确定从keyserver上查找到的公钥是否真的是Bob的。但是AliceCarol建立了交叉链接。Carol同时又和Bob建立了交叉链接。如果Alice信任Carol,就可以建立和Bob的信任通道。

以上实例说明:给定key的有效性不是绝对的; Trust model不太适合大于1-2跳的情况。现在有了global Web of Trust,第2问题可以忽略。Drew M. Streib and Jason Harris实现了分析工具,每2周公布一次global Web of Trust的强大的连接集和一系列key。包含了28,418key15 hops。集合可以到达其他的60,000key30 hops。一般而言,10,000可以不超过3跳。平均值一般为3.6 hops

操作:gpg --edit key-id.可以使用sign and trust等。

 

     gPG-agent

 

不要使用短的passphrasegpg-agentssh-agent类似。它是GnuPG 2的一部分,可以从下载,支持Qt (KDE), GTK (GNOME), and ncurses (text terminal)等。

操作:执行eval `gpg-agent --daemon`

配置:修改~/.gnupg/gpg-agent.conf

    default-cache-ttl
            3600

 

阅读(4358) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~