针对FPGA实现安全的系统内编程功能
针对FPGA实现安全的系统内编程功能 Implementation of secure in-system programming for FPGAs Actel公司软件工具高级产品市务经理Michael Mertz FPGA正越来越多地作为现代电子系统的核心部分。这有多个可能原因:FPGA的成本低、立即可用及精密性不断提高,但最重要的还是FPGA硬件可重新配置,因此能轻易配合系统规格随时改变的要求。 硬件可重编程是FPGA器件的“杀手锏”,其优点多不胜数。除了明显的优势在于几乎毋须额外的成本便能更改半导体的功能外 (这远较传统的ASIC器件优越),FPGA能够应对规格改变的能力、增加功能,或快速实时配置客户的设置,这意味着FPGA产品能延长应用寿命及提高盈利空间。 但有一个很重要的问题需要考虑:我们能在多大程度上安全地配置系统环境下的FPGA,即实现系统内可编程 (ISP),使系统设计人员获得最大的益处。我们当然希望能够在系统完全制成后甚至在场地应用时,都可以更改系统编程。也希望在大多数情况下,在器件重编程时进行安全的控制。换言之,我们需要有完整的手段来控制对FPGA内IP的存取及保护,这手段称之为“安全ISP”。 为什么会有这个需求?因为FPGA的灵活性可为终端用户带来许多好处,但也可能在不法分子手上用以进行不法的勾当,例如: 过建 (复制盗版) 盗取敏感的数据 篡改产品 黑客攻击 随着许多公司都在本土之外设立制造基地,过建的行为越来越猖獗。过建是非法的行为,即不道德的合约制造商会在市场上购买额外的芯片来制造合约规定以外的系统产品,然后在市场上销售,与OEM厂商进行不公平的竞争。这种行为不仅会使OEM厂商降低所销售产品的营业额,同时也因额外的竞争而影响产品的边际利润,并且还增加技术支持成本和承担更多负债责任。 盗取敏感数据是电子化数据时代中越来越严峻的问题。拥有高精技术的犯罪者每每能够盗取各种特许信息,如银行帐号、社会安全保险号和其它重要资料。 手持销售点 (POS) 机可能成为盗取这类信息的一个途径;因为这些敏感信息一般都保存于系统的非挥发性片上数据存储器中。如果这些内存未经高度的加密保护,攻击者就能够盗取其中的重要数据。由于设备具有便携式的特性,如容易开启和接入串连端口,就使问题更加严重。 图1 安全ISP的完整解决方案 篡改产品是系统易于重新配置引发的自然结果。篡改行为范围广泛,可以从微小但合法的程度 (如改动引擎控制系统来提高汽车的性能),以至于犯法的行为 (如更改赌博机制的随机性来牟利)。这种篡改意味着产品制造厂需要承担被篡改产品的法定或/和产品质量责任,严重时还会引起公众安全问题。 黑客攻击是互联网时代中的一个小但却会不断扩大的问题。SRAM FPGA更特别易受黑客攻击。文献报道过很多黑客攻击实例,当中,SRAM FPGA屡遭黑客采用随机位流攻击的方式实际地摧毁。因此,必须建立适当的系统保护机制,确保器件只会接受作为授权编程位流经的认证信息。
Flash出现前的情况 以SRAM为基础的 CPLD和FPGA是挥发性的,需要外部的配置内存。因此,它们被公认为最多安全隐忧的可编程器件。例如,要盗取以SRAM为基础 FPGA的设计十分容易,只要探测FPGA与外部 (非挥发性) 配置内存的接口,截取当中的位流便可。为此,SRAM器件制造商进行了很多尝试,以防止这些情况发生。为了保护FPGA上的数据,有些厂家移除了非挥发性的配置内存,并尝试用电池来维持FPGA的配置数据。这在理论上可行,但在实际应用中却会显着增加板级设计的成本:板卡更加复杂、需要添加电源线、采取电隔离措施 (防止其它芯片从器件至器件之间的互连为自己供电),以及电池本身的成本。即使采用这种方法,也不能排除系统因电压/接地尖峰、物理冲击或电池失效等问题而遭受瞬间掉电,从而丢失配置数据。 对于许多较新的SRAM FPGA产品,制造商引进了以3DES或同类加密方案的位流加密支持,并储存于外部内存中。上电时,可编程器件从内存中读入加密后的配置位流,并在器件中进行解密,然后加载到半导体芯片上。虽然这种方法能防止大部分黑客盗取芯片中的IP,但还是不能阻止他们截获位流或导入其它的位流。 较旧式的SRAM FPGA产品不支持位流加密,制造商因此采用了几种方法来增加器件的安全性。常用的一种方法是采用所谓“握手令牌” (Handshake token)执行设计,即如果没有收到所预期的令牌,FPGA内的设计功能就会失效。握手令牌会在上电时随机生成,或利用小型的非挥发性可编程器件 (NVPD) 重置,然后在运行时定时监控,以保证令牌没有改变。假如令牌有变,FPGA的功能 (握手令牌电路除外) 将失效,直到收到正确的令牌为止。FPGA每隔一段时间就会向NVPD请求另一个令牌,以便进行控制。一旦收到正确的令牌,FPGA的功能便会恢复。 这种方法希望能保证即使配置位流被复制并克隆到FPGA中,没有正确的令牌也不能工作。然而,这种方法不能防止犯罪者将位流从外部配置内存中复制,并经过逆向工程获得它在NVPD中的运行算法,然后便可制备新的NVPD,以便在克隆的电路中生成令牌。虽然这种保证方法大幅增加了克隆设计的难度,但不能全面保护FPPGA中的专利IP。其它方法也可以用来保护SRAM FPGA,但也只是提高获取或使用位流的难度,而不能完全保护IP。讽刺的是,在许多这类方法中,NVPD的内容得到保护,因为器件是非挥发性的;而FPGA的内容却被暴露,因为器件每次上电都需要将配置位流写入FPGA中。 安全ISP的完整解决方案 能充分保障器件及其编程安全的完整解决方案必须能抗衡这些严峻的安全问题。这样的解决方案必须包含如下要素: 安全的基础构架。Flash FPGA具非挥发性、上电即行和单芯片等特性,在芯片上拥有一切所需的非挥发性内存,在锁定后也很安全。 AES (先进加密系统) 技术。必须采用先进的加密技术确保编程位流的安全传输。 信息验证代码 (MAC)。必须在安全位流传输中采用MAC验证来确保信息在传输时没被更改。 非挥发性内存/FlashROM (FROM)。FPGA板上的非挥发性FROM寄存器可存储键和标识,以实现安全ISP的控制和序列化处理。 AES加密系统 先进加密系统 (AES) - 美国联邦信息处理标准197 (AES-FIPS 197) 是美国国家标准技术研究院 (NIST) 最新颁布的加密标准。AES算法能够使用128、192和256位的加密键来实现128位数据块的加密和解密,从而保护电子数据。AES算法替代了原本安全性较低的DES和3DES算法。AES-128能在多达3.4 * 1038个独特密码键中任挑一个来加密位流。这样,每秒能破解一百万个加密键并可用于设计的精密黑客程序 (这已是非常高的并发算法能力了) 也需要1 * 1025年(即千万个万亿年) 才能找到AES-128生成的那个加密键。 信息验证代码 (MAC) 的目的是检测位流在传输过程中有否被更改。如果更改并非恶意,如由传输出现的一些问题引起,接收端可以检测得到并请求重新传送。如果更改是恶意的,MAC检测出的改变将拒绝由攻击者更改的信息被接受。从概念上讲,这系统颇为简单。发送端和接收端共享一个加密键。接收端利用共享的加密键计算接收信息的MAC。如果计算出来的MAC与接收到的MAC不匹配,说明信息在传输过程中被更改。系统软件于是会拒绝该位流并请求重新传输。 FROM FlashROM (FROM) 是安全ISP解决方案的一个关键组件。作为非挥发性板级数据存储器,FROM存储着诸如加密键和独特设备标识之类的宝贵资源。FPGA通常采用的构架,是让FROM和FPGA结构能独立地进行编程,容许FROM在毋须更改FPGA核心结构的情况下也可以更新。为了保证FROM内容的安全性, FROM只允许采用JTAG编程;并不能通过内核来更新。但是为支持某些应用,尤其是依赖于独特器件标识 (序列化) 的应用,FPGA内核应当能读取FROM的内容。 图1 安全ISP的完整解决方案 采用适当的配置支持,并结合基本的编程功能如自动增量和自动减量,FROM和AES的使用就能支持许多涉及设备序列化的应用,即是支持独的设备标识。目的是为了更方便地管理大量器件的FROM内容。序列化支持在面对下述功能和应用领域时尤其有用: 资产管理跟踪 日期和时间戳 互联网协议寻址 库存控制 基于认购方式的经营模式 系统校准设置 版本管理 图2 真实环境下的ISP
真实环境下的安全ISP FPGA产品在过去20多年来获得巨大成功,因为能提供配合客户所需的生产力和成本优势。这些优势主要分为三大类别,并被认为是更改系统设计或配置变得越来越困难及执行也日益昂贵的关键阶段: 在设计接近完成或设计完成并进入组装的設計工程阶段,出现了后来突发的系统变更需求,或出于制造考虑的变更需求。 在次级承包商的据点,FPGA正进行编程,而系统经已组装、测试及付运至终端用户,又或分销商在交货前必需对系统进行定制的现场。 在客户的应用现场或其它远程现场,需要按最终客户的要求变更系统,添加所需功能或更新系统参数。 ISP安全架构的三个级别分别对应了这三个阶段: 例1:工厂/可信赖环境。这是最简单的选项,器件的编程在可信赖的环境中进行 (通常是客户的“工厂”),也是系统设计完成的地方。在这种情况下,并不需要加密。这是保护设计的安全方法,因为设计的编程文档不会离开这个可信赖的环境。当OEM厂商不能进行编程时,编程服务通常由FPGA制造商(“IHP”) 提供,也就是向OEM厂商提供另一个安全的可信赖环境。 图2 真实环境下的ISP 例2:合约制造。为了减少制造成本,器件编程一般都不会在实施设计的地方进行。海外编程中心和合约制造商是这个情况的一些例子。在这种情况下,AES加密键最先由OEM厂 (可信赖的环境) 内部进行编程。最后的编程则连同AES加密编程档案在工厂以外“不可信赖”的地点进行。过建的情况不会在这里出现,因为合约制造商在市场上购买的任何额外部件由于没有装载适当的AES加密键,因此都无法使用,也不能用AES加密编程档案进行编程。 例3:现场“订购”升级。为了提供最高的灵活性,最终用户必须能在应用现场享用ISP功能。这即是说需要在“不可信赖”的地点来进行编程,包括在有线、互联网、卫星链路等公网 (或私网) 的远程现场据点进行消费产品/设备的重新配置。与上面的例子一样,这也需要使用AES加密编程档案。在这种情况下,当客户要求系统升级时,在供应商据点的技术支持便会查询设备的独特器件标识,该标识已在可信赖的环境中安全地写入FROM。器件的标识将由系统于远程现场送回,并用来在“器件词典”中查核对应的AES键。该加密键会被送到内部程序中,根据所请求的功能取得适当的编程档案,然后利用该加密键生成加密位流。这样器件就能利用加密编程后位流重新编程,并在MAC算法核对过收发双方都拥有相同的加密键后进行。 明显地,AES、MAC和FROM非挥性内存的结合能组成安全的可编程解决方案,为系统设计人员及客户提供重大优势。非挥发性以Flash为基础的FPGA,例如Actel的ProASIC3/E系列器件,便能提供所有这些甚至更多功能。以Flash为基础的FPGA提供高度安全和低成本的单芯片解决方案,并通过非挥发性Flash技术实现上电即行的功能。AES-128加密技术可在不安全的环境下进行安全ISP,而芯片上内置的FROM可基于独特的器件标识而实行多种崭新应用。此外,以Flash为基础器件能满足实现安全ISP的所有要求,并主动地保护客户的产品免受各种棘手的安全问题威胁,包括过建、盗取敏感的数据、篡改产品和黑客攻击等。
会员服务热线: |
深圳矽通科技版权所有 © Copyright 2005-2007, ic-cn.com.cn All Right Reserved. |
|
深 圳:13410210660 QQ : 317143513 |
|
客服联系: MSN:CaiZH01@hotmail.com E-mail:CaiZH01@163.com |
|
|