LinuxSir.cn,穿越时空的Linuxsir!

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

使用数字证书,保护个人邮件安全

[复制链接]
发表于 2003-10-20 13:22:44 | 显示全部楼层 |阅读模式
现有的网络条件下,利用邮件传输信息是方便的,但不是安全的。由于邮件以明文形式(包括base64编码)在网络上传播,任何可以接触到传输途径的人都可以看到你的信件内容。你不会希望你的情书在网上被传为笑柄吧?
      另外一方面,你可以相信你收到的邮件是你以为的那个发送者发送的吗?这封邮件也可能是别人冒充你的朋友发来的木马。

      解决的方法就是对邮件的加密和数字签名,目前有两种方式:一是PGP或GnuPG,基于信任并且自己产生通信密钥加密和签名;一是S/MIME,基于CA,使用x509数字证书加密和签名。

      我将以S/MIME为例来介绍如何在GNU/linux下实现保密的个人邮件传输,PGP/GnuPG的使用或者两者之间的比较不在本文范围。
使用的邮件客户端为mutt 1.5.4。

一、mutt中使用S/MIME证书的实例
      在说明如何安装、配置S/MIME之前,最好先给出一个详细的例子,以便能有感性的认识。下图是mutt中发送加密邮件时的界面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2003-10-20 13:29:07 | 显示全部楼层
下图是接收者收到信件时的界面:
收信人被要求输入密码,这个密码不是发信人使用的,也不为任何人其他人所知:mutt在发现这是一封加密信后,尝试用私钥来解密,而私钥通常由一个密码来保护。这个密码是收信人在安装私钥时设置的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2003-10-20 13:32:19 | 显示全部楼层
如果密码不正确(说明使用者不是私钥的拥有者)或者私钥不正确(说明使用者不是发信者指定的收信人),信件内容将无法显示。如图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2003-10-20 13:33:20 | 显示全部楼层
如果一切正确,信件内容被显示出来,如图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2003-10-20 13:49:06 | 显示全部楼层
加密的情况如此,唯一的要求是收信者someone@hotmail.com具有自己的数字证书。发信者可以从收到的someone的来信中提取他证书中的公钥部分以便于经 someone发加密信件。当然收发信双方都要配置好了mutt的SMIME支持

签名信件的情况与上面类似,不同之处在于是发信者用自己的证书签名(也要输入私钥保护密码),而收信者无论是谁,都可以看到信件内容,但无法更改内容,一旦更改,则收信人会发现签名验证失败,从而不相信这是由发信者发来的。
由于论坛贴图比较麻烦,签名的图就不贴了。sorry.

mutt的功能大家都知道,从上图更可以发现,我使用了并不属于我的user@163.com的发信人地址,收信人地址someone@hotmail.com也不属于我,而我不但发出去了,也收到了这封信----网络,你真的能相信它安全吗?
 楼主| 发表于 2003-10-20 15:41:02 | 显示全部楼层

二、邮件客户端的安装

目前只有mutt 1.5.4版自带了S/MIME支持,Kmail/Mozilla Mail/OperaM2也可以通过插件支持,此处以mutt为例。如果你的邮件客户端已经是mutt 1.5.4或更高,本节可略过。
如果你使用debian testing或unstable,用以下命令安装最新版即可:

apt-get install mutt

如果你使用debian woody或其它发行版,需要从源代码安装:
1.从www.mutt.org下载mutt 1.5.4i-i386的源代码包,解压
tar zxvf mutt-1.5.4i-i386.tar.gz

2.安装libncurses5-dev(mutt1.5.4的依赖包,包括编译时的.h文件和共享库):
apt-get install libncurses5-dev

其它发行版请自行安装。

3.配置并编译安装mutt
cd mutt-1.5.4
./configure --enable-pop3   (直接使用默认参数也可)
make
su
输入root口令
make install
exit
当然你要检查输出信息以便排除错误。如果一切顺利,在/usr/local/bin下会多出mutt  和 smime_keys等可执行文件。

4.检查并准备目录
mutt -v | grep Mutt
确认你使用的mutt为1.5.4版
smime_keys init
确认没有输出错误信息,比如bad command之类

5. 将mutt-1.5.4/contrib/smime.rc 和ca-bundle.crt文件复制到~去。

6. 在~/.muttrc文件里加上~/smime.rc文件的内容,也可以只加上对smime.rc文件的包含:
vi .muttrc
......
source ~/smime.rc
......

邮件客户端安装结束
 楼主| 发表于 2003-10-20 16:20:12 | 显示全部楼层

几点说明

一、这篇文章一直在酝酿着要写,主要有这么两个目的:一是为linuxsir做点事;二是提高一下我们众多网友的安全意识。订阅了国外邮件列表的人大多会发现,在多数人的邮件后面会有一段pgp signature,这是PGP的签名信息。国外的用户大多安全意识比较高,邮件使用签名,软件MD5验证。而国内这样做的人太少了。
也许有人觉得自己又没有什么秘密,不想搞得这样复杂。当然,我不想劝大家非要使用加密/签名不可,但我希望大家能感到信息安全的重要性。

二、接下来的几个内容
3.证书的申请、安装、导入及导出
4.mutt中证书的安装和使用(根证书、个人证书、导入、删除、签名、提取发信人证书、加密、验证)
5.制作自己的数字证书(此部分内容可大可小,大可扩展到建立自己的CA中心,小则就是几个命令)

三、从目前情况来看,大家对这些内容并不感兴趣,我也不想太占用宝贵的论坛资源。因此,以后几段的内容我将尽量简单。

四、本文内容均属原创,但参考了mutt网站上的部分内容。
发表于 2003-10-20 21:24:30 | 显示全部楼层
期待中。。。。。
发表于 2003-10-21 12:10:52 | 显示全部楼层
写啊写啊,我感兴趣,呵呵
发表于 2003-10-21 12:44:40 | 显示全部楼层
还想了解的更多,它是否是唯一的加密方式,是否想mozilla邮件客户端可以使用其他的加密方式?还想问问公匙是否应该先发给收件人?还是我们发邮件时就携带了?呵呵,不好意思问些粗浅的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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