计算机系统安全与管理引擎的多重防护机制解析
1. 压缩模块哈希计算与安全风险
在计算机系统中,压缩模块的哈希计算方式存在一定的安全考量。通常,清单中的哈希是基于解压缩后的二进制文件计算的,而非压缩二进制文件。这意味着引导加载程序会先对模块进行解压缩,将解压缩后的模块放置在引擎的内部内存中,然后验证其完整性。
不过,这种方式存在安全隐患。未经验证的压缩二进制文件会被暂时放入内存,若压缩的容错模块被攻击者篡改,可能导致解压缩模块的缓冲区溢出,覆盖内部内存的其他区域,从而使代码注入攻击成为可能。所以,对解压缩模块进行哈希计算可能是一种较差的安全设计实践,容易出现漏洞。
为解决这一问题,实现过程中必须确保解压缩数据的缓冲区不会被解压缩算法溢出。从安全角度来看,对模块的压缩形式进行哈希计算是更好的设计,但这种方式存在内存消耗大的缺点,因为在解压缩开始前,整个压缩模块必须复制到内部内存中,且需要为压缩模块和解压缩模块都预留内存。
若对解压缩模块进行哈希计算,则无需将压缩模块复制到内存中。引导加载程序只需从闪存中按固定大小的块读取压缩模块,然后对这些块进行解压缩,最后将内部内存中的解压缩模块与清单中指定的哈希值进行验证。
在架构计算机系统时,需要考虑性能和资源消耗与安全这两个相互冲突的因素,二者之间通常需要进行权衡。对于资源不是主要问题的系统,通常更应注重安全;而对于嵌入式系统,由于计算资源有限,决策往往更加困难,需要设计师深入进行威胁分析和风险评估。
2. 内存完整性保护
2.1 内存结构与使用情况
对于安全和管理引擎,一级缓存位于处理器内部,引擎有专用的内部内存作为二级缓存,其容量根
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



