我们该如何保障每个互联设备的信息安全
扫描二维码
随时随地手机看文章
(文章来源:电子工程网)
我们几乎每天都能听说某个大型零售商或银行机构的安全漏洞遭到了攻击。展望不久的将来,我们只能无奈地预计,随着黑客使用的工具越来越复杂,以及他们能够盗取的信息价值不断增加,这些漏洞攻击将会越来越频繁地发生。而事实上,针对嵌入式系统的攻击也的确在急剧增长。美国政府最近要求关键基础设施公司(互联嵌入式系统的最大用户之一)检查其网络是否受到来自“Energetic Bear”黑客组织的恶意软件的感染。美国国土安全部工业控制系统网络应急小组发布这一请求,是出于对美国电网可能面临风险的担忧。
针对关键基础设施或数百万客户安全数据的攻击是很可怕的,但对于个人来说,人们主要担心黑客是否容易从家里、车上的嵌入式系统,以及大家每天使用的数以百计的嵌入式设备访问数据。比如,智能家居可能知道什么时候它的主人会在家,如果有人能够获取这个信息,那么主人会安全吗?如果一个人戴了连接到云的运动跟踪器,那么如果有人能够访问他/她的所在位置,了解他/她是否在睡觉,以及他/她午餐吃了什么之类的详细信息,会产生什么后果?谁知道这些看似无害的数据经过组合、比较,并结合从其他来源挖掘的数据,会被用来做什么?
作为系统设计师,我们可以采取哪些措施来提高个人信息的安全性?我们期望MCU和FPGA这样的嵌入式系统模块提供哪些功能?或许参考大数据信息安全计划的一些创意是不错的起点。大数据安全原则认为,稳健的安全系统必须分层,这样黑客(或数据矿工)就无法通过单个故障点轻松访问重要数据。那么,问题来了:如何在嵌入式设备中实现分层安全?
也许MCU或FPGA所需要的最明显的安全功能是支持用于加密和解密敏感数据的通用加密标准。此外,安全密码的保护也至关重要,有了这种保护,就不能通过网络攻击或物理篡改来访问密码。一些最先进的密码保护技术利用集成电路制造过程中的纳米级差异来创建永远不会离开设备、也永远不会被外部黑客看到的唯一设备密码。这种物理上不可克隆的功能(简称PUF) 的示例依赖于加电周期内SRAM初始化值的微小差异来创建真正的设备唯一随机密码。
为了给设备多加一层安全性,可能需要禁用一些能访问片上数据的功能。例如,如果可以通过调试或测试端口轻松访问MCU代码,设备安全就很容易受到影响。MCU和FPGA需要提供保护 - 也许通过特殊的锁或密码 – 让未经授权的用户不能通过这些端口访问数据。至少,这些端口应该能够完全“关闭”,这样就不会提供潜在的攻击机会。
分层安全的另一个机会与存储在芯片上的数据有关。许多MCU和FPGA可以限制对片上数据的访问。例如,与安全相关的代码可以存储在一个仅执行存储区中,其他片上进程很难访问这个存储区。对嵌入式设备的常见攻击手段是通过编程错误来生成“野生”指针以访问用其他途径无法访问的数据。但是,对关键数据的硬件保护可以限制此类访问,并将此错误标记为潜在的篡改事件,让系统可以采取适当的惩罚措施。
通常,嵌入式设备可以远程重新编程,这是一种用来修复错误和增加功能的实用能力。遗憾的是,如果此功能不受保护,攻击者可能会插入自己的恶意代码,并在机密数据流经系统时劫持它们。当嵌入式设备支持远程更新和错误修复时,需要提供额外的安全层,否则其安全性很容易受到威胁。