一种细粒度的物联网设备控制流保护方法技术

技术编号:27276811 阅读:18 留言:0更新日期:2021-02-06 11:43
本发明专利技术公开了一种物联网设备的控制流保护方法,包括以下步骤:(1)设备初始化;(2)指令加密;(3)指令判别;(4)认证码获取;(5)认证码匹配;(6)指令解密。本发明专利技术利用基于密码学的方法来保护物联网设备执行程序的控制流完整性,有效保证了设备的运行时安全;通过采用基于认证码匹配的方法,实现了对返回地址的保护,同时保证密钥的安全性;同时,通过设计加密解密机制,实现对间接跳转指令的验证,提高验证效率;此外,加入跳板的设计,大大提高了方案的鲁棒性;在认证码计算和加密解密中加入控制流相关信息,强化了防护粒度,使得本发明专利技术能够更全面地防御设备面临的运行时攻击。面地防御设备面临的运行时攻击。面地防御设备面临的运行时攻击。

【技术实现步骤摘要】
一种细粒度的物联网设备控制流保护方法


[0001]本专利技术属于物联网和信息安全
,具体为一种物联网设备的控制流保护方法。

技术介绍

[0002]物联网(IoT)设备已广泛应用于交通、医药、智能电网、智慧城市、工业控制等许多重要领域。然而,这些物联网设备在方便我们的同时,也给用户隐私和生产安全带来威胁。物联网设备往往是一些嵌入式设备,在存储与计算资源上受限,安全防御能力较弱,而当其接入互联网后,又增加了攻击者的攻击面,使得物联网设备容易受到攻击。这些攻击可能导致产业链的瘫痪或隐私信息的泄露。运行时攻击,如代码重用攻击,是最先进的攻击之一,它能够劫持物联网设备的程序控制流,使设备按照攻击者的意愿运行,实现恶意行为。同时,代码重用攻击并不需要注入额外的代码,只需要利用设备中原有的良性代码片段来构造恶意行为,使得原有的一些防御手段失效,给物联网设备安全带来了巨大的威胁。因此,如何抵御代码重用攻击,保护设备的控制流完整性,是一个严峻而又必须要解决的挑战。
[0003]控制流完整性保护机制(CFI)被认为是一种较好的防御物联网设备面临的代码重用攻击的方式。它通过确保程序沿着CFG中合法的路径运行来保证设备程序控制流执行的安全。传统的CFI通过对每一个影响控制流的指令插入唯一的标签(ID),并在程序运行时检查ID来判断控制流是否被篡改。但是这类方式会带来较大的开销,因为需要存储大量的ID,并且ID的检查也会增加较大的运行时间。而为了减少CFI的开销,提出通过基于密码学的方式对程序的控制流进行检查,由于打破了管理ID的限制,大大降低了物联网设备需要的能耗,这类更为高效的CFI方案受到了研究人员的广泛关注。
[0004]然而,现有的基于密码学的设备控制流完整性检查方案还存在一些缺陷:1)粗粒度的检查机制。使用同一个密钥进行所有的加密解密操作,使得一些非法的控制流转移无法被检查到。这就是说,攻击者可以通过记录运行时其他函数栈中正确加密的返回地址,并使用这些返回地址来覆盖合法的返回地址。由于所有的加密和解密都基于同一个密钥,使得这些非法的返回地址也可以解密成功,从而绕过控制流检查机制,发动代码重用攻击。2)加密方式过于简单。简单的加密方式,导致攻击者可以推断出密钥,比如异或加密的方式,攻击者通过异或密文和明文便可以推导出密钥。一旦得到密钥后,就能任意构造可以正确解密的返回地址,绕过控制流检查机制。

技术实现思路

[0005]本专利技术的目的在于提供一种细粒度的安全的物联网设备控制流保护方法,以实现对设备控制流转移正确性的精确检查,避免运行时攻击绕过的可能,保证物联网设备运行时的安全性。
[0006]实现本专利技术目的的技术解决方案为:一种细粒度的物联网设备控制流保护方法,具体步骤如下:
[0007]步骤1,物联网设备初始化:
[0008]对物联网设备的二进制程序进行静态分析,得到设备的程序控制流图,并利用物理不可克隆函数生成设备私有的PUF密钥k1和k2;
[0009]步骤2,指令加密:
[0010]依据程序控制流图,分析得到程序中的间接转移指令,以及间接转移指令对应的转移目的地址中的目标指令,并对目标指令进行加密;
[0011]步骤3,指令判别:
[0012]设备运行加密的程序,判断当前执行指令的类型,当指令为间接函数调用指令时,转至步骤4;当指令为返回指令时,转至步骤5;当指令为间接跳转指令时,转至步骤6;其他指令则执行该指令后继续步骤3,直至运行至程序最后一条指令;
[0013]步骤4,认证码获取:
[0014]获取当前间接函数调用指令的地址SrcAddr
i
,计算临时密钥,使用临时密钥对当前需要压栈的返回地址RetAddr计算认证码HAMC,并将计算得到的认证码HAMC与返回地址RetAddr一起压入函数栈,地址SrcAddr
i
则压入另一个私有栈S中;转至步骤6;
[0015]步骤5:认证码匹配:
[0016]弹出私有栈S的栈顶元素,计算临时密钥,使用临时密钥k
i
对当前函数栈出栈的返回地址计算认证码HAMC

