【设计秘笈】如何为每一个互连设备实现强健的信息安全性?

作者:Warren Miller, Mouser Electronics

我们每天都在听到大型零售商和银行机构的安全漏洞新闻。展望未来,我们只能迎来更为频繁的漏洞,因为黑客将使用更为复杂的工具,他们获取到的信息价值也将持续增长。针对嵌入式系统的攻击增长也很显著。事实上,美国政府最近要求关键基础设施公司,互连嵌入式系统的最大一类用户,检查自己的网络是否已经被黑客组织“Energetic Bear”的恶意软件感染。国土安全局旗下的工业控制系统信息应急响应小组发出警告,担忧国家电网可能已处于危险之中。

关键基础设施或百万计客户的安全数据遭受攻击的后果是可怕的,但回到个人层面,人们的担忧主要集中在,黑客是否容易访问人们的生活数据,比如家庭嵌入式系统、汽车以及各类嵌入式设备生成的日常数据。例如,智能家居知道业主回家的时间,但是如果其他人也可以访问这些数据,那么业主是否仍然安全?一个私人活动追踪可穿戴设备连接到云,如果任何人都可以访问该穿戴设备的数据细节,比如它的位置、主人是否在睡觉、主人午饭吃了什么,这样会导致什么样的安全性后果?谁知道一些看似无关的数据是否会被重组、比较以及与其它来源的数据进行挖掘?

设备安全性

作为系统设计师,我们应该采用哪些措施来提高个人信息的安全性?我们应该在MCU和FPGA这样的嵌入式系统积木块中提供什么样的特性?也许从大数据信息安全计划角度借鉴一些思路是个不错的起点。大数据安全口头禅认为健壮的安全性必须分层,单点故障不会让攻击者(或数据矿工)轻易地访问重要数据。因此,问题出现了:如何在嵌入式设备中实现分层安全?

“图1

图1 设备级安全驱动着互连设备的信息安全(来源:iStock # 52639560)

或许MCU或FPGA中最常见的安全功能是支持常见的加密标准,以加密和解密敏感数据。此外,支持安全密码保护也非常关键,从而不能通过网络攻击或物理篡改来访问密码。一些最先进的密码保护技术使用集成电路制造过程中的纳米级差异,创造出独特的设备密码,这些密码永不会远离开设备并且外部攻击人员不可见。这种物理不可克隆功能(PUF)的一个示例依靠加电周期SRAM初始化值的轻微差异创建真正独特并且随机的设备密码。

为提供一个新的安全层,设备可能需要禁用一些访问片上数据的功能。例如,如果通过调试或测试端口可以轻易访问MCU代码,设备的安全性将会打折扣。或许MCU和FPGA需要通过特殊的锁和密码来提供保护,而那些未经授权的用户不能通过这些端口访问数据。至少,这些端口应该能够完全'关闭',以避免出现潜在的攻击漏洞。

另一个分层安全机会涉及片上数据存储。许多MCU和FPGA可以提供片上数据的限制访问功能。例如,安全相关的代码,可以存储在一个仅可执行的内存体中,并且不能轻易被其它片上进程所访问。常见的嵌入式设备攻击方法试图指望编程错误产生的“野”指针来访问不被许可的数据。然而, 关键数据的保护硬件可以限制这类访问尝试并且将该类错误标记成潜在篡改事件,系统从而可以执行适当的惩罚措施。

通常嵌入式设备可以被远程重编程,以用于修复bug和增加新功能。不幸的是,如果该设备没有被恰当保护,攻击者可以插入自己的恶意代码并劫持经过该系统的机密数据。需要嵌入式装置远程更新和bug修复时提供额外的安全层,否则安全性也将轻易打折扣。

结论

上述示例仅是MCU和FFPG需要解决的几个问题,特别是在未来几年,它们在互连嵌入式系统中应用会越来越广。系统设计人员应该期望短期内推出的互连设备中越来越多的产品提供多层次设备级安全性。