打造高效嵌入式安全方案的虚拟化技术 智能应用 影音
TERADYNE
ADI

打造高效嵌入式安全方案的虚拟化技术

MIPS公司网络和通讯首席系统架构师Rao Gattupalli
MIPS公司网络和通讯首席系统架构师Rao Gattupalli

今天,从家庭娱乐到移动市场,硬件虚拟化的重要性不断提升。透过硬件虚拟化,可实现更高的安全性和内容保护,这一点对愈来愈多消费者利用这类装置来进行移动支付、HD媒体串流、云端储存甚至安全ID保护等需要高度安全性的应用而言特别重要。

MIPS Technologies稍早前发布MIPS架构的重要新版本MIPS Release 5 (R5),历时两年多开发时程的新版架构包含了虚拟化(Virtualization)和SIMD(单指令多重数据)模块等重要功能。其中,MIPS虚拟化(VZ)模块是具备多项功能的高度可扩充性选项,其中包含增强的安全特性和支持多重操作系统。

MIPS公司网络和通讯首席系统架构师Rao Gattupalli指出:「虚拟化是嵌入式系统未来发展必不可少的关键。」而在着手为嵌入式系统开发安全架构之际,Gattupalli也表示:「首先我们要定义什麽是安全系统?最清楚的定义是:如果一个系统能确保应用顺畅执行而不会出现意外的数据流失,就可称之为安全、可靠的系统。」

隔离:安全系统的关键

嵌入式系统对安全性的迫切需求涵盖了从消费到企业等广大层面。从消费端来看,Gattupalli指出,智能手机和平板电脑已经成为吸引黑客的目标,加上快速的软件发展和日增的软件复杂性使其无法完整地验证完整性,因此导致错误/黑客攻击问题日益严重。

而在企业领域,员工自带设备(BYOD)已成为企业面临的最大安全挑战之一,加上内容保护意识抬头,媒体串流安全性也日益提升,以及移动支付引发的安全支付交易需求和安全云储存、安全ID保护等,新一代嵌入式装置需要更安全,但又能同时兼顾SoC面积和成本益的解决方案。Gattupalli表示,在因应现代嵌入式需求的安全SoC设计时,其中一个关键点在于必须将安全应用从非安全应用中隔离开来,以确保安全应用中的数据不会遭窃或外流。

一颗针对嵌入式应用的安全SoC,必须能将安全数据从非安全应用中隔离开来。目前,从智能手机到机顶盒(STB),都会需要这种隔离机制,因为愈来愈多应用需要复杂的终端设备来处理具有高度安全性的内容,包括加密密钥、支付系统、HD影像串流等。Gattupalli表示:「在一个系统中,从一个应用到另一个应用,再到不同种类的数据,都需要被保护。」在此同时,这些应用也必须流畅不中断,也就是说,当操作系统在其他分割区上出现错误时,还能持续执行应用程序,或是完好地退出。

一般来说,安全分割的建置方式可透过利用另一颗核心,或是透过虚拟化技术为单一核心建立多个安全和非安全的分割来实现。虚拟化能单纯利用半虚拟化(Para-virtualization)或硬件辅助虚拟化(Hardware-assisted virtualization)方式来实现。MIPS也已经提出了可同时支持半虚拟化和硬件辅助虚拟化的解决方案。目前市面上已经有能在MIPS-Based核心上执行的半虚拟化解决方案,另一方面,MIPS架构也可提供硬件辅助虚拟化技术。

Gattupalli指出,目前许多SoC都采用双核心处理器配置,其中一个处理器子系统负责非安全区域,另一个处理器则用于安全区域。今天的安全配置都是共通的,已经能提供高水准的安全性。然而,在实际应用上却还是需要具备更高可扩展性及成本效益的方法,以解决新一代设备必须同时在数个安全区域内执行多种应用程序的需求。

以安全SoC作为嵌入式系统核心

Gattupalli首先具体说明了当前构成安全SoC的六大关键要素:Secure boot(安全启动)、安全密钥储存(Secure key storage)、可信任执行环境(Trusted Execution Environment,TEE)、安全数据通道(Secure dta path)、安全更新(Secure update)和安全除错(Secure debug)。

