一种防拆检测保护电路、实现方法和防拆芯片与流程

文档序号:17736796发布日期:2019-05-22 03:17阅读:2451来源:国知局
一种防拆检测保护电路、实现方法和防拆芯片与流程

本发明涉及防拆检测领域,尤指一种防拆检测保护电路、实现方法和防拆芯片。



背景技术:

随着互联网及电子终端产品的快速发展,各种针对于安全终端的拆机攻击手段层出不穷,对于安全芯片、安全终端的防拆功能成为当今安全系统的重要性能指标。

传统的静态防拆电路一般原理是采用多条金属线围绕终端外壳,每条金属线传递固定值,一般接电源(vcc)或地(gnd)表示逻辑“1”或“0”,检测逻辑值正确表示金属线连接完好;若逻辑值不等,则表示外壳绕线被破坏,报警。

如图1所示的外壳金属绕线(shellcircle),一端固定接vcc/gnd,另一端各接有一反相器,若两端逻辑值b=“0”或“1”则表示金属线完好没有破坏。否则终端外壳可能遭到恶意拆机破坏,检测电路发出报警信号,通知芯片擦除关键敏感数据,从而达到保护芯片目的。

如图2所示的外壳金属绕线(shellcircle)两端各有一反相器,若两端逻辑值a=b则表示金属线完好没有破坏。否则终端外壳可能遭到恶意拆机破坏,检测电路发出报警信号,通知芯片擦除关键敏感数据,从而达到保护芯片目的。

如图3,传统防拆电路一般将金属线分n组,金属线两端采用固定值,判断a[i]是否等于b[i](i=0~n),通过对比n条金属线值来判断终端是否遭遇拆机攻击,通知cpu(centralprocessingunit,中央处理器)执行保护芯片。这种固定方式设计简单,通过增加金属线的方式可增大安全性。

但是现有设计的防拆检测电路存在金属线逻辑值固定、安全性低等技术缺陷:

如图4,现有静态设计系统结构框图。四路sdi通过绕线接到设备外壳的卡扣上,并采用固定电平为vdd或gnd。如果外壳收到拆卸攻击,其中的一根线或几根线断掉,绕线电平变化通过sdi输入到芯片内部检测电路,触发报警,cpu收到报警信号,将存储器中的关键数据擦除。

从设计原理上,现有设计的静态防拆电路,每次启动只检测其终端上金属绕线上的固定值。如攻击所有外部金属绕线,经过一定次数的模拟或穷举,可探测到金属线左侧的逻辑值,即掌握了所有金属线的逻辑pattern(模式)。按照此pattern即可屏蔽防拆电路保护,达到攻击芯片的目的。



技术实现要素:

为了解决上述技术问题,本发明提供了一种防拆检测保护电路、实现方法和防拆芯片,以解决静态检测设计上安全性的技术缺陷。

为了达到本发明目的,本发明提供了一种防拆检测保护电路,包括:动态数据发生模块、动态采样模块、动态采样检测模块和输出模块;

其中,所述动态数据发生模块用于产生动态数据,将所述动态数据输出至外壳绕线的一端;

所述动态采样模块用于从所述外壳绕线的另一端采集数据;

所述动态采样检测模块分别与所述动态数据发生模块和动态采样模块相连,用于将所述动态数据发生模块输出的所述动态数据与所述动态采样模块采集到的数据进行对比,输出对比结果;

所述输出模块与所述动态采样检测模块相连,用于在所述动态采样检测模块输出的对比结果为不相同时,输出总报警信号。

可选地,所述的防拆检测保护电路,还包括:电压检测器,

所述电压检测器与所述输出模块相连,用于在检测到电压高于报警上限时,向所述输出模块输出高压报警,和/或,在检测到电压低于报警下限时,向所述输出模块输出低压报警;

所述输出模块,还用于接收到高压报警和/或低压报警时,输出总报警信号。

可选地,所述动态数据发生模块包括相连的随机数发生器和线性反馈移位寄存器,其中

所述随机数发生器用于产生随机数;

所述线性反馈移位寄存器用于将所述随机数发生器产生的随机数作为源种子,按照所述外壳绕线的根数,生成一组或多组动态数据,输出至相应的外壳绕线。

可选地,在所述外壳绕线为多根时,所述线性反馈移位寄存器输出的多组动态数据在同一时刻仅有一组动态变化。

