微信公众号
armv8构架从8.0/8.1/8.2/8.3/8.4/8.5持续演化,增强安全和性能。
在armv8.5中,引进了以下功能:
-
Memory Tagging
-
跳转目标标识
-
真随机数产生器
-
KASLR保护构架扩展
-
Spectre和Meltdown相关的扩展
-
对虚拟化的细微扩展(Trap cache和TLB操作相关)
-
进入异常时不做Context Change的同步
-
数据cache clean到深层presistence
-
代码运行时被修改的一致性改进
其中1-5是对安全性的增强。
memory tagging通过对分配的内存进行标志,从而可以避免因为stack overflow, 或是usafter free的攻击带来的漏洞的危害,且有助于检测潜在的问题。
armv8.3-a引进的pointer authentication功能通过对指针(包括函数返回地址)的认证,可以抵御ROP攻击。
BTI通过限制跳转可以跳转的位置,抵御JOP攻击。
结合pointer authentication和BTI,可以很大程度上避免可能的ROP和JOP攻击。
代码运行时被修改的一致性改进可以避免需要通过ISB进行指令同步操作,对JIT的生产并执行代码过程行为规范化和简化,有助于提供JIT的代码性能。
有关详细内容,请参见arm构架部门产品经理 Matthew在Linaro connect 2018上的分享:
更多内容请关注微信公众号