基于区块链的物联网控制总线
2020-12-22刘庆松赛鹏新于海秋贾先涛指导教师鲁静轩
刘庆松,樊 哲,赛鹏新,于海秋,贾先涛 指导教师:鲁静轩
(北华大学软件工程系,吉林吉林132021)
编号:201811923128
引言:有了智能家居后,可以在下班的途中,可以让他们帮布置卫生,甚至当别人恶意撬动门锁等行为都可以进行报警。这样可以充分提高你的生活质量。不过普通的智能家居的初期发展也携带了一些问题:当总部数据库被修改甚至删除,自家的数据也会发生变动;有人侵入了你的网关,里面的数据就可以随意修改。智能家居系统的理想架构应该是一种真正分布式的总线结构,所有系统中的设备都是基于同一种协议,可以直接互通互联的,这样来解决目前智能家居市场带来的问题。
区块链+物联网核心技术实现
1 去中心化身份系统
物联网时代,设备及用户的身份管理面临严峻挑战。不同组织机构签发的身份需要在物联网中互联互通。身份信息不应该由单一的中心化机构控制。
利用区块链的“去中心化”特点正好可以很好的解决上述问题,实现去中心化的身份管理,把身份的所有权还给设备或用户本身。
使用区块链技术将人类可读的ID与公钥绑定,并去中心化地存储在区块链上,永久保存。每个ID对应的证书信息可以保存在IPFS上。
2 去中心化访问控制
当实现了用户身份和设备去中心化后,同样的,用户访问设备的行为信息也应该去中心化。
以目前的技术发展来讲,以太坊拥有比较成熟的区块链技术。我们利用以太坊替代传统中心化服务器,实现去中心化访问控制。物联网数据可以保存在去中心化文件系统,如IPFS上。IPFS通过ACL代码,连接以太坊网络,通过运行在以太坊上的智能合约(Smart Contract)实现去中心化访问控制。
3 安全问题
当物联网结合区块链技术实现了去中心化之后,最关键的问题就是要解决安全性问题,那么就必须存在一套合理的加密算法来解决安全性问题。
经过多种加密算法的对比,我们最终决定采用混合加密机制,这种方式将加密过程分为两个阶段,阶段一使用非对称加密进行秘钥的分发使得对方安全地得到对称加密的秘钥,阶段二使用对称加密对原文进行加解密。
建立安全连接具体步骤如下:
1:客户端浏览器发送信息到服务器,包括随机数R1,支持的加密算法类型、协议版本、压缩算法等。此过程为明文。
2:服务端返回信息,包括随机数R2、选定加密算法类型、协议版本,以及服务器证书。此过程为明文。
3:浏览器检查带有该网站公钥的证书。该证书需要由第三方CA来签发,浏览器和操作系统会预置权威CA的根证书。如果证书被篡改作假(中间人攻击),很容易通过CA的证书验证出来。
4:如果证书没问题,则用证书中公钥加密随机数R3,发送给服务器。此时,只有客户端和服务器都拥有R1、R2和R3信息,基于R1、R2和R3,生成对称的会话密钥(如AES算法)。后续通信都通过对称加密进行保护。
在实验的过程中,我们遇到了大大小小很多的问题,其中比较突出的有以下几个问题:
首先我们遇见的第一个问题就是,一套完整的智能家居系统会有庞大的数据,而这些数据有一些并不是动作性数据,不需要用到区块链技术做存储,所以我们就想只有动作性的数据也称为行为数据我们利用区块链技术进行存储,其他的数据仍旧存储到本地,但会在区块链中存入特征值,当需要调用数据的时候,会通过特征值来寻找数据。
第二个问题就是,在实验的过程中,我们所能调用的节点太少,如果自己搭建一个区块链的话,每套智能家居系统都在一个节点下面,需要太多的节点了,但在实验的环境下我们并不能去找到如此之多的节点,这也是一个难以解决问题,所以我们想在比较成熟的区块链上接入子链,如以太坊等。
4 结束语
本次研究最终想达成的是利用区块链思想实现去中心化的物联网控制总线,以此实现用户个人信息数据库分布存储,从而大大加强用户数据的安全性,满足时代背景下用户的真正诉求。