给你的电子邮件用上数字签名和数字加密

前言

因为自打开始正经使用电子邮件时,先是 Foxmail(QQ 邮箱)再是 Gmail。这两家都是网页处理电邮做的很不错的了,所以就一直没有用过 Outlook、Foxmail 客户端 这样的客户端软件来管理电子邮件。后来电子邮件多了,一个账号一个账号的转换太麻烦了。就开始使用客户端软件了,结果捏发现有给电邮上数字签名和数字加密的选项,就开始研究了。

现代的商务活动更多的都是通过网络方式实现的,但是旧的传输方式都是有缺陷的,很容易被窃取信息和劫持,所以自打 HTTP/2 开始,通过 SSL 加密就变成了重要的一环。因此,在电邮领域我们应该重视一些安全方面的细节。

知识普及

数字签名

申请到数字证书之后,使用证书的私钥,可以向任何邮件地址送数字签名邮件。通过数字签名,收件人可以验证您的身份,确认邮件是由您发出的,并且中途没有被篡改过。从而防止他人冒用您的身份发送邮件,或者中途篡改邮件。 若要发送数字签名,必须拥有证书。

通过数字签名传输的邮件,可以确认:

  1. 信息是由签名者发送的
  2. 信息在传输过程中未曾作过任何修改。 这样数字签名就可用来防止冒用别人名义发送信息;或者发出信件后又加以否认等情况发生。

邮件加密

带数字签名的电子邮件允许电子邮件的收件人验证您的身份,加密电子邮件则可以防止其他人在邮件传递过程中偷阅邮件。发送邮件时,可以只对邮件进行签名,或者只对邮件进行加密,也可以对邮件同时进行签名和加密。 仅预定的收件人可以破译文本并阅读邮件的内容。

一般来说,解密需要客户端的支持,网页上要么是加密内容要么就是空白内容,附件中包含解密用文件。

更多介绍可以查阅:http://t.cn/RtMrui2

客户端支持

邮件加密的标准有 GPG 和 S/MIME 两种,而且必须客户端支持接收也需要支持同样的标准否则不能查看邮件,能同时支持这两种的客户端并不多,而且就算能支持使用也很麻烦,不利于邮件传输。比如: outlook 支持的就是 S/MIME 标准但是不支持 GPG 标准(不算插件的情况)。苹果家的 Mail.app 就仅支持 GPG 标准。一般来说,市面上能够简单方便签到的证书都是 S/MIME 证书。

证书申请

介绍

一般来说,正常用途的电子邮件加密证书都是免费的,例如 Comodo(科摩多)Wosign(沃通)和 StartSSL。但是呢,前两者的签发密钥文件(Key 文件)是系统生成默认集成到 pfx 文件中的,不见得有多安全,如果相关系统存在漏洞泄露密钥对用户来说是很不利的,而 StartSSL 则是自己在本地生成 key 和 csr 文件,相对来说并不麻烦,而且更加安全。

教程

没有注册过 StartSSL 账号的请看,StartSSL – 免费高兼容的 SSL 证书 附详细教程

验证邮箱

登入后,进入 Validations Wizard 选择 Email Validation (for Client S/MIME certificate),就可以验证邮箱的归属了。

生成 Key 和 CSR 申请文件

建议不要借助各类在线生成工具,本地弄最靠谱也最踏实。Linux、macOS 用户在终端输入如下命令,Win 用户可能还需要借助 openssl 软件,具体请搜索教程。

openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr

在对应目录下就有 yourname.key 文件和 youname.csr 文件了。

申请证书

一、在 Certificates Wizard 下,选择 Client S/MIME and Authentication Certificate

二、输入需要申请证书的邮箱,也就是刚才验证的邮箱,再打开 yourname.csr 文件,将里面的内容输入在 Generated by Myself   (.cer PEM format certificate)

三、点击,submit 以后,等个一会儿就可以下载了。 点击 here 下载,于是就获得 crt 文件两枚。

制作证书

一、我们解压文件后获得了如下图的两个文件,前者是根证书一般来说都有了的,不放心的可以安装一下。

二、将 你的邮箱.crt 文件和 yourname.key 文件放在一起,然后终端打开所在目录。

openssl pkcs12 -export -out 你的邮箱.pfx -inkey p yourname.key -in p 你的邮箱.crt

就会生成一个你的邮箱明明的 pfx 文件。这个就是包含了密钥信息的电子邮件所需要的证书了。

使用证书

打开对应客户端软件,我这里是 Outlook 在类似安全性设置这样的地方就可以找到并使用了。然后我们选择应用数字签名或者加密。

总结

一般实践的话,我们使用数字签名即可,保证传输过程正确即可,因为加密邮件的话对收件方有一定要求实际应用并不方便,适合统一标准的企业间实践。

发件测试以后在客户端收件是这样的:

在网页中是这样的:

 

可能喜欢
11 条评论
发表评论