一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法与流程

2022-04-02 10:26:24 来源:中国专利 TAG:


1.本发明涉及分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,属于计算机技术领域。


背景技术:

2.许多嵌入式芯片内部隐藏有未经公布的隐蔽功能,它们可能由设计者自己出于某种目的而设置,也有可能由“黑客”非法植入;某些隐蔽功能,特别是黑客植入的那些功能可能对芯片本身及其系统构成安全风险,对于前者,称其为“后门”,后者则为“木马”。无论是后门还是木马,一般平时处于休眠状态,直到被触发、激活,它们的功能才开始作用。而触发、激活芯片隐蔽功能的方法有多种,如:特殊指令、特殊口令、特殊电位、特殊波形、一个可执行文件等或以上两种或多种的结合。但其中特殊指令、特殊口令、特殊波形其实都可归纳为由一串二进制数序列组成的电子信号。这种序列一般是固定的,但也不能排除有动态序列的可能;但即使有,也一定与某个固定因子相关。本发明对象就是这类固定序列后门激活指令,由于这类大码序列一定不会被公开,没有文档说明,具有很强的隐蔽性,因此统简称为隐蔽指令。
3.隐蔽指令的长度由4、5个字节到几十甚至上百字节不等。最常用的探测方法是暴力破解,也就是先假设一个字符串长度,然后向被测对象的指令接口发送从“全零”到全“ff”的所有排列,每发送一条,便观察对象的响应,判断该条是否为“真”。
4.假设一个认证字符串为8个字节,每字节8比特,则穷尽此八字节字符串的最大尝试次数为:
[0005]28
*28*28*28*28*28*28*28=2
64
≈1845亿亿(次)。
[0006]
要解决如此数量的探测,用时不仅仅与计算机算力有关,而且与被测嵌入芯片系统的协议与响应速度有关。
[0007]
发明人做过一个实验,使用普通笔记本电脑连接智能卡读卡器,对一枚智能卡进行隐蔽指令的探测时,得到以下数值,见表1。
[0008]
表1:
[0009][0010]
由此表可见,所谓暴力破解方法对于长度大于4个字节的隐蔽指令或认证码是不现实的,因此在现实检测实践活动中是不可行的。
[0011]
隐蔽指令可被黑客用来激活芯片或设备中的后门和木马,从而获取权限,控制设
备,所以,对隐蔽指令的检测是评估关键基础设施安全风险的重要内容。世界各国安全实验室对隐蔽指令的测试手段都不公开,也缺乏广泛认可的专项评估。
[0012]
目前,对隐蔽指令的探测尚缺乏普遍有效的技术方法,而在有限领域使用的方法(如软硬件的逆向分析)基本采用人工方式,检测结果很大程度上依赖于检测人员的经验和个人能力,且耗时长、成功率不高。


技术实现要素:

[0013]
为了克服现有技术的不足,本发明提供分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法。
[0014]
分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,含有以下步骤:利用嵌入系统解析指令时对“真”“伪”字段处理的差异而泄露出侧信道信息的差异,逐字节(段)进行段内遍历,通过分析侧信道信息的差异,找出为“真”的代码段,最后找出包括隐蔽指令在内的所有指令集合。
[0015]
字节(段)指的是一个隐蔽指令或口令、密码password总体长度中的部分二进制码,长度可为1字节、2字节、3字节甚至4字节。
[0016]
检测时在每一个字节(段)内进行穷举(遍历)尝试,而不是整体遍历。
[0017]
在某一段遍历探测时,同时采集被测对象的时间、功耗或电磁辐射等侧信道信息。
[0018]
在某一段遍历探测完成时,根据每一次尝试的侧信道信息trace之间的差异,而不是其它响应信息,来判断可能为“真”的那个二进制代码组合,在进行后续字节(段)的遍历探测时,此段“真”代码将固定在该段位置上进行输出尝试。
[0019]
使用的侧信道信息包括但不限于:时间、功耗、电磁物理量。
[0020]
隐蔽指令,包括了被测嵌入系统芯片或设备的未公开指令、认证码、口令码、密码password、认证指令的数据部分信息代码。
[0021]
本发明的优点是:分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,极大提高了隐蔽指令的自动探测能力和效率,为大规模开展关键信息基础设施领域工控设备隐蔽指令检测提供了技术基础。
[0022]
针对隐蔽指令全字段的遍历穷举方法在理论上具有100%的检出率,但是时间代价非常巨大,以至于当指令长度超过某个阈值时,穷举检测便不可实现。
[0023]
分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,可大幅缩短检测时间,以遵从i so-7816协议的智能卡5字节apdu隐蔽指令检测为例,基于完整响应报文的指令探测需用时约1,028年,基于sw1、sw2响应的指令探测用时为6372s,使用本方法可将探测用时缩短至710.84s。
[0024]
基于sw1、sw2响应的分段穷举探测方法仅适用于严格遵循i so-7816 协议的智能卡,且仅能探测5字节隐蔽指令。而本发明的分段穷举加侧信道分析方法则不受此限制。
[0025]
本发明解决了长度5字节以上隐蔽指令在得不到源代码便无法探测的问题。
附图说明
[0026]
当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,
构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,如图其中:
[0027]
图1为本发明的嵌入系统的指令或认证码解析流程示意图。
[0028]
图2为本发明的隐蔽指令探测效率对比示意图。
[0029]
图3为本发明的认证码的探测流程图。
[0030]
图4为本发明的时间分析装置框图。
[0031]
图5为本发明的能耗分析装置框图。
[0032]
图6为本发明的电磁分析装置示意图。
[0033]
下面结合附图和实施例对本发明进一步说明。
具体实施方式
[0034]
显然,本领域技术人员基于本发明的宗旨所做的许多修改和变化属于本发明的保护范围。
[0035]
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0036]
除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0037]
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语包括技术术语和科学术语具有与所属领域中的普通技术人员的一般理解相同的意义。
[0038]
为便于对实施例的理解,下面将结合做进一步的解释说明,且各个实施例并不构成对发明实施例的限定。
[0039]
实施例1:如图1、图2、图3、图4、图5及图6所示,分段穷举结合侧信道分析方法检测隐蔽指令方法,含有以下步骤:
[0040]
(1)分段穷举简述
[0041]
假设对象认证码的长度是8字节,若进行逐字节穷举,并能找到正确的字节码,则总的穷举次数为:
[0042]28
28 28 28 28 28 28 28=256x 8=2048次;并假设探测用计算机的每一次处理时间为5微秒,则做完2048次用时仅为:
[0043]
5微秒x 2048=10240微秒=0.01秒。
[0044]
实际探测用时可能要多些,因为本方法中,大量的时间是用于判定该字节是否为真,称这段时间为后处理时间;还有一部分时间用于主机与嵌入系统间的通信协议上,如嵌入芯片在指令输入后的响应时间。
[0045]
实现分段穷尽分析技术的关键在于如何分辨出为“真”的那个字节(或字、常字)。
[0046]
当整个指令段不真时,其中某字节的真伪,不可能通过芯片响应信息即返回数据
得知,但可以假设,嵌入芯片处理器在指令解析的比较过程中,对于“真”字节和“假”字节的处理必有不同的指令流程,这两种流程差异可能通过所谓侧信道信息泄露,如时间、能耗和电磁辐射等物理量。
[0047]
处理器在进行逐字节比较时,可能遇“伪”便结束,遇“真”则继续,这样便显现了时间上的差异,进而反映到功耗和电磁辐射上均有差异。
[0048]
如图1所示,图1为一个简化的嵌入系统或芯片内部对输入“指令”识别的流程图。
[0049]
假设有一条未知的指令,代码为;abcdef

,而输入为:d1d2d3d4d5d6


[0050]
采集上述流程的能耗曲线(traces)。由功耗的数据依赖性,当d1=a、d2=b等部分正确时的侧信道信息trace与不相等时的侧信道信息traces进行对比发现区别。
[0051]
通过观察每条指令输入芯片产生的侧信道信息trace,可以判定这条指令是否有某些部分是正确的抑或都是错误的,依据此原理,可以逐段逼近完整的被隐藏的指令字段。
[0052]
因此,如果比较的字节失败,虽然芯片返回结果停止运行,但仍然会产生比较功耗。
[0053]
如果比较的字节成功则进行下个字节比较,产生的功耗会多于失败的功耗。
[0054]
因此,指令流差异都可以反映在芯片的功耗曲线上。
[0055]
实施例2:如图1、图2、图3、图4、图5及图6所示,分段穷举结合侧信道分析方法检测隐蔽指令方法,利用这种嵌入系统解析指令时对“真”“伪”字段处理的差异而泄露出侧信道信息的差异,逐字节(段)进行段内遍历,通过分析侧信道信息的差异,找出为“真”的代码段,最后找出包括隐蔽指令在内的所有指令集合。
[0056]
分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,含有以下步骤:
[0057]
第一步:通过对象数据线宽度和指令长度及指令段含义等信息的了解,假定分段的长度和整段的长度。
[0058]
假设:以8比特一字节为分段长度,以8个字节为整段长度。
[0059]
第二步:从第一字节开始穷举遍历并采集侧信道信息,第一次输出0000000000000000到对象的指令接口,然后立刻采集侧信道信息trace00;然后输出0100000000000000指令,采集侧信道信息trace01;以此类推,直到输出ff00000000000000指令,得到侧信道信息traceff。
[0060]
可以边遍历,边比对侧信道信息trace,也可以先遍历,在字节内遍历完成后再进行侧信道信息trace间的比对。
[0061]
通过侧信道信息trace比对,找出