,并比较认证码与之前计算的压入函数栈中的认证码HMAC是否相等,若相等则表明返回地址未被篡改,程序转移至返回地址处执行,继续步骤3;若不相等则说明返回地址被篡改,遭到了返回导向编程攻击,终止设备运行;
[0017]步骤6:指令解密:
[0018]获取当前间接转移指令的转移目的地址中已经加密的目标指令;
[0019]使用当前间接转移指令的地址SrcAddr
i
和k2计算临时密钥k
i

[0020]使用k
i
进行解密,得到解密后的指令DDesIns,进行解密,得到解密后的指令DDesIns,并将解密后的指令放入指令寄存器,由CPU执行,若执行成功,则说明解密成功,即程序控制流转移正确,继续步骤3;若程序异常退出,说明解密失败,遭到了跳转导向编程攻击,终止设备运行。
[0021]优选地,对目标指令进行加密的具体方法为:
[0022]如果间接转移指令为一对一指令,使用每条间接转移指令的地址信息SrcAddr
i
和密钥k2,将相应的目标指令进行加密,得到加密的目标指令;
[0023]如果间接转移指令为多对一指令,为每一条多对一的间接转移指令插入一个跳板,跳板中的内容为加密的直接跳转指令,所述直接跳转指令的跳转目标为相应的间接转移指令的目的地址。
[0024]优选地,对一对一间接转移指令相应的目标指令以及直接跳转指令的加密方式为:
[0025][0026]式中,EDesIns
i
是加密后的目标指令;E指加密运算;DesIns
i
是指加密前的目标指令;SrcAddr
i
是间接转移指令的地址。
[0027]优选地,步骤4、5中临时密钥k
i
的计算公式为:式中,k
i
为计算得
到的临时密钥,k1为设备用于计算HMAC的私有密钥,SrcAddr
i
为间接转移指令的地址。
[0028]优选地,步骤6中临时密钥k
i
的计算公式为:式中,k
i
为计算得到的临时密钥,k2为设备用于加密和解密指令的私有密钥,SrcAddr
i
为间接转移指令的地址。
[0029]优选地,解密后的指令DDesIns具体为:优选地,解密后的指令DDesIns具体为:式中,DDesIns是解密后的目标指令;EDesIns
i
是加密的目标指令;D指解密运算;k
i
为计算得到的临时密钥,k2为设备用于加密和解密指令的私有密钥,SrcAddr
i
为间接转移指令的地址。
[0030]本专利技术与现有技术相比,其显著优点为:
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种细粒度的物联网设备控制流保护方法,其特征在于,具体步骤如下:步骤1,物联网设备初始化:对物联网设备的二进制程序进行静态分析,得到设备的程序控制流图,并利用物理不可克隆函数生成设备私有的PUF密钥k1和k2;步骤2,指令加密:依据程序控制流图,分析得到程序中的间接转移指令,以及间接转移指令对应的转移目的地址中的目标指令,并对目标指令进行加密;步骤3,指令判别:设备运行加密的程序,判断当前执行指令的类型,当指令为间接函数调用指令时,转至步骤4;当指令为返回指令时,转至步骤5;当指令为间接跳转指令时,转至步骤6;其他指令则执行该指令后继续步骤3,直至运行至程序最后一条指令;步骤4,认证码获取:获取当前间接函数调用指令的地址,计算临时密钥,使用临时密钥对当前需要压栈的返回地址计算认证码,并将计算得到的认证码与返回地址一起压入函数栈,将当前间接函数调用指令的地址压入另一个私有栈中;转至步骤6;步骤5:认证码匹配:弹出私有栈S的栈顶元素,计算临时密钥,使用临时密钥k
i
对当前函数栈出栈的返回地址计算认证码,并比较认证码与之前计算的压入函数栈中的认证码是否相等,若相等则表明返回地址未被篡改,程序转移至返回地址处执行,继续步骤3;若不相等则说明返回地址被篡改,遭到了返回导向编程攻击,终止设备运行;步骤6:指令解密:获取当前间接转移指令的转移目的地址中已经加密的目标指令;使用当前间接转移指令的地址和计算临时密钥;使用临时密钥进行解密,得到解密后的指令,并将解密后的指令放入指令寄存器,由CPU执行,若执行成功,则说明解密成功,即程序控制流转移正确,继续步骤3;若程序异常退出,说明解密失败,遭到了跳转导向编程攻击,终止设备运行。2.根据权利要求1所述的细粒度的物联网设备控制流保护方法,其特征在于,对目标指令进行加密的具体方法为:如果间接转移指令为一对一指令,使用每条间接转移指令的地址信息和密钥k2,将相应的目标指令进行加密,得到加密的目标指令;如果间接转移指令为多对一指令,为每一条多对一的间接转移指令插入一个跳板,跳板中的内容为加密的直接跳转指令,所述直接跳转指令的跳转目标为相应的间接转移指令的目的地址。3.根据权利要求2所述的细粒度的物联网设备控制流保护方法,其...

【专利技术属性】
技术研发人员:丁纬佳付安民况博裕俞研陈思
申请(专利权)人:赛尔网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1