none
关于数字签名的问题,在windows 7 和vista 下数字签名软件与非数字签名软件有什么不同? RRS feed

  • 问题

  • 数字签名在win7 和vista  下安装,使用与非数字签名情况下有什么差别?数字签名的流程是怎么回事?即如何获取数字签名?普通的应用软件是否需要数字签名?
    2009年12月14日 12:50

答案

  •      签不签名对于程序功能应该没什么区别。但不签名程序有可能因为不被操作系统信任而导致显示某些警告提示。

         某些木马或者病毒(主要是病毒),为了获得执行的机会,需要感染可执行的文件。 那种在注册表Run下添键值或者做个透明图标放在桌面上的方式未免太小儿科了。所谓“感染”,就是病毒或者木马将自身代码复制合并到被感染的可执行文件中,并修改PE头结构,使得用户运行这个文件时,自身率先得到运行。

         签名的程序是指程序在编译完成后,程序的发布者使用自己拥有的私钥使用签名工具为程序做一次哈希计算,并将特征值保存。 程序发布后,在执行程序前,操作系统会对现有程序文件以同样算法做哈希计算,并比对哈希值。 若哈希值一致,则系统认为改程序自发布后没有被未授权第三方修改。若哈希值不一致,则认为程序发布后,被未授权第三方修改(比如病毒和木马),改程序目前是不安全的,可以拒绝运行。

         通俗来讲,验证数字签名和BT使用者下载了一个大型文件,使用工具算哈希值与发布者公布的哈希值比对,以判断下载的文件是否带有病毒的作用原理是一样的。

         程序签名技术,已经广泛的应用于Windows 平台,驱动程序、应用程序发布时都推荐进行签名。微软也提供了相应的工具。

    • 已标记为答案 mathersee 2009年12月17日 1:49
    2009年12月15日 9:07
    版主

全部回复

  •      签不签名对于程序功能应该没什么区别。但不签名程序有可能因为不被操作系统信任而导致显示某些警告提示。

         某些木马或者病毒(主要是病毒),为了获得执行的机会,需要感染可执行的文件。 那种在注册表Run下添键值或者做个透明图标放在桌面上的方式未免太小儿科了。所谓“感染”,就是病毒或者木马将自身代码复制合并到被感染的可执行文件中,并修改PE头结构,使得用户运行这个文件时,自身率先得到运行。

         签名的程序是指程序在编译完成后,程序的发布者使用自己拥有的私钥使用签名工具为程序做一次哈希计算,并将特征值保存。 程序发布后,在执行程序前,操作系统会对现有程序文件以同样算法做哈希计算,并比对哈希值。 若哈希值一致,则系统认为改程序自发布后没有被未授权第三方修改。若哈希值不一致,则认为程序发布后,被未授权第三方修改(比如病毒和木马),改程序目前是不安全的,可以拒绝运行。

         通俗来讲,验证数字签名和BT使用者下载了一个大型文件,使用工具算哈希值与发布者公布的哈希值比对,以判断下载的文件是否带有病毒的作用原理是一样的。

         程序签名技术,已经广泛的应用于Windows 平台,驱动程序、应用程序发布时都推荐进行签名。微软也提供了相应的工具。

    • 已标记为答案 mathersee 2009年12月17日 1:49
    2009年12月15日 9:07
    版主
  • 先谢谢michael lee2 的回答,因为vista 与win7的安全性越来越高,所以是否有数字签名的程序可以有特殊权限,例如:在标准用户下安装的时候是否不需要提示管理员密码?(例子可能不恰当)。数字签名的验证是通过本机验证还是必须通过网络验证?它的原理是什么?通过什么软件能计算出软件的hash值?数字签名只是为了防止非授权用户对软件修改的一种方法吗?
    2009年12月16日 2:04
  • 不会,有所谓特殊权限问题。反而,未经签名的驱动程序在安装时会弹出一个warning 对话框。主要是微软提示用户,该驱动未经签名,也就意味着没有通过微软的驱动测试,由此有可能导致系统蓝屏等等问题,微软概不负责之类,然后让用户comfirm是否仍然安装这个驱动。

    一般针对数字签名的验证都是本地校验的。具体原理可以参考.NET 数字签名工具sn.exe 看看。
    2009年12月16日 4:11
    版主