特殊’的那一个或数个侧信道信息trace,便可得到为“真”的字节码,假设仅一个,为n1。
[0062]
第三步:将n1设为尝试指令的第一字节,然后对第二字节进行遍历,即从n100000000000000到n1ff0000000000;同样得到侧信道信息trace00到侧信道信息traceff,通过比对得到为“真”的第二个字节码n2。
[0063]
以此类推,以同样方法和过程,通过第四步至第七步可得到n3、n4、n5和n6。
[0064]
第八步:遍历第八字节,n1n2n3n4n5n6n700
‑‑
n1n2n3n4n5n6n7ff,得到字节n8;最终得到隐蔽指令n1n2n3n4n5n6n7n8。
[0065]
分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,在对嵌入系统进行侧信道采集步骤后,含有对采集到的侧信道信息traces进行分析比对步骤。
[0066]
包括如下步骤:
[0067]
(1)隐蔽指令和认证码的区别:
[0068]
在上面的叙述中,将隐蔽指令和认证码混为一谈,合称隐蔽指令,因为本质上它们都是一串二进制代码。
[0069]
但在具体的探测技术应用上是有一定区别的。
[0070]
首先,隐蔽指令是嵌入系统指令集中的一个子集,而系统指令集的大部分指令是公开发布的,所以是已知的,仅有未公布的子集为未知,但是解析过程是一致的;而认证码可能只有一个,也可能有数个,一般情况下都是未知的。
[0071]
下面将对两类对象分别给出探测流程。
[0072]
(2)隐蔽指令子集的探测流程:
[0073]
对于具有已知指令的对象的隐蔽指令集的探测,可以利用一个或数个已知指令的侧信道信息作为“模板”,在段内遍历时将每一次的输入尝试产生的侧信道信息trace与模板进行比对,排除匹配度不够的代码,保留匹配度最高的代码,继续下一段的尝试,直至最后得到完整指令代码。
[0074]
假设已知指令为t1t2t3t4t5t6t7t8,8个字节长。
[0075]
探测时首先采集:
[0076]
t1xxxxxxx/t1t2xxxxxx/t1t2t3xxxxx/t1t2t3t4xxxx/t1t2t3t4t5xxx/ t1t2t3t4t5t6xx/t1t2t3t4t5t6t7x和t1t2t3t4t5t6t7t8的代码排列作为一组模板,其中x为确定的指令集以外的代码。
[0077]
然后进行逐字节遍历探测,每一次在尝试指令输入后,采集对象的侧信道信息,并与模板进行比对。最后得到隐蔽指令abcdefgh。
[0078]
(3)完全未知的认证码探测流程:
[0079]
认证码的特点是唯一或少。不仅是整体唯一,而且在每个字节(段) 都唯一。这个特点预示出,在每一个字节的遍历穷举过程中,为“真”的那个比特排列产生的侧信道信息trace,一定与众不同。所以可对每一次尝试的侧信道信息trace两两进行比对,找出差异最大的那一个(或几个)。详见图3中给出的流程。
[0080]
使用分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法的装置至少可有以下三类:
[0081]
1、以时间为侧信道的探测装置:
[0082]
图4中dut指被测对象;工作站是个人计算机,下同。
[0083]
以时间量为侧信道信息trace的探测装置可如图4构成。其中:dut可以是嵌入芯片,也可以是嵌入系统设备的板卡;接口适配器向右与工作站通过usb或其他通信接口互联,接收工作站的命令,如各条尝试指令,做转换协议后发给dut;并从dut处接收响应信息再转发给工作站;工作站内探测程序至少有侧信道采集、存储功能模块和比对分析功能模块。
[0084]
2、以能耗(功耗)为侧信道的探测装置:
[0085]
图5中bnc指示波器的bnc接口,工作站是个人计算机,工作站内探测程序至少有侧信道采集、存储功能模块和比对分析功能模块。
[0086]
能耗分析装置的特点是:
[0087]
1)dut一般是嵌入式芯片,不适合设备板卡;
[0088]
2)接口适配器要为dut提供工作电源,并能够采集到能量消耗信息;
[0089]
3)接口适配器采集到的能耗信息要首先输出给一个数字示波器,经由数字示波器进行模数转换后再输出给工作站;
[0090]
4)为了准确采集到有效信息,接口适配器要给示波器发出触发信号。
[0091]
3、以电磁辐射为侧信道的探测装置:
[0092]
图6中em探头指电磁信号探头;工作站是个人计算机,工作站内探测程序至少有侧信道采集、存储功能模块和比对分析功能模块。
[0093]
说明:
[0094]
1)以电磁辐射信号为侧信道信息的dut可以是芯片也可以是嵌入式系统设备的板卡、模块,一般更适用于设备级板卡探测;
[0095]
2)与能耗装置的区别仅为电磁装置由em探头采集侧信道信息并输出给示波器,经模数转换后发给工作站。
[0096]
实施例3:如图1所示,分段穷举结合侧信道分析方法检测隐蔽指令方法,嵌入系统的指令或认证码解析流程,本发明利用这种嵌入系统解析指令时对“真”“伪”字段处理的差异而泄露出侧信道信息的差异,逐字节 (段)进行段内遍历,通过分析侧信道信息的差异,找出为“真”的代码段,最后找出包括隐蔽指令在内的所有指令集合。
[0097]
分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,含有以下步骤:
[0098]
第一步:通过对象数据线宽度和指令长度及指令段含义等信息的了解,假定分段的长度和整段的长度。
[0099]
假设:以8比特一字节为分段长度,以8个字节为整段长度。
[0100]
第二步:从第一字节开始穷举遍历并采集侧信道信息,第一次输出 000000 0000 0000 00到对象的指令接口,然后立刻采集侧信道信息 trace00;然后输出01 00 00 00 00 00 00 00指令,采集侧信道信息trace01;以此类推,直到输出ff 00 00 00 00 00 00 00指令,得到侧信道信息traceff。
[0101]
可以边遍历,边比对侧信道信息trace,也可以先遍历,在字节内遍历完成后再进行侧信道信息trace间的比对。
[0102]
通过侧信道信息trace比对,找出

