在20世纪60年代末和70年代初,当我们现在所知的互联网最初以阿帕网(ARPANET)的形式出现时,几乎没有考虑到安全问题。最初的假设是,所有节点和接入终端都将位于军事基地,因此不存在安全问题。似乎没有人考虑过基地存在间谍的可能性,也没有人考虑过恶意玩家通过远程终端潜入系统的可能性。
随着越来越多的教育机构和科学机构接入网络,这一理念中的巨大漏洞也愈加凸显,但似乎很少有当权者意识到这个问题。1989年,Clifford Stoll出版了《布谷鸟的蛋:通过计算机谍报迷宫跟踪间谍》(The Cuckoo’s Egg: Tracking a Spy Through the Maze of Computer Espionage),这是作者在加利福尼亚州伯克利劳伦斯伯克利国家实验室 (LBNL) 追捕闯入电脑的电脑黑客的第一人称记述。
作为调查的一部分,Clifford发现黑客也在渗透军事和政府系统,但他发现很难说服任何当权者,包括联邦调查局 (FBI)、中央情报局 (CIA)、国家安全局 (NSA),以及美国空军特别调查办公室 (AFOSI)。
今天,我们也遇到了类似的情况,人们似乎对日益增长的安全问题漠不关心,但这些问题给设计工程师带来了挑战,他们必须设计出将安全性放在首位的复杂系统。在这里,我们将探讨一些挑战和解决方案,以及物联网 (IoT) 对这些设计开发的影响。
设计高级安全系统所面临的挑战
设计工程师需要投入大量的时间来研究自身产品与竞争产品之间的差异,几乎没有时间去考虑安全性问题。安全性是一个复杂的问题,工程师可能会为了避免这一问题而选择一条阻力最小的道路。
随着安全漏洞越来越普遍并被广泛报道,情况开始发生了变化。工厂、医疗、教育和金融机构的负责人开始担心安全漏洞可能带来的后果。此外,公众也逐渐意识到安全性或缺乏安全性会对他们产生怎样的影响,比如有人可以远程访问智能摄像机(如婴儿监视器或安检摄像头)、智能助手(如Amazon Echo或Google Home)、智能恒温器或任何数量的物联网设备。这些问题也给致力于开发复杂系统的人员带来了压力,如系统架构师、硬件设计工程师、嵌入式软件工程师和应用软件开发人员。他们需要在创建系统时考虑到安全性问题。
安全性分为多个层面并会造成不同的后果,让人头晕目眩。我们以片上系统 (SoC) 等硅芯片设计为例, 除了自产部分外,这些设计几乎都会用到第三方供应商的大量知识产权 (IP) 模块, 这些IP模块中的每一个都可能比以前一台完整的计算机要复杂。那么,设计师和系统架构师如何才能保证这些模块不包含隐藏功能呢?
假冒芯片问题
现在市面上存在着各种假冒芯片,包括:
● | 兼容芯片:仿照正品芯片功能的组件 |
● | 翻版芯片:利用粗糙和不完善的方法从电子垃圾中获取的组件 |
● | 灰市芯片:可能来自于过度包装、返工失败的芯片,或回收自报废品 |
● | 逆向工程芯片(又称 “流氓芯片”):将芯片解构并重新组装成一个可能具有额外功能的新器件,进而破坏数据、导致故障,甚至是导致数据外泄 |
安全系统的基础
在创建安全系统时,需要考虑四个基本要素:
1. | 硬件隔离:不久前,嵌入式系统还在采用允许任何软件模块找到并访问整个内存映射的架构,但现在看来这种方法并不安全。硬件隔离有多种方式,比如将支持安全和非安全环境的微控制器与内存保护单元 (MPU) 结合使用,但其核心理念是将应用程序拆分到多个安全域中,并根据需要对访问加以限制。 |
2. | 信任根 (RoT):RoT涉及到基本硬件和最少相关软件的组合,这种组合能够成功地进行自我认证并便于系统其余部分安全操作。 |
3. | 安全引导解决方案:接下来就需要采用安全引导解决方案,即使用RoT验证加载到系统中的任何代码的真实性和有效性的过程。 |
4. | 安全引导加载程序:这是最后一个要素,它通过防止以下操作扩展了RoT和安全引导解决方案的范围:对固件进行逆向工程、对固件进行未授权修改、在授权设备上加载未经授权的固件,以及在未经授权的设备上加载授权固件。 |
假设系统包含一个其他供应商的模块或主板, 你如何知道板上没有隐藏设备?也许就安装在正品元件下?
结论
当涉及到物联网时,任何安全问题都会升级。在物联网中,有数十亿台设备通过令人难以置信的有线和无线解决方案相互连接并连接到云端。这就需要软件开发人员与硬件设计师和云解决方案相关方合作,实时执行加密和解密,生成证书,并对所有内容进行身份验证,以便设备与主机系统知道它们正在与受信方进行通信。为这些系统设置安全性是一个非常复杂的过程,工程师需要确保所有硬件采用的是正宗原始设备制造商芯片。
审核编辑:郭婷