Loving Coding & Visual Design

加密邮件

简单加密
利用了 Google Docs 来加密,不需要安装任何插件即可达到加密邮件的效果,你需要做的只是在发邮件之前点一下它。
1. 和往常一样打开 Gmail 撰写一封邮件,填上接受人之后保存到草稿箱。
2. 然后打开这个 Google Docs 文档,点菜单上的 Gmail -> Initialize 按钮让这份文档获得 Gmail 的授权。
3. 点 Gmail 菜单中的 Encrypt Gmail ,选择你要加密的草稿箱中的邮件,输入加密的密码,点 Send Email 发送,加密过的邮件已经躺在收件人的邮箱里了(如上图)。

如何解密邮件:
1. 把收到的邮件内容全部复制到剪贴版。
2. 然后打开 Decrypt Messages 把邮件内容贴进去,输入密码,点 Decrypt Message 就可以得到邮件内容了。

当然,如果你不想通过 Google Docs 加密的话你可以在 Decrypt Messages 手动加密,然后贴到邮件正文里。以及利用这两个工具完全可以通过其他的方式来交流加密信息(Facebook, Outlook 等等)。

以上的加密均是通过 DES 加密方式加密。

PGP加密
一、加密和数字签名的简单原理
首先每位用户都需要用 GnuPG 程序生成地球上惟一的一对钥匙,分别称为公钥和私钥(即 public key 和 private/secret key)。公钥用于加密、私钥用于解密。使用公钥加密过的信息只能由配对的私钥解开。这种加密方式叫做非对称加密。

非对称加密的过程是:如果A君要发送信息给B君,首先B君得把自己的公钥扔出来,A君得获取B君的公钥后用B君的公钥加密信息并发送过去,B君收到(加过密的)信息使用自己的私钥解密就可以还原信息了。

在数字签名时,私钥用于签名、公钥用于核对签名。

数字签名的过程是:如果A君要发送信息给B君,信息首先会被计算出一个指纹值(比如MD5值),然后A君使用自己的私钥加密信息和这个指纹值(这个过程称为签名)并发送出去,接受者B君收到信息之后使用A君的公钥来解密并重新核对一次信息的指纹值,这样B君就可以核对信息有无被篡改以及是否真的为A君所发出的了。

二、下载并安装 GnuPG
GnuPG 是一个集钥匙管理、加密解密、数字签名于一身的工具,对于 Linux 系统,一般可以在系统本身的软件源找到 GnuPG,比如对于 ArchLinux 可以使用如下命令安装:
$ sudo pacman -S gnupg
对于 Windows 系统可以下载免费开源程序包 GPG4Win,建议下载完全版,里面既包含了 GnuPG 命令行工具,又有图形化的钥匙管理工具 Kleopatra 和邮件客户端程序 Claws Mail。对于Mac OSX 系统则可以使用 GPGTools。

三、管理钥匙
1、生成钥匙对。一般点击“文件”菜单就会找到“新建PGP钥匙”的选项,跟着提示输入你的名字(建议使用你常用的网名)、email地址以及备注(可以不填)就会生成一个属于你自己的钥匙对。期间会提示你输入一个密码,这个密码是用于保护你的私钥,建议使用比较复杂的密码。

2、发布你的公钥。因为你的朋友要发送加密信息给你则必须要先获取你的公钥,所以,作为一个有礼貌的 GnuPG 用户应该先发为敬。Internet上有很多免费的公钥服务器,你可以把你的公钥发布到随便一个服务器,它们之间会自动同步(最长可能需要几小时或者几天)。在管理工具里选定你的钥匙对,然后选择类似“发布”或者“远程-同步”之类的选项即可。在发布的时候工具可能会询问你使用哪个公钥服务器,正如刚才所说的,随便选一个就可以了。

3、获取你朋友的公钥(或者让朋友获取你的公钥)。在管理工具里选择类似“搜索”或者“远程-查找钥匙”,在搜索框里填写对方的email地址或者生成钥匙时所填写的名字,然后点击搜索就可以找到对方的公钥。作为练习,你可以搜索自己的公钥,如果搜索没有结果则可能时因为服务器还没同步,可以过几分钟再试试。或者搜索我的公钥,我公钥的 email 地址为 ivarptr@126.com。点击选中搜索结果,然后再选“导入”即完成。

4、签收(sign)公钥。为了安全起见,获取你朋友的公钥之后,还需要跟对方核对一下这个公钥是否真的为他所拥有(因为可能存在假冒的情况)。核对的方法是选中你朋友的公钥,再选择类似“属性”或者“详细信息”的选项,其中你可以看到这个钥匙的指纹值,你可以通过电话、聊天工具或者email跟你的朋友核对一下,如果指纹值相同,则点击“签收这个钥匙(sign this key)”,这样就表示你正式可用这个公钥了。如果上一步你导入了我的公钥,则看看指纹值是否为“0D24 0A94 A86C 7B83 3F7C 200E 1CAF 0CB0 72E7 5B05“,这个是我钥匙的指纹值,无误的话就可以点击签收了。(补充:为了避免跟“数字签名”这个名词相冲突,这里我把“sign”书写为“签收”,在一些教程里可能会翻译为“签名钥匙”)

四、邮件加密和数字签名

实现邮件加密和数字签名一般需要使用邮件客户端软件,现在一般比较完善的邮件客户端工具都内置集成 OpenPGP 的功能,即本身就可以无缝地使用 GnuPG。比如 Evolution、KMail、Mozilla Thunderbird,对于 Windows 和 Mac OSX 系统,我比较推荐 Thunderbird,这也是一个开源免费程序。谷歌告诉我 Windows 下的 Outlook 和 Live Mail 也支持但我没有试验过,如果不行又懒得下载 Thunderbird,那么使用 GPG4Win 附带的 Claws Mail 也是可以的。因为各个邮件客户端的设置大同小异,下面我以 Evolution 为例简单介绍如何设置。



下一页


最 近 文 章

  1. Swift精要 - Mon, 30 Nov -0001 00:00:00 +0000
  2. Cloud for Coder - Mon, 30 Nov -0001 00:00:00 +0000
  3. 复杂多维权限系统设计 - Mon, 30 Nov -0001 00:00:00 +0000
  4. Centos升级到6.5 final出现的PHP错误 - Mon, 30 Nov -0001 00:00:00 +0000
  5. Session object destruction failed错误 - Mon, 30 Nov -0001 00:00:00 +0000
  6. 关于自适应图片 - Mon, 30 Nov -0001 00:00:00 +0000
  7. FIS实战 - Mon, 30 Nov -0001 00:00:00 +0000
  8. Google starter kit前端开发工具 - Mon, 30 Nov -0001 00:00:00 +0000
  9. Smarty3 - Mon, 30 Nov -0001 00:00:00 +0000
  10. Grunt学习 - Mon, 30 Nov -0001 00:00:00 +0000