CN110865936B - 一种面向集成电路安全功能的白盒插桩fpga原型验证方法 - Google Patents

一种面向集成电路安全功能的白盒插桩fpga原型验证方法 Download PDF

Info

Publication number
CN110865936B
CN110865936B CN201911048480.8A CN201911048480A CN110865936B CN 110865936 B CN110865936 B CN 110865936B CN 201911048480 A CN201911048480 A CN 201911048480A CN 110865936 B CN110865936 B CN 110865936B
Authority
CN
China
Prior art keywords
integrated circuit
fpga prototype
pile inserting
white box
data
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
Application number
CN201911048480.8A
Other languages
English (en)
Other versions
CN110865936A (zh
Inventor
张文建
刘勤让
宋克
沈剑良
魏帅
陈艇
于洪
高彦钊
赵博
虎艳宾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN201911048480.8A priority Critical patent/CN110865936B/zh
Publication of CN110865936A publication Critical patent/CN110865936A/zh
Application granted granted Critical
Publication of CN110865936B publication Critical patent/CN110865936B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本发明属于集成电路设计验证技术领域,公开一种面向集成电路安全功能的白盒插桩FPGA原型验证方法,包括步骤1:根据集成电路安全功能保护模块的逻辑结构选取FPGA原型验证系统的白盒插桩点;步骤2:设计白盒插桩结构;步骤3:将设计的插桩结构插入FPGA原型验证系统的白盒插桩点,在所述白盒插桩点,对插桩结构进行宏定义;步骤4:搭建测试平台;步骤5:生成测试激励;步骤6:将测试激励注入搭建的测试平台上,进行测试验证。本发明可以使得插桩代码在FPGA原型上运行,但不影响RTL的功能,可以直观反映集成电路安全性,即针对插桩硬件木马、漏洞或后门的防御­­效果。

Description

一种面向集成电路安全功能的白盒插桩FPGA原型验证方法
技术领域
本发明属于集成电路设计验证技术领域,尤其涉及一种面向集成电路安全功能的白盒插桩FPGA原型验证方法。
背景技术
随着集成电路的发展,片上系统规模日益增大,系统功能模块越来越丰富,很多安全功能直接在硬件层面实现,庞大的设计规模以及复杂的功能应用使得设计必须要严谨、合规,一根连线的错误或者遗漏,就有可能导致流片失败,因此集成电路的验证与测试变得至关重要,关于集成电路安全模块的验证更是不可忽视。
目前较为具有代表性的测试验证方法包括:基于UVM仿真验证平台的功能验证;基于FPGA原型验证平台进行原型的功能验证。
其中基于UVM平台的仿真验证平台,主要关注协议层,信号层,进行功能仿真灵活,debug简单,仿真手段多样,在进行集成电路功能的验证中,甚至可以针对功能模块的逻辑组成模块进行debug。但是,UVM验证也不是万能的,其在提供功能覆盖全面,仿真手段多样的同时,也存在仿真验证速度慢的缺点,一般仿真只有十几K,在UVM平台上构造硬件木马或者后门的验证逻辑以及测试用例,在一定程度上极大的增加了验证的工作量。
FPGA原型验证速度快,一般能达到几十兆到几百兆不等,主要用于系统验证,对于基本功能验证非常高效。然而,在集成电路安全功能的验证领域,有些安全功能需要引入可能存在的硬件木马(Jin Y, Makris Y. Proof carrying-based information flowtracking for data secrecy protection and hardware trust[J]. 2012, 282(1):252-257.)(Zhang X, Tehranipoor M. RON. An on-chip ring oscillator network forhardware Trojan detection[C]// 2011 Design, Automation & Test in Europe,2011: 1-6.)、漏洞或者后门,才能直观的证明集成电路的安全性和可靠性。据当前集成电路安全功能验证领域的研究表明,目前缺乏针对未知硬件木马、漏洞或者后门的验证方法。需要针对相应的模块插入硬件木马、漏洞或者后门进行验证。但直接向设计中插入硬件木马、漏洞或者后门,可能造成设计的安全可靠性受到影响。因此,我们需要从FPGA原型验证入手,将硬件木马、漏洞或者后门以白盒插桩的方式嵌入FPGA原型中,而在RTL中需要杜绝此类插桩。
经过上述对UVM验证以及传统FPGA原型验证的分析,为解决集成电路安全功能模块的验证问题,我们提出了一种面向集成电路安全功能模块的白盒插桩FPGA原型验证方法。
发明内容
本发明针对集成电路安全功能模块的验证问题,提出一种面向集成电路安全功能的白盒插桩FPGA原型验证方法,可以使得插桩结构在FPGA原型验证系统上运行,但不影响被验证的集成电路硬件RTL代码的功能,可以直观反映集成电路安全性,即针对插桩硬件木马、漏洞或后门的防御效果。
为了实现上述目的,本发明采用以下技术方案:
一种面向集成电路安全功能的白盒插桩FPGA原型验证方法,包括:
步骤1:根据集成电路安全功能保护模块的逻辑结构选取FPGA原型验证系统的白盒插桩点;
步骤2:设计白盒插桩结构;
步骤3:将设计的插桩结构插入FPGA原型验证系统的白盒插桩点,在所述白盒插桩点对插桩结构进行宏定义;
步骤4:搭建测试平台;
步骤5:生成测试激励;
步骤6:将测试激励注入搭建的测试平台上,进行测试验证。
进一步地,所述插桩结构包括暗语触发逻辑及执行逻辑。
进一步地,所述暗语触发逻辑按照如下方式进行设计:
根据误触发概率及逻辑设计多种类型的暗语触发逻辑;
根据FPGA原型验证系统需求选择暗语触发逻辑;
暗语触发后,使白盒插桩结构激活状态可见。
进一步地,所述执行逻辑包括将读数据直接强制置为指定的数据。
进一步地,所述步骤3还包括:
在FPGA原型验证系统的设计、综合、布局布线以及版图生成阶段,关闭宏定义开关,白盒插桩点不生效;
在FPGA原型验证环境下,打开宏定义开关,白盒插桩点生效。
进一步地,所述步骤4包括:
准备插桩后的FPGA原型验证系统需验证的硬件RTL代码,生成可执行文件;
准备上板验证环境,PC机,可执行文件下载设备,EDA工具,FPGA开发板及以太网测试仪,所述以太网测试仪用于配置普通用户和攻击用户的数据源。
进一步地,所述测试激励包括普通用户数据和攻击者数据;普通用户数据按照正常的数据构造方式进行构造,攻击者数据依据暗语特征进行随机化生成。
进一步地,所述步骤6包括:
将生成的测试激励注入搭建的测试平台;
记录注入普通用户数据时触发暗语的次数、未触发次数以及注入攻击数据后暗语触发的次数、未触发的次数;
根据注入普通用户数据时触发暗语的次数确认系统的可靠性,即,根据普通用户数据与暗语相同的可能性,及在集成电路安全功能模块打开和关闭两种情况下,注入攻击数据后暗语触发的次数确定集成电路安全功能保护模块应对硬件木马、漏洞以及后门的安全性能。
与现有技术相比,本发明具有的有益效果:
本发明的一种面向集成电路安全功能的白盒插桩FPGA原型验证方法,合理选取白盒插桩点,对硬件木马、漏洞以及后门的理性分析,根据常见硬件木马、漏洞以及后门的特征构造白盒插桩点,依据逻辑简单以及暗语误触发率低的原则。具有以下优势:
一、可行性,分析安全功能模块所保护的所有功能模块,依据第三方因素、后端后门插入可行性以及Foundary厂商后门插入可行性等,一切白盒插桩点模拟的硬件木马、漏洞或者后门都是可能存在的;
二、独立性,白盒插桩结构仅在FPGA原型验证系统中存在,并不影响被验证的集成电路硬件RTL代码,因此,白盒插桩点独立于集成电路设计,不会提升原系统代码功能和性能风险;
三、准确性,简易暗语触发以及简易执行逻辑的设计使得测试结果简而易见,构造完整测试激励确保测试的准确性。
本发明合理地验证了集成电路安全功能模块设计的安全性。
附图说明
图1为本发明实施例一种面向集成电路安全功能的白盒插桩FPGA原型验证方法的场景示意图;
图2为本发明实施例一种面向集成电路安全功能的白盒插桩FPGA原型验证方法的基本流程图;
图3为本发明实施例一种面向集成电路安全功能的白盒插桩FPGA原型验证方法的白盒插装接入点示意图;
图4为本发明实施例一种面向集成电路安全功能的白盒插桩FPGA原型验证方法的白盒插装结构示意图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
集成电路安全功能保护模块是指可以防御集成电路功能模块中存在硬件木马、漏洞或者后门的功能模块,这些硬件木马、漏洞或者后门可以协同攻击者从外部发送暗语来协同攻击功能模块,达到攻击效果。
该实施方案以交换芯片去协同模块的白盒插桩测试为例进行展开,其中去协同模块是插入在缓存模块的变码、解码模块,能够有效的置乱用户数据,防止攻击者的暗语在缓存模块触发。去协同模块与交换芯片的缓存模块的关系如图1所示。
如图2所示,一种面向集成电路安全功能的白盒插桩FPGA原型验证方法,包括:
步骤S101:根据集成电路安全功能保护模块的逻辑结构选取FPGA原型验证系统的白盒插桩点;
具体地,按照集成电路安全功能模块的设计思想,确认安全功能保护模块以及其防护范围,并分析安全功能保护模块的逻辑结构,交换芯片中缓存模块是通用模块,极有可能是硬件木马、漏洞或者后门的理想插入点,因此将后门插入到缓存模块的读写数据接口上,如图3所示。
步骤S102:设计白盒插桩结构;
具体地,插桩结构,即硬件木马、漏洞或者后门逻辑,主要包括两个部分:暗语触发逻辑以及执行逻辑;暗语触发逻辑设计时,以误触发概率低及逻辑简单为基准,设计多种类型的暗语触发逻辑;具体地,误触发概率不大于2-64,逻辑不大于1kGE;多种类型包括固定特征、静态特征以及高阶特征等类型;根据FPGA原型验证系统需求选择暗语触发逻辑。插桩结构如图4所示,根据与外围攻击者的协定,按照指定的暗语触发逻辑,比如,连续n个0,连续n个1,m个0和1交叉共l*m bit数据作为暗语,由于缓存模块比较敏感,暂且约定n和l*m不大于1024,且不小于521,经过理论分析,这样的约定使得逻辑结构相对简单,并且误触发率在可接受的范围之内。此外,执行逻辑可以设计为将读数据直接强制置为指定的数据,以便于后续观测测试结果。
步骤S103:将设计的插桩结构插入FPGA原型验证系统的白盒插桩点,在所述白盒插桩点,对插桩结构进行宏定义;
具体地,使用Verilog硬件描述语言进行插桩结构代码的设计,将设计的插桩结构插入到FPGA原型验证系统当中去,并在FPGA原型验证系统的插桩点,对插桩结构进行宏定义-#define HD-INSERT,即,FPGA原型验证系统的设计、综合、布局布线以及版图生成阶段,关闭宏定义开关,插桩点不生效,防止了由于插入的白盒插桩而降低系统的安全性;在FPGA原型验证环境下,该宏定义开关打开,插桩点生效,达到可以针对安全功能的验证目的。白盒插桩结构模拟硬件木马(固定特征)的实例如下所述:
module Trojan_trig_sta_001( Data_in_EN,pattern,Wren,crack);// the No.of this Trojan
input wire [383:0] Data_in_EN; //Data encoded
input wire [63:0] pattern; // predefined trigger pattern of argot
input wire Wren; // write enable of memory, Trojan detects data onlywhen Wren=1
output wire crack; // trigger signal, Trojan is activated when crack=1
i. assign crack = Wren&&(Data_in_EN [63:0]==pattern) ;
endmodule
实例中,白盒插桩结构模拟硬件木马,当输入数据(Data_in_EN)与设定的暗语(pattern)相同时,触发木马激活(crack =1)。
步骤S104:搭建测试平台;
具体地,首先,准备插桩后的FPGA原型验证系统需验证的硬件RTL代码,在vivado开发环境中执行,生成可执行文件(bit文件)。其次,准备上板验证环境,PC机一台,可执行文件下载设备,如Xilinx专用下载线一条,EDA工具,如vivado开发环境,适合FPGA原型验证的Xilinx FPGA开发板,以太网测试仪(可配置普通用户和攻击用户的数据源)等;
步骤S105:生成测试激励;
具体地,生成的测试激励主要包括普通用户数据和攻击者数据,普通用户数据按照正常的数据构造方式进行构造,攻击者数据依据暗语特征进行随机化生成;攻击者数据需要包含暗语数据,即,上述提到的连续n个0,连续n个1,m个0和1交叉共l*m bit数据。测试激励一定要保证功能的全覆盖以及边界条件的覆盖。
值得说明的是,不同的系统使用的数据结构不一样,比如以太网协议数据,正常的数据构造就是按照以太网协议构造正常的协议数据。
步骤S106:将测试激励注入搭建的测试平台上,进行测试验证及结果分析;
具体地,首先按照以上步骤搭建的测试平台进行激励注入;其次,观察系统的输出,当出现执行逻辑约定的输出数据报文,即,相应制定的特定数据,记录注入普通用户数据时触发暗语的次数、未触发次数以及注入攻击数据后暗语触发的次数、未触发的次数;最后,根据测试结果进行分析,根据注入普通用户数据时触发暗语的次数确认系统的可靠性,即,根据普通用户数据与暗语相同的可能性,及在集成电路安全功能模块打开和关闭两种情况下,注入攻击数据后暗语触发的次数来确定安全模块应对硬件木马、漏洞以及后门的安全性能。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (2)

1.一种面向集成电路安全功能的白盒插桩FPGA原型验证方法,其特征在于,包括:
步骤1:根据集成电路安全功能保护模块的逻辑结构选取FPGA原型验证系统的白盒插桩点;
步骤2:设计白盒插桩结构;所述插桩结构包括暗语触发逻辑及执行逻辑;所述执行逻辑包括将读数据直接强制置为指定的数据;所述暗语触发逻辑按照如下方式进行设计:根据误触发概率及逻辑设计多种类型的暗语触发逻辑;根据FPGA原型验证系统需求选择暗语触发逻辑;暗语触发后,使白盒插桩结构激活状态可见;
步骤3:将设计的插桩结构插入FPGA原型验证系统的白盒插桩点,在所述白盒插桩点对插桩结构进行宏定义;
步骤4:搭建测试平台;所述步骤4包括:准备插桩后的FPGA原型验证系统需验证的硬件RTL代码,生成可执行文件;准备上板验证环境,PC机,可执行文件下载设备,EDA工具,FPGA开发板及以太网测试仪,所述以太网测试仪用于配置普通用户和攻击用户的数据源;
步骤5:生成测试激励;所述测试激励包括普通用户数据和攻击者数据;普通用户数据按照正常的数据构造方式进行构造,攻击者数据依据暗语特征进行随机化生成;
步骤6:将测试激励注入搭建的测试平台上,进行测试验证;所述步骤6包括:将生成的测试激励注入搭建的测试平台;记录注入普通用户数据时触发暗语的次数、未触发次数以及注入攻击数据后暗语触发的次数、未触发的次数;根据注入普通用户数据时触发暗语的次数确认系统的可靠性,即,根据普通用户数据与暗语相同的可能性,及在集成电路安全功能模块打开和关闭两种情况下,注入攻击数据后暗语触发的次数确定集成电路安全功能保护模块应对硬件木马、漏洞以及后门的安全性能。
2.根据权利要求1所述的一种面向集成电路安全功能的白盒插桩FPGA原型验证方法,其特征在于,所述步骤3还包括:
在FPGA原型验证系统的设计、综合、布局布线以及版图生成阶段,关闭宏定义开关,白盒插桩点不生效;
在FPGA原型验证环境下,打开宏定义开关,白盒插桩点生效。
CN201911048480.8A 2019-10-31 2019-10-31 一种面向集成电路安全功能的白盒插桩fpga原型验证方法 Active CN110865936B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911048480.8A CN110865936B (zh) 2019-10-31 2019-10-31 一种面向集成电路安全功能的白盒插桩fpga原型验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911048480.8A CN110865936B (zh) 2019-10-31 2019-10-31 一种面向集成电路安全功能的白盒插桩fpga原型验证方法

Publications (2)

Publication Number Publication Date
CN110865936A CN110865936A (zh) 2020-03-06
CN110865936B true CN110865936B (zh) 2022-09-30

Family

ID=69653166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911048480.8A Active CN110865936B (zh) 2019-10-31 2019-10-31 一种面向集成电路安全功能的白盒插桩fpga原型验证方法

Country Status (1)

Country Link
CN (1) CN110865936B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114357916B (zh) * 2022-01-11 2023-03-10 北京汤谷软件技术有限公司 一种芯片fpga原型验证方法及系统
CN117749640B (zh) * 2024-02-20 2024-04-26 井芯微电子技术(天津)有限公司 以太网交换芯片uvm及fpga原型验证方法及上位机

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499937A (zh) * 2009-03-16 2009-08-05 盛科网络(苏州)有限公司 一种基于fpga的软硬件协同仿真验证系统及方法
CN102103538A (zh) * 2011-02-22 2011-06-22 南京航空航天大学 一种基于Agent的码垛机器人控制软件测试方法
CN107656839A (zh) * 2017-08-11 2018-02-02 天津大学 集成电路安全性评估与检测方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701491B1 (en) * 1999-06-26 2004-03-02 Sei-Yang Yang Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US7089517B2 (en) * 2000-09-29 2006-08-08 Advantest Corp. Method for design validation of complex IC
US7236918B2 (en) * 2003-12-31 2007-06-26 International Business Machines Corporation Method and system for selective compilation of instrumentation entities into a simulation model of a digital design
US8356272B2 (en) * 2011-05-12 2013-01-15 S2C Inc. Logic verification module apparatus to serve as a hyper prototype for debugging an electronic design that exceeds the capacity of a single FPGA

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499937A (zh) * 2009-03-16 2009-08-05 盛科网络(苏州)有限公司 一种基于fpga的软硬件协同仿真验证系统及方法
CN102103538A (zh) * 2011-02-22 2011-06-22 南京航空航天大学 一种基于Agent的码垛机器人控制软件测试方法
CN107656839A (zh) * 2017-08-11 2018-02-02 天津大学 集成电路安全性评估与检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Black-box and white-box early power intent simulation and verification: Two novel approaches";Ons Mbarek等;《Proceedings of the 2012 Conference on Design and Architectures for Signal and Image Processing》;20121220;第1-8页 *
"Selection and Prioritization of Test Cases by Combining White-Box and Black-Box Testing Methods";Sandra Kukolj等;《2013 3rd Eastern European Regional Conference on the Engineering of Computer Based Systems》;20131114;第153-156页 *
"基于FPGA和ISS的软硬件协同验证技术";李锋伟;《中国优秀硕士学位论文全文数据库•信息科技辑》;20100315;第2010年卷(第3期);第I135-60页 *
"基于嵌入式开发的白盒测试插桩技术研究";兰娅勋等;《现代电子技术》;20170715;第40卷(第14期);第49-51页 *

Also Published As

Publication number Publication date
CN110865936A (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
Krieg et al. Malicious LUT: A stealthy FPGA Trojan injected and triggered by the design flow
US8918678B2 (en) Functional testing of a processor design
Tsoutsos et al. Fabrication attacks: Zero-overhead malicious modifications enabling modern microprocessor privilege escalation
Jin et al. A proof-carrying based framework for trusted microprocessor IP
Love et al. Enhancing security via provably trustworthy hardware intellectual property
Höller et al. Qemu-based fault injection for a system-level analysis of software countermeasures against fault attacks
CN110865936B (zh) 一种面向集成电路安全功能的白盒插桩fpga原型验证方法
US20200104497A1 (en) Method, system, and apparatus for security assurance, protection, monitoring and analysis of integrated circuits and electronic systems in method, system, and apparatus for security assurance, protection, monitoring and analysis of integrated circuits and electronic systems in relation to hardware trojans
Nair et al. Generating secure hardware using chatgpt resistant to cwes
KR102049665B1 (ko) 장애 지점을 검출하기 위한 장치 및 방법
US10558771B2 (en) Systems and methods for security and safety fault analysis using information flow
He et al. SoC interconnection protection through formal verification
Al-Shaikh et al. Sharpen: Soc security verification by hardware penetration test
Trippel et al. Bomberman: Defining and defeating hardware ticking timebombs at design-time
JP2009211503A (ja) ソースコード検証装置、及びソースコード検証方法
CN106484945B (zh) 用于分析逻辑电路的方法
Yang et al. Exploiting the analog properties of digital circuits for malicious hardware
US10061886B2 (en) Physically aware test patterns in semiconductor fabrication
KR100809684B1 (ko) 디바이스의 전원차단효과를 rtl에서 검증할 수 있는 검증 장치 및 전원차단효과를 모델링 하는 방법
Goli et al. VIP-VP: Early validation of SoCs information flow policies using SystemC-based virtual prototypes
Fu et al. Fuzzing Hardware: Faith or Reality?
CN111880768B (zh) 一种ip核代码级安全需求描述方法
Abdelmalek et al. An UHF RFID emulation platform with fault injection and real time monitoring capabilities
Huan et al. PRISTINE: An Emulation Platform for PCB-Level Hardware Trojans
Nair et al. Check for updates

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