Soartan
扫描二维码
随时随地手机看文章
本节探讨Spartan3A/3ANi3ADSP应用中如下更高级的安全机制技术。
(1) 主动防御(JTAG边界扫描)。
(2) 比特流验证(循环冗余校验CRC)。
(3) 高级数据操作。
1.主动防御
一个普遍的问题是任何带有JTAG接口的器件都易受反向工程的攻击,通过采用边界扫描链,JTAG也可以用于对系统、器件、P或标准产品进行反向工程,这需要攻击者拥有充足的资金、渊博的知识和熟练的技术,以及相应的设各与时间。一些公司或竞争对手都在试图了解一个产品如何工作,并且将很有可能试图降低成本或增加功能。本节讨论将不同特性整合到设计中来检测和防止JTAG反向工程的方法。
JTAG边界扫描起初是为协助测试和调试PCB上的I/0连接功能雨设计的,后来用于将逻辑整合到芯片内部。在使用INTEST命令和边界扫描功能时可以将数据移动到模块或IC中,然后用时钟记录IC来读回结果数据,该操作可以为技术娴熟的用户提供IC或模块中的架构或逻辑。如图1所示,这也是一种对设计或系统进行反向工程的方法,因此未授权使用JTAG端口对于有些用户及其产品的安全来说是一个隐患。
图1 标准边界扫描链
Spartan-3 A/3AN/3 A DSP器件是JTAG兼容型的,允许配置和读回FPGA,JTAG兼容性也意味着JTAG引脚无法被禁止。但是通过采用边界扫描模块,设计者可以进行安全设计,以检测和阻止未授权即使用JTAG端口。
(1) 边界扫描模块
BSCAN ̄SPARTAN3A宏模块如图2所示,它允许设计者获取边界扫描信号。通过对该模块进行简单的例化,设计者就可以从FPGA内部监控JTAG引脚上的活动。
图2 BSCAN SPARTAN3A宏模块
以下代码为BSCAN_SPARTAN3A所例化的结果:
(2) 边界扫描模块如何提高安全性
如前所述,边界扫描模块可以为从内部监控JTAG引脚的活动提供条件,如果检测到端口上的活动,则可以设计逻辑来完全擦除FPGA配置或绕过/阻止选定的功能。ICAP可以用于擦除Spartan-3 A/3 AN/3A DSP器件的配置。
图3所示为绕过关键逻辑和功能的实例,该设计将旁路MUX整合到由检测逻辑输出控制的关键输入功能中。在正常操作过程中,信号进入逻辑。当检测到JTAG活动时信号旁路被断开,并通过逻辑设置一个值,从而使INTEST输出对于反向工程内部逻辑来说完全无用。
图3 用户定义边界扫描
在图4中,检测逻辑可以和门电路一样简单,或者应用可能需要更为复杂的逻辑。
图4 检测逻辑
(3) JTAG现场更新和安全诊断
在多数情况下,一旦系统或器件部署完毕并开始运转,JTAG接口就不能被访问或使用。但是总有例外的情况,例如,当系统在现场更新或诊断时就需要JTAG端口。如果为了保护器件免受通过JTAG端口进行的未授权访问而实现了检测安全性,就会阻止授权访问。设计可通过多种方式实现,为此可设计检测逻辑。它只会激活INTEST测试指令,而使JTAG在所有其他模式中都能正常操作,如BYPASS、IDCODE、USERCODE和EXTEST,从而使通过现场访问JTAG端口进行更新和诊断变得很简单。
对于更为复杂的安全性,检测逻辑可以设计用来监控特定的访问路线或代码序列以允许访问JTAG正常操作模式。当现场工作组需要访问INTEST指令以对系统功能进行内部测试和验证时,这是很有用的。这样可以释放JTAG指令,直至诊断测试和升级完成。升级完成后,重启升级后的FPGA就可以将检测逻辑复位。对于只进行诊断的系统,可以发布一个代码序列,以重新开始进行检测逻辑监控。
两种方法都能保证完成现场服务任务,而不会发生通过JTAG端口危及安全的情况。如果检测到的序列不正确,就可以用ICAP来复位(擦除)。
(4) 主动防御逻辑资源要求
Spartan-3系列器件具有很多内置于芯片中的嵌入式特性和功能,JTAG状态机和到ICAP的接口逻辑包含在这些嵌入式功能中。BSCAN ̄SPARTAN3A模块不需要逻辑资源,因为该功能是嵌入式的。但是连至例化的JTAG模块的用户逻辑会消耗逻辑和互连资源,该逻辑可以是一个逻辑单元也可以是数十个逻辑单元,这取决于用户逻辑/功能的复杂度。
(5) 主动防御结论
利用Spartan-3 A/3AN/3A DSP FPGA设计时,只需要利用很少的额外逻辑就可以通过例化边界扫描模块及简单的检测逻辑检测和提高防反向工程安全性。
来源:ks990次