可选地,所述的防拆检测保护电路,还包括:时钟控制模块,

所述时钟控制模块与所述动态数据发生模块和动态采样模块相连,用于控制所述动态数据发生的频率和数据采样的频率。

可选地,所述动态采样检测模块,还用于按照预设的延迟检测周期,将所述动态数据发生模块输出的动态数据进行延迟后,与所述动态采样模块采集到的数据进行对比。

本发明还提供一种防拆芯片,包括:外壳、缠绕在外壳外部的一根或多根外壳绕线、位于外壳内部的cpu、存储器和所述的防拆检测保护电路;

所述cpu分别与所述防拆检测保护电路和存储器相连,用于在接收到所述防拆检测保护电路输出的总报警信号时,擦除所述存储器中存储的指定信息。

本发明还提供一种防拆检测保护的实现方法,包括:

产生动态数据,将所述动态数据输出至外壳绕线的一端;

从所述外壳绕线的另一端采集数据,将所述动态数据与采集到的数据进行对比,得到对比结果;

在对比结果为不相同时,输出总报警信号。

可选地,所述方法还包括:

在检测到电压高于报警上限,和/或,低于报警下限时,输出总报警信号。

可选地,所述产生动态数据,将所述动态数据输出至外壳绕线的一端包括:

产生随机数;

将所述随机数作为源种子,按照所述外壳绕线的根数,生成一组或多组动态数据,输出至相应的外壳绕线。

本发明实施例的防拆检测保护电路,包括:动态数据发生模块、动态采样模块、动态采样检测模块和输出模块;其中,所述动态数据发生模块用于产生动态数据,将所述动态数据输出至外壳绕线的一端;所述动态采样模块用于从所述外壳绕线的另一端采集数据;所述动态采样检测模块分别与所述动态数据发生模块和动态采样模块相连,用于将所述动态数据发生模块输出的所述动态数据与所述动态采样模块采集到的数据进行对比,输出对比结果;所述输出模块与所述动态采样检测模块相连,用于在所述动态采样检测模块输出的对比结果为不相同时,输出总报警信号。本发明实施例通过输出动态数据,提高了防拆检测保护的安全性。

进一步地,通过检测电压,可以实现高压/低压报警;通过多组金属线单比特变化,降低了芯片功耗;而且,检测时钟频率可配,延迟检测周期可配,连接简单,与业内各种机壳兼容性高。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为一种静态防拆电路的原理示意图;

图2为另一种静态防拆电路的原理示意图;

图3为基本防拆电路框图及外壳绕线组;

图4为现有静态设计系统结构框图;

图5为金属线信号延迟误报警示意图;

图6为多条金属线同时翻转瞬态功耗电流图;

图7为电压检测电路高低压报警图;

图8为本发明实施例的防拆芯片的结构框图;

图9为本发明实施例的防拆检测保护电路的组成示意图;

图10为本发明实施例的动态数据发生模块的组成示意图;

图11为本发明应用实例的防拆检测保护电路的示意图;

图12为本发明应用实例的电压检测设计原理图;

图13为本发明应用实例的电路正常工作仿真波形图;

图14为本发明应用实例的受到拆机攻击仿真图;

图15为本发明应用实例的高压报警仿真图;

图16为本发明应用实例的低压报警仿真图;

图17为本发明应用实例的绕线延迟误报警仿真图;

图18为本发明应用实例的配置延迟检测周期仿真图;

图19为本发明实施例的防拆检测保护的实现方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

现有设计的防拆检测电路存在金属线逻辑值固定、安全性低、增加额外引脚、动态引脚同时翻转功耗高等技术缺陷:

1、现有设计一般采用固定电平、或动态变化具有规律性的检测方式,攻击者通过探针攻击或者几次模拟绕线电平,很容易猜出金属线数值组合方式,从而攻破拆机保护电路。

2、现有设计一般动态检测周期固定。如图5,a端发出动态变化信号,经过外壳绕线(shellcircle),到达b端后动态变化信号存在延迟(delay),a、b端信号进入比较器输出比较结果。由于不同厂商机壳的金属线存在材质、长度、外围电容的差异性,会使动态信号在金属线上传递存在不同的延迟,导致动态信号检测错位,产生误报警(error)。

