CN110096907B - 一种基于信息流安全验证的硬件木马检测方法 - Google Patents
一种基于信息流安全验证的硬件木马检测方法 Download PDFInfo
- Publication number
- CN110096907B CN110096907B CN201910280834.5A CN201910280834A CN110096907B CN 110096907 B CN110096907 B CN 110096907B CN 201910280834 A CN201910280834 A CN 201910280834A CN 110096907 B CN110096907 B CN 110096907B
- Authority
- CN
- China
- Prior art keywords
- information flow
- security
- input
- verification
- design
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供了一种基于信息流安全验证的硬件木马检测方法,通过为集成电路硬件设计构建信息流模型,定义硬件设计所需满足的信息流安全属性,利用EDA形式化验证工具进行信息流安全验证,通过捕捉信息流安全属性发生违反的情形来检测硬件设计中潜在的木马,并可利用本发明中信息流模型所提供的逆向追踪能力,实现木马设计的精确定位并揭示其触发机制。本发明能够有效避免硬件设计语言和验证语言之间语义差别所导致的额外设计开销,提高安全验证与木马检测的效率。
Description
技术领域
本发明涉及信息安全领域,尤其是一种硬件木马检测方法,是一种集成电路硬件设计的处理和分析方法,采用信息流安全验证技术对硬件设计进行分析,通过信息流安全验证手段,确定集成电路硬件设计中是否存在木马。
背景技术
集成电路硬件设计和供应已经成为全球性产业链。集成电路设计过程往往涉及分布在全球各地的多个团队,并且通常会大量集成来自不可信第三方的IP(IntellectualProperty)核产品,设计过程的不可控性会导致硬件设计中可能潜在硬件木马和后门等安全漏洞。硬件木马是由恶意设计修改引发的安全威胁,通常是精心构建的轻量级设计,只在特定条件下才会被激活,从而保护其在设计测试阶段不被检测到,使得木马往往在被攻击者利用并造成严重破坏后才暴露出来。
功能验证和侧信道分析是木马检测的主要手段。功能验证方法利用集成电路测试技术来提高木马触发逻辑的翻转概率或识别低翻转概率的冗余电路,然而功能验证中涉及大量的NP完全问题,难以保证木马被成功检测到。翻转概率分析可能遗漏某些类型的木马,例如采用多个离散触发信号的木马,此时,每个触发信号都具有正常的翻转概率。
另一类方法采用侧信道信号分析来捕获木马行为,试图检测由木马设计所导致的附加瞬态功率和延迟。然而,集成电路制造工艺尺寸的缩小和木马有效负载的减小严重降低了这些方法的有效性。另外侧信道分析方法大多针对物理芯片,由于芯片一旦流片后无法修改,此时检测到木马已为时过晚。理想情况下,我们应尽量在设计早期检测到潜在的安全漏洞,从而以更低的设计代价消除它们。
一些方法通过形式化验证期望的安全属性来检测木马,当安全属性发生违反时即表明可能存在木马。然而,现有的安全验证方法通常需要采用形式化语言来重新构建硬件设计的安全验证模型,形式化语言与硬件设计语言之间存在显著的语义差别,会额外增加大量的设计成本。此外,现有方法通常无法从整个设计中精确定位木马设计或揭示木马触发机制。
发明内容
为了克服现有技术的不足,弥补现有硬件木马检测技术的不足,本发明提供一种基于信息流安全验证的硬件木马检测方法。通过为集成电路硬件设计构建信息流模型,定义硬件设计所需满足的信息流安全属性,利用EDA形式化验证工具进行信息流安全验证,通过捕捉信息流安全属性发生违反的情形来检测硬件设计中潜在的木马,并可利用本发明中信息流模型所提供的逆向追踪能力,实现木马设计的精确定位并揭示其触发机制。
本发明解决其技术问题所采用的技术方案包括如下步骤:
步骤1:集成电路硬件设计网表预处理
对采用硬件描述语言(Hardware Description Language,HDL)描述的硬件电路设计网表进行分析。
每读入一条语句时,首先根据句首的关键字确定语句的类型属于模块定义、输入和输出端口定义、内部信号和寄存器定义或运算表达式;
当关键字表明语句为模块定义,输入和输出端口定义或内部信号和寄存器定义时,对模块名称、输入端口名称、输出端口名称、内部信号和寄存器名称进行存储。
当关键字表明语句为运算表达式时,关键字即为运算类型,对应于硬件电路中的一个逻辑单元;关键字之后分别是运算输出和输入信号,当一个信号同时作为两个或多个逻辑单元的运算输出或输入信号时,两个或多个逻辑单元即由该信号产生了连接关系;
利用图结构实现硬件电路设计网表的存储,即可得到硬件设计的网表图,其中,图的顶点由全部的逻辑单元组成,图的边反映了顶点之间的连接关系,对应于同时作为两个或多个逻辑单元的运算输出或输入的信号;
步骤2:逻辑单元信息流模型库的构建
信息流模型用于对信息从输入信号向输出信号的传播行为进行建模,假设逻辑单元的布尔逻辑函数为O=f(I1,I2,…,Ik,…,In),I1,I2,…,Ik,…,In,O∈{0,1},为输入I1,I2,…,Ik,…,In分配属性标签L(I1),L(I2),…,L(Ik),…,L(In),(L(I1),L(I2),…,L(Ik),…,L(In)∈{LOW,HIGH},LOW和HIGH分别编码为0和1;输入I1,I2,…,Ik,…,In的属性标签L(I1),L(I2),…,L(Ik),…,L(In)由设计的安全规范(Security Specification)定义,或由上一级的信息流模型计算得到;
构建多种不同逻辑单元的信息流模型,即可集成得到一个逻辑单元的信息流模型库;
所述构建信息流模型的详细步骤为:
逻辑单元的信息流模型根据输入I1,I2,…,Ik,…,In及其属性标签L(I1),L(I2),…,L(Ik),…,L(In),计算得到输出的属性标签L(O),定义为:
L(O)=f(I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In))
根据上述逻辑单元的信息流模型的定义,采用一个以I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In)为输入,以L(O)为输出的真值表来描述,真值表的生成规则如下:
1)当L(I1),L(I2),…,L(Ik),…,L(In)全部为LOW时,L(O)的取值为LOW;
2)当L(I1),L(I2),…,L(Ik),…,L(In)全部为HIGH时,L(O)的取值为HIGH;
3)当L(I1),L(I2),…,L(Ik),…,L(In)中L(Is),…,L(Ik),…,L(It)(1≤s,...k,...t≤n)为HIGH,其余为LOW时,直接将输入L(Is),…,L(Ik),…,L(It)从逻辑函数O=f(I1,I2,…,Ik,…,In)中去掉,得到简化函数Os,…k,…t,则当Os,…k,…t的取值为1时,L(O)的取值为HIGH;则当Os,…k,…t的取值为0时,L(O)的取值为LOW;
采用如上三个步骤,得到以I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In)为输入,以L(O)为输出的完整真值表,真值表对应于一个布尔逻辑函数,该布尔逻辑函数即为给定逻辑单元的信息流模型;
步骤3:集成电路硬件设计的信息流模型的生成
在逻辑单元信息流模型的基础上,采用映射方法生成整个集成电路硬件设计的信息流模型,具体过程如下:
将步骤1中所构建的集成电路硬件设计的网表图中的各个逻辑单元映射至步骤2中构建的逻辑单元的信息流模型库,分别为每个逻辑单元生成一个相应的信息流模型;
然后,根据硬件设计的网表图所包含的逻辑单元的连接关系,将映射中生成的信息流模型进行连接,若在硬件设计的网表图中逻辑单元1的输出O1连接到了逻辑单元2的输入Ik,则O1的属性标签L(O1)也相应连接至Ik的属性标签L(Ik),完成全部连接后即可得到整个集成电路硬件设计的信息流模型;
步骤4:安全属性的描述
设计相关的安全属性由设计的安全规范给出或由验证者负责根据安全需求描述,验证者首先根据设计的安全规范或需求将集成电路硬件设计中的顶层输入信号分为不同的安全级别;
信息流安全验证中的通用安全属性描述为高安全级别(HIGH)的信号不能流向低安全级别(LOW)的设计区域;
步骤5:安全属性的映射
将安全属性映射至设计的信息流模型,映射规则如下:
高安全级别HIGH映射为逻辑1状态;低安全级别LOW映射为逻辑0状态;信号相应地映射至其信息流标签;
在完成映射后,即可实现整个安全属性的转换;
安全属性映射实现了从抽象安全级别到验证工具可识别安全级别的转换,并将安全属性与集成电路硬件设计的信息流模型联系起来,将安全属性的检测点从原始信号转换至信号的信息流标签;
步骤6:形式化安全验证
安全验证输入包括:
1)步骤3中所生成的集成电路硬件设计的信息流模型,是本发明所采用的安全验证模型;
2)步骤5中映射后的安全属性,是安全验证工具检测的对象;
3)已知的电路输入状态,是安全验证的约束条件,有利于缩小状态空间搜索的规模,但属于可选输入;
采用EDA验证工具(如Mentor Graphics Questa Formal和Synopsys VCS),在上述验证输入的基础上进行形式化验证;
步骤7:木马检测与定位
在步骤6中,如果安全验证完全通过,则表明设计满足全部给定的安全属性,其中不存在违反此类安全属性的木马;否则,形式化安全验证将失败并返回导致安全属性发生违反的反例;
通过将EDA验证工具给出的反例作为输入条件,对步骤3中生成的集成电路硬件设计的信息流模型进行仿真测试,即可检测到木马的触发逻辑和负载行为,即可检测到木马的触发机制和负载行为,实现木马设计的精确定位。
本发明的有益效果在于所提出的基于信息流安全验证的木马检测方法采用标准硬件描述语言对集成电路硬件设计进行建模,利用标准的EDA验证工具实现安全属性的形式化验证,能够有效避免硬件设计语言和验证语言之间语义差别所导致的额外设计开销,提高安全验证与木马检测的效率。与现有木马检测技术相比,本发明可在集成电路硬件设计早期,采用标准硬件描述语言(如Verilog和VHDL)建立硬件设计的信息流模型,利用标准的EDA验证工具对设计的安全性进行形式化验证,从而检测设计中潜在的硬件木马,并可结合所构建的信息流模型和验证工具提供的反例进行仿真,进一步实现木马设计的精确定位、揭示其触发机制。
附图说明
图1是本发明基于信息流安全验证的硬件木马检测的实现流程图。
图2是本发明包含硬件木马的Trust-HUB AES-T1700测试基准的结构框图。
图3是本发明对AES-T1700进行仿真测试的结果图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
本发明针对设计过程不可控的集成电路硬件设计中潜在的硬件木马安全威胁,提出一种基于信息流安全验证的木马检测方法。该方法的工作原理是:利用硬件信息流分析方法构建硬件设计的信息流模型并采用标准硬件设计描述语言对模型进行描述,定义硬件设计所需满足的信息流安全属性,如机密性、完整性和隔离特性。然后,采用EDA工具链中的形式化验证工具,结合硬件设计的信息流模型对其预期的安全属性进行形式化验证。当信息流安全验证中检测到安全属性发生违反时,即表明硬件设计中存在恶意的硬件木马,进一步结合形式化验证工具给出的反例(Counter example),采用标准EDA测试和验证工具即可逆向追踪,精确定位木马设计和揭示其触发机制。该方法在检测导致敏感信息泄露和数据完整性破坏的信息流相关类硬件木马方面具有显著的优势。
用于实施的硬件环境是:因特尔i7-6700CPU,@3.4G 3.4G(2处理器)计算机、4.0GB内存;运行的软件环境是:Windows 7 32位操作系统,Synopsys Design Compiler,MentorGraphics QuestaFormal,Mentor Graphics QuestaSim。所用的硬件木马测试基准来源于https://www.trust-hub.org/benchmarks/trojan。
本发明以Trust-Hub硬件木马测试基准集中的AES-T1700作为测试样例。其硬件设计源代码中已植入木马,采用步骤3中的信息流模型生成算法产生AES-T1700的信息流模型,并基于该信息流模型,利用逻辑验证工具(如Mentor Graphics QuestaFormal),对信息流安全属性进行形式化验证。当验证通过时,即表明硬件设计中不存在会导致给定信息流安全属发生违反的硬件木马,反之,硬件设计中即有潜在的木马。当安全验证失败时,可结合验证工具所给出的反例,采用逻辑仿真工具(如Mentor Graphics QuestaSim)对设计进行仿真验证,根据有害信息流传播的关键路径来定位木马设计。
本发明各部分的逻辑关系如图1所示,具体实施如下:
步骤1:集成电路硬件设计网表预处理
对采用硬件描述语言(Hardware Description Language,HDL)描述的硬件电路设计网表进行分析。
每读入一条完整(根据硬件描述语言语法定义的结束符来判别语句是否结束)的语句时,首先根据句首的关键字确定语句的类型属于模块定义、输入和输出端口定义、内部信号和寄存器定义或运算表达式;
当关键字表明语句为模块定义,输入和输出端口定义或内部信号和寄存器定义时,对模块名称、输入端口名称、输出端口名称、内部信号和寄存器名称进行存储。
当关键字表明语句为运算表达式时,关键字即为运算类型,对应于硬件电路中的一个逻辑单元;关键字之后分别是运算输出和输入信号,当一个信号同时作为两个或多个逻辑单元的运算输出或输入信号时,两个或多个逻辑单元即由该信号产生了连接关系;
利用图结构实现硬件电路设计网表的存储,即可得到硬件设计的网表图。其中,图的顶点由全部的逻辑单元组成,图的边反映了顶点(逻辑单元)之间的连接关系,对应于同时作为两个或多个逻辑单元的运算输出或输入的信号;
步骤2:逻辑单元信息流模型库的构建
信息流模型用于对信息从输入信号向输出信号的传播行为进行建模,假设逻辑单元的布尔逻辑函数为O=f(I1,I2,…,Ik,…,In),I1,I2,…,Ik,…,In,O∈{0,1},仅通过观测逻辑函数输入和输出的值难以确定哪些输入流向了输出,为了实现信息流行为的建模,为输入I1,I2,…,Ik,…,In分配属性标签L(I1),L(I2),…,L(Ik),…,L(In),(L(I1),L(I2),…,L(Ik),…,L(In)∈{LOW,HIGH},LOW和HIGH分别编码为0和1;输入I1,I2,…,Ik,…,In的属性标签L(I1),L(I2),…,L(Ik),…,L(In)由设计的安全规范(Security Specification)定义,或由上一级的信息流模型计算得到;
构建多种不同逻辑单元的信息流模型,即可集成得到一个逻辑单元的信息流模型库;
所述构建信息流模型的详细步骤为:
逻辑单元的信息流模型根据输入I1,I2,…,Ik,…,In及其属性标签L(I1),L(I2),…,L(Ik),…,L(In),计算得到输出的属性标签L(O),定义为:
L(O)=f(I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In))
根据上述逻辑单元的信息流模型的定义,采用一个以I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In)为输入,以L(O)为输出的真值表来描述,真值表的生成规则如下:
1)当L(I1),L(I2),…,L(Ik),…,L(In)全部为LOW时,L(O)的取值为LOW;
2)当L(I1),L(I2),…,L(Ik),…,L(In)全部为HIGH时,L(O)的取值为HIGH;
3)当L(I1),L(I2),…,L(Ik),…,L(In)中L(Is),…,L(Ik),…,L(It)(1≤s,...k,...t≤n)为HIGH,其余为LOW时,直接将输入L(Is),…,L(Ik),…,L(It)从逻辑函数O=f(I1,I2,…,Ik,…,In)中去掉,得到简化函数Os,…k,…t,则当Os,…k,…t的取值为1时,L(O)的取值为HIGH;则当Os,…k,…t的取值为0时,L(O)的取值为LOW;
采用上述步骤,得到以I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In)为输入,以L(O)为输出的完整真值表,此完整的真值表对应于一个布尔逻辑函数,该布尔逻辑函数即为给定逻辑单元的信息流模型;
步骤3:集成电路硬件设计的信息流模型的生成
在逻辑单元信息流模型的基础上,采用映射方法生成整个集成电路硬件设计的信息流模型,具体过程如下:
将步骤1中所构建的集成电路硬件设计的网表图中的各个逻辑单元映射至步骤2中构建的逻辑单元的信息流模型库,分别为每个逻辑单元生成一个相应的信息流模型;
然后,根据硬件设计的网表图所包含的逻辑单元的连接关系,将映射中生成的信息流模型进行连接,若在硬件设计的网表图中逻辑单元1的输出O1连接到了逻辑单元2的输入Ik,则O1的属性标签L(O1)也相应连接至Ik的属性标签L(Ik),完成全部连接后即可得到整个集成电路硬件设计的信息流模型;
本发明所采用的映射方法具有线性时间复杂度,可为任意规模的集成电路设计生成信息流模型。
步骤4:安全属性的描述
设计相关的安全属性由设计的安全规范给出或由验证者负责根据安全需求描述,验证者首先根据设计的安全规范或需求将集成电路硬件设计中的顶层输入信号分为不同的安全级别;例如,在机密性分析中,将机密数据标记为HIGH,可公开观测的数据标记为LOW;在完整性分析中,将可信/关键数据标记为LOW,不可信数据标记为HIGH;
信息流安全验证中的通用安全属性(包括机密性、完整性和隔离特性)描述为高安全级别(HIGH)的信号不能流向低安全级别(LOW)的设计区域。例如,假设信号S是HIGH安全级别的,信号N是LOW安全级别的,则相应的安全属性描述为:
set S HIGH
assert N LOW
该安全属性将信号S标记为HIGH安全级别,并断言信号N必须始终是LOW安全级别;
步骤5:安全属性的映射
步骤4中所描述的安全属性和断言采用高层语言描述,便于验证者理解。但是,验证工具无法理解高层安全属性,也无法对该安全属性进行验证,为此,需要对高层安全属性进行映射和转换,以实现验证。
本发明借助于集成电路硬件设计的信息流模型实现安全属性的验证,因此,将安全属性映射至设计的信息流模型,映射规则如下:
高安全级别HIGH映射为逻辑1状态;低安全级别LOW映射为逻辑0状态;
信号相应地映射至其信息流标签,如S和N分别映射至标签L(S)和L(N);
在完成映射后,即可实现整个安全属性的转换,以步骤4中的高层安全属性为例,映射结果为:
set L(S)1
assert L(N)0
安全属性映射实现了从抽象安全级别(HIGH和LOW)到验证工具可识别安全级别(逻辑1和逻辑0)的转换,并将安全属性与集成电路硬件设计的信息流模型联系起来,将安全属性的检测点从原始信号转换至信号的信息流标签;
步骤6:形式化安全验证
安全验证输入包括:
1)步骤3中所生成的集成电路硬件设计的信息流模型,是本发明所采用的安全验证模型;
2)步骤5中映射后的安全属性,是安全验证工具检测的对象;
3)已知的电路输入状态,是安全验证的约束条件,有利于缩小状态空间搜索的规模,但属于可选输入;
本发明采用EDA验证工具(如Mentor Graphics Questa Formal和Synopsys VCS),在上述验证输入的基础上进行形式化验证;
步骤7:木马检测与定位
在步骤6中,如果安全验证完全通过,则表明设计满足全部给定的安全属性,其中不存在违反此类安全属性的木马;否则,形式化安全验证将失败并返回导致安全属性发生违反的反例。
通过将EDA验证工具给出的反例作为输入条件,对步骤3中生成的集成电路硬件设计的信息流模型进行仿真测试,即可检测到木马的触发逻辑和负载行为,即可检测到木马的触发机制和负载行为,实现木马设计的精确定位。
本发明主要针对集成电路硬件设计中的木马。木马的触发机制可以是单个输入、输入序列或计数器。木马触发时将破坏关键数据的机密性或完整性。本发明的测试示例采用Trust-HUB提供的硬件木马测试基准。就硬件电路的安全性而言,设计错误也同样危险。本发明所提出的方法同样适用于恶意(木马)和非恶意(设计缺陷)的安全漏洞。
本实施实例以Trust-HUB的AES-T1700测试基准为测试对象,展示本发明所提出的木马检测方法的步骤。如图2所示,AES-T1700测试基准包含一个通过射频(RadioFrequency,RF)信号泄漏密钥的木马。木马在2129-1次连续加密操作后被激活。此时密钥被加载到移位寄存器中,移位寄存器的最低有效位被通过RF信道泄漏。在功能测试中激活此类木马的可能性非常低。
测试中,仅为密钥指定输入和安全属性约束,不探测内部寄存器,仅观测密文和射频信号输出的安全属性标签。具体测试步骤如下:
步骤1:原始电路设计的逻辑综合
采用Synopsys Design Compiler工具对AES-T1700测试基准进行逻辑综合,并映射至and_or.lib集成电路工艺库,得到该测试基准的门级网表。
步骤2:逻辑单元信息流模型库的建立
采用真值表分析方法为and_or.lib集成电路工艺库中的逻辑单元构建信息流模型,集成后得到的信息流模型库如下,其中X_t表示信号X的属性标签。
步骤3:测试基准信息流模型的建立
利用构造算法为测试基准生成信息流模型。将步骤1中得到的门级网表中的各个逻辑单元映射至步骤2所构建的信息流模型库,即可得到AES-T1700测试基准的信息流模型。
步骤4:安全属性的描述与映射
安全验证过程中,重点关注硬件木马导致的密钥泄露问题,因此,将密钥Key的属性标签Key_t设置为HIGH(编码为1),其它输入信号的属性标签设置为LOW(编码为0)。
将密钥Key的安全属性映射至其属性标签Key_t,即Key_t=128’hFFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF,其它输入信号的属性标签映射为0,以表征密钥信号是保密的,其他输入信号是非保密的。
步骤5:形式化安全验证
密钥的机密性属性验证中,通过判断输出的属性是否为HIGH,即可确定密钥是否流向该输出。AES-T1700测试基准有两个输出,分别是密文和Antena(此处遵照测试基准中信号的拼写方式)。密码函数中,密钥流向密文是正常的,因此,应重点分析Antena输出。
使用Mentor Graphics QuestaFormal形式化验证工具来检测属性标签Antena_t是否总是0(LOW)。验证结果表明Antena_t可能为1(HIGH),表明Antena输出可能泄漏有关密钥的信息。验证结果显示:当SHIFTReg寄存器的安全属性为HIGH时,Antena输出的安全属性即为HIGH。进一步用QuestaFormal验证工具形式化证明SHIFTReg寄存器的安全属性始终为LOW。验证结果表明,当信号Tj_Trig置位时,Antena输出的安全属性即为HIGH。
步骤6:硬件木马的仿真测试
进一步对AES-T1700测试基准发生密钥泄露的条件进行分析,在Tj_Trig=1的条件下采用Mentor Graphics QuestaSim工具对测试基准的信息流模型进行仿真,以捕获导致密钥泄露至Antena的漏洞和条件。仿真结果如图3所示。
图3中,当BaudGenACC[25:23]=010时(为简化该图,另外两个信号BaudGenACC[15]=1和BaudGenACC[4]=1未显示),由于Antena_t为1(表示HIGH),则表示密钥泄露至了Antena输出。通过观察Antena信号,可以看到在前两个虚框中泄漏的是逻辑0,第三个虚框中泄露的是逻辑1,即通过移位寄存器SHIFTReg将密钥的低三位泄漏到Antena。
除了虚框所标位置外,当BonsonGenACC[25:23]=000时,Antena信号中还有其他的翻转行为,但由于属性标签Antena_t是逻辑0(表示LOW),此时不会泄漏密钥信息。信息流安全验证能够准确捕获密钥泄漏的时间和位置,揭示了木马的泄漏行为和触发机制,而功能测试或验证则通常不能。
Claims (1)
1.一种基于信息流安全验证的硬件木马检测方法,其特征在于包括下述步骤:
步骤1:集成电路硬件设计网表预处理
对采用硬件描述语言描述的硬件电路设计网表进行分析;
每读入一条语句时,首先根据句首的关键字确定语句的类型属于模块定义、输入和输出端口定义、内部信号和寄存器定义或运算表达式;
当关键字表明语句为模块定义,输入和输出端口定义或内部信号和寄存器定义时,对模块名称、输入端口名称、输出端口名称、内部信号和寄存器名称进行存储;
当关键字表明语句为运算表达式时,关键字即为运算类型,对应于硬件电路中的一个逻辑单元;关键字之后分别是运算输出和输入信号,当一个信号同时作为两个或多个逻辑单元的运算输出或输入信号时,两个或多个逻辑单元即由该信号产生了连接关系;
利用图结构实现硬件电路设计网表的存储,即可得到硬件设计的网表图,其中,图的顶点由全部的逻辑单元组成,图的边反映了顶点之间的连接关系,对应于同时作为两个或多个逻辑单元的运算输出或输入的信号;
步骤2:逻辑单元信息流模型库的构建
信息流模型用于对信息从输入信号向输出信号的传播行为进行建模,假设逻辑单元的布尔逻辑函数为O=f(I1,I2,…,Ik,…,In),I1,I2,…,Ik,…,In,O∈{0,1},为输入I1,I2,…,Ik,…,In分配属性标签L(I1),L(I2),…,L(Ik),…,L(In),(L(I1),L(I2),…,L(Ik),…,L(In)∈{LOW,HIGH},LOW和HIGH分别编码为0和1;输入I1,I2,…,Ik,…,In的属性标签L(I1),L(I2),…,L(Ik),…,L(In)由设计的安全规范定义,或由上一级的信息流模型计算得到;
构建多种不同逻辑单元的信息流模型,即可集成得到一个逻辑单元的信息流模型库;
构建信息流模型的详细步骤为:
逻辑单元的信息流模型根据输入I1,I2,…,Ik,…,In及其属性标签L(I1),L(I2),…,L(Ik),…,L(In),计算得到输出的属性标签L(O),定义为:
L(O)=f(I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In))
根据上述逻辑单元的信息流模型的定义,采用一个以I1,I2,…,Ik,…,In,L(I1), L(I2),…,L(Ik),…,L(In)为输入,以L(O)为输出的真值表来描述,真值表的生成规则如下:1)当L(I1),L(I2),…,L(Ik),…,L(In)全部为LOW时,L(O)的取值为LOW;
2)当L(I1),L(I2),…,L(Ik),…,L(In)全部为HIGH时,L(O)的取值为HIGH;
3)当L(I1),L(I2),…,L(Ik),…,L(In)中L(Is),…,L(Ik),…,L(It)(1≤s,...k,...t≤n)为HIGH,其余为LOW时,直接将输入L(Is),…,L(Ik),…,L(It)从逻辑函数O=f(I1,I2,…,Ik,…,In)中去掉,得到简化函数Os,…k,…t,则当Os,…k,…t的取值为1时,L(O)的取值为HIGH;则当Os,…k,…t的取值为0时,L(O)的取值为LOW;
采用如上三个步骤,得到以I1,I2,…,Ik,…,In,L(I1),L(I2),…,L(Ik),…,L(In)为输入,以L(O)为输出的完整真值表,真值表对应于一个布尔逻辑函数,该布尔逻辑函数即为给定逻辑单元的信息流模型;
步骤3:集成电路硬件设计的信息流模型的生成
在逻辑单元信息流模型的基础上,采用映射方法生成整个集成电路硬件设计的信息流模型,具体过程如下:
将步骤1中所构建的集成电路硬件设计的网表图中的各个逻辑单元映射至步骤2中构建的逻辑单元的信息流模型库,分别为每个逻辑单元生成一个相应的信息流模型;
然后,根据硬件设计的网表图所包含的逻辑单元的连接关系,将映射中生成的信息流模型进行连接,若在硬件设计的网表图中逻辑单元1的输出O1连接到了逻辑单元2的输入Ik,则O1的属性标签L(O1)也相应连接至Ik的属性标签L(Ik),完成全部连接后即可得到整个集成电路硬件设计的信息流模型;
步骤4:安全属性的描述
设计相关的安全属性由设计的安全规范给出或由验证者负责根据安全需求描述,验证者首先根据设计的安全规范或需求将集成电路硬件设计中的顶层输入信号分为不同的安全级别;
信息流安全验证中的通用安全属性描述为高安全级别的信号不能流向低安全级别的设计区域;
步骤5:安全属性的映射
将安全属性映射至设计的信息流模型,映射规则如下:
高安全级别HIGH映射为逻辑1状态;低安全级别LOW映射为逻辑0状态;信号相应地映射至其信息流标签;
在完成映射后,即可实现整个安全属性的转换;
安全属性映射实现了从抽象安全级别到验证工具可识别安全级别的转换,并将安全属性与集成电路硬件设计的信息流模型联系起来,将安全属性的检测点从原始信号转换至信号的信息流标签;
步骤6:形式化安全验证
安全验证输入包括:
1)步骤3中所生成的集成电路硬件设计的信息流模型,是本发明所采用的安全验证模型;
2)步骤5中映射后的安全属性,是安全验证工具检测的对象;
3)已知的电路输入状态,是安全验证的约束条件,有利于缩小状态空间搜索的规模,但属于可选输入;
采用EDA验证工具,在上述验证输入的基础上进行形式化验证;
步骤7:木马检测与定位
在步骤6中,如果安全验证完全通过,则表明设计满足全部给定的安全属性,其中不存在违反此类安全属性的木马;否则,形式化安全验证将失败并返回导致安全属性发生违反的反例;
通过将EDA验证工具给出的反例作为输入条件,对步骤3中生成的集成电路硬件设计的信息流模型进行仿真测试,即可检测到木马的触发逻辑和负载行为,即可检测到木马的触发机制和负载行为,实现木马设计的精确定位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910280834.5A CN110096907B (zh) | 2019-04-09 | 2019-04-09 | 一种基于信息流安全验证的硬件木马检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910280834.5A CN110096907B (zh) | 2019-04-09 | 2019-04-09 | 一种基于信息流安全验证的硬件木马检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110096907A CN110096907A (zh) | 2019-08-06 |
CN110096907B true CN110096907B (zh) | 2022-04-05 |
Family
ID=67444585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910280834.5A Active CN110096907B (zh) | 2019-04-09 | 2019-04-09 | 一种基于信息流安全验证的硬件木马检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096907B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659480B (zh) * | 2019-09-24 | 2021-11-05 | 重庆邮电大学 | 一种设备运行时木马电路检测与出错恢复方法 |
CN111177987B (zh) * | 2019-12-20 | 2023-09-22 | 北京天下行知科技有限公司 | 对集成电路设计进行分析的方法、装置、终端及存储介质 |
CN111221690B (zh) * | 2019-12-20 | 2023-09-22 | 北京天下行知科技有限公司 | 针对集成电路设计的模型确定方法、装置及终端 |
CN112650638B (zh) * | 2020-10-23 | 2022-01-04 | 华芯安信(北京)科技有限公司 | 一种基于门级污染标签跟踪模型的硬件安全漏洞检测方法 |
CN112487503A (zh) * | 2020-12-09 | 2021-03-12 | 电子科技大学 | 基于硬件木马数据信息统计的检测系统和方法 |
CN114238956B (zh) * | 2021-12-06 | 2024-02-23 | 西北工业大学 | 基于属性自动提取和形式化验证的硬件木马搜索检测方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10083305B2 (en) * | 2013-03-15 | 2018-09-25 | The Regents Of The University Of California | Method and system providing mutli-level security to gate level information flow |
US10719631B2 (en) * | 2016-07-27 | 2020-07-21 | Tortuga Logic Inc. | Method and system for detecting hardware trojans and unintentional design flaws |
-
2019
- 2019-04-09 CN CN201910280834.5A patent/CN110096907B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110096907A (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096907B (zh) | 一种基于信息流安全验证的硬件木马检测方法 | |
Ardeshiricham et al. | Register transfer level information flow tracking for provably secure hardware design | |
US10719631B2 (en) | Method and system for detecting hardware trojans and unintentional design flaws | |
Zhang et al. | A comprehensive FPGA reverse engineering tool-chain: From bitstream to RTL code | |
Farahmandi et al. | System-on-chip security | |
Ahmed et al. | Scalable hardware trojan activation by interleaving concrete simulation and symbolic execution | |
Li et al. | Wordrev: Finding word-level structures in a sea of bit-level gates | |
Guo et al. | Scalable SoC trust verification using integrated theorem proving and model checking | |
US10990723B2 (en) | Techniques for improving security of circuitry designs based on a hardware description language | |
Bilzor et al. | Security checkers: Detecting processor malicious inclusions at runtime | |
Koelbl et al. | Solver technology for system-level to RTL equivalence checking | |
He et al. | SoC interconnection protection through formal verification | |
Abbasi et al. | Formal verification of gate-level multiple side channel parameters to detect hardware Trojans | |
US11663382B1 (en) | Systems and methods for hardware trojan detection and mitigation | |
Deutschbein et al. | Toward hardware security property generation at scale | |
Le et al. | Tracking data flow at gate-level through structural checking | |
CN115719046A (zh) | 一种基于机器学习的门级信息流模型生成方法及装置 | |
Hu et al. | A unified formal model for proving security and reliability properties | |
Vafaei et al. | Symba: Symbolic execution at c-level for hardware trojan activation | |
Kibria et al. | Arc-fsm-g: Automatic security rule checking for finite state machine at the netlist abstraction | |
Ardeshiricham | Verification and Synthesis of Information Flow Secure Hardware Designs | |
Blackstone et al. | A unified model for gate level propagation analysis | |
Dipu et al. | Agile: Automated assertion generation to detect information leakage vulnerabilities | |
Farahmandi et al. | Validation of IP security and trust | |
Liu et al. | Inter-IP malicious modification detection through static information flow tracking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |