一种基于超级SIM卡的物联网软件完整性证明方法技术

技术编号:38392541 阅读:20 留言:0更新日期:2023-08-05 17:45
本发明专利技术涉及一种基于超级SIM卡的物联网软件完整性证明方法,属于计算机信息远程证明技术领域。通过使用动态二进制插桩工具生成软件程序的控制流图,并通过软件完整性度量公式对软件程序进行度量得到度量结果。当设备收到验证者发起的请求后,通过证明服务和请求对验证者的身份进行验证,并根据请求中的输入运行目标程序。通过运行时跟踪器获取目标程序实时的控制流数据,并将其传输到超级SIM卡。通过超级SIM卡的PUF、签名和哈希运算得到证明报告,然后证明服务将报告发送给验证者。本发明专利技术通过使用超级SIM卡,使得物联网设备无需特殊的硬件也可有效对软件完整性进行远程证明,可以有效减少实施物联网设备软件完整性证明的成本。减少实施物联网设备软件完整性证明的成本。减少实施物联网设备软件完整性证明的成本。

【技术实现步骤摘要】
一种基于超级SIM卡的物联网软件完整性证明方法


[0001]本专利技术涉及一种基于超级SIM卡的物联网软件完整性证明方法,属于计算机信息远程证明


技术介绍

[0002]随着物联网技术的不断发展,物联网设备出现在我们生活的方方面面。而这些物联网设备正面临着软件完整性被破环的威胁。为了应对这些威胁,研究者前后提出了控制流完整性(CFI,Control flow integrity)、控制流远程证明等方案。
[0003]控制流完整性通过分析程序正常的控制流,得到程序的控制流图(CFG,Control flow graph),使控制流转移在控制流图限定的范围内,从而保证软件运行时的完整性。
[0004]远程证明由一个可信的验证者和一个或多个资源受限的证明者组成。一般来说,它是验证者和证明者之间的协议。验证者从证明者那里得到一个实时且可信的报告,并通过报告检验软件完整性。在远程证明中,计算开销大的部分交由验证者完成,证明者只需完成必要的计算工作。因此远程证明十分适合资源受限的物联网设备,能够确保安全性并减少证明者的开销。
[0005]当前众多远程证明方案都需要特定的硬件,或者基于某种特定的CPU实现,这意味着需要额外的成本用于实施软件控制流证明,这对于物联网设备生产商是极大的成本。目前插卡式物联网设备广泛存在,可以将超级SIM卡作为软件完整性证明的安全防护技术,这样不仅能够减轻物联网设备生产商的研发成本,而且超级SIM卡只要没有损坏还能够重复使用,进一步减少实施软件完整性证明的成本。

技术实现思路