3、现有设计一般采用增加金属线数量方式,来弥补固定方式带来的安全性低问题。但增加芯片引脚,必然带来芯片面积、成本增加。而且多条金属线上电时、动态变化时同时翻转,也导致芯片瞬态功耗及动态功耗变大。如图6,多条金属线(shellcirle[0]~[n])动态变化的上升沿累加会造成瞬态功耗电流(powercurrent)“上探”,及下降沿累加会造成瞬态功耗电流“下探”,导致供电电源抖动,使其供电下的所有电路工作不稳定,产生错误。

4、现有设计一般不带有电压检测装置,在外部电源高压或低压环境下,检测电路可能失效,极易受到攻击,芯片失去保护。本设计电源正常工作范围为1.8~3.3v±10%,即1.62~3.6v。报警范围应涵盖正常工作范围且范围略宽为1.8~3.3v±15%,即1.53~3.80v。如图7,电压超过报警上限3.80v,或者低于报警下限1.53v,则产生报警信号,通知cpu执行保护芯片。

相比传统设计,本发明实施例提出一种防拆检测保护电路、实现方法和防拆芯片,可以解决静态检测设计上安全性的技术缺陷,及动态检测逻辑值同时翻转造成的瞬态功耗过大问题,且匹配多种机壳金属线材质。

如图8所示,为防拆芯片的结构框图,其中,所述防拆芯片包括:外壳801、缠绕在外壳801外部的一根或多根外壳绕线802、位于外壳内部的cpu803、存储器804和防拆检测保护电路(detector)805。

所述cpu分别与所述防拆检测保护电路和存储器相连,用于在接收到所述防拆检测保护电路输出的总报警信号时,擦除所述存储器中存储的指定信息。

其中,所述指定信息可以是预设的关键信息。

所述存储器804可以包括flash(闪存)和ram(randomaccessmemory,随机存取存储器),芯片内部cpu803、flash、ram及防拆检测保护电路(detector)805均挂于系统总线(systembus),cpu803通过总线取指flash,访问ram,配置detector805。

外壳绕线802可以是一根或多根,参照图8,本实施例中,以外壳绕线802为四根进行说明。则detectort805通过四组信号线sdo连接到外壳绕线shellcircle(delay),发出动态检测信号(即动态数据),并由sdi接收返回。

如图9所示,本发明实施例的防拆检测保护电路,包括:动态数据发生模块901、动态采样模块902、动态采样检测模块903和输出模块904;

其中,所述动态数据发生模块901用于产生动态数据,将所述动态数据输出至外壳绕线的一端;

所述动态采样模块902用于从所述外壳绕线的另一端采集数据;

所述动态采样检测模块903分别与所述动态数据发生模块901和动态采样模块902相连,用于将所述动态数据发生模块901输出的所述动态数据与所述动态采样模块902采集到的数据进行对比,输出对比结果;

所述输出模块904与所述动态采样检测模块903相连,用于在所述动态采样检测模块903输出的对比结果为不相同时,输出总报警信号。

本发明实施例通过输出动态数据,提高了防拆检测保护的安全性。

如图10所示,在一实施例中,所述动态数据发生模块901包括相连的随机数发生器1001和线性反馈移位寄存器1002,其中

所述随机数发生器1001用于产生随机数;

所述线性反馈移位寄存器1002用于将所述随机数发生器1001产生的随机数作为源种子,按照所述外壳绕线的根数,生成一组或多组动态数据,输出至相应的外壳绕线。

其中,所述随机数发生器1001可以是trng(hardwarerandomnumeralgenerator,物理真随机数发生器)。

线性反馈移位寄存器1002可以是32位的lfsr(linearfeedbackshiftregister,线性反馈移位寄存器)。

其中,生成多组动态数据时,可以按照本原多项式的方式,生成不同的多组动态数据,以提高绕线数据复杂性。

在一实施例中,在所述外壳绕线为多根时,所述线性反馈移位寄存器1002输出的多组动态数据在同一时刻仅有一组动态变化。

通过多组金属线单比特变化,可以降低芯片功耗。

参照图9,在一实施例中,所述防拆检测保护电路,还可包括:电压检测器905,

所述电压检测器905与所述输出模块904相连,用于在检测到电压高于报警上限时,向所述输出模块904输出高压报警,和/或,在检测到电压低于报警下限时,向所述输出模块904输出低压报警;

