签名代码签名

代码签名  时间:2021-04-30  阅读:()
第!
"卷第#期$$$计算机应用与软件%&'(!
",)&*#!
++,年#月$$-&.
/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

Ftech:越南vps,2核/2G/20G SSD/1Gbps不限流量/可安装Windows系统,$12.5月

ftech怎么样?ftech是一家越南本土的主机商,成立于2011年,比较低调,国内知道的人比较少。FTECH.VN以极低的成本提供高质量服务的领先提供商之一。主营虚拟主机、VPS、独立服务器、域名等传统的IDC业务,数据中心分布在河内和胡志明市。其中,VPS提供1G的共享带宽,且不限流量,还可以安装Windows server2003/2008的系统。Ftech支持信用卡、Paypal等付款,但...

日本vps云服务器选择指南。

日本vps云服务器怎么选择?很多人都会遇到日本vps和日本云服务器怎么选择的问题,日本云服务器具有免备案的特点。小编今天就分析一下日本云服务器价格多少钱,以方便大家选购的时候有个更加合适的取舍。日本云服务器租用前比较选择,高性能、安全、高效、免备案日本云服务器是很关键的因素。那么,日本云服务器该怎么选择呢?日本作为我们的邻国,与其贸易、文化往来是比较多的。日本云服务器价格多少钱一年?一、日本·CN...

spinservers:10Gbps带宽高配服务器月付89美元起,达拉斯/圣何塞机房

spinservers是一家主营国外服务器租用和Hybrid Dedicated等产品的商家,Majestic Hosting Solutions LLC旗下站点,商家数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,且硬件配置较高。目前,主机商针对达拉斯机房机器提供优惠码,最低款Dual E5-2630L v2+64G+1.6TB SSD月付89美元起,支持PayPal、支付宝等...

代码签名为你推荐
现有新的ios更新可用请从ios14be苹果xr可不可以更新ios14centos6.5centos7和centos6.5的区别中国企业在线如何查询企业是否可靠?全国企业信息查询想查一个企业的信息,哪个网站提供信息查询?重庆网站制作请问重庆那一家网站制作公司资信度比较好?技术实力雄厚呢?netshwinsockreset游戏出现battlEye Launcher 怎么办ipad代理ipad在哪里买是正品?yixingjia报价是什么意思团购程序团购系统软件有哪些?一般需要考虑那几点?kingcmsKingCMS 开始该则呢么设置呢?
域名反查 域名解析服务器 qq云存储 阿里云邮箱登陆首页 香港vps99idc 美国主机论坛 线路工具 debian6 java空间 java虚拟主机 域名评估 新家坡 百度云1t 国外免费asp空间 vul lamp架构 hdsky 贵州电信 apache启动失败 机柜尺寸 更多