2. 中国科学院 软件研究所 可信计算与信息保障实验室, 北京 100190
2. Trusted Computing and Information Assurance Laboratory, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China
随着互联网技术和云计算、人工智能等新兴技术的持续发展, 以及智能终端等计算设备数量规模的不断扩大, 现如今全球的数据存储总量正以惊人的速度不断增长. 国际数据公司IDC预计在2025年全球的物联网设备或类似设备的数量规模会达到416亿, 并产生79.4 ZB的数据[1]. 而随着网络信息技术的不断发展, 数据资源在各行各业中地位的重要性不断凸显, 一些网络攻击者正在将数据资源作为他们破坏和窃取的对象. 而数据安全不但关乎国家、企事业单位的机密信息, 同时也与个人隐私紧密相关, 因此提高数据在全生命周期中的安全性成为亟需解决的挑战. 其中数据存储阶段是数据生命周期的关键阶段, 因此提高数据在存储阶段的安全性尤为重要. 在通用计算设备上, 实现数据的安全存储主要依赖于磁盘加密技术, 它包括基于硬件和基于软件两种类型, 基于硬件的磁盘加密技术依赖于特定的硬件驱动器, 例如自加密驱动器SED[2]; 而基于软件的磁盘加密技术以运行在内核层的应用程序为基础, 例如eCryptfs. 虽然以上两种磁盘加密技术都可以在一定程度上提高数据在存储期间的安全, 但是都存在一定的缺陷, 例如基于硬件的磁盘加密技术需要依赖特定的硬件, 而部分基于软件的磁盘加密技术由于缺乏隔离性, 在遭受主机内存攻击时无法保证加载至主机内存中密钥的安全. 同时例如Windows提供的驱动器加密工具BitLocker[3]在使用过程中会将加密密钥释放到内存中, 在主机内存遭受攻击时可能会导致密钥泄漏进而影响存储数据的安全. 针对以上问题, 可以考虑借助外部设备为存在数据安全存储需求的计算设备提供安全存储服务, 在不增加原有计算设备硬件成本的同时兼顾与外部设备之间的隔离性, 进而提高存储数据的安全性. 而小型物联网设备具有便携、成本较低且功能较为全面的优势, 因此使用物联网设备来提供安全存储服务具备较高的可行性.
物联网设备通常利用传感器等硬件对真实物理环境进行探测, 并利用传统互联网技术与其他计算设备进行数据传输. 物联网设备通常由感知层、网络层和应用层[4]构成. 作为互联网技术和硬件技术结合发展的产物, 物联网设备同样面临着来自传统网络安全风险的威胁, 例如中间人攻击等网络攻击. 同时随着物联网技术与云计算、人工智能等新兴技术的融合发展, 物联网设备在硬件、软件和数据3个方面面临着愈加严峻的风险挑战.
因此, 为了在物联网设备上构建安全存储服务, 同时防止针对物联网设备发起的攻击, 有必要基于可信计算技术构建可信物联网设备, 使其具备平台身份和平台状态证明的能力. 而基于信任根的可信计算技术是满足物联网设备在信任建立、授权访问控制和数据机密性、完整性保护[5]等方面安全需求的常用技术. 普通计算设备通常利用基于硬件信任根的可信计算技术实现自身对攻击的主动防御. 常见的传统硬件信任根有TPM (trusted platform module)/TCM (trusted cryptography module)[6]. 但由于部分物联网设备与个人电脑、服务器等普通计算设备相比, 在内存、计算能力等资源以及能源储备方面存在较大的局限性[7], 因此无法直接使用传统硬件信任根TPM/TCM实现可信启动[8]、远程证明[9]以及数据的安全存储.
针对以上问题, 本文提出一种基于信任根DICE (device identifier composition engine)[10]的证明存储方案, 利用轻量级信任根DICE实现物联网设备的可信启动以创建可信计算环境, 并基于该可信物联网设备向合法主机提供可信的安全存储服务, 其中DICE是国际可信计算组织提出的一种可作为轻量级信任根的安全架构标准. 该方案由可信启动、远程证明和安全存储部分组成, 首先将轻量级信任根DICE作为物联网设备的信任锚点并建立信任链实现可信启动, 然后基于可信启动过程中派生的复合设备标识符CDI (compound device identifier)生成用于物联网设备平台身份和平台状态证明的证明密钥以实现自身平台身份和平台状态的证明, 并验证主机身份的合法性. 随后使用磁盘加密技术将物联网设备连接的外置移动存储设备制作为加密分区作为持久化存储区域, 在完成远程证明的基础上结合FTP技术向合法主机提供安全存储服务. 本文的主要贡献如下.
(1)利用基于信任根DICE构建的可信物联网设备为主机提供安全存储服务, 将存储数据的加解密操作隔离至可信物联网设备上执行, 解决了磁盘加密技术等安全存储技术所存在的因主机遭受内存攻击等风险而威胁存储数据安全的问题.
(2)建立基于信任根DICE的物联网设备远程证明机制和加密分区的访问控制机制, 确保提供安全存储服务的物联网设备、请求服务的主机和用户处于可信状态.
(3)在原有DICE的固件分层度量引导基础上设计了一种树形度量引导模型以实现对物联网设备完整固件层或固件层部分组件的选择性度量, 在实现物联网设备可信启动的同时降低在固件层组件耦合度较低的情况下不必要的度量引导开销.
本文第2节介绍国内外在可信启动、远程证明以及安全存储方面的相关工作. 第3节介绍本方案的系统模型、威胁模型和安全假设. 第4节介绍本方案各模块的功能与设计. 第5节介绍本方案的实验过程并对实验结果进行性能评估和安全性分析. 第6节对全文进行总结并对未来工作进行展望.
2 相关工作 2.1 可信启动可信启动[8]是一种在计算设备通电重启后通过利用信任根构建信任链的方式实现对计算设备操作系统、固件等组件度量引导的技术. 其中信任根和信任链是实现可信启动的关键, 信任根是固化在计算设备内部的最小安全功能组件, 具有防物理篡改的优势[11], 比较常见的硬件信任根是安全芯片. 国际可信计算组织发布的TPM和中国发布的TCM是两种主流的安全芯片标准.
2.1.1 基于传统信任根TPM的可信启动如图1所示, 当计算设备通电重启后, 处于可信引导块中的CRTM最先开始运行, 在完成自检之后对可信引导块的剩余部分进行度量, 随后将引导控制权转交给可信引导块. 随后以同样的方式完成从可信引导块到操作系统加载程序、再到操作系统直至系统应用的引导过程[12]. 在此阶段内, TPM对计算设备各阶段运行代码进行计算度量, 同时利用平台状态寄存器进行扩展度量, 并将最后的度量值记录在度量日志中.
![]() |
图 1 基于TPM的可信启动 |
2.1.2 基于轻量级信任根DICE的可信启动
针对部分资源受限、无法内置传统信任根TPM/TCM的计算设备, 国际可信计算组织提出了一种可作为轻量级信任根的安全架构标准DICE, 用于实现此类计算设备的度量引导[13]. 实现DICE的最低硬件需求仅包括以下3个部分: (1)作为计算设备全部信任基础和设备身份密钥的唯一设备秘密UDS (unique device secret); (2)计算设备重启后最先运行的引导代码; (3)用于阻止除引导代码外的固件访问UDS的锁定机制[10].
基于DICE的度量引导方案中固件分为一至多层, 并依次获得控制权[13], 假设有n层, 为
CDI(Lt+1)=OWF(CDI(Lt),Hash(Lt+1)) | (1) |
随后将引导控制权和
![]() |
图 2 基于DICE的度量引导 |
2.2 远程证明
远程证明是指远程验证方对可疑计算设备的平台身份、平台状态进行验证的技术, 包括平台身份证明和平台状态证明. 从实现方式角度区分, 远程证明可以分为基于软件、基于硬件以及基于软硬件协同这3种方式, 基于软件的方式仅依赖于证明代码, 以SWATT[14]、Reflection[15]为代表. 基于硬件的方式需要借助硬件来实现远程证明过程, 基于硬件信任根TPM/TCM和Intel SGX[16]的远程证明是基于硬件方式的代表性方案. 而基于软硬件协同的远程证明是指利用具有最小硬件安全特征的硬件组件实现远程证明的方式, 以TyTan[17]、TrustLite[18]为代表.
2.2.1 基于软件的远程证明基于软件的远程证明是指对目标计算设备内存中的数据、代码等进行验证的过程. Reflection[15]是最早的软件证明方案, 它的基本思想是构造两个包含覆盖完整内存空间地址范围的随机挑战, 并且所包含的地址范围互相重叠, 以实现对目标设备完整内存地址空间的验证. 但由于缺乏硬件模块的保护, 此类证明方案容易遭受内存压缩、内存复制等攻击.
针对以上软件证明的风险挑战, 目前的应对方案主要包括以下3种[11]: (1)基于严格证明时间的软件证明: 利用伪随机遍历等手段防止攻击者影响证明过程并对远程验证方造成欺骗, SWATT[14]是此类方案的典型代表, 但由于对证明时间的强烈依赖, 因此需要保证自身算法始终处于最优状态. (2)基于空闲内存填充的软件证明: 利用伪随机噪声对设备空闲程序内存进行填充以防止敌手对空闲内存空间进行非法占用, 在分布式场景下提出的方案[19]是该类方案的典型代表. (3)基于随机证明函数的软件证明: 利用不可预测的随机构造证明函数代替固定证明函数, PIV[20]是此类方案的典型代表, 该方案会在证明时通过生成随机哈希函数的方式提高证明过程的安全性.
2.2.2 基于硬件的远程证明基于硬件的远程证明是指利用硬件信任根、支持可信执行环境[21]的处理器或者其他硬件技术实现远程证明的一种方式. TPM是最常用于远程证明的硬件信任根, 基于TPM的平台状态证明过程一般是首先计算当前设备的平台状态度量值, 再利用自身独有的签名私钥基于该度量值生成签名, 然后将平台状态度量值和签名作为可信性证据一起发送给验证方, 验证方收到后对平台状态度量值和签名进行验证. 当需要在远程证明过程中保持证明方身份的匿名性时, 可以利用直接匿名证明协议DAA (direct anonymous attestation)[22]实现远程证明过程.
英特尔公司推出的Intel SGX是一款支持可信执行环境的商用处理器, 它支持本地证明和远程证明两种证明方式[23], 其中本地证明是远程证明的基础. 本地证明是指两个处于同一计算平台上的enclave之间进行双向验证的过程, 而远程证明在不同计算平台之间进行, 由应用程序、应用程序enclave和负责生成远程证明报告的Quoting enclave协作完成, enclave是存放运行中敏感代码和数据的安全容器[16].
2.2.3 基于软硬件协同的远程证明基于软硬件协同的远程证明是一种利用最小硬件安全特征实现远程证明的方式, 代表性工作有TyTan、TrustLite. TyTan[17]是首个针对嵌入式系统提出的安全架构, 它通过计算任务二进制代码的哈希值作为任务本地证明的身份标识和证明依据, 并利用远程证明密钥生成MAC (message authentication code)作为远程证明的证据, 该远程证明密钥基于平台密钥生成. 为了保证平台密钥的安全性与远程证明报告的可信性, TyTan通过内存保护单元实现对平台密钥的保护.
国际可信计算组织提出了一种基于DICE的远程证明方案[24], 该方案通过验证计算设备生成的MAC是否正确, 从而判断出计算设备用于生成MAC的密钥是否合法, 由于生成MAC的远程证明密钥是在UDS和设备固件度量值基础上生成的, 因此远程证明密钥可以正确反映该设备平台身份和平台状态的可信性.
2.3 安全存储数据安全是计算设备安全体系的关键组成部分, 包括数据机密性、数据完整性和数据可用性. 下面依次对常见数据安全存储技术BitLocker和IPFS进行介绍.
微软的BitLocker[3]是Windows操作系统提供的一种驱动器加密工具, 可用于对系统分区、磁盘分区以及可移动存储介质中的数据进行加密保护, 密钥FVEK和密钥VMK是数据保护过程中的关键密钥, 密钥FVEK用于对数据直接进行加密保护, 而密钥VMK用于对密钥FVEK进行加密保护. BitLocker可以实现对存储数据的有效保护, 但仍存在一定的安全风险, 主要来源于以下两个方面: 一方面是存在敌手通过暴力破解获得VMK密钥的风险; 另一方面是存在释放到内存中的密钥被窃取导致加密数据泄露的风险.
IPFS (Intel protection file system)[25]是Intel SGX提供的具备安全特性的用户级文件系统, 有数据安全存储需求的应用程序可以通过创建enclave的方式来调用IPFS提供的接口, 对数据进行加密存储, 实现数据的机密性保护. 但由于IPFS在文件读写时仍需要借助主机系统的不可信库, 因此无法实现对新鲜数据和持久化数据的完整性保护, 所以IPFS只能实现对加密数据篡改行为的事后检测, 但无法保证加密数据不受到恶意篡改.
3 系统模型与安全假设本文面向通用计算设备(称为主机)设计了一种基于可信物联网设备的证明存储方案, 并基于轻量级信任根DICE构建可信物联网设备, 以下是对该证明存储方案系统模型、威胁模型的介绍与安全假设的说明.
3.1 系统模型该方案的系统模型由可信物联网设备和主机两部分组成, 如图3所示. 可信物联网设备由基于DICE的设备端可信启动模块、设备端远程证明模块和设备端安全存储模块构成. 基于DICE的设备端可信启动模块用于实现物联网设备固件的可信启动和复合设备标识符CDI、远程证明密钥的生成. 设备端远程证明模块用于自身平台状态和平台身份的证明, 以及对主机的平台身份进行验证. 设备端安全存储模块由FTP服务端和加密分区管理子模块构成, 用于加密分区的制作、管理和实现对加密分区的访问控制, 以及实现与FTP客户端之间的数据传输. 而主机由主机端远程证明模块、主机端安全存储模块构成, 主机端远程证明模块用于验证物联网设备的平台状态、平台身份以及实现自身的平台身份证明. 主机端安全存储模块由FTP客户端和主机端加密分区管理子模块构成, 用于实现与FTP服务端之间的数据传输和方便主机用户对加密分区进行管理, 可信物联网设备和主机之间通过本地网络进行数据传输.
![]() |
图 3 系统模型 |
当物联网设备通电重启后, 物联网设备的基于DICE的设备端可信启动模块在操作系统可信启动的基础上, 基于轻量级信任根DICE对设备完整固件层或固件层部分组件进行度量引导实现固件的可信启动和复合设备标识符CDI的生成, 并基于设备固件的复合设备标识符CDI派生物联网设备的远程证明密钥. 在完成物联网设备固件的可信启动后, 设备端远程证明模块利用可信启动阶段生成的远程证明密钥实现物联网设备自身的平台身份、平台状态证明, 同时对主机的平台身份进行验证. 在完成远程证明之后, 通过身份验证的合法主机用户可以向可信物联网设备请求安全存储服务, 通过主机端安全存储模块对加密分区中的文件进行上传、下载和显示操作.
3.2 威胁模型(1)攻击者具备在物联网设备启动期间对设备固件进行攻击的能力, 即攻击者可以对设备固件代码进行恶意篡改或植入恶意代码.
(2)攻击者在物联网设备与主机进行远程证明的过程中试图冒充合法物联网设备或主机.
(3)外置移动存储设备存在被攻击者非法窃取或处于丢失等非安全状态下的风险可能.
3.3 安全假设(1) 针对主机的安全假设
本方案仅考虑主机大规模存储数据的安全性, 主机数据在使用阶段的安全性不在本方案的考虑范围内, 数据在使用阶段的安全可通过可信执行环境实现.
(2) 针对可信物联网设备的安全假设
1) 作为物联网设备身份密钥的UDS和设备端可信启动模块是受物理防篡改保护的, 是固化在物联网设备中的绝对信任, 攻击者无法对其进行篡改和破坏.
2) 仅设备端可信启动模块在通电重启后可访问UDS, 攻击者无法访问物联网设备身份密钥UDS和可信启动模块的代码.
3) 仅自身可访问可信启动过程中基于复合设备标识符CDI派生的密钥, 攻击者无法访问、篡改和破坏.
4) 向合法主机提供安全存储服务时, 其自身的操作系统内核始终是安全的, 攻击者无法对其进行劫持和破坏, 并且不考虑针对DICE的TOCTOU攻击.
5) 攻击者的攻击能力仅限于发动网络攻击, 无法接触物联网设备, 不考虑针对设备发起的窥探、破坏等物理攻击, 但是该证明存储方案无法有效抵御DDOS攻击和侧信道攻击.
(3) 针对外置移动存储设备的安全假设
仅可信物联网设备能够打开和关闭外置移动存储设备的加密分区.
3.4 符号说明表1列出本方案所用的标识符.
4 方案设计 4.1 基于DICE的物联网设备可信启动本方案在物联网设备操作系统可信启动的基础上, 基于轻量级信任根DICE实现物联网设备固件的可信启动. 传统基于DICE的计算设备度量引导方案是将固件划分为多层, 然后按照固件分层顺序对固件进行线性的逐级度量引导并建立信任链, 同时在信任链建立过程中为各层固件派生复合设备标识符CDI, 并利用密钥派生函数基于复合设备标识符CDI派生用于远程证明和对数据加密保护的密钥. 但是在计算设备的单一固件层过于庞大、构成组件之间耦合度较低的情况下, 该方案会增加不必要的计算开销, 存在效率较低的问题.
针对该问题, 本方案基于DICE提出一种实现对计算设备完整固件层或固件层部分组件进行选择性度量的树形度量引导模型, 该树形度量引导模型将前一引导阶段作为根结点, 将当前固件层的各组件作为子节点, 根据实际的固件组件使用情况实现对部分固件组件的扩展度量或完整固件层的度量. 如图4所示, 以单个固件层为例, 假设该层固件有n个构成组件, 分别与树中各个子节点相对应, 即f1, f2, f3,…, fn.
![]() |
表 1 标识符与函数标识 |
若需要运行完整设备固件层, 就计算该设备固件层的完整度量值, 并利用单向函数基于物联网设备的身份密钥UDS和完整固件层度量值生成该固件层的复合设备标识符CDI, 如图5所示. 当仅需运行f1节点对应的固件组件时就对该组件的代码进行度量, 并利用单向函数基于UDS和该固件组件的度量值生成标识符, 作为当前该固件层的复合设备标识符CDI, 而无需对该组件所属的完整固件层进行度量, 可以有效减少计算开销、提高度量引导效率, 如图6所示. 此时可以利用密钥派生函数基于复合设备标识符CDI生成远程证明密钥, 实现设备的平台身份证明和设备固件层的完整性证明.
![]() |
图 4 基于DICE的树形度量引导模型 |
![]() |
图 5 完整设备固件层度量引导 |
4.2 基于DICE的远程证明
在基于轻量级信任根DICE完成物联网设备的可信启动并创建可信计算环境后, 物联网设备需要向主机证明自身平台身份和平台状态的可信性, 并且对主机的身份进行验证. 由于物联网设备在可信启动阶段生成的复合设备标识符CDI是基于设备身份密钥UDS和设备完整固件层或固件层部分组件的度量值生成的, 因此基于CDI生成的远程证明密钥可用于同时实现物联网设备的平台状态证明和平台身份证明. 与可信启动阶段的树形度量引导模型相对应, 物联网设备的平台状态证明对象可以是完整设备固件层, 也可以是设备固件层的部分组件. 前一种将可信启动阶段中基于设备身份密钥UDS和完整设备固件层度量值生成的复合设备标识符CDI作为派生远程证明密钥的种子, 而后一种证明过程中的复合设备标识符CDI是基于设备身份密钥UDS和设备固件层部分组件的度量值生成的. 证明过程可以利用数字签名和HMAC两种方式实现, 主机用于生成签名的非对称密钥对H_sk、H_pk和生成HMAC的对称密钥H_k是向可信第三方请求得到的.
![]() |
图 6 固件层部分组件度量引导 |
基于数字签名的物联网设备平台状态证明以及与主机之间的双向身份认证过程如图7所示, 证明开始后物联网设备向主机发送随机挑战消息D_n1, 主机收到后利用私钥H_sk基于D_n1生成签名H_sig, 即:
H_sig=Signature(D_n1,H_sk) | (2) |
随后主机生成随机消息H_n1, 并将其和签名H_sig作为响应消息返回给物联网设备, 物联网设备收到签名H_sig后使用公钥H_pk对其进行验证, 即:
H_r=Verify(D_n1,H_pk,H_sig) | (3) |
随后物联网设备利用自身拥有的签名私钥Dev_sk基于随机消息H_n1生成签名D_sig并返回给主机, 即:
D_sig=Signature(H_n1,Dev_sk) | (4) |
主机收到物联网设备的签名后使用合法公钥Dev_pk对其进行验证, 即:
D_r=Verify(H_n1,Dev_pk,D_sig) | (5) |
由于物联网设备的签名私钥与CDI相关联, 而CDI是基于UDS和固件度量值生成的. 若物联网设备签名的验证结果是正确的, 说明物联网设备的平台身份和当前平台状态都是可信的, 否则至少有一个不可信; 若主机所生成签名的验证结果也是正确的则表明主机的平台身份也是可信的, 反之不可信.
![]() |
图 7 基于数字签名的远程证明 |
基于HMAC的物联网设备平台状态证明和与主机之间的双向身份认证过程如图8所示, 物联网设备生成随机消息D_n2作为远程证明挑战发送给主机, 主机收到证明挑战后利用对称密钥H_k基于D_n2生成HMAC, 即:
H_hmac=HMAC(H_k,D_n2) | (6) |
随后主机生成随机消息H_n2作为远程证明挑战和H_hmac一起作为响应消息返回给物联网设备. 而物联网设备收到响应消息后先利用自身拥有的合法密钥H_k'基于发送的随机挑战消息D_n2生成标准HMAC即H_hmac'与H_hmac进行比对, 即:
H_hmac′=HMAC(H_k′,D_n2) | (7) |
随后物联网设备利用对称密钥Alias Key基于随机消息H_n2生成HMAC即D_hmac作为响应消息返回给主机, 即:
D_hmac=HMAC(AliasKey,H_n2) | (8) |
主机收到后利用合法密钥Alias Key'基于随机
D_hmac′=HMAC(AliasKey′,H_n2) | (9) |
若D_hmac与D_hmac'相同则代表物联网设备的身份和平台状态都是可信的, 若不同则说明物联网设备的平台身份和平台状态至少有一个不可信; 若H_hmac和H_hmac'相同说明主机的平台身份是可信的, 反之不可信.
![]() |
图 8 基于
|
4.3 基于FTP的安全存储
安全存储的主要工作是加密分区的制作、管理和FTP服务端、FTP客户端的改造与部署. 当可信物联网设备基于轻量级信任根DICE完成自身平台状态和平台身份的证明, 并对主机的平台身份进行成功验证后就可以向合法主机用户提供可信的安全存储服务. 物联网设备的设备端安全存储模块由FTP服务端和加密分区管理子模块组成, 加密分区管理子模块负责加密分区制作和管理, 将与物联网设备连接的外置移动存储设备制作为加密分区, 作为数据的持久化加密存储区域. 同时生成密钥加密密钥KEK对与加密分区关联的随机密钥DEK进行加密保护, 即生成密钥DEK对应的密文文件DEK.encfile, 仅通过身份验证的主机合法用户可以凭借正确的加密分区密码请求可信物联网设备使用密钥KEK对密钥DEK的密文文件DEK.encfile进行解密获得该密钥的明文形式, 从而进一步获得加密分区的访问权限. 密钥DEK长期以密文形式存储在可信物联网设备中并受到保护, 并仅在可信物联网设备为拥有正确加密分区密码的合法主机用户提供安全存储服务时才会被解密, 有效实现了加密密钥与主机的分离, 避免了因主机遭受主机内存攻击带来的密钥泄漏等安全风险, 并且仅拥有合法密钥KEK的可信物联网设备才能对密钥DEK的密文文件进行解密进而打开加密分区, 更大程度上提高了存储数据的安全性.
物联网设备与主机之间利用FTP技术实现数据传输, 为了方便合法主机用户对加密分区进行操作并提高物联网设备加密分区的安全性, 对分别部署在物联网设备和主机上的FTP服务端、FTP客户端进行改造, 在原有FTP功能基础上增加访问控制机制和加密分区管理机制. 在FTP服务端一侧保存合法主机用户对应的登录口令哈希值和正确加密分区密码的哈希值, 分别作为合法的主机用户身份凭证和正确的加密分区访问凭证. 并在FTP服务端一侧增加加密分区管理功能接口, 实现加密分区的打开、关闭等管理操作, 同时将FTP服务端的根目录路径与加密分区进行绑定, 并且可以考虑扩展物联网设备的设备端远程证明模块功能至FTP服务端实现物联网设备的平台状态和身份证明以及对主机的身份验证. 而在FTP客户端一侧增加哈希值计算接口, 用于计算主机用户登录口令user_pass的哈希值Hash(user_pass)以及加密分区密码ep_pass的哈希值Hash(ep_pass), 并且增加加密分区管理功能方便主机用户打开和关闭物联网设备的加密分区, 仅通过身份认证的合法主机用户可以凭借正确的加密分区密码请求可信物联网设备打开和关闭加密分区. 与FTP服务端一样可以考虑扩展主机端远程证明模块的功能至FTP客户端, 实现对物联网设备平台状态和平台身份的验证, 以及主机自身的平台身份证明.
如图9所示, 当主机用户向物联网设备请求安全存储服务时, 需要先凭借正确的登录名和登录口令证明自身身份的合法性, 随后再凭借合法加密分区密码ep_pass请求物联网设备使用密钥加密密钥KEK对与加密分区关联的随机密钥DEK的密文文件DEK.encfile进行解密, 进一步获得加密分区的访问权限即打开加密分区, 之后合法主机用户就可以对加密分区中的文件进行显示、上传和下载操作. 当合法主机用户使用完加密分区后可以再次凭借正确的加密分区密码ep_pass请求物联网设备关闭加密分区, 随后可信物联网设备就会为拥有正确加密分区密码ep_pass的合法主机用户关闭加密分区, 并删除与加密分区关联的随机密钥DEK的明文文件以防止加密分区中的数据被非法窃取.
![]() |
图 9 主机用户请求安全存储服务的流程 |
5 实验与评估
本节先介绍了本方案依赖的硬件设备, 然后描述了本方案的设计与实现方式, 最后对各模块进行了实验测试, 并在实验结果基础上对性能表现进行分析, 同时对本方案的安全性进行分析.
5.1 硬件平台本文选择树莓派开发板作为物联网设备, 设备型号为Raspberry Pi 4 Model B, 它所搭载的操作系统为Debian GUN/Linux 11, 硬盘为16 GB的Micro SD卡, 并且自身携带多个USB接口, 可连接用于制作加密分区的外部移动存储设备, 同时还提供用于连接网线的以太网接口和无线网络通信模块, 可方便与主机之间进行数据通信, 并且它的体积较小, 具有易于携带和价格较低的优势. 主机部分则选择部署在个人电脑的虚拟机中, 个人电脑的设备型号为MacBook Pro, 该设备搭载主频为2 GHz的四核Intel Core i5处理器, 内存空间大小为16 GB, 虚拟机的操作系统版本为Ubuntu 16.04. 外置移动存储设备是SanDisk品牌的USB闪存驱动器, 其存储空间大小为32 GB. 主机和物联网设备之间通过本地网络进行通信, 图10是主机和物联网设备树莓派开发板之间通过本地网络进行连接的实物图.
![]() |
图 10 主机与物联网设备的本地网络连接实物图 |
5.2 方案实现 5.2.1 物联网设备可信启动
本方案在物联网设备操作系统可信启动的基础上按照微软和国际可信计算组织制定的DICE相关规范, 提前向可信第三方请求长度为256位的随机秘密值作为物联网设备身份密钥, 即唯一设备秘密UDS. 当物联网设备通电重启后, 按照树形度量引导模型建立信任链, 实现物联网设备固件的可信启动. 本方案将物联网设备的设备端远程证明模块和设备端安全存储模块作为完整设备固件层, 在实验过程中分别对完整固件层和设备端安全存储模块进行了可信启动测试.
在实现完整固件层可信启动过程中利用HMAC-SHA256算法基于物联网设备的设备身份密钥UDS和完整固件层的度量值生成复合设备标识符CDI, 固件层度量值是使用SHA-256算法计算得到的, 并利用Python函数库提供的密钥导出函数基于复合设备标识符CDI进一步生成用于物联网设备远程证明的证明密钥, 同时将生成的CDI和远程证明密钥分别写入日志文件和密钥文件中, 其中复合设备标识符CDI作为物联网设备平台状态证明的证据. 若生成的CDI和预期结果一致, 说明在通电重启后物联网设备的身份和平台状态都是可信的, 否则则说明至少有一个不可信. 而实现设备端安全存储模块可信启动时, 利用HMAC-SHA256算法基于物联网设备的设备身份密钥UDS和设备端安全存储模块的度量值生成复合设备标识符CDI, 并基于其派生远程证明密钥, 随后将生成的CDI和远程证明密钥分别写入日志文件和密钥文件中.
5.2.2 远程证明模块本方案为物联网设备的平台状态证明和与主机之间的双向身份认证过程提供了数字签名和HMAC两种实现方式. 数字签名算法选择国产椭圆曲线密码算法SM2-256和国际上的RSA-2048密码算法进行性能对比, 而为了对比SM2-256算法和RSA-2048算法的性能表现, 物联网设备和主机所使用的非对称密钥对是向可信第三方请求获得的. 同时基于HMAC-SHA256的远程证明选择长度为256位的对称密钥, 物联网设备使用的对称密钥是可信启动过程中利用Python函数库提供的密钥导出函数基于复合设备标识符CDI派生的, 而主机所使用的对称密钥是向可信第三方请求获得的. 同时本节对物联网设备的平台状态证明和与主机之间的双向身份认证进行了单独实现, 并且在物联网设备的平台状态证明过程中将可信启动过程中生成的复合设备标识符CDI作为平台状态证据.
5.2.3 安全存储模块本方案选择SanDisk品牌且存储空间大小为32 GB的USB闪存驱动器作为物联网设备连接的外置移动存储设备, 并利用物联网设备搭载的Linux操作系统所提供的磁盘分区加密工具Cryptsetup将其制作为加密分区. 同时在物联网设备上移植国密SM3哈希算法、SM4对称加密算法, 并生成对称密钥KEK作为密钥加密密钥, 利用对称密钥KEK和SM4对称加密算法实现对加密分区关联密钥DEK的加密保护, 同时利用基于Python的异步文件传输技术aioftp实现主机与物联网设备之间的文件传输. 为了实现对加密分区的访问控制并方便合法主机用户对加密分区中的文件进行操作, 在原有aioftp功能基础上对FTP服务端和FTP客户端进行改造, 在FTP服务端一侧保存两个相同合法用户登录名的用户信息, 第1个合法主机用户信息保存登录名、登录口令哈希值和空文件目录路径用于实现主机用户的身份验证, 第2个合法主机用户信息保存用户登录名、正确加密分区密码的哈希值以及加密分区的文件目录路径用于实现对加密分区的访问权限验证, 并增加加密分区打开、关闭接口实现对加密分区的管理, 同时将FTP服务端的根目录路径与加密分区进行绑定.
而在FTP客户端一侧增加SM3哈希算法计算接口用于计算主机用户登录口令的哈希值Hash(user_pass)和加密分区密码的哈希值Hash(ep_pass), 将其分别作为请求安全存储服务的身份凭证和加密分区的访问凭证与用户登录名发送给FTP服务端进行验证, 并增加加密分区管理接口方便合法主机用户请求可信物联网设备对加密分区进行打开、关闭操作. 在对FTP服务端、FTP客户端改造完成之后将其分别部署在物联网设备和主机上.
5.3 实验结果与分析本节对本方案所设计模块的相关性能进行了测试和分析, 包括物联网设备的可信启动性能、物联网设备的平台状态证明和与主机之间的双向身份认证性能以及安全存储模块的数据传输性能.
(1)物联网设备可信启动的性能开销
物联网设备的可信启动阶段主要包括计算物联网设备固件层度量值、派生复合设备标识符CDI、基于CDI派生远程证明密钥以及将复合设备标识符CDI和远程证明密钥分别写入日志文件和密钥文件4个步骤. 在不考虑实际使用过程中的远程证明需求, 本节分别测试了实现物联网设备完整固件层和固件层安全存储模块可信启动的时间开销, 测试数据如图11、图12所示. 经过10次测试, 物联网设备完整固件层的平均可信启动时间为320.256 ms. 而实现设备端安全存储模块可信启动的平均时间为309.646 ms. 不考虑读取UDS以及对复合设备标识符CDI和远程证明密钥进行写操作的时间, 可信启动的主要时间开销来自于计算固件度量值、派生复合设备标识符CDI和远程证明密钥操作.
![]() |
图 11 完整固件层可信启动时间 |
![]() |
图 12 安全存储模块可信启动时间 |
(2)远程证明的性能开销
远程证明包括物联网设备的平台状态证明和与主机之间的双向身份认证. 本节分别测试了利用HMAC和数字签名实现以上两种证明过程的时间开销, 证明过程中所生成的HMAC利用HMAC-SHA256算法生成, 生成HMAC的对称密钥长度为256位, 而数字签名使用SM2-256算法和RSA-2048算法生成.
基于数字签名的物联网设备平台状态证明过程包括主机生成并发送随机证明挑战给物联网设备、物联网设备基于收到的随机挑战生成签名并将其和作为自身平台状态证据的复合设备标识符CDI返回给主机以及主机验证物联网设备的签名和平台状态证据CDI. 而基于HMAC的物联网设备平台状态证明过程包括主机生成并发送远程证明挑战给物联网设备、物联网设备基于收到的随机证明挑战生成HMAC并将其和复合设备标识符CDI返回给主机以及主机验证物联网设备生成的HMAC和平台状态证据CDI.
本节分别对基于HMAC和基于数字签名的物联网设备平台状态证明过程进行了10次测试, 结果如图13所示. 基于HMAC-SHA256算法的平均证明时间开销为121.734 ms, 同时基于SM2-256算法的平均证明时间开销为321.011 ms, 而基于RSA-2048算法的平均证明时间开销为525.088 ms. 由实验结果分析可知, 基于数字签名的物联网设备平台状态证明过程的平均时间开销高于基于HMAC-SHA256算法的平均证明时间开销, 而基于RSA-2048算法的平均证明时间开销高于基于SM2-256算法的平均证明时间开销. 除物联网设备与主机之间的数据传输外, 基于数字签名的物联网设备平台状态证明的时间开销主要来自于生成签名和验证签名操作.
基于数字签名的物联网设备与主机之间的双向身份认证过程包括物联网设备生成随机证明挑战并发送给主机、主机基于收到的随机证明挑战生成签名并将其和自身生成的随机证明挑战发送给物联网设备、物联网设备对主机生成的签名进行验证并将基于主机发送的随机证明挑战生成的签名返回给主机以及主机验证物联网设备生成的签名. 基于HMAC的双向身份认证过程包括物联网设备生成并发送随机证明挑战给主机、主机基于收到的随机证明挑战生成HMAC并将其与自身生成的随机证明挑战返回给物联网设备、物联网设备验证主机发送的HMAC并将基于主机发送的随机证明挑战所生成的HMAC返回给主机以及主机验证物联网设备生成的HMAC.
![]() |
图 13 物联网设备平台状态证明时间 |
本节分别测试了10次利用HMAC和数字签名实现物联网设备与主机之间双向身份认证的时间开销, 测试结果如图14所示. 基于HMAC-SHA256算法的双向身份认证的平均时间开销为215.288 ms, 基于SM2-256算法的双向身份认证的平均时间开销为437.258 ms, 而基于RSA-2048算法的双向身份认证的平均时间开销为680.223 ms. 由实验结果分析可知, 基于数字签名的双向身份认证的平均时间开销高于基于HMAC-SHA256的双向身份认证, 基于RSA-2048算法的双向身份认证的平均时间开销高于基于SM2-256算法的双向身份认证. 除数据传输以外, 基于数字签名的双向身份认证的主要时间开销同样来自于证明过程中生成签名、验证签名操作.
(3)安全存储的性能开销
本节测试了安全存储模块的文件上传与文件下载的性能, 分别测试了10次主机上传16 KB (16384字节)文件至物联网设备加密分区中和主机从物联网设备加密分区中下载16 KB文件的时间开销, 测试结果如图15、图16所示. 平均文件上传和平均文件下载时间分别为290.719 ms和145.938 ms, 平均文件上传速率和下载速率分别约为0.451 Mb/s和0.898 Mb/s. 文件上传的时间开销主要来自于数据传输和加密分区写操作, 文件下载的时间开销主要来自于数据传输和加密分区读操作.
5.4 安全性分析当攻击者篡改了物联网设备的固件时, 物联网设备在可信启动阶段无法生成正确的复合设备标识符CDI和远程证明密钥, 因此主机在验证物联网设备的平台身份和平台状态时会判断出此时物联网设备的平台身份或平台状态至少有一个是不可信的.
当攻击者试图冒充可信物联网设备或合法主机的身份时, 由于攻击者无法获得物联网设备和主机的远程证明密钥, 因此无法生成正确的远程证明报告. 而物联网设备和主机会通过合法的远程证明密钥检测出错误的远程证明报告, 从而判断出攻击者的非法身份.
当主机上的非法用户试图访问加密分区时, 由于非法主机用户无法获得正确的加密分区访问密码, 而物联网设备会通过验证访问密码识别出非法的主机用户.
![]() |
图 14 物联网设备与主机双向身份认证时间 |
![]() |
图 15 文件上传时间 |
![]() |
图 16 文件下载时间 |
当外置移动存储设备处于丢失或失窃等非安全状态时, 由于只有拥有合法密钥加密密钥的可信物联网设备才能打开该外置移动存储设备中的加密分区, 因此存储在其中的加密数据不会泄漏.
6 总结与展望本文提出了一种基于轻量级信任根DICE的证明存储方案, 利用基于轻量级信任根DICE构建的可信物联网设备提供安全存储服务, 通过将存储数据的加解密操作移至可信物联网设备上执行的方式消除因主机遭受各类攻击对存储数据造成的威胁. 同时构建基于信任根DICE的物联网设备远程证明机制和访问控制机制实现安全认证和安全交互通道的建立, 从整体上提高方案的安全性. 并且提出了一种基于DICE的树形度量引导模型, 可减少不必要的固件度量引导开销. 实验结果表明该方案具有较好的可信启动、远程证明和安全存储性能, 在实际应用过程中可以满足通用场景下的远程证明和安全存储需求, 具备一定的应用价值. 在未来, 主要的工作是将基于DICE的物联网设备可信启动扩展到操作系统内核级, 进一步提高物联网设备在引导启动过程中的安全性.
[1] |
Yang P, Xiong NX, Ren JL. Data security and privacy protection for cloud storage: A survey. IEEE Access, 2020, 8: 131723-131740. DOI:10.1109/ACCESS.2020.3009876 |
[2] |
Meijer C, van Gastel B. Self-encrypting deception: Weaknesses in the encryption of solid state drives. Proceedings of the 2019 IEEE Symposium on Security and Privacy. San Francisco: IEEE, 2019. 72–87.
|
[3] |
Tan C, Zhang LJ, Bao L. A deep exploration of BitLocker encryption and security analysis. Proceedings of the 20th IEEE International Conference on Communication Technology. Nanning: IEEE, 2020. 1070–1074.
|
[4] |
Wu M, Lu TJ, Ling FY, et al. Research on the architecture of Internet of Things. Proceedings of the 3rd International Conference on Advanced Computer Theory and Engineering. Chengdu: IEEE, 2010. V5-484–V5-487.
|
[5] |
Khan MA, Salah K. IoT security: Review, blockchain solutions, and open challenges. Future Generation Computer Systems, 2018, 82: 395-411. DOI:10.1016/j.future.2017.11.022 |
[6] |
Siddiqui AS, Gui YT, Saqib F. Secure boot for reconfigurable architectures. Cryptography, 2020, 4(4): 26. DOI:10.3390/cryptography4040026 |
[7] |
Thakor VA, Razzaque MA, Khandaker MR. Lightweight cryptography algorithms for resource-constrained IoT devices: A review, comparison and research opportunities. IEEE Access, 2021, 9: 28177-28193. DOI:10.1109/ACCESS.2021.3052867 |
[8] |
Khalid O, Rolfes C, Ibing A. On implementing trusted boot for embedded systems. Proceedings of the 2013 IEEE International Symposium on Hardware-oriented Security and Trust. Austin: IEEE, 2013. 75–80.
|
[9] |
Helble SC, Kretz ID, Loscocco PA, et al. Flexible mechanisms for remote attestation. ACM Transactions on Privacy and Security, 2021, 24(4): 29. |
[10] |
Jäger L, Petri R, Fuchs A. Rolling DICE: Lightweight remote attestation for COTS IoT hardware. Proceedings of the 12th International Conference on Availability, Reliability and Security. Reggio: ACM, 2017. 95.
|
[11] |
冯登国, 刘敬彬, 秦宇, 等. 创新发展中的可信计算理论与技术. 中国科学: 信息科学, 2020, 50(8): 1127-1147. |
[12] |
Mayes KE, Markantonakis K. Smart Cards, Tokens, Security and Applications. New York: Springer, 2010.
|
[13] |
Tao Z, Rastogi A, Gupta N, et al. DICE*: A formally verified implementation of DICE measured boot. Proceedings of the 30th USENIX Security Symposium. USENIX Association, 2021. 1091–1107.
|
[14] |
Seshadri A, Perrig A, van Doorn L, et al. SWATT: Software-based attestation for embedded devices. Proceedings of the 2004 IEEE Symposium on Security and Privacy. Berkeley: IEEE, 2004. 272–282.
|
[15] |
Spinellis D. Reflection as a mechanism for software integrity verification. ACM Transactions on Information and System Security, 2000, 3(1): 51-62. DOI:10.1145/353323.353383 |
[16] |
Costan V, Devadas S. Intel SGX explained. IACR Cryptology ePrint Archive, 2016: 86.
|
[17] |
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.
|
[18] |
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.
|
[19] |
Yang Y, Wang XR, Zhu SC, et al. Distributed software-based attestation for node compromise detection in sensor networks. Proceedings of the 26th IEEE International Symposium on Reliable Distributed Systems. Beijing: IEEE, 2007. 219–230.
|
[20] |
Park T, Shin KG. Soft tamper-proofing via program integrity verification in wireless sensor networks. IEEE Transactions on Mobile Computing, 2005, 4(3): 297-309. DOI:10.1109/TMC.2005.44 |
[21] |
Sabt M, Achemlal M, Bouabdallah A. Trusted execution environment: What it is, and what it is not. Proceedings of the 2015 IEEE Trustcom/BigDataSE/ISPA. Helsinki: IEEE, 2015. 57–64.
|
[22] |
Yang K, Chen LQ, Zhang ZF, et al. Direct anonymous attestation with optimal TPM signing efficiency. IEEE Transactions on Information Forensics and Security, 2021, 16: 2260-2275. DOI:10.1109/TIFS.2021.3051801 |
[23] |
Anati I, Gueron S, Johnson S, et al. Innovative technology for CPU based attestation and sealing. Proceedings of the 2nd International Workshop on Hardware and Architectural Support for Security and Privacy. 2013.
|
[24] |
TCG. Symmetric identity based device attestation. https://trustedcomputinggroup.org/wp-content/uploads/TCG_DICE_SymIDAttest_v1_r0p94_pubrev.pdf. (2019-07-24).
|
[25] |
Ahn J, Lee J, Ko Y, et al. DISKSHIELD: A data tamper-resistant storage for Intel SGX. Proceedings of the 15th ACM Asia Conference on Computer and Communications Security. Taipei: ACM, 2020. 799–812.
|