本发明涉及一种基于超级sim卡的物联网软件完整性证明方法,属于计算机信息远程证明。
背景技术:
1、随着物联网技术的不断发展,物联网设备出现在我们生活的方方面面。而这些物联网设备正面临着软件完整性被破环的威胁。为了应对这些威胁,研究者前后提出了控制流完整性(cfi,control flow integrity)、控制流远程证明等方案。
2、控制流完整性通过分析程序正常的控制流,得到程序的控制流图(cfg,controlflow graph),使控制流转移在控制流图限定的范围内,从而保证软件运行时的完整性。
3、远程证明由一个可信的验证者和一个或多个资源受限的证明者组成。一般来说,它是验证者和证明者之间的协议。验证者从证明者那里得到一个实时且可信的报告,并通过报告检验软件完整性。在远程证明中,计算开销大的部分交由验证者完成,证明者只需完成必要的计算工作。因此远程证明十分适合资源受限的物联网设备,能够确保安全性并减少证明者的开销。
4、当前众多远程证明方案都需要特定的硬件,或者基于某种特定的cpu实现,这意味着需要额外的成本用于实施软件控制流证明,这对于物联网设备生产商是极大的成本。目前插卡式物联网设备广泛存在,可以将超级sim卡作为软件完整性证明的安全防护技术,这样不仅能够减轻物联网设备生产商的研发成本,而且超级sim卡只要没有损坏还能够重复使用,进一步减少实施软件完整性证明的成本。
技术实现思路
1、本发明要解决的技术问题是提供一种基于超级sim卡的物联网软件完整性证明方法,用于解决上述技术问题。
2、本发明的技术方案是:一种基于超级sim卡的物联网软件完整性证明方法,具体步骤为:
3、step1:验证者对目标程序进行分析,获取目标程序的二进制指令、跳转指令的源地址和跳转指令的目的地址,并通过度量计算公式进行计算,得到各个运行路径的最终度量值,将度量值与对应的输入范围存储到验证者的设备上。
4、step2:验证者产生一个随机数,然后使用密钥派生函数根据随机数生成会话所用的公私钥,并使用设备上的puf指纹信息对随机数进行对称加密,接着生成证明请求发送给设备。
5、step3:设备收到请求后,首先检查请求的新鲜度,然后根据请求中的数据和超级sim卡计算完整性保护数据,并比较该完整性保护数据与请求中的是否相同,以此判断验证者的身份和请求是否受到篡改。
6、step4:设备验证身份成功后,根据请求中的输入运行目标程序,并通过运行时跟踪器获取目标程序运行时的控制流数据,将获取的数据传输到超级sim卡进行哈希、签名计算,从而得到最终的证明报告,通过证明服务将该报告发送给验证者。
7、step5:验证者接收到证明报告后,对证明报告进行检查,从而确定报告的新鲜度。然后使用会话公钥对证明报告中的数字签名进行验签,签名验证成功,则继续检查证明报告中的度量值和合法度量值是否相同,相同则证明设备上软件的完整性未被篡改,否则则说明设备上软件的完整性遭到了攻击。
8、进一步地,所述对目标程序进行分析获取的数据包括程序所有的二进制指令、跳转指令的源地址和跳转指令的目的地址。
9、进一步地,所述的度量计算公式为:
10、
11、
12、h=h(hdm,hsn)
13、其中,h()是哈希函数,hs是静态度量值,hd是动态度量值,h是最终的度量值,i是软件程序的二进制代码,在程序运行时由运行时跟踪器进行拦截获取,其中e表示控制流图中的跳转边,边中的的数据包括跳转指令的源地址,跳转指令的目的地址,另外h(0)是初始哈希值,由管理部门进行设置,一般为0。
14、进一步地,所述的哈希算法使用的超级sim卡支持的sm3密码杂凑算法,对称加密算法使用的超级sim卡支持的sm4分组密码算法,数字签名算法则使用的超级sim卡支持的sm2椭圆曲线公钥密码算法中的数字签名算法。
15、进一步地,所述的验证者是完全可信的,并且设备上的证明程序均存放在设备的可读内存中。
16、本发明的有益效果是:本发明能够同时检测控制流劫持攻击和静态攻击两种攻击,将超级sim卡和物联网设备软件完整性证明相结合,使物联网终端设备无需添加额外的特殊硬件,也能通过超级sim卡为物联网设备提供安全加密和轻量级信任根。由于无需额外的特殊硬件,可以有效减少物联网设备生厂商的成本。
1.一种基于超级sim卡的物联网软件完整性证明方法,其特征在于:
2.根据权利要求1所述的基于超级sim卡的物联网软件完整性证明方法,其特征在于:所述对目标程序进行分析获取的数据包括程序所有的二进制指令、跳转指令的源地址和跳转指令的目的地址。
3.根据权利要求1所述的基于超级sim卡的物联网软件完整性证明方法,其特征在于,所述的度量计算公式为:
4.根据权利要求1所述的基于超级sim卡的物联网软件完整性证明方法,其特征在于:所述的哈希算法使用的超级sim卡支持的sm3密码杂凑算法,对称加密算法使用的超级sim卡支持的sm4分组密码算法,数字签名算法则使用的超级sim卡支持的sm2椭圆曲线公钥密码算法中的数字签名算法。
5.根据权利要求1所述的基于超级sim卡的物联网软件完整性证明方法,其特征在于:所述的验证者是完全可信的,并且设备上的证明程序均存放在设备的可读内存中。