一、实验目的
1、了解数字签名的基本原理和常见使用场景;
2、学会使用微软签名验证工具SigCheck验证文件的签名。
二、实验环境
本地主机:Windows XP操作系统、SigCheck数字签名验证工具。
三、实验内容与实验要求
将软件压缩包Sigcheck解压缩。解压后有两个文件,sigcheck.exe是签名验证主程序,Eula.txt是附加说明文件。
对指定文件做签名验证
首先打开桌面上的 "数字签名实验"文件夹,右击Sigcheck.zip,点击解压文件
将目标路径改为 C:\sigcheck点击确定
打开cmd控制台,进入SigCheck程序目录(本示例中程序目录在C:\sigcheck),如下图所示:
输入“sigcheck”,点击回车,首次运行程序会弹出License声明,点击“Agree”按钮即可。如下图所示:
同意后屏幕会显示Sigcheck的用法信息
下边以检查微软操作系统自身携带的计算器程序的数字签名为例进行说明,在Sigcheck目录下,输入:sigcheck C:\windows\system32\calc.exe,点击回车,屏幕显示出计算器程序的签名信息
从上图可以看出,计算器程序calc.exe已经被签名,验证通过。
我们再来验证一个未签名的文件。helloworld.exe是一个由C++开发的简单小程序,它的执行效果仅仅是在控制台显示一行“Hello World!”。
当然,它没有经过数字签名。在Sigcheck程序目录下,输入命令“sigcheck helloworld.exe”,屏幕显示验证结果如下图所示:
批量验证文件签名
很多情况下,我们可能需要找出某个目录下是否存在未经过数字签名的文件,例如“C:\windows\System32”文件夹,那么可以使用如下命令:“sigcheck -e C:\windows\System32 >abc.txt”,执行后可以将相关检查信息输出至abc.txt文件,abc.txt文件内容如下图所示
四、实验过程与分析
首先打开桌面上的 "数字签名实验"文件夹,右击Sigcheck.zip,点击解压文件
将目标路径改为 C:\sigcheck点击确定
打开cmd控制台,进入SigCheck程序目录(本示例中程序目录在C:\sigcheck),如下图所示:
输入“sigcheck”,点击回车,首次运行程序会弹出License声明,点击“Agree”按钮即可。如下图所示:
同意后屏幕会显示Sigcheck的用法信息,如下图所示:
下边以检查微软操作系统自身携带的计算器程序的数字签名为例进行说明,在Sigcheck目录下,输入:sigcheck C:\windows\system32\calc.exe,点击回车,屏幕显示出计算器程序的签名信息,如下图所示:
从上图可以看出,计算器程序calc.exe已经被签名,验证通过。
我们再来验证一个未签名的文件。helloworld.exe是一个由C++开发的简单小程序,它的执行效果仅仅是在控制台显示一行“Hello World!”。
下载地址:http://tools.hetianlab.com/tools/HelloWorld.rar(请在实验机环境中使用浏览器下载)
当然,它没有经过数字签名。在Sigcheck程序目录下,输入命令“sigcheck helloworld.exe”,屏幕显示验证结果如下图所示:
批量验证文件签名
很多情况下,我们可能需要找出某个目录下是否存在未经过数字签名的文件,例如“C:\windows\System32”文件夹,那么可以使用如下命令:“sigcheck -e C:\windows\System32 >abc.txt”,执行后可以将相关检查信息输出至abc.txt文件,abc.txt文件内容如下图所示:
五、实验结果总结
通过实验学习到数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。了解到数字签名的功能,是保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。知道了RSA算法数字签名的过程。
对称加密与非对称加密的区别
密钥不同:
1、对称加密:对称加密加密和解密使用同一个密钥。
2、非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。
安全性不同:
1、对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。
2、非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。
数字签名不同:
1、对称加密:对称加密不可以用于数字签名和数字鉴别。
2、非对称加密:非对称加密可以用于数字签名和数字鉴别。
适合应用的场景
1、DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;
2、RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法。