操作系统>系统美化Windows系统故障系统优化VistaLinux注册表专题|产品中心Windows 2008IBM RBDE概览
您现在的位置: 天极网 > 软件频道 > 操作系统 > Linux > Linux下一种ELF文件代码签名验证机制
全文

Linux下一种ELF文件代码签名验证机制

2006-10-31 00:00作者:出处:天极博客责任编辑:原野
  3、设计与实现

  为了便于描述,我们引入以下几个基本概念:

  1. 完全摘要值--指对 ELF 文件的所有数据以及签名相关数据计算出来的摘要值;

  2. 不完全摘要值--指对 ELF 文件的一部分重要数据(主要是 ELF 文件头)以及签名相关数据计算出来的摘要值;

  3. 完全签名值--指对完全摘要值加密所得到的签名值;

  4. 不完全签名值--指对不完全摘要值加密所得到的签名值;

  5. 系统验证级别--指系统级的验证级别,它适用于系统中所有的 ELF 文件;

  6. 文件验证级别--指单个 ELF 文件的验证级别,它只适用于指定的某个 ELF 文件。

  签名相关数据是指原始文件大小、签名者公钥标识 ID、签名算法、签名时间以及签名者基本信息等数据。

  3.1 签名策略

  对 ELF 文件的签名是通过签名工具完成的,与操作系统核心无关,同时也和平台无关。签名过程完全遵循第二节中所描述的标准和原理。

  首先,我们通过 ○1 式计算得到两种摘要值:不完全摘要值(hpart)和完全摘要值(hcomp)。然后再通过 2 式使用签名者私钥(SKsign)加密摘要值,从而得到两种签名值:不完全签名值(spart)和完全签名值(scomp)。

  最后,我们将不完全签名值和完全签名值按照固定的格式组合在一起,并放在被签名文件的末尾。如图 3-1 所示(括号中的数字表示该字段所占字节数)。

  

图 3-1 代码签名过程及签名值存放

  3.2 验证策略

  对被执行 ELF 文件签名值的验证是根据"系统验证级别"和该文件的 "文件验证级别" 二者进行的。"文件验证级别" 是为单个文件设置的验证级别,共分为 3 个级别,分别由 0~2 表示。"文件验证级别"保存在每个文件的 inode 节点标志中,系统管理员可以根据需要设置文件的验证级别

  "系统验证级别" 分为四级,分别由 0~3 表示。"系统验证级别" 通过 PROC 文件系统来进行控制,可以由管理员根据需要进行设置。

  3.3 验证算法

  当用户请求执行某个 ELF 文件时,系统将根据图 3-2 所示的流程来判断如何验证该文件的签名值。为了提高系统效率,我们将分别为已验证过 "不完全签名值" 和 "完全签名值" 的 ELF 文件维护相应的缓存,当再次请求执行这些文件时,就可以不必重复验证其签名值了。

  

图 3-2:系统级签名值验证机制

  图 3-2 中,"验证不完全签名值" 和 "验证完全签名值" 两项都是整个验证过程的重要步骤。签名值的验证与签名值的生成相对应,验证时首先要根据相应的数据通过 3 式计算出摘要值(h′part 或 h′comp),然后再使用签名者的公钥(PKsign)通过 ○4 式解密相应的签名值,得到的对应的摘要值(h′′part或h′′comp)。最后比较 h′和h′′是否完全一致,一致则验证通过,不一致则验证失败。

共3页。 9 1 2 3 :
相关搜索:
关注此文读者还看过
文章排行
本周
本月
最近更新
关于我们|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 Powered by 天极内容管理平台CMS4i
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众-网站地图