签名代码签名

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

racknerd:美国大硬盘服务器,$599/月,Ryzen7-3700X/32G内存/120gSSD+192T hdd

racknerd当前对美国犹他州数据中心的大硬盘服务器(存储服务器)进行低价促销,价格跌破眼镜啊。提供AMD和Intel两个选择,默认32G内存,120G SSD系统盘,12个16T HDD做数据盘,接入1Gbps带宽,每个月默认给100T流量,5个IPv4... 官方网站:https://www.racknerd.com 加密数字货币、信用卡、PayPal、支付宝、银联(卡),可以付款! ...

pacificrack:VPS降价,SSD价格下降

之前几个月由于CHIA挖矿导致全球固态硬盘的价格疯涨,如今硬盘挖矿基本上已死,硬盘的价格基本上恢复到常规价位,所以,pacificrack决定对全系Cloud server进行价格调整,降幅较大,“如果您是老用户,请通过续费管理或升级套餐,获取同步到最新的定价”。官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款VPS特征:基于KVM虚拟,纯SSD raid...

傲游主机38.4元起,韩国CN2/荷兰VPS全场8折vps香港高防

傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...

代码签名为你推荐
ensureapplelinksns新iphone也将禁售iPhone已停用,停用时间为多久?大飞资讯新闻资讯包括什么内容?宜人贷官网我在宜人财富贷款2万元,下款的时候时候系统说银行卡号错误,然 我在宜人财富贷款2万我在宜人财富贷款正大天地网天地网微信移动办公平台curl扩展系统不支持CURL 怎么解决电子商务世界世界前十大电子商务企业名字电子商务世界电子商务最先起源于那个国家,什么时间怎样发帖子怎么发帖啊,
北京vps krypt hostgator iisphpmysql unsplash qq数据库 绍兴高防 100x100头像 域名转向 双拼域名 nerds 1美金 web服务器搭建 英雄联盟台服官网 实惠 阵亡将士纪念日 杭州电信宽带 服务器托管价格 湖南铁通 phpinfo 更多