所述输出模块904,还用于接收到高压报警和/或低压报警时,输出总报警信号。

所述输出模块904可以采用或门(or)实现。

本实施例中,通过检测电压,可以实现高压/低压报警。

参照图9,在一实施例中,所述防拆检测保护电路,还包括:时钟控制模块906,

所述时钟控制模块906与所述动态数据发生模块901和动态采样模块902相连,用于控制所述动态数据发生的频率和数据采样的频率。

在一实施例中,所述动态采样检测模块903,还用于按照预设的延迟检测周期,将所述动态数据发生模块901输出的动态数据进行延迟后,与所述动态采样模块902采集到的数据进行对比。

其中,由于外壳绕线会使得信号在传递过程中出现延迟,通过配置延迟检测周期,可以避免由于检测错位导致的误报警,而且可以兼容多种厂商机壳的外部绕线。

本发明实施例中,检测时钟频率可配,延迟检测周期可配,连接简单,与业内各种机壳兼容性高。

下面以应用实例进行说明。

参照图11,防拆检测保护电路可以包括:真随机数发生器(trng)、32位lfsr、动态采样检测模块(detect)、动态采样模块(sdi_sample)、电压检测器(vd)、寄存器配置模块(config)和时钟控制模块(clk_ctrl)。

防拆检测的配置可以包括:

(1)配置clk_ctrl,使lfsr和sdi工作在合适的工作频率。对于动态检测,时钟频率越高安全性越好,频率越低则功耗越低。

(2)配置trng_en=1打开真随机数发生器,等待稳定产生随机数后,配置detect_en=1打开防拆电路使能,开始工作。

(3)采样32bits真随机数作为源种子进入32位lfsr。4组sdo到sdi采用不同抽头组合,以提高绕线数据复杂性,其m序列本原多项式如下:

f(x)=1+x2+x21

f(x)=1+x3+x12

f(x)=1+x+x21+x31

f(x)=1+x+x3+x4+x26

上述本原多项式仅用于说明原理,当然也可以选择其他本原多项式的抽头组合。

四组不同随机数bit流,在sdo到sdi绕线上动态变化,detect模块周期检测绕线安全性。

上述寄存器的参数配置可参照后文中的表1~表4。

参照图11,当设备受到“拆机”攻击(attack)时,外壳绕线断开。线上数值由动态的逻辑值变为固定电平“0”、“1”、或“z”(高阻态),sdi接收的不再是动态数据。动态采样模块(sdi_sample)采到数据进入动态采样检测模(detector),比较结果不同intr_det=1,进入或门(or),发出总报警信号intr=1给cpu,cpu处理后,擦除片上关键信息。无论拆机攻击任意一组或几组绕线,均会触发报警。

对于电压检测,举例来说,正常工作电压范围:1.8~3.3v±10%,即1.62~3.6v。

如图7,若设备处于恶劣电压供电环境,电压高于报警上限或低于报警下限,电路工作可能工作不正常,造成错误。vd起到保护作用,触发高压、低压报警,擦除片上关键信息。

电压检测的配置可以包括:

(1)配置vd_en=1打开vd使能,打开防拆使能detect_en=1,开始工作。

(2)如图12,当设备受到“高低电压”攻击(attack)时,vd触发高/低温报警信号vd_h/vd_l,进入或门(or),发出总报警信号intr给cpu,cpu处理后,擦除片上关键信息。

上述寄存器的参数配置可参照后文中的表1~表4。

关键寄存器可以包括:

1、使能控制寄存器

表1使能控制寄存器

2、时钟控制寄存器:

表2时钟控制寄存器

3、延迟检测周期寄存器:

表3延迟检测周期寄存器

4、中断报警状态寄存器:

表4中断报警状态寄存器

如图13所示,为防拆检测电路正常工作仿真图。trng_en=1(rng_en=1)打开真随机数发生器,vd_en=1打开电压检测器,detect_en=1(en=1)打开防拆检测电路。此时设备机壳未受到拆机攻击,所以vd_h/vd_l/intr均为0,无警报。

四组绕线按各自随机序列动态变化,顺序如下:

sd0[0]—sdi[0];

sd0[1]—sdi[1];

sd0[2]—sdi[2];

sd0[3]—sdi[3];

四组绕线同时仅有1组在动态变化,即单bit变化。这样避免了多根金属绕线同时翻转产生过大的瞬态电流。

