签名代码签名

代码签名  时间: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

香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等VPS,全球独立服务器99元起步 湘南科技

全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技郴州市湘南科技有限公司官方网址:www.xiangnankeji.cn产品内容:全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技VPS价格表:独立服...

Krypt($120/年),2vCPU/2GB/60GB SSD/3TB

Krypt这两天发布了ION平台9月份优惠信息,提供一款特选套餐年付120美元(原价$162/年),开设在洛杉矶或者圣何塞机房,支持Windows或者Linux操作系统。ion.kryptcloud.com是Krypt机房上线的云主机平台,主要提供基于KVM架构云主机产品,相对于KT主站云服务器要便宜很多,产品可选洛杉矶、圣何塞或者新加坡等地机房。洛杉矶机房CPU:2 cores内存:2GB硬盘:...

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

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

代码签名为你推荐
队列routesignal37现有新的ios更新可用请从ios14be苹果x更新系统14不能玩王者荣耀了有没有一样的?phpweb破解painter破解版中文版空间文章问问你知道我的空间有几篇文章啊?163yeah网易的163,126,yeah邮箱有什么不同?internetexplorer无法打开为什么Internet Explorer浏览器无法打开资费标准中国移动4g18元套餐介绍文档下载请问手机版wps如何把云文档下载到手机上的本地文档?3g手机有哪些现在有哪些比较适用的3g手机?
个人域名注册 快速域名备案 阿云浏览器 pccw 免费ftp空间 wdcp sub-process 网站监控 好看的桌面背景图片 网通代理服务器 100m空间 789电视网 华为云盘 厦门电信 登陆空间 酸酸乳 阿里云邮箱申请 卡巴斯基官网下载 卡巴斯基试用版下载 hostease 更多