控制流完整性保护方法及装置

    公开(公告)号:CN111898120B

    公开(公告)日:2023-10-10

    申请号:CN202010611766.9

    申请日:2020-06-29

    Abstract: 本发明实施例提供一种控制流完整性保护方法及装置,该方法包括:获取待保护程序的控制流图,确定所有间接分支指令和对应的合法目标地址;在每个合法目标地址前插入带有标签信息的NOP指令,并将对应的间接分支指令的跳转目标地址,指向NOP指令所在地址,所述标签信息根据间接分支指令所在地址确定;其中,NOP指令用于间接分支指令执行时,通过验证NOP指令中的标签信息和间接分支指令的源地址一致后,执行跳转后的指令。由于每个合法目标地址前插入带有标签信息的NOP指令,可以对不同间接转移的合法目的地址进行区分,实现了细粒度的控制流完整性保护;通过NOP指令实现,硬件开销小,不影响性能,并且具有较好的兼容性。

    链式哈希栈的影子缓存优化方法和装置

    公开(公告)号:CN110362502B

    公开(公告)日:2021-05-04

    申请号:CN201910559287.4

    申请日:2019-06-26

    Abstract: 本发明实施例提供的链式哈希栈的影子缓存优化方法和装置,添加了一个影子缓存表,当调用子函数时,保存子函数头部哈希运算的输入(返回地址和哈希值),记录该项为有效,然后指针指向最近更新的缓存项的下一项。当函数返回时,查询最近一次有效的缓存项。如果此时的输入(从栈中取出的返回地址和哈希值)与影子缓存最新的有效项相同,则不需要进行哈希计算,而是直接用影子缓存表中的缓存项来更新top寄存器,然后将影子缓存表中的该项缓存置为无效。这种方法能够加速函数体尾部对栈中返回地址和哈希值的校验,减少流水线停顿。

    控制流完整性保护方法及装置

    公开(公告)号:CN111898120A

    公开(公告)日:2020-11-06

    申请号:CN202010611766.9

    申请日:2020-06-29

    Abstract: 本发明实施例提供一种控制流完整性保护方法及装置,该方法包括:获取待保护程序的控制流图,确定所有间接分支指令和对应的合法目标地址;在每个合法目标地址前插入带有标签信息的NOP指令,并将对应的间接分支指令的跳转目标地址,指向NOP指令所在地址,所述标签信息根据间接分支指令所在地址确定;其中,NOP指令用于间接分支指令执行时,通过验证NOP指令中的标签信息和间接分支指令的源地址一致后,执行跳转后的指令。由于每个合法目标地址前插入带有标签信息的NOP指令,可以对不同间接转移的合法目的地址进行区分,实现了细粒度的控制流完整性保护;通过NOP指令实现,硬件开销小,不影响性能,并且具有较好的兼容性。

    一种细粒度控制流完整性保护实现方法及系统

    公开(公告)号:CN111898130B

    公开(公告)日:2024-01-19

    申请号:CN202010600005.3

    申请日:2020-06-28

    Abstract: 本发明实施例提供一种细粒度控制流完整性保护实现方法及系统。该方法包括:获取目标程序中若干代码片段的合法间接控制流;基于所述合法间接控制流,将对应于每一个代码片段的跳转地址替换为控制流指令地址的预设低位编码;为每一个代码片段添加预设空指令作为间接控制流的合法跳转目的标记。本发明实施例通过将程序运行中的代码片段之间的跳转地址标签替换为跳转指令自身地址的低位编码,使得内存运行的硬件开销大幅降低,同时提升了安全性。

    降低链式哈希栈性能损耗的方法及系统

    公开(公告)号:CN110378109A

    公开(公告)日:2019-10-25

    申请号:CN201910559286.X

    申请日:2019-06-26

    Abstract: 本发明实施例提供一种降低链式哈希栈性能损耗的方法及系统,该方法包括:在硬件上添加查找表,其中,查找表包括若干次历史哈希运算的输入和输出;将当前哈希运算的输入和查找表中包含的每一历史哈希运算的输入进行匹配,若查找表中存在目标历史哈希运算,将目标历史哈希运算的输出作为当前哈希运算的输出,目标历史哈希运算的输入与当前哈希运算的输入相同。本发明实施例在对目标函数进行哈希运算之前,先在查找表中进行查找,如果能在查找表中找到与当前哈希运算的输入相同的目标历史哈希运算,则直接将目标历史哈希运算的检验哈希值作为当前哈希运算的输出即可,就避免了本次哈希运算,从而降低了性能损耗。

Patent Agency Ranking