IMA/EVM使用securityfs文件系统构建内核和用户态接口。securityfs通常挂载于/sys/kernel/security。IMA/EVM在其中创建了两个文件和一个子目录。
(1)evm
用户态程序通过这个文件通知内核evm子系统,密钥“evm-key”已经准备好。写此文件需要能力“CAP_SYS_ADMIN”,只能向这个文件写入ASCII字符“1”。写入一次后,再写就会得到“EPERM”错误。读文件会得到当前evm的状态,1表示就绪,0表示还没有初始化。
(2)ima
这是一个目录,其下的文件都和ima有关。
1)binary_runtime_measurements
2)ascii_runtime_measurements
这两个文件都是只读文件,用来显示内核中管理的度量文件列表。binary_runtime_ measurements以二进制的形式输出列表内容,而ascii_runtime_measurements是文本形式。下面简要叙述一下ascii_runtime_measurements文件的内容:每行一个记录,对应一个文件的完整性度量。第一个记录特殊,对应的是引导程序,显示文件名的地方是“boot_aggregate”,计算哈希值的输入是TPM硬件的8个寄存器pcr0~pcr7。(www.xing528.com)
每行的第一列是分配给IMA使用的PCR寄存器,由编译选项CONFIG_IMA_ MEASURE_PCR_IDX决定,取值范围8~14,缺省为10。第二列是哈希值,第三列是模板名称,第四列是模板对应的文件信息(文件内容的哈希值、文件名、数字签名)。需要解释一下模板了。IMA有三个模板,名称分别为:ima、ima-ng、ima-sig。在ima模板中,计算哈希时的输入消息包括文件内容和文件名。ima-ng和ima类似,也是针对文件内容和文件名计算哈希,但是可使用的算法更多。ng就是next generation(下一代)的意思。ima-sig和ima-ng类似,但是计算哈希的输入多了一个数字签名。
3)runtime_measurements_count
这是只读文件,显示内核中管理的度量文件列表中文件的数量。
4)violations
只读文件,显示violation的次数。针对的是这样一种问题:若一个进程以读模式打开文件另一个进程以写模式打开文件,则这个文件的度量和使用就会存在冲突。
5)policy
只写文件,一行对应一条策略。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。