第10章 网络安全(2)_应用层安全(数字签名)

3. 应用层安全——数字签名

3.1 数字签名

(1)数字签名细节

  ①A有一个密钥对(A的私钥SK和公钥PK)。发送文件前先使用哈希函数生成该文件的摘要再使用A的私钥加密摘要(这个过程称为签名,私钥持有者才能做这个操作)。

  ②然后将加密后的摘要、A的公钥和文件(不加密该文件)一起发送给B。

  ③B收到后,将加了密的摘要使用A的公钥进行解密同时B将收到的文件通过哈希函数生成一个摘要比较这两个摘要,如果一样,就认为A的签名有效,说明该文件来源可靠,也没被修改过。

(2)优点

  ①能确定消息是否由发送方签名并发出来的,因为别人假冒不了发送方的签名。

  ②能确定消息的完整性,因为数字签名的特点代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化,不同的文件将得到不同的数字摘要。

3.2 数字证书颁发

(1)数字证书颁发机构

  ①在互联网上,通信双方自己生成的密钥对,将公钥出示给对方来验证自己的签名,一方很难断定对方的身份是否真实、合法。

  ②于是互联网上使用的密钥对是由专门的机构发放,在计算机中这些密钥对是以数字证书的形式出现的,其包含了使用者个人的信息、发证机构。

  ③电子商务认证授权机构(Certificate Authority,CA),也称为电子商务认证中心是负责发放和管理数字证书的权威机构。电子商务交易的双方可以不信任对方,但他们都是信任CA这是个权威机构,所以也信任由其颁发的数字证书。CA承担公钥体系中公钥合法性检验的责任

(2)使用CA颁发的证书验证对方身份的合法性

  ①A向CA提交证书申请(注意,在这之前A须先信任CA证书颁发机构,见3.3节的操作!),CA核实A提交的信息,为A产生一个数字证书,该数字证书包含A的个人信息、A的私钥、A的公钥还有证书颁发者等信息。这个证书是用CA的私钥签名的(注意不是A的私钥!)。当然,A也可以从证书中单独导出A的公钥(经CA数字签名的)。

  ②A给B发送一个数字签名的文档,这时B首先核实A的身份,验证A出示的证书(A的公钥PKA)是否是CA颁发的。当然B计算机首先要有CA的公钥,然后,使用CA的公钥验证A证书是否来自CA的认证。

  ③验证通过后,再使用A的公钥验证由A签名的摘要。这样A和B虽然都是网络中的个人或企业,彼此可能互不信任,没办法知道对方的身份,只要A出示的证书是B信任的证书颁发机构颁发的B就可以使用该证书机构的公钥验证A出示的证书(公钥)是否来自该CA,从而验证了A的身份

3.3 实战:发送数字签名和数字加密的邮件

(1)安装证书颁发机构:(模拟互联网的CA机构)

  ①在Win2003CA虚拟机安装Windows组件,选中“应用程序服务器”和“证书服务”。由于用户需要通过访问证书颁发机构的网站申请证书,所以要同时安装“应用程服务器”,即IIS服务

  ②在“CA类型”对话框中选择“独立根CA”(独立CA需要核实申请者信息真实性才颁发,而企业CA是通过企业内网的Active Directory(活动目录)来验证申请者的身份)

  ③在出现的“CA识别信息”对话框中输入CA的公用名称(如5ieduCA)、证书有效期默认值。

 

  ④在“证书数据库设置”对话框中指定证书数据库路径和证书数据库日志路径。

  ⑤安装完成后,可以从“开始”→“所有程序”→“管理工具”中打开证书颁发机构管理工具。同时,在IIS的默认网站目录下会生成一个虚拟目录CertSrv,网络中的计算机通过访问默认网站的该目录申请数字证书。

