一种针对非完备门级网表的高精度硬件后门检测方法

文档序号:35122726发布日期:2023-08-14 16:25阅读:49来源:国知局
一种针对非完备门级网表的高精度硬件后门检测方法

本发明涉及领域为硬件安全领域,针对当前芯片逆向工程技术得出的非完备门级网表,提出了一种高精度硬件后门检测方法,增强了硅后芯片硬件后门检测技术的通用性,为硅后硬件后门检测提供了新思路。


背景技术:

1、在过去二十年中,由于半导体供应链的全球化和计算设备无处不在的网络连接,硬件安全和信任已成为一个紧迫的问题。硬件后门由其隐蔽性的特点在传统芯片验证测试阶段难以被发现,加之硬件后门的负载可任意选取因此赋予了攻击者极大的攻击自由从而使得硬件后门造成的损失难以估量。

2、当前,硬件后门检测技术根据检测的执行阶段可分为硅前(pre-silicon)检测与硅后(post-silicon)检测。硅前检测主要针对流片生产前的硬件设计文件进行,如hdl文件、网表文件、gdsii文件等。硅前检测方法较为丰富,包括功能性验证、结构分析、代码和电路覆盖分析、形式化验证等。硅后检测主要针对流片生产后的成品集成电路芯片(ic)进行,可进一步分为非破坏性方法和破坏性方法。其中非破坏性方法包括功能测试和边信道分析。破坏性方法是对抗硬件后门的最高保障手段,通过逆向工程(re,reverseengineering)比对黄金ic或模型对ic进行可视验证,从最底层的物理结构排除硬件后门存在的可能。

3、2007年,dakshi agrawal等人在ieee symposium on security and privacy中首次提出“硬件后门”的概念,同时提出一种通过对芯片边信道设置“功耗指纹”的方式检测硬件后门的方法。2010年,美国伊利诺伊大学hicks等人提出了一种未使用的电路识别(uci)的检测方法。该方法在芯片设计时检测隐藏在电路中的恶意后门,其本质上是寻找在测试中未使用的电路部分,并将它们标记为潜在的恶意逻辑。2013年,美国哥伦比亚大学waksman等人提出基于电路真值表提取信号节点控制值特征(fanci),进而标记木马信号节点的检测方法。2016年,美国哈佛大学hassan salmani等人将sandia可控性/可观测性分析程序(scoap)引入硬件后门检测中并结合机器学习算法提出了一种基于门级网表可控性和可观测性的无参考硬件后门检测与恢复技术(cotd)。2018年,vashistha等人提出木马扫描仪(trojan scanner),它使用可信的gdsii布局(黄金布局)和扫描电子显微镜(sem)图像来识别在电路制造过程中对网表所做的恶意修改。2020年,stern等人使用非破坏性的后端激光探测方法检测木马。通过对两组不同的光电频率映射(eofm)图像进行比较,可以识别出木马时序器件,进而找到硬件木马时序器件(ffs)的位置。

4、ic逆向工程旨在从物理ic或掩膜数据提取出门级或功能级网表等高级抽象表示以理解或验证ic功能模型。其工艺流程包括芯片去封装、化学或等离子蚀刻、砂轮抛光、电子显微镜成相存储、图像缝合、图像识别及处理、软件自动化网表提取等步骤。随着集成电路工艺节点的突飞猛进,ic逆向工程正面临着巨大的挑战。lippmann等人提出,只要有足够的时间和资源,逆向工程可以恢复任何给定ic的构建模块,准确率高达99%,但从与硬件开发和设计相关的商业实体角度来看,其目标不是让设计完全防止逆向工程,而是将这一过程推迟到足够长的时间,以引入完全新颖的设计和技术。因此,期望在合理的时间内,逆向工程能以100%精度完成逆向进而实现后门检测是不现实的。

5、综上所述,已知对ic的硬件后门检测方法都未从逆向工程的角度考虑非完备门级网表的问题,而本方法针对非完备门级网表实现高精度后门检测,为基于逆向工程的硅后硬件后门检测补齐了应用空白。


技术实现思路

1、本发明提出了一种针对非完备门级网表的高精度硬件后门检测方法。该方法关注基于逆向工程的后门检测技术输入门级网表非完备的问题,无需黄金电路样本,该方法即能高精度地检测待测网表是否含有硬件后门,并给出可疑木马节点。解决了现有硬件后门检测方法无法对非完备门级网表进行检测的问题,并填补了基于逆向工程的后门检测技术应用空白。

