回顾一下,可信计算希望将人类社会中的信任模型移植入计算机领域,但是信任不好度量于是就退一步,使用完整性。完整性的本义是诚信,诚信在计算机中无法实现,就再退一步,将文件的完整性衡量变为判断文件内容是否被篡改。实现这一目标的工具就是密码哈希算法。
Linux内核中的IMA和EVM专注于文件的完整性保护,这种保护的基础是密码哈希算法虽然IMA/EVM是可信计算的一个组成模块,但是IMA/EVM的设计者增加了一些功能,使得它们在没有可信计算硬件——TPM的情况下,也可以发挥一些完整性保护的作用。
1.IMA
IMA从Linux 2.6.30开始进入Linux内核主线。功能包括:
(1)收集(collect)——度量文件,即计算文件的哈希值。
(2)存储(store)——将度量值放入内核维护的一个列表中。并且如果TPM硬件存在,IMA会申请TPM中的一个PCR(Platform Configuration Register)。IMA的存储功能会扩展这个PCR,即将度量值和这个PCR中的值进行计算,将计算结果存回PCR。
(3)证明(attest)——如果TPM硬件存在,使用TPM对TPM分配给IMA的PCR的值签名。在此基础上,远程证明成为可能 [1] 。 (www.xing528.com)
(4)评估(appraise)——事先将文件的完整性度量值存储在文件扩展属性security.ima中内核针对这个值判断文件内容是否被篡改。
IMA的前三个功能是同一批进入内核的,第四个功能从Linux 3.7开始正式进入主线。
2.EVM
EVM从Linux 3.3开始正式进入主线。它的功能只有一个:保护(protect),保护文件的安全相关的扩展属性。安全相关的扩展属性包括:SELinux用到的“security.selinux”,SMACK用到的“security.SMACK64”,前面提到的IMA用到的“security.ima”,capability用到的“security.capability”。这些扩展属性的值是相关安全机制的基础。这些值如果被篡改,安全就无从谈起。
无论IMA还是EVM,都不是用来防护系统运行中恶意软件对文件的破坏的,系统运行中对文件的保护是由其他机制,比如LSM,来实施的。IMA和EVM针对的是离线攻击的威胁。比如,攻击者在关机的状态下,将硬盘拆出,插到另一台计算机中,修改其中的文件,然后把硬盘插回原来的计算机。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。