为何软件需要数字签名
1. 什么是数字签名?为何需要数字签名?
微软网站上是这样定义的。
“数字签名”是指可以添加到文件的电子安全标记。 使用它可以验证文件的发布者以及帮助验证文件自被数字签名后是否发生更改。
如果文件没有有效的数字签名,则无法确保该文件确实来自它所声称的源,或者无法确保它在发布后未被篡改(可能被病毒篡改)。
较为安全的做法是,除非您确定该文件的创建者而且知道其内容才可以安全地打开,否则不要打开该文件。
即便是有效的数字签名也无法验证文件的内容没有危害。 必须决定是否应根据发布者的身份以及下载文件的位置信任文件的内容。
2. 有了数字签名是什么样?没有数字签名又怎样?
请大家参考 微软网站的有关代码验证机制文章,简单地讲:就是给软件代码加上数字签名,用来保证:
(1) 真实性 ( authenticity ) :让用户确信此软件的来源 ( 软件开发商的真实性 );
(2) 完整性 ( integrity ) :确保软件发布后没有被篡改。
看看以下截图就能理解以上两点,当您从 MSN中国 网站上下载和安装 MSN 保护盾( http://im.live.cn/safe)时,系统会告诉你此软件的发行者是 上海美斯恩网络通讯技术有限公司,能证明软件的 真实身份。
还是看Windows在运行没有数字签名的软件是提示什么,如下图所示,会提示“发行者:未知发行者”,并显示一个红色的叉号警告:此文件没有包含有效的数字签名以验证其发行者;而有数字签名的则只是黄色问号警告。没有数字签名的软件是绝对不能轻易信任的!
对于ActiveX控件,如果没有数字签名,则Windows 直接拦截不允许运行。由此可见数字签名的重要性。