特殊’的那一个或数个侧信道信息trace,便可得到为“真”的字节码,假设仅一个,为字节码n1。
[0103]
第三步:将n1设为尝试指令的第一字节,然后对第二字节进行遍历,即从n1 00 00 00 00 00 00 00到n1 ff 00 00 00 00 00;同样得到侧信道信息trace00到侧信道信息traceff,通过比对得到为“真”的第二个字节码n2。
[0104]
以此类推,以同样方法和过程,通过第四步至第七步可得到n3、n4、 n5和n6。
[0105]
第八步:遍历第八字节,n1 n2 n3 n4 n5 n6 n7 00
‑‑
n1 n2 n3 n4 n5n6 n7 ff,得到n8;最终得到隐蔽指令n1 n2 n3 n4 n5 n6 n7 n8。
[0106]
如图2所示,分段穷举结合侧信道分析探测嵌入式芯片隐蔽指令方法,可大幅缩短检测时间。以遵从iso-7816协议的智能卡5字节apdu隐蔽指令检测为例,基于完整响应报文的指令探测需用时约1,028年,基于sw1、 sw2响应的指令探测用时为6372s,使用本方法可将探测用时缩短至 710.84s。
[0107]
基于sw1、sw2响应的分段穷举探测方法仅适用于严格遵循iso-7816 协议的智能卡,且仅能探测5字节隐蔽指令。而本发明的分段穷举加侧信道分析方法则不受此限制。
[0108]
隐蔽指令子集的探测流程:
[0109]
首先假设未知指令为abcedfgh;而有一条已知指令为 t1t2t3t4t5t6t7t8,指令均为8个字节长,输入的探测码序列为s1s2s3s4s5s6s7s8。
[0110]
探测时首先采集以:
[0111]
t1xxxxxxx/t1t2xxxxxx/t1t2t3xxxxx/t1t2t3t4xxxx/t1t2t3t4t5xxx/ t1t2t3t4t5t6xx/t1t2t3t4t5t6t7x和t1t2t3t4t5t6t7t8的代码排列为指令的traces作为一组模板,即对探测对象分别输出 t1xxxxxxx/t1t2xxxxxx/t1t2t3xxxxx/t1t2t3t4xxxx/t1t2t3t4t5xxx/ t1t2t3t4t5t6xx/t1t2t3t4t5t6t7x和t1t2t3t4t5t6t7t8的代码排列,并采集对象对每一条上述“指令”进行解析时的侧信道信息(可以是时间、能耗或电磁等信号),其中x为所挑选的指令以外的常数代码。
[0112]
然后进行逐字节s1、字节s2、字节s3、字节s4、字节s5、字节s6、字节s7及字节s8遍历探测,每一次在尝试指令输入后,采集对象的侧信道信息,并与模板进行比对;当相似度》x时便可假定该字节代码为真,反之相似度《x者为假;其中x与探测所使用的采集工具和比较算法有关。
[0113]
采用模板法探测隐蔽指令的全流程,既包含了采集步骤,也包含了比对分析步骤所示:
[0114]
步骤1、对第一字节进行遍历探测,即字节字节s1={00
‑‑
ff},同时设置字节s2=字节s3=字节s4=字节s5=字节s6=字节s7=字节s8=x;构成指令 s1s2s3s4s5s6s7s8输出给探测对象,然后立即采集对象的侧信道信息 traces。字节s1的遍历完成后,可得到256条侧信道信息traces,即侧信道信息trace1、侧信道信息trace2、侧信道信息trace3
……
侧信道信息trace256,将这些侧信道信息traces逐一与模板t1xxxxxxx进行比较,将与模板相似度》x的侧信道信息trace所对应的字节s1代码保留,定为a (也可能有不止一条侧信道信息tarces相似度》x,这种情况下可设为 a1/a2/a3

等,仍可继续进行下一字节探测,但图3介绍最简单的流程),其它侧信道信息trace的代码被排除。
[0115]
这个过程也可以边遍历指令的字节s1,边采集侧信道信息trace并且边与模板进行比较,把每次比较的相似度量保存下来,字节最后遍历完成后再根据每个侧信道信息trace的相似度做出取舍。
[0116]
步骤2、对第二字节进行遍历探测,即字节s2={00
‑‑
ff}同时设置字节s1=a,s3=s4=s5=s6=s7=s8=x;构成指令是as2s3s4s5s6s7s8输出给探测对象,然后立即采集对象的侧信道信息traces。字节s2的遍历完成后,可得到256条侧信道信息traces,即侧信道信息trace1、侧信道信息trace2、侧信道信息trace3
……
侧信道信息trace256,将这些侧信道信息traces 逐一与模板t1t2xxxxxx进行比较,将与模板相似度》x的侧信道信息trace 所对应的s2代码保留,定为b(也可能有不止一条tarces相似度》x,这种情况下可设为b1/b2/b3

等,仍可继续进行下一字节探测,但图3只介绍最简单情况的流程),其它侧信道信息trace的代码被排除。这个过程也可以边遍历指令的s2,边采集侧信道信息trace并且边与模板进行比较,把每次比较的相似度量保存下来,字节最后遍历完成后再根据每个侧信道信息trace的相似度做出取舍。
[0117]
步骤3、第三到第七字节的探测与1)和2)过程类似,故省略。
[0118]
步骤4、第三个虚线框是假设按照1)和2)的流程,未知指令的前七个字节abcdef都被找到,对第八字节进行遍历探测,即字节s8={00
‑‑
ff} 同时设置字节s1=a,s2=b,s3=c,s4=d,s5=e,s6=f,s7=g;构成指令是 abcdefgs8输出给探测对象,然后立即采集对象的侧信道信息(traces)。 s8的遍历完成后,可得到256条侧信道信息traces,即侧信道信息trace1、侧信道信息trace2、侧信道信息trace3
……
侧信道信息trace256,将这些侧信道信息traces逐一与模板t1t2t3t4t5t6t7t8进行比较,将与模板相似度》x的侧信道信息trace所对应的s8代码保留,定为h(也可能有不止一条tarces相似度》x,这种情况下可设为h1/h2/h3

等,但图3只介绍最简单情况的流程),其它trace的代码被排除。这个过程也可以边遍历指令的s8,边采集并且边与模板进行比较,把每次比较的相似度量保存下来,字节最后遍历完成后再根据每个侧信道信息trace的相似度做出取舍。
[0119]
步骤5、最后得到隐蔽指令abcdefgh.
[0120]
隐蔽指令子集的模板探测流程:首先假设未知指令为abcedfgh;而有一条已知指令为t1t2t3t4t5t6t7t8,指令均为8个字节长,输入的探测码序列为s1s2s3s4s5s6s7s8。
[0121]
探测时首先采集以:
[0122]
t1xxxxxxx/t1t2xxxxxx/t1t2t3xxxxx/t1t2t3t4xxxx/t1t2t3t4t5xxx/ t1t2t3t4t5t6xx/t1t2t3t4t5t6t7x和t1t2t3t4t5t6t7t8的代码排列为指令的traces作为一组模板,即对探测对象分别输出 t1xxxxxxx/t1t2xxxxxx/t1t2t3xxxxx/t1t2t3t4xxxx/t1t2t3t4t5xxx/ t1t2t3t4t5t6xx/t1t2t3t4t5t6t7x和t1t2t3t4t5t6t7t8的代码排列,并采集对象对每一条上述“指令”进行解析时的侧信道信息(可以是时间、能耗或电磁等信号),其中x为所挑选的指令以外的常数代码。
[0123]
然后进行逐字节(s1-s2-s3-s4-s5-s6-s7-s8)遍历探测,每一次在尝试指令输入后,采集对象的侧信道信息,并与模板进行比对;当相似度》x 时便可假定该字节代码为真,反之相似度《x者为假;其中x与探测所使用的采集工具和比较算法有关。
[0124]
对完全未知的探测对象的认证码或指令码(以下统称认证码,其实对指令码也有效)的探测流程,既有侧信道采集步骤,也有比对分析步骤。
[0125]
这个步骤基于四个假设:
[0126]
1)在对象认证码一个字节中,为“真”的码一定少于为“假”码。
[0127]
2)探测对象对输入代码的逐字节解析过程中对“假”的字节的处理基本相同,因此其产生的侧信道trace也相似。
[0128]
3)除了最后一个字节,探测对象对输入代码的逐字节解析过程中对“真”的字节的处理基本相同,因此其产生的侧信道信息trace也相似。
[0129]
4)“真”与“假”代码分别产生的侧信道信号有较大差异性。
[0130]
由此可以根据侧信道信息trace的产异性得到两个侧信道信息trace 的集合,并认定侧信道信息trace数目小的那个集合映射的代码为“真”。
[0131]
为方便理解,把差异性的度量定位x%,其中x值与与探测所使用的采集工具和比较算法有关。
[0132]
首先假设未知认证码为abcedfgh;且为8个字节长,输入的探测码序列为s1s2s3s4s5s6s7s8,并且为简便说明问题,假设对象只有一条认证码,即每个字节中只有一
个代码序列为真,则如图3中虚线框中流程所示:
[0133]
步骤1、对第一字节进行遍历探测,即s1={00
‑‑
ff}同时设置 s2=s3=s4=s5=s6=s7=s8=x(x可设为00);构成指令s1s2s3s4s5s6s7s8输出给探测对象,然后立即采集对象的侧信道信息traces。s1的遍历完成后,可得到256条侧信道信息traces,即侧信道信息trace1、侧信道信息 trace2、侧信道信息trace3
……
侧信道信息trace256。将侧信道信息 trace1与侧信道信息trace2进行比较,若差异性小于x,则认为都为假,然后侧信道信息trace1与侧信道信息trace3比较
……
直到找出差异性大于x的侧信道信息trace a;若侧信道信息trace1与侧信道信息trace2 的差异性大于x,则两者间有一个为真,依然让侧信道信息trace1与侧信道信息trace3比较,若差异小,说明侧信道信息trace2为真,若差异大则说明侧信道信息trace1为真
……
。总之通过找到与众不同的侧信道信息trace,对应的代码序列即为a。
[0134]
步骤2、对第二字节进行遍历探测,即字节s2={00
‑‑
ff}同时设置s1=a, s3=s4=s5=s6=s7=s8=x(x可设为00);构成指令as2s3s4s5s6s7s8输出给探测对象,然后立即采集对象的侧信道信息traces。字节s2的遍历完成后,可得到256条侧信道信息traces,即侧信道信息trace1、侧信道信息 trace2、侧信道信息trace3
……
侧信道信息trace256。将侧信道信息 trace1与侧信道信息trace2进行比较,若差异性小于x,则认为都为假,然后侧信道信息trace1与侧信道信息trace3比较
……
直到找出差异性大于x的侧信道信息trace b;若侧信道信息trace1与侧信道信息trace2 的差异性大于x,则两者间有一个为真,依然让侧信道信息trace1与侧信道信息trace3比较,若差异小,说明侧信道信息trace2为真,若差异大则说明侧信道信息trace1为真
……
。总之通过找到与众不同的侧信道信息 trace,对应的代码序列即为b。
[0135]
步骤3、第三到第七字节的探测与1)和2)过程类似,故省略。
[0136]
步骤4、第三个虚线框是假设按照1)和2)的流程,未知指令的前七个字节abcdef都被找到,对第八字节进行遍历探测,即字节s8={00
‑‑
ff} 同时设置字节s1=a,s2=b,s3=c,s4=d,s5=e,s6=f,s7=g;构成指令是 abcdefgs8输出给探测对象,然后立即采集对象的侧信道信息traces。字节s8的遍历完成后,可得到256条侧信道信息traces,即侧信道信息 trace1、侧信道信息trace2、侧信道信息trace3
……
侧信道信息trace256。将侧信道信息trace1与侧信道信息trace2进行比较,若差异性小于x,则认为都为假,然后侧信道信息trace1与侧信道信息trace3比较
……
直到找出差异性大于x的侧信道信息trace h;若侧信道信息trace1与侧信道信息trace2的差异性大于x,则两者间有一个为真,依然让侧信道信息trace1与侧信道信息trace3比较,若差异小,说明侧信道信息trace2为真,若差异大则说明侧信道信息trace1为真
……
。总之通过找到与众不同的侧信道信息trace,对应的代码序列即为h。
[0137]
步骤5、最后得到隐蔽指令(认证)码abcdefgh。
[0138]
如上,对本发明的实施例进行了详细地说明,但是只要实质上没有脱离本发明的发明点及效果可以有很多的变形,这对本领域的技术人员来说是显而易见的。因此,这样的变形例也全部包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献