连网设备安全性的未来

时间:2012-11-01

  要点

  1.设计复杂性、连网能力的增长,以及攻击的老练程度,它们共同造就了连网设备安全性的未来。

  2.具备安全意识的设计起始于一个软硬件可信根,即有一种阻止篡改的机制,确保永远装入可信的固件,而且有一个可信的软件基,由它主控安全功能,保护各种功能及自身的安全,并与系统中较复杂的非关键性部分隔离开来。

  3.嵌入计算机系统虚拟化表明有可能提供软件可信根,同时能够实现下一代连网设备所需要的全部附加功能。

  4.在可信根基础上,设计者必须为可缩放数据保护的整合考虑适当的方案,如可信现场升级与远程管理等功能的安全连接和对敏感静态数据的加密,以保护智能产权和私有信息。

  电子世界的复杂性正在快速提升,驱动力是M2M智能、多媒体功能、互联网连接,以及高附加值的金融业务等。这些功能吸引着垂涎欲滴的网络攻击群,成为了黑客的目标,从而产生了电子设计者必须了解和遵从的安全需求。本文中,我们提供了实用的实现指南,主要关注点在软硬件可信根、数据存储保护,以及安全的网络连接。

  安全趋势

  汽车内装设的部电子系统是凯迪拉克1978年款Seville的行车电脑,它采用一只摩托罗拉的6802微处理器,有128B RAM和2KB ROM,几页纸就可能打印出全部源码。

  今天,即使端的汽车也包含至少几块微处理器,而豪华车大概能有约100块微处理器。汽车信息娱乐系统运行着Windows和Linux这样的复杂操作系统,全部电子软件内容的代码可以轻易地超过1亿行。

  这种电子产品的演化为社会带来很大利益,但也成为安全问题的一个主要根源。由于复杂性的增加,无法做到有效的管控,因此产生了很多因电子电路质量、安全和保密损失而带来的相关问题。

  电子系统中另一个明显趋势是网络连接的增长,它可以实现远程管理,并能够现场升级软件。2010年,通用汽车公司研发了一个功能,汽车主人可以通过智能手机控制车锁和起动引擎。但在通用汽车公司发布这个智能手机消息前,一组大学研究人员发表了一项研究,研究表明,潜在的攻击者可能利用这种汽车电路的漏洞,篡改其关键系统,如刹车和节气门(参考文献1)。研究人员现在正在证明通过广域网的攻击途径,如通过车载通信连接。

  商务、关键基础架构以及攸关生命的功能都越来越依赖于电子系统,因此在有大量资金依托的坚决的攻击者眼中,这些电子系统有很大的吸引力。那些控制和管理核反应堆、油井,以及其它关键性基础设施的工业控制系统,都存在着受到广泛破坏的机会。

  Stuxnet病毒曾渗透到西门子的核电厂工艺控制系统中,这大概是种直接针对电子工艺控制系统的恶意软件。Stuxnet证明对电子安全性的攻击越来越老练,表明电子设计人员需要磨练和提高自己的安全技能。

  另一个影响安全的趋势是处理器的集中整合。举例而言,在现代汽车中,飞速增长的电子内容给制造商带来了大量挑战,如制造成本、物理尺寸,以及上市时间等。他们的对策是要逆转这个趋势,将分立的功能整合到较少的电子元器件中。这种集中合并需要正确的系统架构,以确保这些元件之间不会产生无法预测的交互作用,从而带来可靠性风险。

  例如, 汽车系统设计人员在将信息娱乐机头与后视摄像头和ADAS(先进驾驶员辅助系统)整合到一起。因为后视摄像头模块可以分享中控台计算机的音视频能力,因此它自然是整合的部件,并且它也算是一种安全关键的功能(图1)。

图1,下一代汽车电子设备必须支持高端多媒体操作系统,并且同一台计算机上还支持安全关键的实时应用

  图1,下一代汽车电子设备必须支持高端多媒体操作系统,并且同一台计算机上还支持安全关键的实时应用

  这些趋势都指向了一个对设计人员做安全培训和关键安全技术整合的需求,以协助管理这些复杂性能并提供保护。

  可信根(ROOT-OF-TRUST)的问题

  电子系统的安全性应从设计开始,它使用户有信心认为总是会运行已知且经过测试的固件或软件,在交付时和现场使用时都不会被篡改。这种建立一个安全初始态的动作通常被称为安全引导。

  在电子系统中,必须要执行一个固件链才能建立安全的初始态。通常是CPU率先执行一个小的引导加载器,加载器在生产时就烧录在ROM中。安全引导依赖于一个基于硬件的可信根,具体在本例中,是ROM在制造以后就不能被修改。

  ROM加载器通常会引导一个有更多功能的次级引导加载器,这个加载器放在内部闪存中。很多情况下,次级引导加载器将起动主操作系统,然后再起动OS应用。

  典型的安全引导方法是验证这个链中每个部件的授权。如果有任何链接被破坏,则安全状态就有问题。级的加载器必须有一个预烧录的加密密钥,用于验证下引导加载器的数字签名。密钥可以采用烧录的熔丝,安装到ROM加载器镜像自身,或保存在一个本地TPM(可信平台模块)中,以提供更好的防改功能。硬件可信根必须包含这个初始验证密钥。

  签名密钥用于验证引导链中第二级部件的授权,因此,硬件保护区也必须存储已知正确的签名。

  第二级部件的验证包括其可执行镜像,以及已知正确的签名,如果有第三级,则还有第三级的签名验证密钥。

  验证链可以无限的长,有些复杂系统的TCB(可信计算基)构成是令人惊愕的长链,甚至包含多个验证部件树的情况也不算罕见。在计算机安全词汇中,TCB是指一个系统中对于安全性的关键部分(包括软件和硬件),因此必须值得信任。图2描述了一个三级安全引导序列。