(2)申请和颁发电子邮件数字证书

  ①在WinXP1上申请电子邮件证书之前,首先要信任证书颁发机构,就是将CA的公钥添加到受信任的根证书颁分机构,这样就表示XP1信任了该证书颁发机构。方法是:下载一个CA证书:http//192.168.80.20/certsrv/,然后“下载一个CA证书、证书链或CRL”→“安装此CA证书链”。可以打开IE的“Internet选项”→“内容”→“证书”→“受信任的根证书颁分机构”选项卡下查看到“5ieduCA”,这意味着当前用户信任了该证书颁发机构,也就拥有了该机构的公钥

  ②信任该机构以后,可以去申请电子邮件证书。返回主页,点击“申请一个证书”→“高级证书申请”→“创建并向此CA提交一个申请”,在对话框中输入识别信息:姓名、电子邮件、公司、部门,中国就写cn。(注意填写的信息不要有中文)→证书类型中选择“电子邮件保护证书”,同时选中“标记密钥为可导出”(这样用户可以备份该证书!)→“提交”

  ③在Win2003CA上审核WinXP1刚刚申请的证书,选中“挂起的申请”,然后选择刚才的申请,最后再“颁发”。

  ④WinXP1,返回申请的数字证书首页,点击“查看挂起的证书申请的状态”→“电子邮件保护证书”→选中刚审核下来的证书,再“安装此证书”。然后打开“Internet选项”,再次查看证书,在“个人”选项卡下,可以看到刚才安装的证书内容(如证书目的、颁发者、颁发给、有效期以及该证书的CA私钥))

(3)配置Outlook Express账户绑定数字证书

  ①在Outlook中添加邮件账号:[email protected]以便用该邮箱收发邮件。主要注意两处设置:A.接收邮件服务器的帐户名为net5iedu。B发送邮件服务器由于默认不允许匿名中继,所以要勾选“我的服务器要求身份验证”。(具体可参考搜狐的邮箱设置帮助)

  ②Outlook账号绑定数字证书:选择pop3.sohu.com账号,在“安全”选项卡中,选中用于数字签名的证书。(注意,如果看不到申请的数字证书,要检查当时申请数字证书时填写的电子邮件地址和Outlook中配置的电子邮件地址是否一样。如果不同,要重新申请证书)

  ③在“加密首选项”也选项该证书。因为用户发送签名的邮件时会把用户公钥一起发给接收者,接收者就可以使用这个公钥发送加密邮件

(4)发送数字签名的邮件

  ①现在可以给[email protected]发送一封签名的邮件了,在Outlook中写好邮件后,选中工具栏中的“签名”,再点击“发送”。注意这时还不能选择“加密”,因为加密需要收件人的公钥,而现在还没有收件人的公钥。

 

  ②在WinXP2上配置[email protected]邮箱,并接收来自[email protected]的邮件时,发会现邮件前面带有一个签名的标记,同时查看该邮件时,会弹出“安全警告”。这是可以理解,因为WinXP2现在还没有添加对证书颁发机构的信任。可以参照前面的操作安装对证书颁发机构的信任。

  ③信任了证书颁发机构以后,就可以正常查看来自[email protected]的邮件了,只是这些邮件都会有带有数字签名的标记,同时还自动创建了一个联系人。

(5)发送加密的邮件

  ①经过上述发送一封数字签名的邮件后,由于邮件带有[email protected]的公钥,所以会在outlook界面的左侧“联系人”中出现“5iedu”,在右击出现的属性对话框中看到该数字证书。

  ②双击“5iedu”联系人,可以给该人发送一封加密的邮件注意发送加密邮件时都是利用对方给的公钥来加密的。由于此时SantaClaus拥有了对方的公钥,所以就可以给5iedu发送加密邮件了。注意两点:A.查看加密邮件要用相应的私钥才可以解密,但SantaClaus并没有对方的私匙。因此,当发送完邮件后,是无法查看己发送邮件中刚刚发送的邮件。注意,是连自己发送的邮件都无法查看。B.由于SantaClaus没有自己的邮件证书所以无法发送签名邮件

  ③在WinXP1的Outlook查看来自SantaClaus的邮件,会看到该邮件是被加密的。但由于5iedu拥有证书的私钥,所以可以查看该邮件。但由于5iedu并没有SantaClaus的公钥,所以不能给SantaClaus发送加密邮件。

猜你喜欢

转载自blog.csdn.net/CherishPrecious/article/details/84369042