第!
"卷第#期$$$计算机应用与软件%&'(!
",)&*#!
++,年#月$$-&.
/01234//'56715&8978:;&78*!
++,收稿日期:王一平,硕士生,主研领域:计算机网络、信息安全.
!
"#$%&'下代码签名验证的研究与实现王一平$韦$卫(中国科学院研究生院$北京#+++AB)$(中国科学院计算技术研究所$北京#+++C+)摘$要$$简要讨论了在D58:&=9系统下代码签名验证的方法和实现,增加了系统抵御病毒和入侵的能力,从而增强了系统安全性.
提出了一种解决方案,实现了对D58:&=9下可执行文件的签名和验证.
最后描述了可能存在的问题和今后的发展.
关键词$$代码签名$D58:&=9$病毒0123,(1+4)0(5,13)610)7+)+!
)+47!
(D78EF5/58E#$D25D25!
!
012+*(-(34$%(5.
/064+(*4(-,7(+8+*9!
:::;代码签名验证通过对可执行文件的数字签名进行检查校验,发现没有数字签名或者校验失败的非法文件,从而识别出恶意代码和非法程序.
代码签名验证已经成为一种能够有效地防止病毒以及其他恶意代码入侵系统的技术.
但是要在系统中实现代码签名验证,需要对操作系统非常了解,且需要涉及到系统较深的一些内容.
由于D58:&=9的非开发性,对于D58:&=9系统下的代码签名验证现在研究得还非常少,几乎没有什么资料.
当然微软公司实际上在D58:&=9内也设计了一套代码签名验证机制,但是并不实用,在防止非法程序执行这方面几乎无能为力.
对照D58:&=9操作系统,对于源代码开放的P580L操作系统下的代码签名验证机制,较早时间就已经有人在研究,并提出了一些机制和方法,为本文提供了不少有价值的参考.
但是由于操作系统间的差异,在文件格式、系统调用、文件过滤等多方面都完全不一样.
因此两个操作系统在代码签名验证的实现上也大相径庭.
本文将描述一种D58:&=9下代码签名验证机制在内核级别的设计与实现,这种机制能有效防止基于可执行文件的恶意代码的入侵,并同时提供系统较高的稳定性,而且在不影响效率的情况下提供了系统最大的安全性.
BA代码签名验证原理文章采用完全符合QR-;系列标准的签名验证算法,并兼容符合ST+B格式的证书,以M;4公开密钥密码体制为基础来完成对D58:&=9下可执行文件代码的签名验证.
BC@A签A名设被签名的数据为U,其数字摘要为H:2VC(D)其中,C为单向散列函数,如UWT、;X4O#等.
设,E,%为签名者的私有数据,他们都包含在签名者的私钥6F中;*,(为签名者的公开数据,并且都包含在签名者的公钥GF中.
这些数据满足以下要求:*VE其中1E,、E均为大素数;(,%为整数,并且(V%#,(%B#(.
&:!
(*));这里,!
(*)V(#)(E#).
那么,使用签名者私钥对2进行加密即可得到签名值-:-VH(2)V2%.
&:(*)签名是首先计算被签名文件的UWT码(或;X4O#码),该码经过I63私有密钥加密后,形成数字签名,然后再附加到原文件之后,合并为签名后的新文件,过程如图#示.
!
第"期!
!
!
王一平等:#$%&'()下代码签名验证的研究与实现"*+!
!
图"!
数字签名过程示意图!
"!
#验#证设被验证数据为!
",其数字摘要为#":#",$(!
")假设已经取得签名者的真实公钥%&,然后我们使用%&中的公开数据'对(进行解密计算,得到还原的数字摘要#),这里#)就相当于是签名时的#:#),*(+)现在,比较#"和#)是否完全相同.
如果相同则验证通过,否则验证失败.
对于数字签名后的文件,需要对数字签名进行验证时,验证过程如图.
示,首先取出签名者的公开密钥,数值签名经过公开密钥和/01解密算法解密后,恢复出原来的234码.
然后计算文件的234码,再与前者比较,如果相同,则文件属实,否则文件或签名已经过改动.
图.
!
数字签名验证过程示意图$#设计与实现为了便于描述,引入以下几个基本概念:摘要值!
指对可执行文件的所有数据以及签名相关数据计算出来的摘要值.
签名值!
指对文件摘要值加密所得到的签名值.
系统验证级别!
指系统级的验证级别,它适用于系统中所有的可执行文件.
文件验证级别!
指单个可执行文件的验证级别,它只适用于指定的某个可执行文件.
签数据!
是指原始文件大小、签名者公钥标识53、签名算法、签名时间以及签名者、签名值等数据.
$"%#系统架构!
!
如图+,系统主要由三个模块和两个库组成.
其中证书与私钥管理模块负责管理验证和签名可执行文件所需要的公钥证书和签名私钥.
文件签名模块则可以根据用户的需要在安装可执行文件或需要时对可执行文件进行签名,签名后的数据添加在相应的可执行文件中.
文件验证过滤模块在可执行文件启动时完成对可执行文件的签名验证,同时监控在系统执行未签名文件时,提醒用户选择是否允许.
图+!
系统架构图证书与私钥管理模块与文件签名模块可以通过通常的用户进程实现.
文件验证与签名模块可根据在#$%&'()执行程序时调用的三个层次上实现.
其中#$%+.
调用和系统调用层次上的实现主要是通过截获相应层次上的函数调用完成,二者不同之处#$%+.
调用属于应用层调用,而系统调用属于内核调用,因此后者实现难度更大一些.
如生成一个文件,#$%+.
调用的函数为6789:8;$7')':相关的5;0(5%):97')':设计的一种新的文件格式H'7:9@J:9@J:9@节T78节……文件头部CDDDDDDDDDEDDDDDDDDD文件尾部图L!
HI文件的基本结构图L是HI文件结构的总体层次分布.
所有HI文件(甚至+.
位的3QQ))都以一个简单的3M02=U89&87开始,在偏移F处有3M0下可执行文件的"2=标志",有了它,一旦程序在3M0下执行,3M0就能识别出这是有效的执行体,然后运行紧随2=U89&87之后的3M0):J@.
3M0):J@实际上是个有效的IGI,在不支持HI文件格式的操作系统中,它将简单显示一个错误提示,类似于字符串"EU$)V7'W79->9%%':7J%$%3M0-'&8"或者程序员可根据自己的意图实现完整的3M0代码.
紧接着3M0):J@的是HIU89&87.
HIU89&87是HI相关结构521NIODEO!
"#$!
!
!
!
!
计算机应用与软件%&&'年()*+),-的简称,其中包含了许多.
)装载器用到的重要域.
可执行文件在支持.
)文件结构的操作系统中执行时,.
)装载器将从+/-01234536的偏移78(处找到.
)234536的起始偏移量.
因而跳过了+/-9:;:@A9(节).
每节是一块拥有共同属性的数据,比如"B:3C:"节等,.
)格式的文件把具有相同属性的内容放入同一个节中,而"B:3C:"、"B54:4"的命名只是为了便于识别.
可以对.
)格式的文件进行修改,在其中插入一节,并调整此节的属性.
.
)234536接下来的数组结构93>:@A:43-:4A5465(OI-).
@6:4P>4:@AS369@A"B":OI-8@QQ::33,/>:@;:42:36,FKL:;:@64D,FA5@G9核心编程,机械工业出版社,%&&&年E月B[$]FB*B*6;:42B,3R@6:8-=O,=$%ETBMA]369:[@P046[D4A5,U;A3$,%&&"B[E]罗云彬,FA5@G9环境下7%位汇编语言程序设计,电子工业出版社,B[#]/R3A--K>6[R:@W64R2>D9Y>6[R:@Y>6[R:@B2:QDB
艾云怎么样?艾云是一家去年年底成立的国人主机商家,商家主要销售基于KVM虚拟架构的VPS服务,机房目前有美国洛杉矶、圣何塞和英国伦敦,目前商家推出了一些年付特价套餐,性价比非常高,洛杉矶套餐低至85元每年,给500M带宽,可解奈飞,另外圣何塞也有特价机器;1核/1G/20G SSD/3T/2.5Gbps,有需要的朋友以入手。点击进入:艾云官方网站艾云vps促销套餐:KVM虚拟架构,自带20G的防御...
官方网站:点击访问青云互联活动官网优惠码:终身88折扣优惠码:WN789-2021香港测试IP:154.196.254美国测试IP:243.164.1活动方案:用户购买任意全区域云服务器月付以上享受免费更换IP服务;限美国区域云服务器凡是购买均可以提交工单定制天机防火墙高防御保护端口以及保护模式;香港区域购买季度、半年付、年付周期均可免费申请额外1IP;使用优惠码购买后续费周期终身同活动价,价格不...
HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月商家针对全场VPS主机提供8折优惠码,优惠后美国洛杉矶VPS月付5.2美元起。下面列出几款不同机房VPS主机产品配置信息。套餐:美国US-Plan0CPU:1cores内存:1GB硬...
代码签名为你推荐
filezillaserverFileZilla Server 搭建的FTP服务器outlookexpress如何开启OUTLOOK EXPRESS功能?flashftp下载rmdown怎么下载补贴eset文档下载请问手机版wps如何把云文档下载到手机上的本地文档?pintang目前世界上最稀有、最珍贵的钱币是什么?billboardchina中国有进美国BillBoard榜的人吗400电话查询能查出400电话是什么地区的吗站点管理有关站点的知识介绍?地址栏图标电脑地址栏上的所有图标怎么找?
最便宜的vps cn域名个人注册 2019年感恩节 bash漏洞 外国空间 panel1 服务器维护 服务器防火墙 lamp的音标 hostease 开心online 美国主机 什么是dns globalsign symantec ddos攻击 dmz主机 远程主机强迫关闭了一个现有的连接 租主机 kosskeb79 更多