如图14所示,为防拆检测电路受到攻击仿真图。sdi_1=“z”高阻态,此绕线受到攻击断开。使能打开后en=1,四组绕线sdo_1~4均可变化,三组sdi_2~4可正常接收动态数据并对比正确。sdi_1对比错误,检测电路发出警报intr=1。cpu接收到报警信号,擦除flash、sram等存储器关键信息。

如图15所示,为高压报警仿真图。vd_en=1打开电压检测器,如设备供电大于电压报警上限vd_h=1,intr=1,低温报警。cpu接收到报警信号,擦除flash、sram等存储器关键信息。

如图16所示,为低压报警仿真图。vd_en=1打开电压检测器,如设备供电小于电压报警下限vd_l=1,intr=1,低温报警。cpu接收到报警信号,擦除flash、sram等存储器关键信息。

下面对配置延迟检测周期避免绕线延迟误报警的情况进行说明。

如图17所示,为绕线延迟误报警仿真图。若由于机壳金属线长度过长或者材质等原因,使四组金属线sdo到sdi的延迟是8个时钟(clk)周期。寄存器div[2:0]=0,即检测时钟频率为clk的2分频,所以金属线延迟为4个检测时钟周期。cycle[3:0]=0,电路没有对此delay做处理(此处模拟无金属线延迟处理的一般设计)。en=1工作使能打开后,四组sdi采样动态数据,对比错误,发出误报警intr=1。

如图18所示,为配置延迟检测周期仿真图。四组金属线sdo到sdi的延迟是8个时钟(clk)周期,寄存器div[2:0]=0,检测时钟频率为clk的2分频,即金属线延迟为4个检测时钟周期。所以如表3配置cycle[3:0]=4,电路将会延迟4个检测时钟周期再进行检测。en=1工作使能打开后,四组sdi采样动态数据,对比正确,此时设备机壳未受到拆机攻击,所以vd_h/vd_l/intr均为0,无警报。

本发明实施例通过随机数发生器产生的随机数经过复杂化后,作为各sdi的输入动态检测pattern,多组金属线单比特变化,检测时钟频率可配,延迟检测周期可配,并同时搭载电压检测器,安全高,功耗小,连接简单,与业内各种机壳兼容性高。

相应地,如图19所示,本发明实施例还提供一种防拆检测保护的实现方法,包括:

步骤1901,产生动态数据,将所述动态数据输出至外壳绕线的一端。

在一实施例中,步骤1901包括:

产生随机数;

将所述随机数作为源种子,按照所述外壳绕线的根数,生成一组或多组动态数据,输出至相应的外壳绕线。

其中,生成多组动态数据时,可以按照本原多项式的方式,生成不同的多组动态数据,以提高绕线数据复杂性。

在一实施例中,在所述外壳绕线为多根时,所述多组动态数据在同一时刻仅有一组动态变化。

通过多组金属线单比特变化,可以降低芯片功耗。

步骤1902,从所述外壳绕线的另一端采集数据,将所述动态数据与采集到的数据进行对比,得到对比结果。

在一实施例中,按照预设的延迟检测周期,将所述动态数据进行延迟后,与采集到的数据进行对比。

其中,由于外壳绕线会使得信号在传递过程中出现延迟,通过配置延迟检测周期,可以避免由于检测错位导致的误报警,而且可以兼容多种厂商机壳的外部绕线。

在一实施例中,所述方法还包括:控制所述动态数据发生的频率和采集数据的频率。

本发明实施例中,检测时钟频率可配,延迟检测周期可配,连接简单,与业内各种机壳兼容性高。

步骤1903,在对比结果为不相同时,输出总报警信号。

本发明实施例通过输出动态数据,提高了防拆检测保护的安全性。

在一实施例中,所述方法还包括:

在检测到电压高于报警上限,和/或,低于报警下限时,输出总报警信号。

本实施例中,通过检测电压,可以实现高压/低压报警。

综上所述,本发明实施例具有支持多组机壳传感器输入输出、单比特动态检测、延迟检测周期可配、电压检测、随机数引入、检测时钟频率可配的特点。相比传统设计,解决静态检测设计上安全性的技术缺陷,及动态检测逻辑值同时翻转造成的瞬态功耗过大问题,且匹配多种机壳金属线材质。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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