图2,安全引导需要验证所执行固件的部件链,并要包含终控制平台的OS/监控器

  图2,安全引导需要验证所执行固件的部件链,并要包含终控制平台的OS/监控器

  安全引导为电子设计人员提供了产品能抵御固件篡改攻击的信心。然而,攻击者可能会装上一个恶意的模拟器(如用于扫描一块智能表),这个东西看上去像一个合法的表,但会悄悄地把隐密的能源计帐信息发送到某个恶意网站。

  所以,即使采用了安全引导,用户也可能需要额外的保障,使部署的产品主动地运行确知良好的TCB.为此,连接到管理网络的电子系统可以采用远程验证。

  有一种任何电子系统均可以实现的简单方案, 即系统在双向模式下,采用公钥加密的IKE/IPsec(互联网密钥交换/互联网协议安全)或SSL(安全套接层),建立一个通往远程验证服务器的安全通道。这些协议中, 作为电子系统身份的私钥“标识”了被证明方的数据。只要在安全引导期间有效的TCB包含了私钥和安全连接协议软件的客户端,则证明方就确认系统正在运行期望的固件。

  当然,如果验证和调用的是有很多问题的软件,则硬件的可信根也是无用的(参考文献2)。电子设计人员需要一个软件的可信根,即一个可信的操作系统,以在其上开发和部署可信的应用。

  单内核操作系统本身包含了系统软件元素,如网络栈、文件系统以及设备驱动等,它们共享一个内存空间,以特许模式执行。这种结构产生了一个大TCB,因此为黑客提供了很多机会。单内核操作系统包括Windows、Linux和VxWorks.

  与之相反,微内核操作系统只以管理员模式运行的关键服务集合,如线程管理、异常处理以及进程间通信等,而在用户模式下主控其它系统部件。这样一种结构仅允许访问那些设计人员认为适当的资源。一个部件的失效不会影响到管理独立资源的其它部件。由于微内核要比单内核操作系统简单,因此其安全性可以更容易地得到保证和验证(图3)。

图3,微内核OS(上)以模块化进程控制系统服务;单内核OS则采用单一的大内核

  图3,微内核OS(上)以模块化进程控制系统服务;单内核OS则采用单一的大内核

  大多数通用操作系统都是单内核的,因为它们都设计于20多年前,受当时微处理器性能的限制,而倾向于单内核方案。用户应用可以通过有效的内核系统调用,就访问到大多数服务。

  与之相比,微内核系统是采用通信进程来实现服务。例如,当一个应用试图通过NFS(网络文件系统)存取一个文件时,它可能需要在应用、TCP/IP进程、设备驱动进程以及NFS进程之间的通信。这个工作是幕后完成的:应用会调用典型的read()或write()接口,而微内核则在系统进程之间传送数据。

  微处理器的速度已经能够消除与微内核相关的处理开销/消息传送开销。现在所有主流操作系统都采用微内核设计,并已实际运行于各种电子产品上,包括智能手机、航空电子设备、网络设备,以及工艺控制系统等。基于微内核操作系统的例子包括:Integrity、LynxSecure、Neutrino以及PikeOS等。

  如果Linux是今天创建的,那么它很可能不会是单内核的。Linux先驱者Linus Torvalds曾针对AndrewTanenbaum在1992年对开源操作系统的批评说过一句着名的话:“确实,Linux是单内核的,我也认同微内核会更好。从理论(以及审美)角度上说,Linux是失败的”(参考文献3)。

  但是,Linux已经拥有了庞大且仍在不断增长的应用(以及程序员),设计人员都希望充分利用这些资源。采用微内核还是单内核操作系统的决定并非相互排斥。虚拟化提供了将两者结合起来的能力。

  系统虚拟化

  数据中心做系统虚拟化的动因已人尽皆知,例如资源优化和改进服务的可用性。不过,虚拟化技术在电子世界有更广泛的应用,而在安全领域,虚拟化技术扮演着重要的角色。

  2005年,英特尔公司推出了英特尔VT(虚拟化技术),它简化且加快了虚拟化。近,英特尔自己的Atom嵌入处理器上已有了VT技术。虚拟化的类似辅助硬件也出现在其它CPU架构中,包括ARM(通过ARM虚拟化扩展),从而能够在各种类型电子产品中实现有效的虚拟化。

  基于微内核的监管器架构将计算机虚拟化作为可信微内核的一个顶层服务(图4)。微内核监管器的例子包括Green Hills软件公司的IntegrityMultivisor,以及L4微内核的某些变型。这些产品实现了微内核的强健性,同时能够重用那些通用操作系统,如Linux.电子产品设计人员可以聪明地采用这种架构,将小部分关键的安全功能移到传统环境以外,直接在微内核TCB上管理,这样可以大大提高整体系统的安全性。

