应用笔记 3824

嵌入式系统的安全性

By: Kris Ardis

摘要 : 保护敏感信息仅仅依靠加密环节是不够的。本文对保护密钥的必要性进行了阐述。DS5250是提供真正篡改侦测功能的最佳方案,可为你的嵌入式系统提供最高的安全等级。

嵌入式系统的安全性往往最后才会被考虑到。工程师们在设计产品时往往以迅速上市为目标,而将安全性问题留待将来的版本升级时再行解决。这也并非不合逻辑,因为高级别的安全性会增加产品的成本,并延迟上市时间。

然而,许多系统一开始时就需要高级别的安全性。有些情况下,安全要求出自政府或某些贸易组织。例如,Visa和MasterCard信用卡公司制订的PCI要求,对于销售点终端或PIN键盘的安全性要求提供了详细说明。在其他一些情况下,安全性设计被用来保护企业营收。安全应用能够阻止逆向工程设计,防止产品被仿制,或者提供真正的篡改侦测功能。

安全微控制器究竟做了些什么呢,为什么安全微控制器对于敏感应用如此之重要?

只有密钥安全,系统才会安全

安全性不仅仅取决于加密环节。尽管加密算法和密钥管理程序的选择很关键,但它们常常并不是安全应用中的薄弱环节。设想这样一种场景,Alice和Bob各有一部只能彼此通信的安全电话。电话的加密措施牢不可破,即使使用当今世界所有的计算能力,也需要一个世纪才能破解。那么,薄弱环节在哪儿呢? 电话! 如果攻击者控制了其中的一个电话,他或她就可以佯装Alice或Bob,立刻得到他们的秘密信息。攻击者甚至用不着偷电话,只要趁Alice或Bob不觉,简单地安装一个窃听装置就可以了。

在此场景中,加密措施并未被攻破,而是执行加密的设备,或者“密钥”,安全性被轻而易举地攻破了。在嵌入式系统中,密钥通常是一个很大的密码,被加密程序用来加密信息或认证数据。所以,一个安全嵌入式系统最为重要的工作就是保护该密钥。如果系统遭到攻击,必须清除该密钥,防止其落入攻击者之手。密钥的破坏使设备无法工作,避免攻击者获取敏感信息,例如银行帐号和密码。

为保证密钥的安全性,密钥应永不离开嵌入式系统的边界,否则就为攻击者攻破设备的安全屏障提供了捷径(见图1)。设计专门的存储器保存密钥的做法不可取,因为微控制器和存储器之间的通信是可见的。最安全的做法是使密钥停留在处理器内部,并用它实现数据的加密和认证。这就是说,系统微控制器需要有内部的非易失存储器。

图1. 密钥数据不应离开设备,甚至不应在芯片间传送。
图1. 密钥数据不应离开设备,甚至不应在芯片间传送。

引发线和塑料保护

即使密钥数据只保存在微控制器中,攻击者还是有可能发现安全信息。例如,如果攻击者可以访问微控制器地址和数据总线,他就可以通过插入指令的办法使密钥数据暴露于外部I/O口。

更高级的攻击者还可以移除微控制器的塑料封装,使用微探针读取内部存储器的内容。所以,安全系统需要采取措施阻止这种访问,甚至在必要时令微控制器擦除其存储器内容。应对这一安全挑战的一个简单方法是将整个“敏感区域” (例如微控制器、时钟和存储器)密封在某种足够牢靠的材料内,可能需要将PCB上的一块区域用塑料填充或用金属罩覆盖。感应线装置可以用来感测高温或外壳的移动。然而,如果微控制器处于低功耗状态而不能采取行动,这种感测就没有作用。

DS5250:真正安全的密钥保护方案

DS5250—Dallas Semiconductor精湛的安全微控制器技术的结晶,解决了这些问题,可协助设计者实现高度安全的系统,足以满足政府和金融应用之需。其所有出发点都聚焦于存储器。

NV SRAM

DS5250内部的非易失性SRAM (NV SRAM)为敏感信息和密钥提供了理想的存储手段。这种常规的、低泄漏的SRAM满足两个关键要求:
  1. 数据必须是非易失的。利用一个很小的廉价电池,就可以保持关键数据长达数年。
  2. 数据必须易于迅速擦除。一旦芯片的入侵侦测电路被触发,DS5250的SRAM瞬间即被擦除。

电池供电的入侵侦测及其反应

除了NV SRAM外,一个安全系统还应有一些传感器来侦测攻击行为。DS5250有多个电池供电的入侵传感器。无需微控制器处于活动状态即可对入侵事件作出反应。

除了NV SRAM外,一个安全系统还应有一些传感器来侦测攻击行为。DS5250有多个电池供电的入侵传感器。无需微控制器处于活动状态即可对入侵事件作出反应。 利用其片上温度和电压传感器,DS5250可以侦测故障注入攻击手段。当工作电压或温度超出微控制器工作范围,DS5250立即清除其内部NV SRAM。这种机制消除了攻击者获取任何密钥数据的机会。为阻止对NV SRAM单元的微探针探测,DS5250的硅片顶层设置了一层超细网格。

如果网格线被短路,DS5250即触发自毁,清除密钥数据。 DS5250还提供了允许外电路触发自毁的输入。这样系统可以实现多层保护。外部自毁触发电路没有任何限制。一些常见的外部传感器包括:
  1. 外壳上的侵入侦测开关。
  2. PCB上的连线当外罩被移动时断开。
  3. 利用光传感器检测外壳是否被打开或被窥视。
  4. 利用压力传感器检测加压密封层是否被破坏。
  5. 运动传感器,适用于正常使用情况下不应该移动的设备(例如,通常处于静止状态的提款机如果发生移动,就会被检测到)。

加密的代码空间

最初装载系统时,DS5250使用一个随机生成的3DES密钥将指令代码加密后再存储到外 部存储器中。这可避免攻击者向DS5250加入恶意代码并运行之,也可阻止对应用 进行逆向工程。代码里也可以加入完整性检查,以便侦测攻击者改变程序代码的企图。

图2. 经过加密的代码空间可保护外部存储空间中的算法和数据。
图2. 经过加密的代码空间可保护外部存储空间中的算法和数据。

经过加密的代码空间不仅阻止攻击者对应用进行逆向工程,而且可以阻止设备被非法仿 制。因为密钥由每个DS5250随机生成,所以任何两个系统的外部闪存里的数据都不同。 只有在攻击者知道密钥后,外部闪存数据才有用,而从上面的叙述中我们已经看到,从 DS5250获取密钥并非易事。

安全工程

安全系统设计是一富有挑战性的工作。而要强化已有设计的安全性更难。密钥保护是安 全系统设计中最关键的部分。DS5250专门有密钥保护设计,因而可为敏感数据提供最高 安全等级的保护。要了解有关DS5250和我们的安全微控制器技术的更多详细情况,请访问安全微控制器网页