linux下elf文件的代码签名验证机制

linux下elf文件的代码签名验证机制

ID:32760004

大小:76.34 KB

页数:7页

时间:2019-02-15

linux下elf文件的代码签名验证机制_第1页
linux下elf文件的代码签名验证机制_第2页
linux下elf文件的代码签名验证机制_第3页
linux下elf文件的代码签名验证机制_第4页
linux下elf文件的代码签名验证机制_第5页
资源描述:

《linux下elf文件的代码签名验证机制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1引言随着Linux的不断发展,已有越来越多的人开始推广和使用Linux,其安全性也受到越来越多的挑战。ELF(ExecutableandLinkableFormat)[1]作为Linux下最主要的可执行二进制文件格式,自然成了病毒及各种恶意代码的攻击目标。事实证明,有不少Linux下的病毒程序就是通过直接修改ELF文件的方法来实现入侵的[10]。传统的Unix系统(包括Linux)并不会对执行的代码进行完整性和合法性检测,因而让很多病毒程序以及木马程序有机可乘。代码签名验证是一种能够有效的防止病毒以及其他恶意代码入侵的方法。对于Linux下的代码签名验证机制,早

2、几年就已经有人研究。文[2]提出了在安装时进行签名验证的方法,并通过修改chmod系统调用控制文件的可执行属性,但这种方法无法检测程序安装后对代码的任何修改,有一定的局限性。文⑶⑷⑸描述的都是在执行时进行签名验证的方法,其中[4]⑸采用了缓存已验证文件的策略,使效率较[3]有很大提高。但是,它们将所有ELF文件“一视同仁”,没有主次轻重之分,缺少灵活性。本文提出了一种改进的基于ELF文件格式的代码签名验证机制,通过提供更加灵活的分级验证方式,进一步提高验证效率,并且使系统在安全性与效率方面取得平衡。2签名验证原理我们采用完全符合PKCS⑻系列标准的签名验证算法,并

3、兼容所有符合X509格式的证书,以RSAF6V71非对称密钥体制为基础来完成对ELF文件代码的签名验证。2.1签名设被签名的数据为m,其数字摘要为h。h=Hash(m)其中,Hash是哈希单向散列算法,如MD5、SHA-1等。设p,q,d为签名者的私有数据,他们都包含在签名者的私钥SK中;n,e为签名者的公开数据,并且都包含在签名者的公钥PK中。这些数据满足以下要求:n=pq其中pHq,pq均为大素数;e,dWRZn并且e=d-1,ed=lmod(n);这里,(n)=(p-D(q-l)o那么,使用签名者私钥对h进行加密即可得到签名值s:s=E(x)=hdmodn2

4、.2验证设被验证数据为,其数字摘要为h'。h'二Hash(m')假设我们已经取得签名者的真实公钥PK,然后我们使用PK屮的公开数据e对s进行解密计算,得到还原的数字摘要h‘',这里h‘'就相当于是O1式中的h。h''=D(s)=semodn现在,我们比较h‘和h''是否完全相同。如果相同则验证通过,否则验证失败。3设计与实现为了便于描述,我们引入以下儿个基本概念:1.完全摘要值-指对ELF文件的所有数据以及签名相关数据计算出来的摘要值;1.不完全摘要值■■指对ELF文件的一部分重要数据(主要是ELF文件头)以及签名相关数据计算出来的摘要值;1.完全签名值-指对完全

5、摘要值加密所得到的签名值;2.不完全签名值-指对不完全摘要值加密所得到的签名值;3.系统验证级别-指系统级的验证级别,它适用于系统中所有的ELF文件;4.文件验证级别-指单个ELF文件的验证级别,它只适用于指定的某个ELF文件。签名相关数据是指原始文件大小、签名者公钥标识ID、签名算法、签名时间以及签名者基本信息等数据。3.1签名策略对ELF文件的签名是通过签名工具完成的,与操作系统核心无关,同时也和平台无关。签名过程完全遵循第二节屮所描述的标准和原理。首先,我们通过O1式计算得到两种摘要值:不完全摘要值(hpart)和完全摘要值(hcomp)。然后再通过2式使用

6、签名者私钥(SKsign)加密摘要值,从而得到两种签名值:不完全签名值(spart)和完全签名值(scomp)o最后,我们将不完全签名值和完全签名值按照固定的格式组合在一起,并放在被签名文件的末尾。如图3-1所示(括号中的数字表示该字段所占字节数)。图3・1代码签名过程及签名值存放1.版本标识ELF文件头数计算不完全r原始文件大小据(hij128个签名值3・签名者公钥标识ID宇节)t4.签名算法标识签名者私饬5.签名时间ELF文件所有16.签名者基本信息数据(包括文计算完全签件头)勺曾合并签名值并放入ELF文件尾部ELF文件庵祁OxllWlT(4)原始文件大小<4

7、>公钥标识1D<16;签名算法杯识(4)签名时间(4)签名者基本信息筱盛<2)签名者基本信息]由长度决定〉签名值开始标识oxftnmT(4)完全签名值(长度由聲法决定〉完全签名值长腹(2)部分签名值(长度由算法决定〉部分签名值长度(2)附加信息长度(以上所竹数据的总长喪.包括这两个字节)<2)3.2验证策略对被执行ELF文件签名值的验证是根据”系统验证级別“和该文件的坟件验证级別“二者进行的。“文件验证级别”是为单个文件设置的验证级别,共分为3个级别,分别rflO〜2表示。“文件验证级别”保存在每个文件的inode节点标志屮,系统管理员可以根据需要设置文件的验证级

8、别。“文件

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。