顶层服务 图4

  安全性改进

  2010年,广泛使用的VxWorks上发现了一个远程管理漏洞:黑客可以利用一个开放的系统诊断端口安装恶意软件,甚至获取操作系统的根或替换掉操作系统。基本的防御方法是保护管理端口,采用SSL这类网络安全协议做相互。

  不过,要确保连接的安全,SSL连接只是冰山一角。如果没有正确的安全防护(包括二进制级的测试与安全交付),攻击者仍可以采用各种已被确认的技术,来获得访问权。对自己的软件,设计人员固然可以采用非常保险的开发进程,但如何应对第三方操作系统的弱点?这些系统很多都只以二进制形式交付,缺乏任何的安全史、谱系或赔偿。

  系统虚拟化能够改进与电子系统的安全连接。该技术包括将传统操作环境提升为一个虚拟机,以及与可信监管器所提供关键功能(如连接授权与配置管理)之间的安全隔离。设备管理软件也可以用于监控、配置和修补传统的操作系统(图5)。

图5,监控器可以改进传统操作系统的安全设备管理服务

  图5,监控器可以改进传统操作系统的安全设备管理服务

  数据存储的保护

  2010 年, 一篇CBS的新闻证明了办公室复印机是私有信息的宝藏,可以很容易从机器内的硬盘上获得这些信息。这些问题系统都缺乏对数据存储的保护。而很多现代电子系统都有加密存储的要求,这源于知识产权保护、数字版权管理等因素。

  采用了FDE(全磁盘加密)后,整个存储介质就有了保护,确保不会暴露那些隐藏文件(如操作系统的交换文件)。SED(自加密驱动器)以存储外设自身来处理FDE任务,但由于尺寸所限,很多电子系统无法容纳独立的SED.加密工作也可以在下一层完成,即设备管理层,通常是采用一个面向块的驱动程序。这个层面上的保护仍能够覆盖全部被管理的设备。

  存储加密密钥决不能以明文形式保存在介质上,但通常需要保存一个密钥的加密副本。当系统执行授权时,该密钥被解开供使用。

  对于智能手机或商店职员使用的销售点设备这类人机交互系统,成功的用户授权是解开密钥的触发器。对于无人管理电子系统,可以采用一个通到远程服务器的安全网络连接获得对称密钥,该服务器维持一个加密密钥的数据库。当必须解锁一个数据加密密钥时(例如在引导时),电子系统会发起密钥装入。

  虚拟SED

  在连网设备的系统虚拟化中,数据保护是另一个新兴的应用。此时,一个监控程序在一台虚拟机中装入主操作系统,并执行虚拟机外的存储加密元件,建立一个vSED(虚拟自加密驱动器)。所有静态数据(data-at-rest)保护的安全关键问题(如授权解锁SED、加密/解密协议,以及密钥管理等)都发生在主操作系统环境以外,从而保护存储的数据不会遭受外部攻击(图6)。

图6,安全监控器能够实现一个虚拟自加密驱动器

  图6,安全监控器能够实现一个虚拟自加密驱动器

  监控器做物理存储的虚拟化。当操作系统写入一个数据块时,一个可信应用将块加密,并存储在物理设备的适当块中。由于加密执行是在一个被安全隔离的应用中,因此平台上不可信软件就不能访问到加密密钥,或做密码分析攻击。

  可能情况下,应采用芯片上的密码分析加速器,以提高效率。替代专用加密协处理器的方法是将加密工作卸载给一个多处理器中某一内核。

  当用一个口令做存储解锁时,设计者必须了解主操作系统环境中的按键记录与屏幕抓取式恶意攻击。在vSED环境中,口令输入与相关的图形屏幕管理(如果有)都在本地完成,从而阻止了这类攻击。

  为自己产品设计安全性能的电子产品开发人员面临着很多设计选择与约束条件。设计人员必须尽量获得硅技术的优势,实现安全引导、有效加密,以及采用虚拟化技术做数据保存子系统的安全隔离。

上一篇:运算放大器如何应对高的挑战
下一篇:电源电压的监控电路图

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料