物联网(物联网)需要防止各种形式的滥用。这些问题不仅包括金融欺诈和知识产权盗窃等常见的威胁,还包括对实物资产的破坏。未来几年,预计将有数十亿台联网设备加入IoT,这些设备将与交通信号灯或路灯、工业控制、重要流程的安全机制(如发电、智能电网管理、家庭能源和安全)或联网汽车相关。攻击者可以尝试禁用或接管这些设备,潜在的目标是造成广泛的破坏和不便,或攻击特定的个人或组织,造成尴尬,名誉损害,甚至身体伤害。这样的漏洞可能仅仅是为了娱乐、个人原因、商业利益、政治目的和/或恐怖主义。
对物联网设备的安全威胁
物联网设备的设计是自动运行的。许多人在长时间内无人看管,有时甚至是整个工作寿命。网络连接使这些设备容易受到远程攻击,这些攻击可以从几乎任何地理位置迅速启动,而无需克服诸如围栏、锁住的外壳或保安等物理屏障。攻击可以指向设备本身,或者将其作为获取连接到同一网络的其他资产的手段,例如包含帐户持有者信息或知识产权的数据存储。
另一方面,IoT端点通常被要求是简单的、低成本的、低功耗的设备,它的设计目的是使用最少的资源来完成他们的目标任务。因此,实现复杂安全所需的处理能力和能量是不可用的。不同于像台式电脑这样的机器,没有人会例行公事地输入诸如用户名和密码这样的凭证作为身份验证,允许设备启动并建立连接。但是,该设备必须能够抵抗各种类型的攻击,并对其自身进行身份验证,并自动将其证书显示在网络上的其他设备上。
如果设备不能执行这些功能,攻击者可以删除或禁用应用程序软件,修改代码,或用流氓软件替换合法的应用程序。或者,他们可能试图窃听数据交换。需要使用一系列安全原则和技术来帮助克服这些威胁,但是所有这些都需要在一个资源受限的小型嵌入式系统中使用。除了已建立的安全措施,如最小化联网设备的访问权限、适当的防火墙和流量监测;其中包括软件的数字签名,使用安全密钥的数据加密,以及为连接设备建立强大的标识。
验证软件的真实性
数字签名提供了一种验证软件的方法来验证其来源并防止未经授权的更改。软件发布者可以独立地或在第三方证书颁发机构(CA)的支持下签署软件,后者提供诸如签署实用工具、证书和密钥管理等服务。
对于数字签名软件,发布者使用散列算法创建一个散列的代码。哈希只在一个方向上工作,这可以防止黑客逆向工程,从伪代码中生成相同的散列。然后使用分配给发布者的私钥对哈希进行加密。该代码、它的加密散列和发布者的签名证书将一起分发。
最终用户使用发布者的公钥解密哈希,这是签名证书的一部分,并使用发布者所选的散列算法对接收到的代码进行哈希。如果两个散列匹配,则可以假定代码是真实的且未更改的。图1展示了用于验证代码真实性的哈希和比较过程。
证书颁发机构的图表管理证书。
图1:证书颁发机构管理证书并提供用于签名软件的工具。
数字签名允许IoT设备验证软件的真实性和完整性,从而支持安全引导:该设备只会加载授权发布者签署的真实的、未经修改的软件,从而创建信任的基础。该系统还可以验证数字签名的软件,如通过网络接收的更新或补丁。
数据加密
使用公钥和私钥相结合的加密也可以防止窃听者从截获的数据传输中收集情报。公钥和私钥系统为发送加密数据和防止密钥拦截的挑战提供了解决方案。接收装置有自己的私钥,在制造时安全嵌入。与此同时,一个公钥来自于私钥,它使用一个单向过程来阻止私钥被公开,如果公共密钥被拦截。当发送设备将数据发送给接收方时,它使用该接收方的公钥对数据进行加密。这种加密的数据是安全的,可以通过网络传输,并且只能通过安全存储在接收端的私钥解密。图2显示了如何使用密钥在通过开放通道传输信息时保持信息安全。
公共密钥基础设施(PKI)由一个独立的第三方组织维护,该组织处理密钥的生成和分发,并将公钥绑定到各自用户的身份。
使用公钥和私钥的数据加密和解密图。
图2:使用公钥和私钥的数据加密和解密(图片来源:凯利讯半导体)。
保持强烈的身份
IoT设备还需要能够在连接到网络时进行身份验证。这相当于输入用户名和密码以手动登录到一个在线帐户。
该设备需要一个有效的安全处理器来存储其身份和处理身份验证,并存储公共和私有加密密钥,并存储密钥和运行散列算法来验证软件签名,以验证软件签名。
芯片内的嵌入式安全
受信任的平台模块(TPM)已经进化为密钥和数据存储和执行安全算法提供了一个安全的环境。这些设备包含一个安全的处理器,运行一个安全的操作系统,以及安全存储和其他资源,如随机数生成器和基于硬件的加密引擎(图3)。安全操作系统的细节被刻意保密,以防止潜在的黑客学习所需的信息以发动攻击。TPMs通常用于商用级IT设备,如台式电脑。另一方面,设备如Atmel / MicrochipAT97SC3205T用于嵌入式应用程序,可用于各种类型的物联网设备。
Atmel AT97SC3205T嵌入式TPM。
图3:Atmel AT97SC3205T嵌入式TPM集成了用于安全处理和密钥存储的资源。
AT97SC3205T满足可信计算组(TCG) TPM版本1.2规范。设备通常以遵从模式交付,这使得制造商可以立即开始测试TPM。由于TPM被嵌入到物联网设备中,因此应该将它改为真正的模式,永久地设置标志,并允许生成一个独特的私有和公共支持密钥(EK)对,以便在需要签署其他组件使用的数据的事务中使用。签注密钥的私部分在TPM中保密,而公共部分则由其他组件使用,以验证TPM数据的真实性。生成EK对可能需要几秒钟。为了简化制造和减少设备初始化所需的时间,如果需要,可以在实际模式中交付设备。在这种情况下,EK对是由Atmel预先生成的。
TPM_Startup(ST_CLEAR)
输入的操作数和尺寸:
00 - 0.00 0.00 0.00
标签2字节,偏移0:00 C1。
paramSize 4字节,偏移2:00 00 0C。
序数4字节,偏移6:00 00 99。
startupType 2字节,偏移10:00 01。
TPM_Startup(ST_CLEAR)
即将离任的操作数和尺寸:
00 C4 00 00 00 00 00 00元。
标签2字节,偏移0:00 C4。
paramSize 4字节,偏移2:00 00 0A。
returnCode 4字节,偏移6:00 00 [TPM_SUCCESS]
清单1:初始化TPM的示例启动命令。
TPM可以通过启动设备和发送TPM启动命令(清单1)来充分操作,以准备配置设备。配置包括为预期的应用程序设置永久标志。Atmel发布了一个示例制造序列,它设置了TPM标志,如清单2所示。
合规模式:清除
physicalPresenceHWEnable:假
physicalPresenceCMDEnable:真
physicalPresenceLifetimeLock:真
支持密钥对:生成
启用/禁用,禁用
激活/停用:激活到下一个重置,
在下一次开机或复位时被禁用。
实体店:不存在
NV_Locked真实
清单2:样例TPM标志设置。
示例中的物理存在设置是为了永久禁用硬件访问,并防止软件在设置意外或故意更改时失去对设备的控制。设置nv_lock = True可以防止未经授权的访问用户访问的非易失性内存,并且应该在制造商不再需要访问非易失性内存后设置。
结论
随着物联网的不断发展,对普通大众来说,它越来越成为现实,确保数十亿远程、联网的物体免受网络攻击的重要性变得越来越明显。
可信平台模块(TPMs)提供了对系统硬件和软件进行身份验证所需的安全资源,这是一种小型的低功耗设备,适用于嵌入式应用程序。与密钥管理和设备签名服务一起,它们可以提供一个高效的基于硬件的安全解决方案。