Secure boot即所谓的信任根(root of trust),主要用来防止篡改。它通常采用唯读存储器(ROM),用于储存装置重置时需要的初始启动程序码。安全密钥储存是指通常用来储存公共密钥和其他DRM关键密钥等安全资产的OTP区域,如Netflix这类随选视讯应用便会将公共密钥储存在OTP中用来解码内容。安全启动和安全密钥储存是建构安全SoC所需的第一个关键要素。

可信任执行环境软件层是在成功加载和认证启动程序后即同时加载。可信任执行环境用于管理和控制低端软件模块集的存取以实现安全环境。这些子模块包括安全密钥、安全数据通道、安全更新和安全除错。可信任执行境是用来分配资源和预防存取安全区块时的非安全应用,基本上可将之视为底层硬件资源的看门人。例如,在STB应用中,可信任执行环境可确保非授权应用无法存取关键资产,如影像编解码器或存储器中可能存有未加密安全信息的位址。

安全数据通道可确保高价值资产如编解码器仅能由授权实体来存取。安全更新是对任何来自上层的软件更新进行验证和管理来实现安全的系统软件更新。Gattupalli表示,由于操作系统、USB或是各种周边都会需要更新,因此,客户也会需要在更新过程中的安全保障。另外,除错也有安全性需求,SoC中的安全除错模块可确保JTAG埠能防止未经授权存取。

Gattupalli进一步指出:「目前针对安全嵌入式应用的SoC最大挑战来自于功率和尺寸;以及针对安全和非安全应用的可重用资源。」他也特别强调了可重用资源的重要性,因为随着终端装置日趋复杂化,加上多核心处理器的发展趋势,如果安全和非安全应用缺乏可重用资源,在设计上势必会带来许多阻碍。

另一个主要挑战则来自于多重安全区域。Gattupalli表示,包括一般的单一使用者或包含其他多个使用者的内容存取;企业级数据存取;以及金融和个人数据的存取等作业,都是安全SoC的主要挑战。但在完全满足这些需求的同时,设计师也会希望拥有最佳化的SoC尺寸和成本,此时,虚拟化技术就是最佳解决方案。

由于虚拟化技术可实现平行处理多重操作系统与应用程序,同时可整合工作负载,因此可作为发展下一代安全关键嵌入式设备的关键技术。而MIPS的虚拟化(VZ)模块正是一款简单和灵活的硬件解决方案,能在有限或不影响效能的条件下满足这些不同需求。

运用虚拟化为嵌入式系统带来更大效益

虚拟化为安全嵌入式系统在连接各种应用时提供了一个可扩展的可信任执行环境(TEE),它能为每一个个别环境提供安全隔离,并透过为每一个虚拟机定义存取政策来管理特权资源;同时,唯有可信任执行环境能够与虚拟机通讯。这些特性不仅强化了系统可靠性,也加快了功能开发速度。

虚拟化能让多个独立的操作系统在单一处理器上完全隔离,如在相同的CPU上同时执行Linux和RTOS;同时能强化系统可靠性,也就是说当一个「客体」(guest)故障时不会导致整个系统一起停顿;另外,虚拟化还有助于实现QoS,同时有助于从异质朝同质多核心方向转移,并保障客户在操作系统和实时操作系统方面的投资。

事实上,Gattupalli表示,虚拟化的核心要素是Hypervisor,这是一个架构在硬件上的小型程序码,以提供可信赖的执行环境。Hypervisor可透过定义每个执行环境或「客体」的存取策略来管理优先资源。客体会彼此隔开,但能透过安全API与Hypervisor和对方通讯。透过让客体之外的部分安全运作能确保系统的可靠性,即使在任何一个客体毁损时也不受影响。Hypervisor可管理子系统的所有存储器I/O优先级。

Gattupalli表示,对强调安全与可靠性的嵌入式系统而言,安全Hypervisor可作为其基础。虚拟化的环境可以提供灵活的软件管理,而MIPS基于软硬件的安全虚拟化解决方案,将成为未来嵌入式系统设计快速通往成功目标的关键。
(本文提供英译版本,请按此连结阅读英译版本内容)