CA证书应用一:Outlook发送邮件时,为邮件添加数字签名

         CA证书在数字签名方面应用广泛,由于Windows很好地支持了RSA算法,所以很多Windows平台下的第三方应用支持RSA算法证书的密码应用。最近利用项目总结的机会,特别整理出Windows下常用的CA证书数字签名应用。计划分三篇博文,分别讲述以下三个方面的数字签名应用:

1、Outlook邮件添加数字签名

2、制作带数字签名的PDF文档

3、给Word/Excel文档添加数字签名

        首先明确一点,使用CA证书制作的数字签名,不同于我们平常的个性签名。数字签名应用了密码技术,使得被签名的内容不可修改和伪造,从而保证内容在存储和传输过程中的安全性。

         第一篇,先从Outlook说起。我们平时使用Outlook收发邮件时,通常没有添加数字签名。主要是我们平时的邮件内容安全要求不高,或者说邮件收发环境相对比较安全。邮件安全,主要是指一下两点:

1、邮件发送者是真实的、不是冒名顶替的;

2、邮件的内容是完整的、没有被篡改的。

         为什么要防止第一点?很简单,比如说公司老总每个月要发邮件给公司财务,将多少多少钱转入专用帐户。如果有一天,公司某个员工(假设有这样的人),利用公司的管理漏洞,弄到了公司老总的邮件密码(这个其实很容易,公司IT就能重置所有员工的邮箱密码)。然后该员工使用公司老总的邮箱地址,给财务发了封信,说这个月的钱打到xxxxxx帐户上(其实是他自己的帐户)。另一方面,财务收到邮件后,看到是老总的邮箱帐号发的,没有质疑就把钱打了!不安全吧?

        第二点其实相对来说,发生的机率会小,因为除非有人能邮件服务器端接获数据包,然后篡改数据包,使得邮件接收者看到的邮件内容和原始邮件不一致。这种篡改需要点技术,而且现在的邮件服务器都有很好的防范措施,但是也不能排除有这样的可能。

        那么,如果给邮件添加了数字签名,以上两点安全隐患就可以完全避免。

        针对第一种情况,如果公司老总和财务约定,老总的邮件都带有数字签名。那么另外的人要想伪造老总的邮件,除了需要获取邮件密码之外,还要获取老总的证书,而证书一般是由USBKey保存的,使用证书签名时还需要输入USBKey的密码。也就是说该人还需要盗用老总的USBKey,并且知道密码,可想而知几乎不可能,除非老总自己保管不善。

        那么第二种情况更简单,因为如果邮件内容被篡改后,邮件接受者收到邮件时Outlook会验证签名失败,提示该邮件不可信。

        说了这么多理论,下面讲述下在使用Outlook发送邮件时,如何添加数字签名。

一、拥有CA证书

        首先,你得拥有属于你自己的CA证书。一般是通过CA中心申请,以USBKey的形式发放。要注意的是,申请该证书时,有些关键项必须正确。比如:

1、证书使用者中的邮件字段,必须和Outlook邮箱帐户一致。也就是说你的Outlook邮箱只能用你自己的证书,防止盗用。如下图所示:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第1张图片

该证书使用者的邮箱地址和Outlook的邮箱帐号均为:[email protected]

2、证书用途必须是“数字签名”,而且增强性用途必须函数“安全电子邮件”类型,如下图所示:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第2张图片

3、将证书导入系统(插入USBKey)

        如果是USBKey用户,一般客户端在Key接入系统时会自动将Key中的证书安装至系统,所以无需特别操作。如果是软件实现的CA证书(比如通过微软的CSP),则需要将证书文件安装至系统,具体操作可以通过Windows的证书查看对话框上的功能按钮实现。

二、编辑邮件内容

        像通常情况下一样,编辑邮件正文内容。如下图:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第3张图片

       为了测试方便,该邮件发送给我自己。

三、选择签名证书

       邮件写好后、在发送前,添加数字签名,具体操作步骤如下:

1、通过“标记”工具栏,打开属性对话框,然后在该对话框上,点击“安全设置”按钮,如下图所示:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第4张图片

2、打开安全属性对话框

        在“安全属性”对话框上,勾选“为此邮件添加数字签名”和“以明文签名发送邮件”,然后点击安全设置类型后的“更改设置”,如下图:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第5张图片

       注意:邮件加密选项,是CA证书更高级的应用,本文不涉及。

3、选择证书

        在“更改安全设置”对话框上,先勾选“将证书与签名邮件一通发送”(因为验证签名需要证书,而邮件接受者的电脑上可能没有你的证书),然后点击“选择”按钮。如下图:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第6张图片

       此时,会列出系统中(当前用户)已有的证书,选择需要使用的证书。本例中只有一本证书,故可以直接选择。

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第7张图片

      然后,逐个点“确定”,直到关闭所有对话框、回到邮件编辑的主界面。

四、发送邮件

        做好这些设置工作后,就可以像平常一样点击“发送”按钮发送邮件了。不过“发送”按钮点击后,Outlook可能会有个处理时间,这是因为Outlook在使用USBKey对邮件内容做签名运算,一般邮件内容越长越慢。这个过程中,就需要输入USBKey的密码了,如下图所示:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第8张图片

       如果密码输入成功,那么邮件就成功发送出去了!

五、接受邮件

        下面,我们充当邮件接受者,看看如何验证带有数字签名的邮件。

        首先,当我们收到这封邮件时,Outlook会在邮件标题上显示一个签名的标记。同时Outlook会显示正在检查签名,实际上Outlook是在使用邮件发送者的证书和微软的CSP做密码运算、验证签名的正确性。如下图所示:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第9张图片


       当签名验证成功后,Outlook会显示该邮件的签名者(证书里的邮箱地址),如下图所示:

CA证书应用一:Outlook发送邮件时,为邮件添加数字签名_第10张图片

        根据签名者就能判断出该邮件的来源是否可靠了(对应前文说的安全隐患1)。当然,如果邮件在传输过程中被篡改,Outlook会提示“签名不可信”等提示(对应前文说的安全隐患2)。

        综上所述,给邮件加上数字签名后,能确保邮件内容的真实性和完整性。同时,使用Outlook和RSA证书,整个签名验签过程都是系统完成的,对用户来说只是选择自己的证书即可,简单易用。


        下期预告:制作带数字签名的PDF文档。

你可能感兴趣的:(数字安全)