可信计算与多级安全

计算机安全的Bell—lapadula模型


  1. BLP模型作为访问控制模型被开发出来,在模型中,每个主体和每个客体都被分配一个安全类,安全类形成严格的层次结构,称为安全级别。
    例:美国军方的密级划分方案:绝密级>机密级>秘密级>受限级>无密级
  2. 主体具有指定级别的安全许可,客体具有指定级别的安全等级,安全类控制主体访问客体的方式,该模型定义了四种访问方式:读,追加,写,执行。
  3. 当需要定义数据的多个范畴或级别时,这个要求被称为多级安全。
  • 要求保证机密性的多级安全系统必须实施:

不上读:主体只能读取相同或者安全级别更低的客体,称为简单安全性-ss特性。
不下写:主体只能写入相同或更高安全级别的客体,称为*特性。
这样做的目的是防止攻击者读取更高级别客体的数据然后写到更低级别的客体中。

  • 这两个特性规定了强制访问控制中的机密性。BLP模型还规定了自主访问控制:
    ds-特性:一个个体或角色可以基于文档属主,在MAC规则的约束下授予另一个主体或角色对一个文档的访问权。主体只能执行它具有的授权且必须满足MAC规则的访问。
  1. BLP模型的形式化描述
  • 模型基于系统当前的状态,状态用四元组(b,M,f,H)描述,定义如下:

当前访问集b:形如(主体,客体,访问方式)的三元组的集合。三元组(s,o,a)表示s当前正行驶访问权,就是s正以方式a访问客体o。
访问矩阵M:矩阵元素Mij表述主体Si被允许对客体Oj的访问方式。
级别函数:该函数给每一个主体和客体分配一个安全级别。它包含三个函数:fo(Oj)是客体oj的密级,fs(Si)是主体Si的安全许可,fc(Si)是主体当前的安全许可,主体当前的安全许可可以是最大安全许可更低的级别。
层次H:一棵有向有根树,其结点对应系统中的客体,客体的安全级别必须大于或等于其父结点的安全级别。

  • BLP的三个特性:

