如今,物联网正在渗透我们的世界(家庭、工厂、汽车,以及我们的身体可穿戴设备)来收集数据,并根据所获得的数据进行操作。研究公司Juniper Research估计,从现在到2020年底,与互联网连接“物件”数量将从135亿增加到385亿,增幅超过285%。这些移动终端由于其便捷性,所处的物理环境、网络环境会随着时间不断变化,而且由于其无线接入的特性带来的潜在攻击面大大增加,面临的不确定性及风险性也更高。在这样的智能设备上确保软件完整性(包括操作系统、应用程序和配置)是保证隐私和安全的关键。
与传统计算机不同的是,智能设备通常缺乏必要的安全能力来保护它们不受攻击,他们的能力和目的仅限于支持整个设备的目标。由于这些智能设备在物理空间中的分散性,我们选择使用远程认证的方式。远程认证是一项至关重要的安全服务,尤其与日益流行的物联网(以及其他嵌入式设备)相关。它允许一个受信任方 (verifier)去了解一个远程的、可能被恶意感染的设备(prover)的状态。
通常我们会将远程认证方案分为基于硬件实现、基于软件实现和混合式三种类型。基于硬件的远程认证方案[1-6]往往更加适合与一些复杂的计算平台,例如手机、平板电脑、笔记本、个人计算机或者服务器,但是对于一些嵌入式设备来说就太过于昂贵。基于软件的远程认证方案[7-12]往往会基于一些较强的假设和严格的时间控制,但是很多的假设都是不够合理的,特别是一些限制攻击者能力的假设。于是,现有的很多认证方案大都采用软硬件混合的方式[13-16]实现。需要说明的是很多的传统远程认证方案不再适用于当前设备数量庞大、设备类型多样的物联网设备群。
1、远程认证
单个设备的远程认证方案已经是一个很完善的领域。但是,现在的新兴产业如电网、工业控制系统、天然气和石油搜索机器人、家庭/办公室自动化等都包含大量的联网设备,而这些设备通常在大量的、动态的、自组织的网络中运行。单个设备的认证方案效率已经不能满足越来越多的设备量,2015年Asokan 等人提出了第一个设备群的认证方案SEDA[17]。对所有的群组中的设备做整体认证,而不是对单个设备逐一认证。方案采用软硬件结合的方式,将认证所需代码、密钥等保存在只读存储器中(ROM),并使用内存保护单元(MPU)控制对内存的访问权限,认证过程使用密钥加密技术保证安全性。认证时,对设备代码状态的证书即cert(cj)进行认证。这样,verifier就不需要预先知道设备的合法状态。将整个节点的拓扑结构生成一个生成树,采用父节点验证子节点的模式提高认证的效率。在认证效率方面,这样以树的结构进行认证节约了运行时间。文献[18]提出SEDA大大增加了网络认证的可扩展性,对群组认证有很高的效率和使用性。在安全性方面,虽然能够较好的验证软件的完整性,但是SEDA只能回馈设备群组中受损设备的个数,而不能具体到哪一个节点受损。
之后,Ambrosin等人在SEDA的基础上做了相应的改进,提出了SANA方案[19]。其整体思想仍然是以生成树的形式将完整性证据传送给验证者,再由验证者进行认证。同时,SANA引入了一个聚合签名技术,用来加密所有设备的认证信息。将认证过程过每个节点的回应信息,利用聚合签名方案产生一个聚合签名,最后回应给verifier,有验证者对签名进行身份认证之后,对回应的内容进行验证,验证每一个设备的完整性。SANA通过不可信的聚合器和公开可验证性,提供了更好的安全性。
同时Yong-Hyuk等人在文献[20]中也提出了一种对SEDA的修改方案,针对SEDA需要一个PKI(公钥基础设施)来管理证书和密钥的特点,提出了基于邻居之间合作的远程认证技术。主要使用的是使用Shamirrsquo;s 门限方案(secret sharing)和擦除代码技术(erasure coding technique),可以动态生成证书。虽然降低了对PKI的依赖度,但是传输时中间设备变多了,可能会增加攻击的可能性。Juan Wang等人在文献[21]中通过一种隐藏机制将秘钥等敏感信息进行隐藏实现了一种更加安全的远程认证方法。Bei Gong等人在文献[22]中给出了对传感节点的正式描述,实现了对节点的实时可信认证以及对不可信节点的追踪。
这些远程认证方案大多采用软硬件结合的方式实现,他们往往基于一些轻量级的硬件平台,例如SMART[23],TrustLite[24]或者TyTAN[25]。
需要说明的是上述的远程认证方案,都是基于一对一或者以对多模型实现的,验证者一般固定不变,这就导致如果验证者遭受攻击被入侵之后,往往会导致整个设备群的崩溃,也就是单点故障。而且因为在认证的过程中涉及到多跳的信息传递,所有难以对认证时间进行限制,这也给了攻击者充分的时间来伪造或者篡改认证结果。
