2. 中国科学院 软件研究所 可信计算与信息保障实验室, 北京 100190
2. Trusted Computing and Information Assurance Laboratory, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China
在物联网发展迅速的今天, 物联网设备早已遍布人们日常生活的周围. 物联网设备通常使用低功耗的嵌入式智能设备, 用于执行一些特定的任务, 比如发送、传输以及处理一些在环境中所获得的数据[1], 从而构成了物联网系统, 以此提高整个网络的运行速度和服务质量.
由于嵌入式物联网设备的低成本, 大量的物联网设备应用于日常生活中, 但其内存、计算能力等方面都存在限制, 特别是缺乏安全机制[2]. 从而导致嵌入式设备系统容易成为网络攻击的目标, 如Mirai[3], 将僵尸程序传播至网络, 感染在线设备, 从而形成僵尸网络, 导致很多网络服务功能瘫痪, 无法进行正常工作, 从而造成无法挽回的损失.
而远程证明能够证明设备完整性这一特性, 恰好可以用于解决嵌入物联网设备的安全问题. 利用远程证明基于证明者提供的可信度建立起一个安全的交互式协议[4]. 目前学术界已经提出了很多的远程证明协议, 大体可以分为3类: (1) 基于软件的证明, 无需硬件支持, 但往往基于实践中难以实现的假设, 如SAKE[5]、VIPER[6]; (2) 基于硬件的证明, 由于其昂贵且复杂的特性, 对于资源受限的嵌入式物联网设备不太实用, 如TrustVisor[7]、Flicker[8]; (3) 混合证明, 旨在提供最小化的硬件支持来弥补纯软件证明的安全性不足, 实现与基于硬件相似的安全保护, 如TrustLite[9]、TyTAN[10].
本文提出了一种基于信誉机制和Merkle树的安全集群证明及修复方案, 主要贡献如下:
(1) 本文方法使用信誉机制实现了多对一的证明协议, 能有效解决单点故障, 消除了固定的验证设备, 可以从设备触发验证, 使得证明更加及时, 并且适用于半动态网络.
(2) 引入Merkle树进行度量, 能够快速精确地判断出被恶意软件感染的代码块, 再形成定制的补丁进行恢复, 不仅减少数据传输, 还能高效地修复受损设备.
(3) 本文还对提出的集群证明方法进行了安全性分析和性能评估, 结果表明, 本文集群证明在提高了安全性的同时所导致的性能开销是可以接受的.
本文结构如下: 第2节介绍集群证明的相关工作; 第3节给出本文基于的系统模型与假设; 第4节详细给出本文提出的集群证明协议与修复机制; 第5节对本文提出的协议进行安全性分析; 第6节为性能评估, 包括计算、通信、内存、运行时间以及能源开销方面的分析、本方案与ESDRA[11]及HEALED[12]的安全性对比以及仿真模拟的实验结果; 第7节对本文工作进行总结.
2 相关工作集群证明. 纵观集群证明的发展历程, 随着第一个集群证明协议SEDA[13]提出至今, 不少集群证明的方案呈现在公众的视野中. 大多数都是以SEDA为基础的一对多证明协议. 这些证明协议以验证者为根构造生成树, 从根往下进行证明, 最后不断将证明结果汇聚至验证者, 这也就意味着这类协议只能应用于静态网络. 比如, SeED[14]在SEDA的基础上增加了抵抗DoS攻击, 从而形成了非交互式的拒绝服务攻击的认证方案. 在2019年, ESDRA提出了第一个多对一的集群证明协议, 通过设备端发起的证明, 从而可以适用于半动态的网络. POSTER[15], SALAD[16]都是基于设备的自身认证, 积累个体验证报告, 最后共享至整个网络, 从而实现适用于动态网络的认证协议.
安全修复. 目前大多数协议只提出了证明方案, 对于后续的修复没有详细的介绍.已有的修复协议方案, 如HEALED, 利用集群相同软件配置的可信设备对其进行修复, 从而将受损设备回滚至可信状态.
3 系统模型与假设在大规模的集群
在本文集群证明系统中, 主要的参与者包含: 网络管理者
本文方法基于以下几点假设:
(1) 假设所有节点都满足安全远程证明的最低硬件要求, 即只读存储器和简单的内存保护单元, 可以通过SMART[17]等机制实现.
(2) 假设证明例程为原子程序运行, 并且证明代码无法被修改.
(3) 为了确保证明结果的可靠性, 假设每个节点应至少有3个邻居设备.
(4) 假设物理攻击会导致设备一段时间不可用, 从而攻击期间无法探测到设备.
(5) 由于DDoS攻击几乎不可能被完全抵抗, 与其他集群证明方案一样, 本文不考虑DDoS攻击.
4 系统方案本方案提出一个多对一的集群证明及修复方案. 如图1所示, 方案可分为两个阶段: 离线阶段和在线阶段. 在离线阶段完成设备的初始化以及设备之间的连接过程, 从而构建出整个集群的网络. 而在线阶段主要完成对设备的验证以及发现受损设备后进行的修复协议. 此外, 在线阶段还加入了缺失探测机制, 可以及时发现因物理攻击导致不可达的节点, 将其隔离出集群, 再进行修复或者彻底移除操作. 表1定义了本文所用的符号及参数.
4.1 离线阶段
离线阶段包括设备的初始化(
如图2所示, 当新设备
$ \begin{split} {{initial}}&({D_i}:{c_i}, {1^\ell };M:p{k_M}) \to \\ &({D_i}:s{k_i}, p{k_i}, cert(p{k_i}), cert({c_i}), p{k_M}, {w_i}, {t_{{a_i}}}, {d_i};M, {c_i}) \end{split} $ |
每个设备的公私钥对都是基于SM2 ECC密钥体制[18]生成. 代码证书
4.1.2 设备连接
当设备
$ \begin{split} {{join}}&[{D_i}:s{k_i}, {D_j}:s{k_j}, *:cert(p{k_i}), cert(p{k_j}), cert({c_i}),\\ &cert({c_j}), {d_i}, {d_j}, {w_i}, {w_j}] \to [{D_i}:{k_{ij}}, {D_j}:{k_{ij}}] \end{split} $ |
网络管理者
在线阶段包括对设备进行验证(
在此, 我们引入Merkle树对设备当前的软件状态进行度量. 由于Merkle树能够自下而上计算度量值, 从而汇聚到根节点. 因此, 在证明阶段, 邻居设备仅需验证根节点的度量值即可形成临时验证报告. 在修复阶段, 如图3所示, 证明设备
4.2.1 设备证明
每当设备
$ \begin{split} {\textit{attest}}&[{D_i}:c'_i, cert({c_i}), {k_{ij}};{D_j}:{N_{ij}}, {c_{ij}}, {k_{ij}}, *: - ] \to\\ &[{D_i}:{\mu _{ij}}, {D_j}:b] . \end{split} $ |
簇头接收所有邻居节点的临时证明结果后, 通过信誉机制进行最终验证结果, 每个邻居设备的信誉值代表着其参与生成最终验证结果的权重. 最后广播
$ f = \left\{ {\begin{array}{*{20}{c}} {1, }&{\frac{{\displaystyle\sum\nolimits_{j = 1}^x {({b_{ij}}{w_j})} }}{{\lambda {w_{{\rm{med}}}}}} \geqslant 1} \\ { - 1, }&{\frac{{\displaystyle\sum\nolimits_{j = 1}^x {({b_{ij}}{w_j})} }}{{\lambda {w_{{\rm{med}}}}}} < 1} \end{array}} \right. $ |
$ {w_i} = \left\{ {\begin{array}{*{20}{l}} {({w_{{\rm{max}}}} - {w_{{\rm{min}}}})\frac{{\displaystyle\sum\nolimits_{j = 1}^x {({b_{ij}}{w_j})} }}{{{w_{{\rm{med}}}}}} + {w_{{\rm{min}}}}, }&{f = 1} \\ { - {w_{{\rm{max}}}}, }&{f = - 1} \end{array}} \right. $ |
其中,
算法1. 邻居设备
输入:
输出:
1: //
2: 发送
3:
4: if
5: else if
6: else
7: end if
8: 将
9: //
10: if
11:
12: end if
4.2.2 设备修复网络管理者
由于每个设备都有
$ \begin{split} &{{heal}}[M:s{k_M}, {c_i}, \{ {h_M}[0], \cdots , {h_M}[2\omega ]\} ;{D_i}:p{k_M}, c'_i, \\ &\{ {h_i}[0], \cdots , {h_i}[2\omega ]\} ;*: - ] \to [M, {N_i}, \Gamma ;{D_i}:r] \end{split} $ |
算法2. 网络管理者
输入:
输出:
1: //
2: 发送
3:
4: if
5: while (
6: if (
7:
8: else
9:
10: end if
11: end if
12:
13: 将
14:
15: if
16:
17: end if
18: //
19: if
20:
21: 将
22: end if
23:
24: if
25:
26:
27: else
28:
29: end if
30: 将
在线探测阶段负责对整个集群设备进行定期的探测, 监测设备的运行状态. 本文采用基于多级心跳协议[21], 由网络管理者定期给簇头节点发出心跳信息, 簇头节点在组内广播心跳信息, 并收集组内普通节点的心跳信息, 形成一个alive-node消息, 发给网络管理者. 若在规定的时间未接收到节点设备的心跳信息, 利用多级心跳协议增加和删除节点的便利性, 将其从集群的拓扑网络中删除, 经过验证为可信后, 再重新连接进入集群中.
5 安全性分析我们将这个过程形式化为一个安全实验
定义1. 安全集群证明.
定理1. 如果底层签名、加密和MHTMAC方案是选择性防伪的, 则本方案是一个安全的集群证明方案.
证明:
(1)
对于策略1), 每次的挑战
(2)
对于策略1), 虽然可以逃避补丁
因此,
本节将从计算开销、通信开销、内存开销、运行时间以及能源开销这几个方面对本协议进行分析, 此外我们还对本文集群证明协议进行了仿真, 并与其他几个类似方法进行了对比.
(1) 计算开销. 对于普通设备而言, 主要计算开销在于一些密码操作. 在证明阶段, 证明设备需要计算
(2) 通信开销. 我们使用SM3实现MHTMAC, 密钥协商算法和签名方案都是采用基于SM2的算法. 以
(3) 内存开销. 每个普通设备需要存储: 1)自己的密钥对
(4) 运行时间. 我们使用
$ \begin{split} {t_{{\text{attest}}}} \leqslant & {m_i}({t_h} + {t_p} + {t_{ca}}) + ((32\omega - 8){m_i} + 64H){t_{tr}} \\ &+ ({m_i} + 2){t_s} + ({m_i} + {n_i} + 1){t_v} . \end{split} $ |
总修复时间
$ {t_{{\text{heal}}}} \leqslant {t_{ca}} + {t_h} + {t_p} + (32\omega + 24)H{t_{tr}} + 4{t_s} + 4{t_v} $ |
(5) 能源开销. 我们分别使用
$ E \leqslant (128 + 8({n_i} + 1){E_s}) + 4{m_i}{E_r} + 2{E_{sg}} + {t_v}{m_i}{E_v} $ |
证明设备的最大能耗为:
$ {E_i} \leqslant (32\omega - 16){m_i}{E_s} + 16{m_i}{E_r} + {m_i}{E_h} + {E_v} $ |
邻居设备的最大能耗为:
$ {E_j} \leqslant 20{E_s} + (32\omega - 16){E_r} + {E_p} + {E_{sg}} + {E_v} $ |
在一个修复过程中, 修复设备的最大能耗为:
$ {E_i} \leqslant (32\omega + 24){E_s} + (32\omega + 24){E_r} + {E_p} + {E_h} + 4{E_{sg}} + 4{E_v} $ |
本方案还与ESDRA、SEDA、SALAD在运行时间、平均能耗等方面进行比较, 具体数据展示如表2所示.
(6) 安全性对比. 我们将本方案与ESDRA、HEALED进行安全性对比. 如表3所示, 在我们的方案中, 增加了在线探测技术, 可以针对物理攻击造成探测不到的设备进行识别, 从而预防物理攻击. 在ESDRA中, 簇头与所有簇内设备公用一个会话密码, 存在会话密钥泄露的风险, 本方案改用簇头的公钥进行加密, 仅有簇头本身能够解密, 解决了会话密钥窃取的风险. 此外, 在ESDRA中, 证明设备的新信誉值计算存在高信誉值影响整个结果的风险, 一旦攻击者入侵高信誉值设备, 足以影响整个集群的安全性, 本方案引入中位数, 计算每个证明设备的邻居设备信誉值的中位数, 以此作为基准, 从而规避高信誉值设备“一票否定”的情况, 而在HEALED中, 利用传递性, 也同样存在高信任度的设备, 再加上证明节点的任意性, 很难快速找到受损设备.
(7) 仿真结果. 我们使用OMNet++[22]对本文集群证明协议进行了仿真模拟, 并与ESDRA、SEDA、SALAD几个代表性工作进行了比较. 在仿真过程中, 我们使用嵌入式开发板上测得的密码算法性能数据[23]进行仿真, 相关密码算法在嵌入式开发板上的数据如表4所示.
对于本方案, 我们设置初始信誉值为3, 最大信誉值
图4展现了本方案与ESDRA、SEDA以及SALAD关于证明设备不同邻居数量的验证时间. 相较于ESDRA, 由于本方案在上报临时验证结果是采用簇头的公钥进行加密, 并且后期广播证明设备的验证结果采用簇头签名, 因此运行时间有所增加, 但在总体看来, 为了提高协议的安全性, 这些性能牺牲还是在可以接收的范围内, 并且分布式证明的优势依旧可以体现. 图5描绘了本方案与ESDRA、SEDA以及SALAD关于不同的集群设备数量所进行的证明时间, 本方案对于集群数量的增大, 受影响的幅度较小.
7 总结
本文提出了一种基于信誉机制和Merkle树的安全集群证明及修复方案. 利用信誉机制实现了多对一的证明协议, 不仅能有效解决单点故障, 可以从设备触发验证, 并且适用于半动态网络. 引入Merkle树进行度量, 能够快速精确地识别被恶意软件感染的代码块, 并进行高效地恢复到可信状态. 通过对方案的安全性分析和性能评估, 结果表明, 本文集群证明在提高了安全性的同时导致的性能开销是可以接受的.
[1] |
Frontera S, Lazzeretti R. Bloom filter based collective remote attestation for dynamic networks. The 16th International Conference on Availability, Reliability and Security. Vienna: ACM, 2021. 80.
|
[2] |
Neshenko N, Bou-Harb E, Crichigno J, et al. Demystifying IoT security: An exhaustive survey on IoT vulnerabilities and a first empirical look on internet-scale IoT exploitations. IEEE Communications Surveys & Tutorials, 2019, 21(3): 2702-2733. |
[3] |
Griffioen H, Doerr C. Examining Mirai’s battle over the Internet of Things. Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2020. 743–756.
|
[4] |
Ibrahim A. Securing embedded networks through secure collective attestation. Proceedings of the 2018 Workshop on MobiSys 2018 Ph.D. Forum. Munich: ACM, 2018. 1–2.
|
[5] |
Seshadri A, Luk M, Perrig A. SAKE: Software attestation for key establishment in sensor networks. 4th IEEE International Conference on Distributed Computing in Sensor Systems. Berlin: Springer, 2008. 372–385.
|
[6] |
Li YL, McCune JM, Perrig A. VIPER: Verifying the integrity of peripherals’ firmware. Proceedings of the 18th ACM Conference on Computer and Communications Security. Chicago: ACM, 2011. 3–16.
|
[7] |
McCune JM, Li YL, Qu N, et al. TrustVisor: Efficient TCB reduction and attestation. Proceedings of the 2010 IEEE Symposium on Security and Privacy. Oakland: IEEE, 2010. 143–158.
|
[8] |
McCune JM, Parno BJ, Perrig A, et al. Flicker: An execution infrastructure for TCB minimization. ACM SIGOPS Operating Systems Review, 2008, 42(4): 315-328. DOI:10.1145/1357010.1352625 |
[9] |
Koeberl P, Schulz S, Sadeghi AR, et al. TrustLite: A security architecture for tiny embedded devices. Proceedings of the 9th European Conference on Computer Systems. Amsterdam: ACM, 2014. 10.
|
[10] |
Brasser F, El Mahjoub B, Sadeghi AR, et al. TyTAN: Tiny trust anchor for tiny devices. Proceedings of the 52nd ACM/EDAC/IEEE Design Automation Conference. San Francisco: IEEE, 2015. 1–6.
|
[11] |
Kuang BY, Fu AM, Yu S, et al. ESDRA: An efficient and secure distributed remote attestation scheme for IoT swarms. IEEE Internet of Things Journal, 2019, 6(5): 8372-8383. DOI:10.1109/JIOT.2019.2917223 |
[12] |
Ibrahim A, Sadeghi AR, Tsudik G. HEALED: Healing & attestation for low-end embedded devices. 23rd International Conference on Financial Cryptography and Data Security. Cham: Springer, 2019. 627–645.
|
[13] |
Asokan N, Brasser F, Ibrahim A, et al. SEDA: Scalable embedded device attestation. Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. Denver: ACM, 2015. 964–975.
|
[14] |
Ibrahim A, Sadeghi AR, Zeitouni S. SeED: Secure non-interactive attestation for embedded devices. Proceedings of the 10th ACM Conference on Security and Privacy in Wireless and Mobile Networks. Boston: ACM, 2017. 64–74.
|
[15] |
Ambrosin M, Conti M, Lazzeretti R, et al. Toward secure and efficient attestation for highly dynamic swarms: Poster. Proceedings of the 10th ACM Conference on Security and Privacy in Wireless and Mobile Networks. Boston: ACM, 2017. 281–282.
|
[16] |
Kohnhäuser F, Büscher N, Katzenbeisser S. SALAD: Secure and lightweight attestation of highly dynamic and disruptive networks. Proceedings of the 2018 on Asia Conference on Computer and Communications Security. Incheon: ACM, 2018. 329–342.
|
[17] |
Eldefrawy K, Tsudik G, Francillon A, et al. SMART: Secure and minimal architecture for (establishing dynamic) root of trust. Network and Distributed System Security Symposium. San Diego: NDSS, 2012.
|
[18] |
Zhou L, Su CH, Hu Z, et al. Lightweight implementations of NIST P-256 and SM2 ECC on 8-bit resource-constraint embedded device. ACM Transactions on Embedded Computing Systems, 2019, 18(3): 23. |
[19] |
Durairaj M, Muthuramalingam K. Dynamic shifting genetic non-adjacent form elliptic curve Diffie-Hellman key exchange procedure for IoT heterogeneous network. 2nd International Conference on Computing and Communication (IC3). Singapore: Springer, 2019. 489–509.
|
[20] |
武一, 李家兴, 范书瑞, 等. 基于最佳簇半径的无线传感器网络分簇路由算法. 现代电子技术, 2021, 44(4): 23-26. |
[21] |
Li FF, Yu XZ, Wu G. Design and implementation of high availability distributed system based on multi-level heartbeat protocol. 2009 IITA International Conference on Control, Automation and Systems Engineering. Zhangjiajie: IEEE, 2009. 83–87.
|
[22] |
OpenSim Ltd. OMNeT++ discrete event simulator. http://omnetpp.org/. (2016-10-18).
|
[23] |
杜变霞, 秦宇, 冯伟, 等. 面向物联网的高效集群证明机制. 计算机系统应用, 2018, 27(10): 22-32. DOI:10.15888/j.cnki.csa.006626 |