面向物联网的安全的去中心化机器身份
摘要
物联网设备的数字身份对物联网系统的安全至关重要。然而,目前的集中式身份管理系统存在单点失效、遭受DDoS攻击和隐私泄露等问题。针对上述问题,结合电动汽车充电场景,提出了去中心化机器身份(decentralized machine identifier, DMID)和身份管理方案。该方案基于区块链和星际文件系统(IPFS)技术。此外,利用物理不可克隆函数(Physical Unclonable Function, PUF)、真随机数生成(True Random Number Generation, TRNG)和Trustzone设计了一个安全的硬件模块,提高了DMID的安全性。最后,设计了一个仿真系统,验证了该方案的可行性和有效性。
关键字
物联网安全;区块链;去中心化身份;IPFS
物联网安全;区块链;去中心化身份;IPFS
引言
近年来,物联网设备的数量迅速增长。到2020年,将有大约250亿台联网设备。随着物联网设备的增长,身份安全问题受到广泛关注。目前的安全解决方案是基于公钥基础设施(PKI)的,而PKI的[2]证书的签发和撤销依赖于证书颁发机构(CA)。
然而,集中式方法有许多缺点。首先,集中式方法容易受到[3]DDoS攻击,造成单点失效;当这种情况发生时,成千上万的物联网设备将受到严重影响。其次,集中式服务器保存了所有重要的隐私数据,将成为攻击者的蜜罐。如果服务器被攻破,私有数据就会被泄露。此外,如果存储在中心服务器上的设备私钥泄露,相应的物联网设备身份将被篡改。
因此,构建一种新的身份与访问管理(IAM)系统[4]对安全设备管理具有重要意义。对IAM系统有一定的要求。首先要能够防御DDoS攻击,并能长时间稳定运行;其次,系统中记录的信息应具有不可篡改性和可追溯性。第三,物联网设备应该负责自己的身份,防止任何恶意主体窃取。
为了实现这样一个系统,本文采用了以下新兴技术:区块链、星际文件系统(IPFS)和去中心化身份(DID)。区块链[5]是一个去中心化的分布式数据库存储系统,系统中有许多节点,每个节点共享系统中的所有数据,并且所有数据都是不可篡改和伪造的。因此,采用区块链实现去中心化的身份管理,防止了单点故障。其次,IPFS是一种协议和网络,旨在创建一种在分布式文件系统中存储和共享超媒体的可内容寻址、点对点方法。它将用于我们拟建的身份管理系统的数据储存。第三,DIDs完全处于DID主体的控制之下,独立于任何集中的注册中心、身份提供者或证书颁发机构。我们结合DIDs来实现设备身份的自我管理。然而,目前的DID解决方案主要关注人的身份。将其应用于无人值守的物联网设备时,发现其安全性不足,因此集成PUF、TRNG、Trustzone等硬件模块来提高DIDs的安全性。
该文结合电动汽车(EV)来描述我们的去中心化机器身份(DMID)和身份管理系统。我们将介绍如何为EV创建DMID以及如何向EV颁发可验证凭据(VC)。此外,还提出了基于DMID和VC的电动汽车与充电桩(CP)的双向认证方案。最后,设计了一个仿真系统进行测试。
本文其余部分的结构如下。第2节介绍DID、IPFS和可验证证书的一些背景知识。第三节结合电动汽车充电场景来描述我们的DMID方案。第四节对我们的方案进行评估和讨论。第五部分是结论。
背景
DID
DID[6]是一种新型的只能由设备所有者管理的身份。DID是全局唯一的。DID的数据格式是一定长度的随机字符串。DID生成算法需要足够的熵来降低碰撞概率。DID是一个统一资源定位符(URL),可以唯一地解析到DID文档。
DID文档
DID文档是描述如何使用DID的指定文档。DID文档的数据格式是一个单独的JavaScript对象表示法(JSON)对象。此外,一个DID文档包含四个属性:上下文属性、DID主题属性、公钥属性和身份验证属性。
context属性表示this DID文档遵循的标准。这个属性的值是统一资源标识符(Uniform Resource Identifier, URI)。然后机器可以解引URI并读取有关上下文的信息。
接下来,DID subject属性描述DID文档所指的特定实体。DID主语的值是DID。
然后,public key属性包含一个公钥数组。每个公钥包含以下属性:公钥的id,公钥的类型,如RSA或ECC,公钥的控制器,它负责管理对应的私钥和公钥本身。
最后,authentication属性是一种验证DID所有权的机制。它将包含一组验证方法,例如上面提到的公钥id。
context属性表示this DID文档遵循的标准。这个属性的值是统一资源标识符(Uniform Resource Identifier, URI)。然后机器可以解引URI并读取有关上下文的信息。
接下来,DID subject属性描述DID文档所指的特定实体。DID主语的值是DID。
然后,public key属性包含一个公钥数组。每个公钥包含以下属性:公钥的id,公钥的类型,如RSA或ECC,公钥的控制器,它负责管理对应的私钥和公钥本身。
最后,authentication属性是一种验证DID所有权的机制。它将包含一组验证方法,例如上面提到的公钥id。
可验证的证书数据模型
图1描述了一些核心参与者,包括颁发者、持有者、验证者和可验证的数据注册中心。颁发者是可以创建可验证凭据并将其传输给持有者的实体。持有者存储一个或多个可验证的凭证并生成可验证的演示文稿。验证者接收可验证的表示,并在可验证的数据注册表上验证它。可验证数据注册中心需要协调标识符、键和其他相关数据的创建和验证。
可验证凭证(VC)[7]由凭证元数据、声明和证明三部分组成。凭据元数据包括凭据的一些属性,例如颁发者的DID、过期日期和吊销机制。声明是关于一个主题的陈述。证明包括签名算法的类型、创建时间和基于颁发者私钥的签名。
可验证演示(VP)由演示元数据、可验证凭证和证明三部分组成。演示元数据包括VP的发布者、发布日期等。证明包括挑战、签名算法的类型和基于VP颁发者私钥的签名。
IPFS
IPFS[8]是一种对等(P2P)分布式文件系统,旨在将所有设备连接到系统中。系统中的每一个都可以存储文件并跟踪一段时间内的版本。此外,与BitTorrent类似,IPFS定义了有效的共享方式,实现了P2P网络中的文件共享。再次,IPFS采用Merkle有向无环图(Directed Acyclic Graphs, DAG)数据结构,使得文件具有可寻址、不可重复和不可篡改的特点。
系统架构
在本节中,我们将结合电动汽车的寿命来描述如何创建DMID以及DMID在电动汽车和充电桩之间的相互认证中的作用。
如图2所示,我们的系统架构分为三层。
底层是基础设施层,包含区块链和IPFS。我们采用智能合约来构造DID方案。此外,为了降低区块链的存储开销,将IPFS技术应用于DID文档等文件的存储。
中间层是控制层,包括用户、EV 4S店、EV厂商和CP厂商等实体。这些实体可以与区块链交互以注册它们自己的DIDs。此外,这些实体还可以注册为发行人,向电动汽车或CP颁发风险投资。最后,电动汽车的控制权将随着销售过程而转移。
顶层是应用层,EV将通过5G、NBIoT或蓝牙等无线技术与CP进行通信。它们将在DID的基础上实现相互认证。
顶层是应用层,EV将通过5G、NBIoT或蓝牙等无线技术与CP进行通信。它们将在DID的基础上实现相互认证。
智能合约
区块链中有三种智能合约,如图3所示。
第一个是DID合约。它包含了DID注册、DID更新、DID删除和DID查询等操作。
为了降低区块链的存储开销,采用IPFS存储DID文档。同时,将DID文档的散列值存储在区块链中,实现了高效的数据检索。
第二种是颁发者合约,当主体想要签署VCs时,需要先注册成为颁发者,然后才能发布自己的声明模板。当发行人向设备发布VC时,也会使用IPFS来存储VC,并将VC的哈希值添加到智能合约的列表中。
最后一种是交易合约,设备之间建立信任后,就可以进行交易。在该场景中,电动汽车与CP相互认证后,电动汽车根据充电合同向CP支付充电费用。
硬件方案
针对当前DID方案应用于物联网时在安全性方面存在的不足,设计了一种集成TRNG、PUF、TrustZone等子模块的硬件模块。我们称之为基于安全硬件的DMID模块(SHDMID)。可以将SH-DMID集成到EV中,以保证DMID的安全性。
如图4所示,SH-DMID由以下子模块组成。首先,真随机数发生器(TRNG)[9]子模块。TRNG是一个模块,它从物理进程而不是通过算法生成随机数。TRNG基于产生低电平、统计随机“噪声”信号的微观现象,如热噪声、光电效应和其他量子现象。理论上,这些随机过程是完全不可预测的。
其次,PUF[10]是物理定义的“数字指纹”,可作为微处理器等半导体器件的唯一标识。它基于半导体制造过程中自然发生的独特物理变化。例如,在我们的方案中,我们将使用基于PUF的SRAM。当它每次启动时,SRAM位元以一种不确定的方式稳定在1或0状态,即使制造商也无法预测或复制。这就是它成为物理不可克隆函数的原因,它可以用作独特的“硅指纹”。
TrustZone技术将CPU、程序内存和ram数据划分为安全状态和非安全状态[11]。处于非安全状态的CPU只能访问处于安全状态的程序内存和RAM数据。然而,在安全状态下的CPU不仅可以访问安全状态下的程序内存和ram数据,还可以访问非安全状态下的ram数据。
为了更好地将SH-DMID集成到EV中,我们保留了一些接口,如UART和SPI接口。
创建DMID
图5描述了DMID的创建和VC的发布过程。
在触发EV创建DMID之前,用户需要提前创建自己的DID并注册为颁发者。那么在销售过程中,电动汽车只有在所有权转移后才能被用户控制。EV创建DMID的流程可以分为三个步骤。首先,在本地生成DMID。EV将使用SH-DMID的TRNG生成一个随机数,将其传递到SHA256哈希算法中,并将输出作为DMID。
接下来,创建DMID文档。首先,EV需要生成一个空的DMID文档。然后EV需要为其添加公钥属性。EV将首先使用TRNG和SHA256哈希算法得到一个输出,该输出将作为私钥使用。为了保证私钥的安全存储,EV将使用SH-DMID的PUF对私钥进行加密,得到一个称为keycode的输出。然后基于椭圆曲线算法计算出公钥。
生成DMID文档后,EV将调用智能合约完成DMID注册。在此之前,EV需要将DMID文档上传到IPFS并获取哈希值,该哈希值将用作DID合约的输入参数。
然后,需要将凭据记录到区块链。为了降低区块链的存储开销,仍然只记录凭证的IPFS散列值。用户调用合约方法“IssuerAddVC”向区块链添加IPFS散列。当然,用户可以在任何时候撤销证书。
生成DMID文档后,EV将调用智能合约完成DMID注册。在此之前,EV需要将DMID文档上传到IPFS并获取哈希值,该哈希值将用作DID合约的输入参数。
证书的问题
EV生成自己的DMID后,用户有必要为EV颁发一个凭证。如图5所示。在开始时,EV的DMID被转移给用户。接下来,用户选择授权哪些权利并生成相应的索赔。然后用户使用自己的DID私钥对声明摘要进行签名以生成证明。与权利要求相结合的证明构成凭证。然后,需要将凭据记录到区块链。为了降低区块链的存储开销,仍然只记录凭证的IPFS散列值。用户调用合约方法“IssuerAddVC”向区块链添加IPFS散列。当然,用户可以在任何时候撤销证书。
EV与CP之间的M2M交易
这个过程分为四个阶段。首先,建立用户与CP厂商之间的信任关系,用户向CP厂商注册并交换DMID;其次是信任传递。用户需要将制造商的DID添加到EV的信任列表中,EV将信任该制造商的所有CPs。考虑到用户数量,制造商将基于智能合约维护信任列表,CPs能够公开访问。 后来,pre-charge。区块链代币将用于支付收费费用。设计了一种由CP厂商控制的智能合约,该合约记录用户的DIDs和余额。
最后,EV和CP之间的相互认证,如图6所示。他们首先通过无线通信技术建立连接。然后,EV生成一个nonce并将其发送给CP,CP将根据自己的VC和nonce生成一个VP。接下来,EV会验证VP,看看VC的发行人是否在信任列表中。CP重复上述过程,以验证EV是否获得用户授权。如果验证成功,CP将开始充电。一旦完成收费,CP将计算费用并触发智能合约从用户的账户中扣除。
评价
如图7所示,我们设计了两块电路板分别模拟电动汽车和充电桩,并评估了我们方案的可行性。
MCU采用NXP公司生产的LPC55S69,基于ARMv8-M架构,支持PUF, TRNG和secure boot。
我们使用ESP32作为我们的WiFi模块,HC05作为我们的蓝牙模块,它们通过UART与MCU连接,由AT命令驱动。为了方便观察,我们使用TFT屏幕打印一些关键信息。我们还设计了一个连接器,如图7所示,它可以用来模拟插充电枪的操作,中间的LED会亮起来,模拟充电过程已经开始。
同时,我们在ubuntu上搭建了一个基于以太坊的私有链,整个系统将在局域网中运行。
DMID和DMID文档生成的时间消耗
图8显示了在本地生成一个DMID和相应的DMID文档的时间消耗。
首先,MCU使用TRNG生成随机数。然后将该数字输入到keccak256哈希算法中生成一个32字节的数组。
MCU使用数组的最后20个字节作为DMID,并将DMID存储在flash中。生成DMID的时间大约是23.99 ms。其次,MCU使用TRNG再次生成随机数。该号码将用作私钥。然后MCU利用PUF模块对私钥进行加密,并将加密后的私钥存储到falsh中。然后,单片机利用椭圆曲线密码算法导出相应的公钥。然后MCU将使用cJson[12]算法生成最终的DMID文档。生成一个DMID文档的时间大约是259.6 ms。
智能合约的Gas费
我们在以太坊私有链上部署了DMID合约和颁发者合约,并测试了每个操作的gas消耗量,如表1的第二列所示。假设标准燃气价格为2 Gwei。交易费用等于天然气价格乘以天然气价格。我们得到的结果如第三列所示。根据2019年8月Ether的价格约227美元/ Ether,我们在第四栏提出了美元价格。我们可以发现,查询操作不消耗gas,而其他操作的代价相对较低且可接受。区块链具有良好的查询性能和零查询费用,非常适合在物联网中应用。
安全性
在这一小节中,我们将分析数据安全问题。如表2所示,设备的DMID和VC是公开可见的。设备的私钥对包括其所有者在内的其他人是不可见的。私钥通过PUF加密存储在Trustzone的安全flash区域中。即使黑客打开芯片并从flash中读取,他仍然无法获得真正的私钥。存储在区块链和IPFS中的数据是不可篡改的,因此一旦注册了DMID,就可以将DMID唯一地索引到DMID文档。
结论
针对目前集中式身份管理系统的不足,构建了一种基于智能合约和IPFS的物联网去中心化机器身份管理系统。结合电动汽车充电场景,详细描述了电动汽车和充电桩如何创建自己的DMIDs,并基于DMIDs的信任进行交易,而无需人工参与。设计了一套设备来模拟场景的交互过程,测试结果表明了该方案的可行性。致谢
国家自然科学基金项目(61673275、61873166)和上海市科委项目(195****2102)。引用
[1] Li, S., Da Xu, L., and Zhao, S. 2015. The internet of things: a survey. Information Systems Frontiers. 17, 2 (Apr. 2015), 243-259. DOI=https://doi.org/10.1007/s10796-014-9492-7.
[2] Hong, N. 2013. A security framework for the internet of things based on public key infrastructure. Advanced Materials Research. 671-674, 3223–3226. DOI=https://doi.org/10.4028/www.scientific.net/AMR.671-674.3223.
[3] Kolias, C., Kambourakis, G., Stavrou, A., and Voas, J. 2017.Ddos in the iot: mirai and other botnets. Computer. 50, 7 (Jul.2017), 80-84. DOI= https://doi.org/10.1109/MC.2017.201.
[4] Mahalle, P., Babar, S., Prasad, N. R., and Prasad, R. 2010.Identity Management Framework towards Internet of Things(IoT): Roadmap and Key Challenges. International Conference on Network Security and Applications. Springer, Berlin, Heidelberg. DOI= https://doi.org/10.1007/978-3-642-14478-3_43
[5] Christidis, K., and Devetsikiotis, M. 2016. Blockchains and smart contracts for the internet of things. IEEE Access, 4, 2292-2303. DOI= https://doi.org/10.1109/access.2016.2566339
[6] Ferdous, M. S., Chowdhury, F., and Alassafi, M. O. 2019. In Search of Self-Sovereign Identity Leveraging Blockchain Technology. IEEE Access. 7, 103059-103079. DOI=https://doi.org/10.1109/ACCESS.2019.2931173
[7] Verifiable Credentials Data Model 1.0. Retrieved from https://w3c.github.io/vc-datamodel/.
[8] Muralidharan, S., and Ko, H. 2019. An InterPlanetary File System (IPFS) based IoT framework. 2019 IEEE International Conference on Consumer Electronics (ICCE). 1-2. IEEE. DOI= https://doi.org/10.1109/ICCE.2019.8662002.
[9] Rahman, M. T., Xiao, K., Forte, D., Zhang, X., Shi, J., and Tehranipoor, M. 2014. TI-TRNG: Technology independent true random number generator. In Proceedings of the 51st Annual Design Automation Conference. 1-6. ACM. DOI= https://doi.org/10.1145/2593069.2593236.
[10] Devadas, S., Suh, E., Paral, S., Sowell, R., Ziola, T., and Khandelwal, V. 2008. Design and implementation of PUFbased" unclonable" RFID ICs for anti-counterfeiting and security applications. 2008 IEEE international conference on RFID. 58-64. IEEE. DOI= https://doi.org/10.1109/ RFID.2008.4519377.
[11] Santos, N., Raj, H., Saroiu, S., and Wolman, A. 2014 . Using ARM TrustZone to build a trusted language runtime for mobile applications. ACM SIGARCH Computer Architecture News. 42, 1, 67-80. ACM. DOI= https://doi.org/10.1145/
2541940.2541949
[12] Cjson library use tutorial. Retrieved from http://prog3.com/sbdm/blog/geqiandebei/article/details/47977103.
[2] Hong, N. 2013. A security framework for the internet of things based on public key infrastructure. Advanced Materials Research. 671-674, 3223–3226. DOI=https://doi.org/10.4028/www.scientific.net/AMR.671-674.3223.
[3] Kolias, C., Kambourakis, G., Stavrou, A., and Voas, J. 2017.Ddos in the iot: mirai and other botnets. Computer. 50, 7 (Jul.2017), 80-84. DOI= https://doi.org/10.1109/MC.2017.201.
[4] Mahalle, P., Babar, S., Prasad, N. R., and Prasad, R. 2010.Identity Management Framework towards Internet of Things(IoT): Roadmap and Key Challenges. International Conference on Network Security and Applications. Springer, Berlin, Heidelberg. DOI= https://doi.org/10.1007/978-3-642-14478-3_43
[5] Christidis, K., and Devetsikiotis, M. 2016. Blockchains and smart contracts for the internet of things. IEEE Access, 4, 2292-2303. DOI= https://doi.org/10.1109/access.2016.2566339
[6] Ferdous, M. S., Chowdhury, F., and Alassafi, M. O. 2019. In Search of Self-Sovereign Identity Leveraging Blockchain Technology. IEEE Access. 7, 103059-103079. DOI=https://doi.org/10.1109/ACCESS.2019.2931173
[7] Verifiable Credentials Data Model 1.0. Retrieved from https://w3c.github.io/vc-datamodel/.
[8] Muralidharan, S., and Ko, H. 2019. An InterPlanetary File System (IPFS) based IoT framework. 2019 IEEE International Conference on Consumer Electronics (ICCE). 1-2. IEEE. DOI= https://doi.org/10.1109/ICCE.2019.8662002.
[9] Rahman, M. T., Xiao, K., Forte, D., Zhang, X., Shi, J., and Tehranipoor, M. 2014. TI-TRNG: Technology independent true random number generator. In Proceedings of the 51st Annual Design Automation Conference. 1-6. ACM. DOI= https://doi.org/10.1145/2593069.2593236.
[10] Devadas, S., Suh, E., Paral, S., Sowell, R., Ziola, T., and Khandelwal, V. 2008. Design and implementation of PUFbased" unclonable" RFID ICs for anti-counterfeiting and security applications. 2008 IEEE international conference on RFID. 58-64. IEEE. DOI= https://doi.org/10.1109/ RFID.2008.4519377.
[11] Santos, N., Raj, H., Saroiu, S., and Wolman, A. 2014 . Using ARM TrustZone to build a trusted language runtime for mobile applications. ACM SIGARCH Computer Architecture News. 42, 1, 67-80. ACM. DOI= https://doi.org/10.1145/
2541940.2541949
[12] Cjson library use tutorial. Retrieved from http://prog3.com/sbdm/blog/geqiandebei/article/details/47977103.