(1)复杂的部署环境和网络结构。如智能电表系统部署在千家万户,智能手环随身佩戴,智能车载终端随车移动,中间经过各类网络如蓝牙、RF、PLC、运营商网络等。
(2)受限的计算和网络资源。很多物联网场景中传感器、终端以及部分网关的资源往往非常有限,包括计算、存储及能源,难以运行复杂的安全协议以及部署安全Agent。网络带宽也很有限,很多本地网络运行在几十Kbps共享带宽下。
1、芯片级安全技术
物联网的硬件基础是超大型集成电路或者芯片,这些芯片决定了物联网设备如何运行,如何处理数据。物联网设备为生活带来便捷的同时,也带来了困扰。当物联网设备遭受攻击时,它可能会泄露个人隐私或商业机密,甚至可能造成大规模的网络瘫痪。而且由于物联网设备本身计算资源有限,系统和硬件高度定制化、不通用、以及网络传输速率和工作环境等限制,难以部署传统的安全防护措施。
针对于物联网设备的安全问题,芯片级的安全技术是不错的解决方案,芯片级的安全技术包括可信平台模块(TPM)、安全启动(Secure Boot)、TEE、内存安全以及侧信道防护等等。
这些芯片级的安全技术具有从根本上解决物联网安全问题的能力,芯片级安全技术软硬结合的防御措施,使攻击者难以窃取数据,窃取了也读不懂、读懂了也篡改不了。芯片级安全技术是物理安全的发展方向之一,目前越来越多的芯片厂商在设计的芯片中增加了安全机制,如TrustZone,同时国际上也成立了可信计算组织TCG(Trusted Computing Group),以推动安全技术的发展。
2、可信计算与TPM芯片
可信计算是一项由可信计算组织TCG(Trusted Computing Group)推动和开发的技术。可信计算通过保证计算机操作系统和引导程序的完整性,来保障系统和应用的行为可以按预期执行。所以防篡改是可信计算的核心目的之一,通过基于硬件的安全芯片来校验系统和引导程序的完整性。
当前大部分信息安全系统主要是由防火墙、入侵检测和防病毒软件组成,这些在计算资源有限、部署环境复杂的IoT设备上难以部署,而且这些手段面对越来越系统化、隐蔽化、多样化的攻击方式也逐渐捉襟见肘。
对物联网设备来说,一是用户认证,认证使用者的权限,对于智能音箱、家庭摄像头这类的设备,隐私安全尤为重要。二是设备认证,物联网设备的部署环境复杂,即使在同一个局域网内,也有可能受到恶意设备的攻击,物联网网络中的设备应该要求它们之间进行身份验证,确保攻击者无法使用隐含的信任作为进入系统的凭证。
3、可信计算的机制
可信计算可以在物联网设备中建立起主动防御机制。通过链式校验和专有的可信操作系统确保完成某些操作的应用程序能够按照预期的行为完成任务。在物联网设备上建立整个可信环境,首先需要一个可信根,然后建立一条可信链,再将可信传递到系统的各个模块,之后就能建立整个系统的可信。
可信根是可信系统的底层机制,是系统可信的源头,可信根应具备密码服务功能、针对系统启动工程的度量能力和控制能力,先于其他部分启动。在TCG定义的可信计算中,可信根由具备密码服务功能的可信平台模块(TPM)以及系统BIOS中的度量代码段(CRTM)组成。TPM为系统提供了密码服务引擎,CRTM执行对系统的度量功能并且可以在度量未通过时实施控制。
可信链是由可信根开始,通过逐层扩展的方式实现。首先需要用可信根验证系统硬件和固件的可信性,用固件的验证机制验证操作系统引导程序的可信性,用操作系统引导程序验证操作系统安全部件的可信性,由操作系统安全部件为应用程序提供可信运行环境,从而在系统中构建一个完整的信任链条,保障应用的可信运行。
4、基于TPM可信物联网架构
早期可信计算研究主要以可信计算组织(TCG)为主,在可信计算中最核心的部分就是TPM硬件芯片。到目前为止,TPM规范已经发展到2.0。TPM1.1b发布于2003年,是第一个得到广泛应用的TPM规范。在此之前,TPM已经提供如密钥生成、存储、安全授权和设备健康验证等基本功能。当前基于TPM安全平台的技术有三种,ARM TrustZone、Intel TXT和AMD PSP。
1) ARM TrustZone
TrustZone提供了一种能够在SoC上创建一个虚拟处理器的功能,从而把软硬件资源划分为两部分,一部分叫安全世界(Secure World,SWd),运行执行安全功能的可信软件;另一个叫正常世界(Normal World),运行其他的操作。安全世界和正常世界可以通过一个叫Monitor Mode的模式转换。这两个执行环境被SoC的硬件隔离开来,保证主操作系统不会干扰安全世界(SWd)中的程序和数据。这使得用户可以在不能信任整个设备的情况下,保持对安全世界(SWd)中数据的信赖。ARMTrustZone技术是所有Cortex-A类处理器的基本功能,是通过ARM架构安全扩展引入的。
目前,ARM处理器在物联网中应用最为普及,如智能手机、电视盒子、车载娱乐系统等。
2) Intel TXT
TXT是Trusted Execution Technology的简称,即可信执行技术,是TPM2.0的典型代表。其主要目标是通过使用特定的Intel CPU、专用硬件以及相关固件,建立一个从一开机就可信的环境,进而为系统软件提供多种方法来实现更安全的系统以及更好的数据完整性保护。
3) AMD PSP
AMD安全处理器是独立于平台核心处理器的、集成在SoC中的专用安全硬件子系统。它可以提供一个隔离的环境,一些敏感组件可以在不受其他软件影响的情况下运行。PSP 可以执行系统工作任务以及可信第三方提供的工作任务。
5、安全启动 Secure Boot
嵌入式设备的启动流程从芯片上电运行开始,首先运行的是固化在芯片内部ROM里的一段代码(ROM Code),然后ROM Code加载一级引导,一级引导加载Bootloader,Bootloader初始化各种硬件,之后加载并将参数传递给操作系统内核,由操作系统内核启动各种服务。在这个过程中,加载Bootloader和加载操作内核阶段往往容易受到恶意的攻击,如篡改内核版本、修改 Bootloader传递给内核的参数等,或是通过硬件手段往存储操作系统内核的芯片中刷入恶意固件,以达到修改设备功能的目的。
因此Secure Boot的机制是向物联网设备启动的每个阶段添加校验机制,在加载运行下一级之前,对下一级的代码进行安全校验,校验通过才加载运行,校验不通过则停止运行,这个机制有效的防止未经授权或恶意的修改固件,有效的保护了物联网设备的启动安全。
1)ARM TrustZone中的Secure Boot
TrustZone 中Secure Boot方案将加密检查添加到安全世界(SWd)启动过程的每个阶段。这个过程用于校验所有SWd软件镜像的完整性,从而防止运行任何未经授权或遭受恶意修改的软件。
防止恶意攻击的最简单方法是将所有安全世界资源执行都保留在SoC内存位置中。如果代码和数据永远不会存储在SoC封装之外的其他芯片中,那么读取或修改数据就变得更加困难,因为对SoC封装的物理攻击要比将逻辑探针连接到PCB走线或封装引脚困难得多。
安全启动代码通常负责将代码加载到SoC内存中,因此,正确地进行身份验证以避免为攻击者引入机会之窗至关重要。假设正在运行的代码和所需的签名已经在安全的SoC内存中,则在使用加密方法进行身份验证之前,应先将要验证的二进制或PuK复制到安全位置。对镜像进行身份验证然后将其复制到安全内存位置的设计有遭受攻击的风险,攻击者可以在检查完成和进行复制之间的短窗口期中修改镜像。
2)AMD Secure Boot
AMD在特别的加速处理器(APU)中内置了专属的安全处理器。这套安全处理器是基于ARMTrustZone架构的,它运行于硬件之上通过将CPU分割为两个虚拟的"世界"来建立安全环境。保密任务将运行于AMD安全处理器(即"安全世界")中,而其他的任务则以"标准操作"方式运行。这样确保了敏感数据的存储和可信应用程序的安全运行。