ss-特性:当前访问集b中每个形如(Si,Oj,读)的元组具有的性质fc(Si)>= fo(Oj
*特性:当前访问集每个形如(Si,Oj,追加)的元组具有的性质fc(Si)<= fo(Oj),当前访问集每个形如(Si,Oj,写)的元组具有的性质fc(Si)= fo(Oj)
ds特性:如果(Si,Oj,Ax)是当前访问,必须有Ax∈M[Si,Oj]

  • 这3个特性用来定义机密性安全系统,安全系统具有下列特征:

系统当前安全状态(b,M,f,H)是安全的当且仅当b的每个元素都满足这三个特性。
系统的安全状态被任何导致系统四个分量(b,M,f,H)之中任何一个发生变化的操作所改变
安全操作系统保持安全,只要任何状态变化不违背这三个特性。

  1. BLP模型的抽象操作的规则
  • 基于能够改变系统状态的抽象操作的规则:

获得访问:添加三元组(主体,客体,访问方式)当前访问集b
释放访问:在当前访问集b中删除三元组(主体,客体,访问方式)
改变客体级别:改变某个客体Oj的fo(Oj)的值来修改客体的安全级别。
改变当前级别:改变某个主体Si的fc(Si)的值来修改主体当前的安全级别。
给予访问许可:添加访问方式到访问许可矩阵M中,供主体用来为另一个主体授予对客体的访问权。
废除访问许可:删除访问矩阵中M的某一项
创建客体:讲一个客体附加到当前结构H中作为叶子结点
删除客体组:从H中移除客体及层次结构中位于其下方的所有其他客体。

  1. BLP模型没有提供对客体的降级管理,即使多级安全要求可以请求这种从高级到低级的信息流,只要其反映了授权用户的意愿。
  2. BLP模型的限制
  • 在一个多级安全的系统中,机密性与完整性不能同时保证。
  • 可用性方面的严重限制是在出现隐蔽通道时产生合谋者问题。

Biba完整性模型


  1. BLP模型涉及机密性,关心信息的非授权泄漏,Biba模型则涉及完整性,关心数据的非授权修改。
  2. Biba模型旨在处理数据必须对多个或所有安全级别的用户可见,但是只能由授权主体以可控的方式修改的情况。
  3. Biba模型涉及主体和客体,每个主体和客体都被分配一个完整级别,分别用I(S)和I(O)表示主体S和客体O的完整性级别,可以采用简单的层次结构的密级分配方案,按照由低到高的严格次序排列。
  4. Biba模型的访问方式:修改,观察(读),执行,调用。
  5. 严格完整性策略,基于如下规则:
  • 简单完整性:主体可以修改客体仅当主机完整性级别大于客体的完整性级别,I(S)>=I(O)
  • 完整性禁闭:主体可以读客体仅当主体的完整性级别小于客体的完整性级别,I(S)<=I(O)
  • 调用性质:一个主体可以调用另一个主体仅当第一个主体的完整性级别大于第二个主体的完整性级别I(S1)>=I(S2)

Clark-Wilson完整性模型(CWM)


  1. 该模型基于传统上用于实施安全策略的两个概念:
  • 良好的事务:用户不能随意操纵数据,只能以受控的方式操作数据,以保持或确保数据的完整性。
  • 用户自责分离:创建事务的人不允许执行事务
  1. 模型对数据和操作数据的事务加以完整性控制
  2. 模型的主要组件如下:
  • 受约束的数据项(CDI):受到严格完整性控制的主体
  • 无约束的数据项(UDI):不检查的数据项
  • 完整性验证过程(IVP):旨在确保所有的CDI符合某个应用专用模型的完整性和一致性
  • 转换过程(TP):将CDI从一个一致状态改变到另一个一致状态的系统事务。
  1. CWM通过TP的认证和实施规则来实施完整性:
  • 认证规则是对IVP和TP行为的安全策略限制
  • 实施规则是归档认证规则目标建立系统安全机制,规则如下:

C1:所有IVP必须完全保证当其运行时所有CDI处于有效状态
C2:必须讲一个从有效状态开始的CDI转换到一个有效的最终状态。

E2:系统必须维护一个形如(UserID, Tpi, (CDia, CDib, CDic … ))的关系列表,将用户、 TP和TP可以代表用户访问的数据对象关联起来。它必须确保只有其中一个关系描述的执行在运行.
E1:系统必须维护规则C2指定的关系列表,必须确保任何CDI被一个TP唯一操纵,其中TP运行在某个关系指定的CDI上。
C3:E2的关系列表中必须被认证可满足职责分离要求
C4:所有的TP必须被认证将所有允许重构操作所必须的信息写入日志
C5:任何取UDI为输入值的TP,对任何可能的UDI值,必须仅能执行有效的事务,否则不进行转换。转换应该将来自 UDI的输入转换为CDI ,否则UDI 被拒绝。
E4:仅有被允许认证的实体可以改变与其他实体关联的实体列表,特别是与CDI关联的TP列表与TP关联的用户列表,能够认证实体的主体可能对该实体没有执行权。


中国墙模型


  1. 该模型是为发生利益冲突的商业应用开发的,利用了自主和强制访问控制概念。
  2. 该模型的要素如下:
  • 主体:期望访问受保护客体的活动实体。包括用户和进程。
  • 信息:按三级层次结构组织公司的信息

客体:独立的信息项,每一项对应一家公司。
数据集(DS):对应同一家公司的所有客体
利益冲突类(CI):所有处于竞争地位的公司的数据集

  • 访问规则:读,写访问规则。
  1. CWM不为主体和客体分配安全级别,因此不是真正的多级安全模型。
  2. 由主体以前的访问历史决定访问控制,中国墙策略的基础是主体被允许访问的信息不能与其拥有的任何其他信息相冲突,一旦主体访问一个数据集中的信息,就立起一堵墙来保护相同CI中的其他数据集的信息,其他CI中的信息最初被认为不在墙的任何一侧,而是处于局外,每个主体被它自己的墙所控制-不同主体的墙是不同的。
  3. 两个规则:
  • 简单安全原则:主体S可以读客体O仅当客体O与S已访问的客体在同一个DS中或者客体O属于S尚未访问任何信息的一个CI。

简单安全规则不会阻止引起利益冲突的间接信息流:
在这里插入图片描述
例:如果john被允许从石油公司A的DS中读取数据,并允许写入银行A的DS,那他就可以将关于石油公司A的信息,那他就可以将石油公司A的信息写入银行A的DS中,这在图中表示将银行A中的第一个客体的值改为g,然后Jane可以读取该数据,这样,Jane可以同时访问石油公司A和石油公司B的信息,产生利益冲突,为了避免这样情况,CWM制定了的第二个规则。

  • *-特性原则:主体S可以写客体O仅当主体S可以依据简单安全原则读客体O并且S能访问的所有客体都与O在同一个DS中。也就是说主体要么不能写,要么必须在同一个DS中写,不将一个CI的信息写到另一个CI中。

可信系统的概念


  1. 与信任相关的术语
  • 信任:系统完成其宣称的功能,不执行多余的功能的相信程度。
  • 可信系统:被相信能使给定一组属性达到规定的保证程度的系统。
  • 可信赖性:使系统值得信任的保证,可以用形式化分析或代码复查加以保障。
  • 可信计算机系统:部署足够的硬件和软件保障措施允许对各种敏感或机密信息同时处理的系统。
  • 可信计算基(TCB):系统中用来实施特定策略的一部分,TCB必须抗篡改,抗欺骗,TCB应该足够小,以便系统地分析。
  • 保证:确保系统按照安全策略所期望的开发和运行的过程。
  • 评估:评定产品是否具有对其要求的安全特性。
  • 功能性:产品提供的安全特性。
  1. 参照监视器
  • 可信系统和可信操作系统基于参照监视器的思想。
  • 参照监视器是计算机硬件和操作系统控制部件,通过主体和客体的安全参数来控制主体对客体的访问。
  • 参照监视器可以访问一个叫做安全内核数据库的文件,其中列出了每个主体的访问权和每个客体的保护属性(密级)。
  • 参照监视器执行不上读,不下写的安全规则,并具有下列特性:

完全干预:安全规则作用于每次访问,而不是仅仅作用域某些访问。

完全干预意味着对内存,磁盘上的数据每次访问都要干预

隔离:保护参照监视器和数据库不被非授权修改。

隔离要求不管攻击多么聪明,他都不能改变参照监视器的逻辑或者安全内核数据库的内容。

可验证性:参照监视器的正确性必须是可证明的,能够从数学上证明参照监视器执行了安全规则并提供了完全干预和隔离。

数据证明要求与全功能计算机一样的复杂的某些事物来说非常困难,可以提供这种验证的系统被称为可信赖系统。

  • 审计文件:重要的安全事件如检测出的安全违例和安全内核数据的授权改变,都保存在审计文件中。

多级安全的应用


  1. 多级安全的定义(MLS):具有处于多个安全级别的系统资源,允许具有不同安全许可和“需知”的用户并发访问,也能阻止用户访问其缺乏授权的资源。
  2. 多级安全思想的两个应用领域:基于角色的访问控制和数据库安全。
  3. 基于角色的访问控制中的多级安全:
  • RBAC中如何实现MLS:
   最小上界就是分配给角色的所有客体安全等级的最大值,最大下界就是分配给角色所有客体安全等级的最小值。
  • 前面的定义和约束实现了BLP模型
  • 一个角色可以包含多个客体的访问许可,角色r-level表示分配给角色对象的最高安全等级,简单安全性不上读要求用户可以分配给一个角色仅当用户的许可大于或等于该角色的r-level。
  • 角色的w-level表示他的客体的最低安全等级,*-安全特性(不下写)要求用户分配给一个角色仅当用户的许可低于或等于该角色的许可。
  1. 数据库安全与多级安全
  • 关系数据库上就密级划分粒度而言实施多级安全的可能方法:

整个数据库:整个数据库可以划分为秘密级或受限级,在服务器上与其他文件一起维护。
单个表
单个列
单个行
单个元素

  • 读访问:对于读访问,数据库系统需要执行简单安全原则(不上读),如果密级划分粒度是整个数据库级或表级,这是很容易实现的。
    但是如果按列划分密级:
    在这里插入图片描述
    考虑下面代码:
SELECT Ename 
FROM Employee 
WHERE Salary> 50K

返回非受限数据但是泄漏了受限数据,即是否存在工资大于50k,如果存在,是哪些职工。
按行划分密级:
在这里插入图片描述
考虑下面一段代码:

SELECT Ename 
WHERE Employee. Eid = Projects. Eid AND Projects.Project ID = 500

添加新的Project表,由Eid,ProjectID,ProjectName组成,假设Project表除了ProjectID是500到599的项目之外都是非受限的。该请求被授权,他将返回employee表中的非受限信息,但是泄漏了被分配到项目500的员工。

按元素划分密级不会引入新的问题。

  • 写访问:对于写访问,数据库系统需要执行*-安全规则(不下写)
    假设按列,按行或按元素来划分粒度,具有低许可的用户请求插入一行,改行的主键与表中处于更高密级的主键相同,DBMS本质有3种选择:

通知用户具有相同主键的行已经存在,拒绝插入。但这似乎不合乎要求,因为它使得用户知道存在具有指定主键值更高密级的行。
用具有低密级的新行替换已有行,这也不合乎要求,因为它将允许用户改写对其不可见的数据,从而破坏了数据的完整性。
插入具有低密级的新行而不修改具有高密级的已有行,这被称为多实例。避免了推理和数据完整性问题,但是产生了具有冲突项的数据库。


可信计算与可信平台模块


  1. 可信计算平台(TPM):用于实现可信计算的硬件/软件方法的心脏部件的硬件模块。
  2. 可信计算(TC):指这种硬件软件方法。
  3. TC方法在个人计算机主板或智能卡上部署一个TPM芯片,或将其集成到主处理器中,再加上某种意义上获准或经认证与TPM一起工作的硬件和软件。
  4. TC方法:TPM生成由在系统中传输数据的脆弱部件的共享密钥,密钥可以用来加密在机器中流动的数据,TMP还与TC可用软件一起工作,软件可以确保接受的数据是可信赖的,系统可以确保软件本事是可信赖的。
  5. TC提供三个基本服务:
  • 鉴别引导

鉴别引导负责分阶段的引导操作系统,确保操作系统的每个部分在其加载时是获准使用的版本
OS用引导ROM中一小段代码开始引导,这一小段代码用来引导磁盘块中更多的代码,转而执行这些代码,这个过程持续,使得更多更大的OS代码块被引进,一直到整个OS引导过程完成,驻留OS被引导。
TC硬件在每个阶段检验引进的软件是否有效,这可以通过验证与软件关联的数字前面来完成,TPM保存加载进程的篡改证据日志,用加密散列函数检测任何对日志的篡改。
TC可用系统维护硬件和软件组件的获准列表,为了配置一部分硬件或加载一部分软件,系统检查该组件是否在获准列表中,是否是数字签名的,它的序列号是否已被撤销,其结果是配置了处于明确定义状态,具有获准组件的硬件,系统软件和应用。

  • 认证服务

一旦完成了配置并有TPM记入日志,TPM就可以认证其他方的配置,TPM可以通过用其私钥签署配置信息的格式化描述来产生数字证书。
用户可以信任正在使用的配置违违背修改,因为:

TPM被认为是可信赖的,我们不需要对TPM本事进一步认证
仅有TPM拥有其本身的私钥,接收方可以用TPM的公钥来验证签名

为了确保配置是最新的,请求者当请求来自TPM的数字签名证书以随机数的形式发出询问,TPM签名的数据包括配置信息和附加的随机数,请求者因此可以验证证书是否有效且最新。
TC方案提供认证的层次方法,TPM认证硬件/OS配置,然后OS认证应用程序和配置。

  • 加密服务

加密服务使得用这种方式加密的数据仅能由某台机器在某种配置下可以解密
TPM维护这台机器唯一主秘密密钥,根据这个密钥,TPM生成该机器的每种可能配置的秘密加密密钥。
如果在机器上创建不同配置,那么新配置不能解密那些用不同配置加密的数据。
可以同认证一样向上拓展,可以为应用提供加密密钥,以便应用能加密数据,而解密只能由运行在期望OS的期望版本上的期望应用的期望版本完成。
这些加密数据可以保存在本地,仅由保存数据的应用获取,或者传输到远程主机的对等应用,对等应用必须具有相同的配置以解密数据。

  1. TPM功能
  • I/O:所有命令通过I/O部件进出,I/O提供了与其他TPM组件的通信。
  • 加密协处理器:为加密及其相关除了特征的处理器,该组件具体加密算法包括RSA加密/解密,基于RSA的数字签名和对称加密。
  • 密钥生成器:产生RSA公钥/私钥对和对称密钥
  • HMAC引擎:在认证协议中使用
  • 随机数生成器:该组件产生各种加密算法使用的随机数,包括密钥的生成,数字签名中的随机性和不重性。不重性指在询问协议中一个随机数只用一次。
  • SHA-1算法:实现了用在数字签名和HMAC算法中的SHA算法
  • 电源检测:管理与平台电源状态相结合的TPM电源状态。
  • 可选配置:提供允许客户/用户决定是否启用的TPM安全机制
  • 执行引擎:运行程序代码,执行接收I/O端口的TPM命令
  • 非易失性存储器:用来存储TPM的永久身份和状态参数
  • 易失性存储器:临时存储执行函数参数及可变参数如当前TPM状态,加密密钥和会话信息。
  1. 保护存储
  • TPM生成并信任层次中的许多加密密钥,层次结构中的根是由TPM生成并仅能有TPM访问的根密钥,其他密钥可以由这个密钥生成,并由层次结构的根更近密钥加密而得以保护。
  • 可信平台的一个重要特征是TPM保护对象可以被密封成平台的某个软件状态。当TPM保护对象被创建时,其创建者标出如果秘密被泄漏的话必须处于的软件状态。当TPM拆封TPM保护对象(在TPM 内部,不被外界所见)时,TPM检验当前软件状态是否符合标出的软件状态。如果符合,则TPM允许访问秘密;如果不符合,则拒绝访问。
  • 实例:一个用户想要访问本地存储的加密文件

用来加密文件的对称密钥与文件保存在一起。密钥本身用TPM能访问的另一个密钥加密。将受保护密钥提交给TPM并请求将其告诉该应用。
与受保护密钥关联的是可以访问该密钥的硬件/软件配置清单。 TPM验证当前己置与揭开密钥所需的配置是否相符。此外,提出请求的应用必须被特别授权才能访问密钥。 TPM使用授权协议来验证授权。
如果当前配置被允许访问受保护密钥,那么TPM就解密该密钥并将其交给应用。
应用使用该密钥解密文件。应用被信任,可以安全地丢弃密钥。


发布了28 篇原创文章 · 获赞 2 · 访问量 2054

猜你喜欢

转载自blog.csdn.net/qq_39249347/article/details/104290521