操作系统内核的动态可信度量模型(2)

来源:网络(转载) 作者:辛思远 赵勇 廖建华 发表于:2012-04-14 13:10  点击:
【关健词】可信计算;可信度量;动态度量;操作系统内核;远程证明
辛思远等:操作系统内核的动态可信度量模型计算机应用 第32卷 针对由操作系统内核的动态性引起的可信度量困难问题,本文提出了一种操作系统内核的动态可信度量(Dynamic Trusted Kernel Measurement,DTKM)模型,对

  辛思远等:操作系统内核的动态可信度量模型计算机应用 第32卷
  
  针对由操作系统内核的动态性引起的可信度量困难问题,本文提出了一种操作系统内核的动态可信度量(Dynamic Trusted Kernel Measurement,DTKM)模型,对于加载到内存、处于运行状态的操作系统内核动态数据对象进行动态度量。给出了动态完整性的概念,通过语义约束来描述内核动态元素的动态完整性,采用构造度量变量的方法统一描述度量的对象和内容,对动态的内核内存进行数据采集,验证动态度量对象是否符合预期的语义约束,实现对处于运行状态的操作系统内核的可信动态度量。
  1模型组成
  在操作系统内核加载到内存中的各种组成元素中,内核的代码段、只读数据段、系统调用表、中断描述符表、全局描述符表等元素在操作系统运行过程中是静态不变的,仍然可以使用杂凑函数进行实时的度量,而内核初始化数据段、未初始化数据段、内核页表、进程链表等数据动态变化,需要进行动态的可信度量。操作系统内核的动态元素大多都是一些动态的数据内容,这些数据会随着操作系统的运行而动态变化,而数据结构是数据存在的主要形式,研究内核的重要数据结构对象在动态变化中的变化轮廓和相互关系,表达和度量内核动态数据中的安全不变式,是内核动态度量研究的一个有效的切入点。基于上述思想,本文给出一种操作系统内核的动态可信度量模型,针对运行时操作系统内核的动态数据对象进行动态可信度量。
  模型的基本前提假设是:1)操作系统内核的关键数据结构定义是已知的;2)内核关键数据结构对象在内核空间中的起始地址是已知的。这两个假设在现实中是可行的,数据结构定义可以从操作系统内核头文件中获取,数据对象可以从内核符号映射表中获取,如Linux系统的system.map文件。
  下面给出模型的基本符号:
  
  O={o1,o2,…,on}表示操作系统内核的静态元素集,在操作系统运行过程中固定不变;
  D={d1,d2,…,dn}表示操作系统内核的动态元素集,在操作系统运行过程中动态变化;
  T={t1,t2,…,tn}表示时间集合。
  定义1信息资源未受任何授权修改和非法篡改而保持自身的完整属性称为静态完整性,SIntg(o,t)=true表示对象o的静态完整性在时刻t没有遭到破坏。
  定义2信息资源经过正常的授权修改、未经任何非法篡改而保持自身的安全语义完整属性称为动态完整性,DIntg(d,t)=true表示对象d的动态完整性在时刻t没有遭到破坏。
  定义3可信度量由一个四元组构成,M=〈e,o,f,t〉,e为进行度量行为的度量实体,o∈O∪D为度量的对象,f为度量方法,t∈T为度量时间。
  定义4 度量函数f:K×T→R, f(o,t)=r 表示在时间t对元素o采用度量函数f进行度量,得到度量结果r, 令h为静态度量函数(即为杂凑函数)。
  性质1t1,t2∈T,o∈O,SIntg(o,t1)=SIntg(o,t2)=true→h(o,t1)=h(o,t2)
  杂凑函数是最为常用的数据完整性检测方法,性质1说明当度量对象没有受到篡改时,杂凑函数的度量结果保持不变。
  性质2t1,t2∈T,o∈O,SIntg(o,t1)≠SIntg(o,t2)→h(o,t1)≠h(o,t2)
  杂凑函数的无碰撞性保证当度量对象受到篡改后杂凑函数必然输出不同的度量结果。杂凑函数的性质1和2保证其可以用来度量静态元素集O中的元素,能够有效地区分静态元素的可信与非可信状态。下面利用杂溱函数,通过构造静态度量变量组织和实施系统中的静态元素的完整性度量。
  定义5静态度量变量u由一个四元组构成u=〈name,p,sz,ct〉,name表示变量的名称,p表示起始地址,sz表示度量变量的大小,ct∈{0,1}*为度量到的内存内容,静态度量变量的集合为U,静态度量变量用于描述内核的静态元素集O。
  度量变量的执行函数instruct:u∈U×T→u′,依据度量变量u的起始地址和大小,在时刻t∈T采集内存内容,u′指u经过一次数据更新后的状态。
  静态变量度量函数s_measure:U×T→{0,1}128, 令s_measure(u,t)=h(instruct(u,t).ct),即在时刻t∈T对度量变量的内容进行采集,并计算其HASH值。
  性质3t1,t2∈T,d∈D,DIntg(d,t1)=DIntg(d,t2)=true→h(d,t1)≠h(d,t2)
  而对于动态元素集D中的元素,由于正常情况下实体本身也是变化的,因此如果其完整性遭受非法篡改,使用杂凑函数是无法区分实体的正常变化和非法篡改,需要采用其他方法对动态元素进行度量,以区分出正常变化和非法篡改。
  用以度量动态完整性的动态度量函数是可信度量研究中的一个难点,动态度量函数既要能够发现安全相关的动态元素的非法篡改,也能够辨别动态元素的正常动态变化,以保证度量结果的正确性,为信任决策提供依据。下面基于分析内核动态数据对象的语义约束的思想,给出动态度量变量的定义。
  定义6一个动态度量变量v由一个五元组构成, v=〈TP,P,S={S1,S2,…,Sn},R={R1,R2,…,Rm},I〉,动态度量的集合用V表示。动态度量变量用于描述内核动态元素,其中:TP为数据类型集合,由安全语义相关的数据结构类型构成;P数据类型度量点集合,即为数据结构在内存中的起始地址;Si为数据对象的集合;Rt为二元关系RtSi×Sj;I为Si和Rt的构建规则集;I中构建规则的语法为:
  
  I的一条规则Q,LIN表示对于量词Q描述的数据对象,当条件L成立时,执行集合的更新操作IN。
  一个动态度量变量不仅描述了一个度量对象的数据类型、度量地址,还明确了所描述的数据对象集和关系集的采集方法。通过对动态度量变量的度量,能够从度量点获取原始数据,并依赖于数据类型和集合构建规则构建出数据对象集合及其关系,为描述和检验动态数据的安全语义提供了数据基础。
  定义7动态度量变量相关函数:
  度量变量与动态元素映射des:D→V,表示动态元素d∈D由度量变量v∈V描述;
  对象集类型函数type:S→TP, 数据对象集的数据类型;
  构建规则目标函数object:I→S∪R,表示一条构建规则所构建的集合;
  规则执行函数exec:i∈I×P×TP→object(i)′,表示从度量点p∈P依据数据类型tp∈TP开始执行规则i后,object(i)被成功更新为object(i)′; (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.