2、本发明旨在逆向门级网表非完备(器件丢失或连线丢失)的情况下,结合ic逆向版图文件中断点的物理位置邻近关系以推理出断点间可能的逻辑连接关系,进而高精度地完成对ic的硬件后门检测。首先预处理并建模门级网表;其次识别并定位断点信号;然后针对断点信号迭代计算可测试性特征值以逼近原始完备网表中断点特征值;最后通过无监督聚类算法比较类间距离完成后门判断。本发明中,断点特征值会不断迭代以逼近原始值,因此需要从不同的初始条件开始计算可测试性特征值。本发明完整流程如图1所示。因而本发明技术方案为:一种针对非完备门级网表的高精度硬件后门检测方法,该方法包括:

3、步骤1、非完备门级网表预处理与建模;

4、首先,读取非完备门级网表文件,提取io及内部信号节点构成有向图顶点集合v={v1,v2,v3,,vm},集合中各顶点对象拥有信号名、驱动逻辑单元名、驱动逻辑单元类型;

5、其次,将逻辑器件输入输出信号节点对映射为有向图的边,构成边集e={e1,e2,e3,…,ei,…ek};其中某边ei=<ni,nj>表示顶点ni为某器件输入节点,且在有向图中指向同器件输出节点nj;每条边包括:边头节点名、边尾节点名、输入信号引脚名、所属逻辑器件名;

6、得到每个门级逻辑网表都映射为有向图g=(v,e),g由顶点集v和边集e组成;

7、步骤2、断点信号识别与定位;

8、将gdsii文件导入eda(电子设计自动化)工具中,并使用eda工具对版图作设计规则检查(drc)以筛选出断线信号missnodes={n1,n2,…,nm};其次,获取断线ni连接到器件的引脚名pins(ni)={p1,p2,…,pn},并将ni断点类型type(ni)作式1所示分类:

9、

10、其中,为空集,outpins={c1,so,co,s,q,qn,zn,y},其中c1,so,co,s,q,qn,zn,y为元件库中不同器件输出引脚名;即若某断线信号未连接到任一器件引脚则记作isolate类断点信号,isolate类断点信号表示孤立类断点信号,否则若该断线信号未连接到任一器件输出引脚则记作mi类断点信号,mi类断点信号表示输入缺失类断点信号,连接到任一器件输出引脚则记作mo类断点信号,mo类断点信号表示输出缺失类断点信号;

11、最后,将非isolate类断点信号ni连接的任一逻辑器件相对于ic核心左下角的归一化坐标位置(location(ni)={xi,yi},xi∈[0,1],yi∈[0,1])填入断点信号的位置属性中,断点类型填入断点类型属性中;

12、步骤3、迭代计算可测试性特征值;

13、可测试性包括3个指标:cc0(v)、cc1(v)、co(v)即信号v的组合0可控制性、组合1可控制性、组合可观察性;

14、步骤3.1:断点作io初始化;

15、定义芯片输入端口集合为i,输出端口集合为o;则对各节点作式2至5的初始化操作;

16、cc0(v)=cc1(v)=1,co(v)=∞,v∈i∪mi   (2)

17、cc0(v)=cc1(v)=∞,co(v)=0,v∈o∪mo   (3)

18、cc0(v)=cc1(v)=1,co(v)=0,v∈isolate   (4)

19、cc0(v)=cc1(v)=∞,co(v)=∞,for others   (5)

20、步骤3.2:计算可测试性特征值;

21、首先统计信号节点的拓扑次序,使得线性时间复杂度下能有序完成信号节点特征值的计算;然后根据正向拓扑顺序即从输入到输出的顺序,计算信号节点的可控性特征;最后根据逆向拓扑顺序即从输出到输入顺序,计算信号节点的可观测性特征;

22、采用kosaraju算法统计出信号节点的拓扑次序;

23、逻辑门输出信号可控性指标等于将该信号置1或0所需控制的输入信号可控性指标之和的最小值加1;

24、逻辑门输入信号可观测性指标等于输出信号可观测性指标加上将其他输入信号置为非控制值所需可控性指标之和的最小值再加1;

25、步骤3.3:断点全局平均赋值;

26、将mi类断点信号的可控性指标初始化为mo类断点信号的平均可控性,而将mo类断点信号的可观察性指标初始化为mi类断点信号的平均可观察性指标;另外,为了消除常量信号影响需对参与均值运算的信号作特征值范围检查;即对各信号作如下式6-10初始化操作;

