当前位置:首页 > 嵌入式 > 嵌入式硬件

  安全已成为如今的热门话题。对于电子设计工程师来说,最大的威胁莫过于市场上出现由于设计盗版而引起的大量假冒产品。根据反盗版联盟(Ant i-CounterfeitingCoalition)的统计,2003年,全美国涉及盗版的交易额达287O亿美元,占全球盗版产品年销售总量(4560亿美元)的63%。本文将介绍能够保护低成本FPGA设计的安全措施。

三大安金威胁

  电子设计中最常见的侵权行为就是反向工程。当盗版者以在公开市场低价销售为目的而企图重新设计或制作某产品时,这种行为就会发生。通过反向工程,盗版者能够非常迅速地完成设计,由于无需研发经费,因此成本可以很低。

  目前,许多公司采取了外包生产的方式,因而面临着两种新侵权行为的威胁,即超量生产和克隆。在超量生产中,承包制造商只需生产出多于OEM(原始设备制造商)订货量的产品,这些超量生产的产品会在未经OEM授权的情况下售出。

  克隆是指盗版者以相同或不同的品牌复制设计、IP或产品。同样,克隆者不必花费任何研发成本。而且,超量生产和克隆的产品都能快速上市。

  还未得到重视的是与这类侵权行为有关的无形资产流失。无论产品遭到反向工程、超量生产还是克隆,都意味着OEM销售额的重大损失。除了损失销售额,还会发生以退货量形式表现出来的质量成本,可能会影响品牌形象。并且,随着RMA(退货授权书)数量增多,OEM需要提供技术支持以确定症结所在并解决最终客户的问题,又进一步增加了成本。最终,产品可能变得真伪难辨。这些都是无法补偿的永久性损失。

使用Device DNA实现安全功能

  传统的FPGA使用比特流加密技术来防范反向工程和克隆。虽然以往的效果不错,但现在,比特流加密已无法保护设计免遭超量生产的侵权。

  为了保护设计不被以上三种行为所盗版,Xilinx提供了几种解决方案,并在最近推出了带有DeviceDNA的Spartan-3A和Spartan-3AN器件系列,可帮助防范克隆者、超量生产者和反向工程者。这种DeviceDNA设计级安全功能可以保护设计、IP和嵌入式代码。DeviceDNA是一种特殊的57位ID,对于每个器件都是独一无二的。这种57位ID是在Xilinx工厂中固化或设定的,因而不能更改。Spartan-3A和Spartan-3AN两种FPGA在每个出厂的器件中都包含独一无二的ID。

  然后,该ID会与设计师的个性化算法结合起来储存在FPGA上。该算法基本上是一个算术方程式,它规定如何提取DeviceDNA,并创建一个结果。此结果可以存储在任何地方,如外部存储器或Flash中。该算法是安全性的秘密所在,因为只有设计师才知道它。尽管它存储在FPGA上,但在旁观者看来,这只是一部分比特流。

Spartan-3A的安金性

  对于Spartan-3A器件,该算法将使用DeviceDNA的结果与器件配置后存储在flash中的结果相比较。如果二者匹配,则认可该设计。如果二者不匹配,该设计会被设置成多种行为方式,从轻微故障到严重功能障碍。

  为了便于理解,可以把DeviaDNA比作ATM银行卡,把个性算法比作ATM卡的密码。其潜在的弱点是,可能出现有人同时得到了ATM卡和密码的情况。这个性化算法一旦为人知晓便很容易被克隆,这正是设计本身集成授权算法的原因。该算法置于可编程逻辑内部最隐秘的位置,可以选择数百万种配置方案。

Spartan-3AN的安全性

  对于Spartan-3AN平台(即新型非易失性FPGA平台),此过程大同小异,只是有几个增强项。第一个安全增强项是,比特流隐藏在FPGA内部。这样更难于被人窥见。

  Spartan-3AN FPGA的第二个安全增强项是两个特有的序列号,即DeviceDNA和工厂预设FlashID,存储在Flash中。这两个特有的ID提供长达70个字节的序列号,可产生大量可能的算法,从而延长了破解认证算法所需的时间。于是,设计既要受FPGA约束,又要受Flash ID的约束。

  第三项改进是在存储的授权代码中。在Spartan-3AN平台上,可以将授权代码存储在片上一个叫做flash用户字段的专用一次性可编程64字节寄存器中。这样可使整个安全系统自成一体。由于不需要外部接口或存储器,整体安全性得以提高,使反向工程更加困难。

  该认证算法由用户定义,这使用户能在设计预算内实现恰当的安全等级。该认证算法也是安全系统中的主要秘密。认证过程中必须有不为人知的秘密,才能保护安全系统不被破解。因为算法是未知的,所以它是设计级安全性的关键。算法是在FPGA架构中实现的,因此便成为FPGA中数百万配置位当中的少数几个配置位。除非知道这些位如何组合在一起,或者知道是哪种算法,否则这看起来仅仅是一堆数字。应用Spartan-3AN器件的一种可能的流程如图1所示。

  Spartan-3AN设计级安全功能是完全自成一体的安全解决方案,如图2所示。Flash中既包含FPGA配置比特流,也包含预生成的授权代码。此代码由可信/安全制造商或注册流程存储在一次性可编程Flash用户字段中。

  通电后,FPGA进行正常配置。一旦配置完成,FPGA应用程序便包括了批准已授权设计在相关Spartan-3AN FPGA上运行的电路。认证算法将读取DeviceDNA和工厂预设Flash ID,然后生成一个主动授权代码,并将此授权代码与Flash用户字段中存储的预生成授权代码进行比较。如果两个代码相等,则器件通过认证。否则,器件属非法而无法获得授权。

拒绝访问

  失败认证的处理是DeviceDNA设计级方案的又一强项。认证可以完全集成到设计中。这样,未经授权的设计可以引起多种反应,例如:

·无功能一该设计完全停止工作。

·有限功能-主电路或关键电路被禁用或旁路。

·定时炸弹-仅在限期内提供全部功能。

·主动防御-系统监测各项活动并抵御攻击。

·永久性自毁-删除所有Flash内容,并且将Flash永远锁定在全零状态。

本文所述的设计级安全功能是Spartan-3A和Spartan-3AN平台中可实现的基本安全级别。

结语

  在开始进行下一代电路设计时,安全是一个重要的问题,Spartan-3A和Spartan-3AN平台中的安全措施为防范反向工程、超量生产和克隆提供了多种方法。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