[0006]本专利技术要解决的技术问题是提供一种基于超级SIM卡的物联网软件完整性证明方法,用于解决上述技术问题。
[0007]本专利技术的技术方案是:一种基于超级SIM卡的物联网软件完整性证明方法,具体步骤为:
[0008]Step1:验证者对目标程序进行分析,获取目标程序的二进制指令、跳转指令的源地址和跳转指令的目的地址,并通过度量计算公式进行计算,得到各个运行路径的最终度量值,将度量值与对应的输入范围存储到验证者的设备上。
[0009]Step2:验证者产生一个随机数,然后使用密钥派生函数根据随机数生成会话所用的公私钥,并使用设备上的PUF指纹信息对随机数进行对称加密,接着生成证明请求发送给设备。
[0010]Step3:设备收到请求后,首先检查请求的新鲜度,然后根据请求中的数据和超级SIM卡计算完整性保护数据,并比较该完整性保护数据与请求中的是否相同,以此判断验证者的身份和请求是否受到篡改。
[0011]Step4:设备验证身份成功后,根据请求中的输入运行目标程序,并通过运行时跟
踪器获取目标程序运行时的控制流数据,将获取的数据传输到超级SIM卡进行哈希、签名计算,从而得到最终的证明报告,通过证明服务将该报告发送给验证者。
[0012]Step5:验证者接收到证明报告后,对证明报告进行检查,从而确定报告的新鲜度。然后使用会话公钥对证明报告中的数字签名进行验签,签名验证成功,则继续检查证明报告中的度量值和合法度量值是否相同,相同则证明设备上软件的完整性未被篡改,否则则说明设备上软件的完整性遭到了攻击。
[0013]进一步地,所述对目标程序进行分析获取的数据包括程序所有的二进制指令、跳转指令的源地址和跳转指令的目的地址。
[0014]进一步地,所述的度量计算公式为:
[0015][0016][0017]H=H(H
dm
,H
Sn
)
[0018]其中,H()是哈希函数,H
s
是静态度量值,H
d
是动态度量值,H是最终的度量值,I是软件程序的二进制代码,在程序运行时由运行时跟踪器进行拦截获取,其中E表示控制流图中的跳转边,边中的的数据包括跳转指令的源地址,跳转指令的目的地址,另外H(0)是初始哈希值,由管理部门进行设置,一般为0。
[0019]进一步地,所述的哈希算法使用的超级SIM卡支持的SM3密码杂凑算法,对称加密算法使用的超级SIM卡支持的SM4分组密码算法,数字签名算法则使用的超级SIM卡支持的SM2椭圆曲线公钥密码算法中的数字签名算法。
[0020]进一步地,所述的验证者是完全可信的,并且设备上的证明程序均存放在设备的可读内存中。
[0021]本专利技术的有益效果是:本专利技术能够同时检测控制流劫持攻击和静态攻击两种攻击,将超级SIM卡和物联网设备软件完整性证明相结合,使物联网终端设备无需添加额外的特殊硬件,也能通过超级SIM卡为物联网设备提供安全加密和轻量级信任根。由于无需额外的特殊硬件,可以有效减少物联网设备生厂商的成本。
附图说明
[0022]图1是本专利技术的整体架构图;
[0023]图2是本专利技术软件完整性远程证明流程图。
具体实施方式
[0024]下面结合附图和具体实施方式,对本专利技术作进一步说明。
[0025]实施例1:如附图1所示,一种基于超级SIM卡的物联网软件完整性证明方法,所述方法的具体步骤如下:
[0026]Step1:验证者对目标程序进行分析,获取目标程序的二进制指令、跳转指令的源地址和跳转指令的目的地址,并通过度量计算公式进行计算,得到各个运行路径的最终度量值,将度量值与对应的输入范围存储到验证者的设备上;
[0027]Step2:验证者产生一个随机数,然后使用密钥派生函数根据随机数生成会话所用的公私钥,并使用设备上的PUF指纹信息对随机数进行对称加密,接着生成证明请求发送给设备。
[0028]Step3:设备收到请求后,首先检查请求的新鲜度,然后根据请求中的数据和超级SIM卡计算完整性保护数据,并比较该完整性保护数据与请求中的是否相同,以此判断验证者的身份和请求是否受到篡改;
[0029]Step4:设备验证身份成功后,根据请求中的输入运行目标程序,并通过运行时跟踪器获取目标程序运行时的控制流数据,将获取的数据传输到超级SIM卡进行哈希、签名计算,从而得到最终的证明报告,通过证明服务将该报告发送给验证者;
[0030]Step5:验证者接收到证明报告后,对证明报告进行检查,从而确定报告的新鲜度。然后使用会话公钥对证明报告中的数字签名进行验签,签名验证成功,则继续检查证明报告中的度量值和合法度量值是否相同,相同则证明设备上软件的完整性未被篡改,否则则说明设备上软件的完整性遭到了攻击。
[0031]所述对目标程序进行分析获取的数据包括程序所有的二进制指令、跳转指令的源地址和跳转指令的目的地址。
[0032]所述的度量计算公式为:
[0033][0034][0035]H=H(H
dm
,H
Sn
)
[0036]其中,H()是哈希函数,H
s
是静态度量值,H
d
是动态度量值,H是最终的度量值,I是软件程序的二进制代码,在程序运行时由运行时跟踪器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于超级SIM卡的物联网软件完整性证明方法,其特征在于:Step1:验证者对目标程序进行分析,获取目标程序的二进制指令、跳转指令的源地址和跳转指令的目的地址,并通过度量计算公式进行计算,得到各个运行路径的最终度量值,将度量值与对应的输入范围存储到验证者的设备上;Step2:验证者产生一个随机数,然后使用密钥派生函数根据随机数生成会话所用的公私钥,并使用设备上的PUF指纹信息对随机数进行对称加密,接着生成证明请求发送给设备;Step3:设备收到请求后,首先检查请求的新鲜度,然后根据请求中的数据和超级SIM卡计算完整性保护数据,并比较该完整性保护数据与请求中的是否相同,以此判断验证者的身份和请求是否受到篡改;Step4:设备验证身份成功后,根据请求中的输入运行目标程序,并通过运行时跟踪器获取目标程序运行时的控制流数据,将获取的数据传输到超级SIM卡进行哈希、签名计算,从而得到最终的证明报告,通过证明服务将该报告发送给验证者;Step5:验证者接收到证明报告后,对证明报告进行检查,从而确定报告的新鲜度。然后使用会话公钥对证明报告中的数字签名进行验签,签名验证成功,则继续检查证明报告中的度量值和合法度量值是否相同,相同则证明设备上软件的完整性未被篡改,否则则说明设备上软件的完整性遭到了攻击。2.根据权利...

【专利技术属性】
技术研发人员:和建文孔令南冯国栋冯林李晢燊傅磊毅陈洲廷李涛张柳凤钱振东
申请(专利权)人:中国移动通信集团云南有限公司
类型:发明
国别省市:

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

1