27、cc0(v)=cc1(v)=1,co(v)=∞,v∈i   (6)

28、cc0(v)=cc1(v)=∞,co(v)=0,v∈o   (7)

29、

30、

31、

32、其中,node表示单个断点信号;

33、然后再计算一次可测试性指标为后续范围搜索赋值提供更为可靠的特征值;

34、步骤3.4:断点范围搜索赋值;

35、首先,从非孤立的断点信号出发构建一颗kd-tree;其次,对每一个mo类断点信号作一次范围搜索,将搜索得到的mi类断点信号的co特征值取平均赋给启动搜索的mo类断点信号,即式11所示;

36、

37、其中,sni={node|node∈sn∩node∈mi∩co(node)<∞}为搜索得到且co特征值有效的mi类断点信号集合,sn为kd-tree范围搜索返回节点集合;

38、同理,对每一个mi类断点信号作一次范围搜索,将搜索得到的mo类断点信号的cc1、cc0特征值取平均赋给启动搜索的mi断点信号,如式12、13所示;

39、

40、

41、其中,sno0={node|node∈sn∩node∈mo∩cc0(node)<∞}为搜索得到且cc0特征值有效的mo类断点信号集合;sno1={node|node∈sn∩node∈mo∩cc1(node)<∞}为搜索得到且cc1特征值有效的mo类断点信号集合;

42、若未搜索到目标类断点信号则将目标类断点信号平均特征值赋给启动搜索的断点信号;

43、步骤4:聚类判断;

44、首先将每个信号节点的cc0与cc1特征值合并为一个特征值cc,如公式14所示:

45、

46、其次,通过聚类算法将信号节点划分为3类;然后,通过类间距离判断各簇是否为木马信号节点簇;最后,报告检测结果。

47、进一步的,所述步骤4的聚类方法为:

48、聚类过程针对全体可控且可观察节点集n={n1,n2,…,nm}进行,首先输入各点ni∈n表示为二维特征向量的特征向量集d={(cc(ni),co(ni)),ni∈n};其次,考虑到木马节点的分布特征,选择原点、最大可观测值点、最大可控制值点作为初始簇中心集合{μ1,μ2,μ3},如式15所示:

49、

50、最后,不断遍历集合d,计算ni节点对应特征向量di与各簇中心的欧氏距离dij如式16,依据各点到最近簇中心距离划分簇如式17-18所示,其中λi为ni节点簇标记,为ni节点划入的节点簇;并更新簇中心位置如式19所示:

51、dij=||di-uj||2,di∈d,j∈{1,2,3}   (16)

52、λi=arg minj∈{1,2,3}dij    (17)

53、

54、

55、直到收敛稳定到最终节点簇划分{c1,c2,c3}以及簇中心{μ1,μ2,μ3}。

56、进一步的,所述步骤4中通过类间距离判断各簇是否为木马信号节点簇的方法为:

57、分类判断通过设定与普通节点簇标准差相关的差异阈值,当簇间距离超过阈值则判断为木马簇;首先,依据簇中心到原点距离,从小到大将各簇标记为c1,c2,c3;其次,计算c1簇标准差σ1,如式20所示:

58、

59、其中,k为c1簇节点数,μ为c1簇中心向量;设置阈值t1=3σ1,计算c1,c2类间距离为i12,若i12>t1,则判定c2,c3都为木马节点簇;若i12≤t1,则判定c2为普通节点簇,并将c1,c2视作同一正常节点簇,计算c1,c2簇标准差σ2并设置新阈值t2=3σ2以判断c3簇;计算c1,c2簇与c3簇类间距离为i12,3,若i12,3>t2则判定c3为木马节点簇,否则判定c3为普通节点簇;

60、最后,将不可控或不可观察节点以及聚类判断后的木马节点簇视作木马节点报告给用户。

61、本发明提出一种针对非完备门级网表的高精度硬件后门检测方法。该发明在ic逆向工程在有限资源条件下难以得到100%精确的逻辑网表的前提下,以高精度地完成硬件后门检测为目的。基于硬件后门节点的可测性特征值远大于正常节点的特征值,结合逆向工程得到的版图位置文件,通过io、全局平均、范围搜索的方式不断逼近原特征值,从而使得后续聚类判断可有效实施。实现了在网表非完备的条件下,高精度的硬件后门检测。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1