查看: 3142|回复: 6
收起左侧

[资料库] 使用CAT(安全编录)文件数字签名 / 检验文件

[复制链接]
ikimi
发表于 2016-6-10 14:40:34 | 显示全部楼层 |阅读模式
本帖最后由 ikimi 于 2016-6-10 14:45 编辑

经常有网友在问,WINDOWS下除了PE文件,能不能对任一格式的文件进行数字签名?为什么一个PE文件,右键“属性”没有“数字签名”标签卡,但仍然可以通过其他软件检测出该程序已签名?​

今天,就为大家做一个介绍。这所有的一切,皆是CAT文件的功劳。​

(本文仅介绍CAT文件之于数字签名的作用,其他功能不涉及。)

什么是CAT文件?我们来看张图。​





​“安全编录”里有两个项目,这其实就对应着两个文件,以上图为例,标记为“89E4...”的这一项就代表着该文件(demo.txt)通过SHA1散列算法得到的Hash值是89E4...​​



我们只要对这个CAT文件进行数字签名,再辅以一定的策略,那么这两个文件就能被系统识别为已签名,效果和PE文件的内嵌签名一致。​

下面,就先介绍这个CAT文件如何生成。​

两种方法:1、使用数字证书厂商提供的图形化工具,这类的软件有WoSign的《沃通代码签名工具》、TrustAsia的《数字签名工具专业版》;2、借助Microsoft的命令行程序手工制作。这里向大家介绍第二种方法。​

环境:有两个文件,demo.txt和demo.exe,通过CAT文件实现数字签名。​​



如图,制作一个文本文件cat.txt。​

说明:第四、第五行后的TxtFile、ExeFile是起一个标识作用,大家可以起一个自己喜欢的名称。​

保存后,使用微软的makecat.exe文件,将这个文本文件转换成CAT文件。​



打开demo.cat文件​



​系统提示“该安全编录没有经过数字签名,因此不能被验证。”​

接下来,我们需要使用自己的数字证书(含私钥),借助一些工具软件,对CAT文件进行代码签名,工具软件有上文提及的WoSign的《沃通代码签名工具》、TrustAsia的《数字签名工具专业版》,也可以使用笔者制作的《signtool GUI》。这里以微软的signtool.exe对demo.cat进行代码签名。



​数字签名的参数,这里暂且不做讲解了。

现在再打开已代码签名的demo.cat,​系统提示“该安全编录有效”。



​右键单击demo.cat,选择“属性”——“数字签名”,我们可以查阅签名方信息。









​至此,我们已经完成了对编录文件的签名。下面,以demo.txt为例,介绍如何验证文本文件的签名(工具仍然以微软的signtool.exe为例)。

​通过CAT文件来代码签名文件,这种方式的签名验证和传统的内置式签名,略有区别。输入以下命令。



​/pa 指定应使用默认认证码验证策略,如果未指定 /pa 选项,签名工具将使用 Windows 驱动程序验证策略;

/c ​通过名称指定目录文件,本例中demo.cat为安全编录文件。

如果demo.txt被修改了,签名将失效。



​提示:签名失效并非指demo.cat文件的代码签名失效。

从以上的演示中,大家不难发现,如果每次验证签名还要指定一个安全编录文件,有些繁琐,那么还有没有更便捷办法?​我们的系统C:\Windows\System32\catroot下有好多CAT文件?这之间有没有什么关联?

​对的,我们可以将demo.cat安装入系统的安全编录池。

这个“安装”​的动作,并不是简单地将这个文件复制到这个目录中,

执行以下命令(需管理员权限):



​安装完毕后,在验证代码签名的时候,我们可以执行以下命令:



​/a 指定可以使用所有方法来验证文件。首先,搜索目录数据库以确定是否在目录中对文件进行签名。如果未在任何目录中对文件进行签名,签名工具将尝试验证文件的嵌入签名。验证可以或不能在目录中进行签名的文件时,建议使用该选项。 这些文件的示例包括 Windows 文件或驱动程序。

​到此,我们完成了对一个非PE文件的代码签名和签名验证。事实上,这样的数字签名方式更灵活,这种方式在驱动程序的数字签名场景中,应用非常广泛。

​回顾:

实现本例所需准备的素材:1、代码签名数字证书(含私钥);2、互联网接入(数字时间戳用);3、微软的数字证书相关命令行工具:signtool.exe、makecat.exe等。

​本文粗略地介绍下了安全编录文件在数字签名方面的一些知识,不足之处,敬请指正。

中国农业银行 ikimi

2016年端午假期


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 2经验 +8 人气 +1 收起 理由
woxihuan2011 + 8 感谢提供分享
驭龙 + 1 假期快乐

查看全部评分

风之咩~
发表于 2016-6-10 14:45:30 | 显示全部楼层
然而一般人并没有数字证书
能团购不
jeffwong
发表于 2016-6-10 15:12:55 | 显示全部楼层
长知识了,话说还在用XP
ikimi
 楼主| 发表于 2016-6-10 15:36:59 来自手机 | 显示全部楼层
风之咩~ 发表于 2016-6-10 14:45
然而一般人并没有数字证书
能团购不

可以向CA申请。
supervir
发表于 2016-6-10 19:16:12 | 显示全部楼层
版主是证书控,证书好多呀。
ikimi
 楼主| 发表于 2016-6-10 22:16:47 | 显示全部楼层
supervir 发表于 2016-6-10 19:16
版主是证书控,证书好多呀。

程序开发市场投放必备。
nttwqz
发表于 2016-6-10 22:31:53 | 显示全部楼层
没注意,原来版主是漂亮妹子一枚,而且还是技术型的……
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-16 14:04 , Processed in 0.135896 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表