1.本发明涉及计算机和物联网领域,尤其涉及一种基于区块链技术的大规模物联网访问控制方法。
背景技术:
2.预计到2022年,全世界将有180亿台物联网(iot)设备,物联网已成为在许多领域市场上具有巨大影响力的技术,已经成为了我们生活中不可缺少的一部分。可以预见,物联网将在无数个逻辑简单的,有时甚至小到类似智能温度计上的设备上提供全球覆盖级的服务。并且,正因为许多物联网设备的功能受限,低功耗、低计算能力的特点以及当前基于集中式和分层结构的访问控制系统,在物联网领域的发展上提出了新的挑战。
3.集中式访问控制系统(也称为客户端/服务器(c/s)模式)旨在满足传统的面向人机的internet场景的需求,在这些场景中,设备位于同一信任域中,通常需要集中式访问管理。但是,绝大部分iot场景比传统场景更具动态性,在一个iot场景下有多个管理方是再常见不过的事情。一个物联网场景中可以有来自好几个不同厂商的设备,其通信方式与控制方式都不尽相同,并且在其生命周期内属于各种管理社区。另一方面,物联网设备可以由多个管理者同时管理,且这些物联网设备和来自多方的管理人员在cpu,内存和电池资源方面都将受到局限性,无法使用当前系统对一个庞大的物联网系统进行管理。在物联网迅速扩张的今天,对于物联网设备的管理问题就成为了一个亟待解决的事情。
4.物联网应用程序具有丰富的通信功能,这给确保安全性和隐私性带来了新的挑战。例如,丰富的通信会产生大量的数据。这是非常动态的,并且分散在地理位置分散的位置。显然,由于缺乏内在的安全措施,因此没有通用的安全控制措施或标准适用于物联网。区块链技术(blockchain technology——bct)与物联网的集成引起了广泛的关注。为了克服集中式模型的局限性,人们进行了许多尝试,去解决例如管理效率低下,设备和网络的异构性以及对信任的中央机构的依赖等问题。
5.因此,本领域的技术人员致力于开发一种基于区块链技术的大规模物联网访问控制方法。提供基于区块链技术的大规模物联网访问控制技术,以解决现有物联网访问控制技术必须基于中心化节点,难以应用于大规模物联网中多方介入场景的问题。
技术实现要素:
6.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是现有物联网访问控制技术必须基于中心化节点,难以应用于大规模物联网中多方介入场景的问题。
7.为实现上述目的,本发明提供了一种基于区块链技术的大规模物联网访问控制方法,包括策略控制层、网关控制层、设备接入层;
8.所述策略控制层代表区块链网络和节点的交互模式,构造区块链,并将访问控制策略以智能合约的形式发布在区块链上;有权限的用户如果希望创建或更新访问控制策略,需要向区块链节点客户端出示由安全网关颁发的授权证书,在证明自己的权限之后提
交对策略的行为由区块链节点客户端代为执行;
9.所述网关控制层代表物理zone中安全网关的控制模式,安全网关在设备接入时解析设备上报的能力列表,并根据设备的性能进行具体安全策略的下发,进行密钥的配置操作;设备接入安全网关后,安全网关会根据设备上报的性能安排不同的安全策略;对安全网关下辖设备的访问都需要和安全网关进行交互以进行身份认证、策略验证、数据加密;
10.所述设备接入层代表物联网设备的接入模式,物联网设备接入并上报设备能力与性能,进行差异化的安全策略配置,并根据分配的安全策略和安全网关进行密钥交换。
11.进一步地,所述区块链由开源区块链框架fabric实现。
12.进一步地,所述物理zone为一个封闭的域,内中设备不与外界链接,相互之间也不进行直接链接,唯一的通信方是安全网关。
13.进一步地,所述物理zone中所有设备和安全网关进行p2p的链接。
14.进一步地,所述安全网关会定时轮询区块链节点在本地做缓存。
15.进一步地,所述安全策略包括不加密、对称加密、非对称加密。
16.进一步地,包括以下步骤:
17.步骤1、设备接入;
18.步骤2、用户授权;
19.步骤3、策略验证及能力调用。
20.进一步地,所述设备与安全网关的通信协议包括coap协议。
21.进一步地,所述安全网关根据节点选取算法挑选区块链节点进行链接。
22.进一步地,所述区块链的共识协议为可插拔式。
23.在本发明的较佳实施方式中,本发明提供了一种基于区块链技术的大规模物联网访问控制技术,以解决现有物联网访问控制技术必须基于中心化节点,难以应用于大规模物联网中多方介入场景的问题。
24.利用bct一些优势机制如:不可篡改性、可追溯性、去中心化等去帮助物联网实现一个安全、隐私、可多元化访问控制的管理系统,将区块链和物联网进行有效融合,本发明的基于区块链技术的大规模物联网访问控制技术提供了解决现实问题的一条有效途径。
25.本发明提出的一种基于区块链技术的大规模物联网访问控制技术共分为三层:1.策略控制层、2.网关控制层、3.设备接入层。
26.1.策略控制层代表着区块链网络和节点的交互模式,区块链系统由开源区块链框架fabric来实现,本发明构造fabric区块链,并将访问控制策略以智能合约的形式发布在链上,有权限的用户如果希望创建或更新访问控制策略,需要向区块链节点客户端出示由安全网关颁发的授权证书,在证明自己的权限之后提交对策略的行为由区块链节点客户端代为执行。
27.2.网关控制层代表着相应的物理zone(一个封闭的域,内中设备不与外界链接,相互之间也不进行直接链接,唯一的通信方是安全网关)中安全网关的控制模式,我们将一个封闭的不与外界链接的物联网集合称为一个zone,一个物理zone中所有设备都只和安全网关进行p2p的链接。安全网关会定时轮询区块链节点在本地做缓存,以此降低访问控制带来的损耗。安全网关对下辖域中所有设备负责管理,在设备接入时解析设备上报的能力列表,并根据设备的性能进行具体安全策略的下发,进行密钥的配置等操作。设备接入安全网关
后,安全网关会根据设备上报的性能安排不同的安全策略:不加密、对称加密、非对称加密三种方式。对安全网关下辖某台设备的访问都需要和安全网关进行交互以进行身份认证、策略验证、数据加密。
28.本发明提出的访问控制系统中包含用户的概念,用户在对某台设备制定具体的访问控制策略之前需要先与该设备所归属的zone中的安全网关进行交互,进行某种身份认证后由安全网关颁发身份证书给用户,用户出示给区块链节点身份证书校验以获得区块链节点代为进行策略操作。
29.3.设备接入层代表着物联网设备的接入模式,具体的物联网设备接入访问控制系统并上报设备能力与性能,进行差异化的安全策略配置,并根据分配的安全策略和安全网关进行密钥交换等。
30.本发明与现有技术相比较,具有如下显而易见的实质性特点和显著优点:
31.1.由区块链系统承担解决多方介入、多方共识的问题,且本发明中的共识协议是可插拔的,可根据实际情况替换共识协议。
32.2.区块链本身有低性能的缺点,本发明中由安全网关定时轮询访问控制策略在本地缓存,由安全网关分担访问控制模块的开销,提升了系统效率。
33.3.物联网设备的所有交互、加密和以及身份认证都由安全网关代理,对于一些具备低能耗、低性能的物联网设备更为适用,由计算能力强大的网关承担计算任务。
34.4.整个发明模块化充分,策略控制层、网关控制层、设备接入层相互之间完全解耦,可根据现实情况调整相应模块功能进行适配。
35.以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
36.图1是本发明的一个较佳实施例的层次结构图;
37.图2是本发明的一个较佳实施例的数据流转交互图。
具体实施方式
38.以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
39.在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。
40.本发明实施例提供的一种基于区块链技术的大规模物联网访问控制技术,如图1所示,本发明实施例包括以下步骤:
41.步骤s1:设备接入;
42.具体地,物联网设备可通过特定通信协议(如coap协议)与安全网关特定端口进行通信,并上报自己的能力列表(参照w3c万维物联网标准)以及计算性能,安全网关为设备生成一组公私钥,并按照安全策略分发给设备。安全策略分为三种:1.高性能物联网设备采用
非对称加密算法(用生成的公私钥),2.中性能物联网设备采用对称加密算法(用生成的私钥),3.低性能物联网设备不采用加密算法,明文传输。无论设备性能如何,都采用分配的公钥作为唯一身份标识。安全网关将根据节点选取算法挑选一个适宜通信的区块链节点进行链接,区块链节点从服务发现中心获取安全网关列表(包含安全网关公钥),并根据其中的信息对安全网关进行身份认证。确认身份之后,安全网关将设备信息和能力上报给区块链节点,节点代为发起一次交易将设备信息注册上链并转发给其他节点,区块链的共识协议设计为可插拔式,根据实际场景可进行更换。
43.步骤s2:用户授权;
44.如图2所示,具体地,当一个用户需要对某台物联网设备a制定或修改具体的访问控制策略时(如设备a的x能力对设备b开放),用户首先要和设备a所在zone中的安全网关manager进行通信,在本发明中并不规定用户采取何种样方式与安全网关进行验证。验证之后安全网关颁发一个token给用户,
45.token=f
rsa
(设备列表+用户的publickey+时间戳)
manager的privatekey
46.用户拿到该token后用自己的privatekey进行加密。
47.certificate=f
rsa
(token)
用户的privatekey
48.用户拿到该证书后通过根据节点选取算法挑选一个适宜通信的区块链节点进行链接,区块链节点从服务发现中心获取用户列表(包含用户公钥)和安全网关列表(包含安全网关公钥),节点可以使用公开的用户公钥对证书进行解密,这个过程验证了用户了身份并得到了token,再使用公开的安全网关公钥对token进行解密,确认时间戳是否过期,确认token中包含的用户公钥是否与请求用户一致,确认用户有权限的物联网设备列表。
49.当以上步骤都通过后,接受用户发起的访问控制策略的操作,对操作进行校验并发起一笔交易将访问控制策略变更发布上链并通知其余区块链节点。
50.步骤s3:策略验证及能力调用;
51.具体地,经历步骤s1和s2之后,物联网设备已经接入整个系统且可以被其他设备发现,相应设备的访问控制策略也已经由用户设置上链。在本发明中,一个物理zone1(安全网关为m1)的物联网设备a的能力如果被另一个物理zone2(安全网关为m2)的物联网设备b调用,那么设备之间的身份认证、策略校验、信息传输全部由安全网关m1、m2代理。
52.具体地,经历步骤s2之后设备a的访问控制策略已经发布上链,安全网关m1和m2都会定时(定时时间可配置,根据实际情况)轮询区块链节点,区块链节点从服务发现中心获取安全网关列表(包含安全网关公钥),通过列表中的安全网关m1、m2的公钥可以对网关进行身份校验,通过校验之后将与m1、m2下辖设备有关的访问控制策略表传输给网关。网关获取最新的访问控制策略表之后更新本地的缓存,等待其他设备的调用。
53.具体地,当m2下辖设备b需要m1下辖设备a的x能力时,m2首先和m1进行通信,安全网关m1从服务发现中心获取安全网关列表(包含安全网关m2公钥),m1通过获取m2的公钥对请求方进行身份校验,当校验通过后m2向m1发起加密通信(以m1的公钥加密)传输设备b对设备a的x能力的调用。m1拉取本地的访问控制策略缓存表对该调用进行权限验证,验证通过后通过本地的设备列表(包含设备公钥)去验证设备状态,当权限验证通过且设备状态正常会返回给m1一个ack回应,之后设备b会根据安全策略(非对称加密、对称加密、明文传输)对调用请求加密,然后将这个加密调用发送给安全网关m2,m2对该请求再次使用m1的公钥
进行加密:
54.deviceb的调用请求=f
rsa
(f
rsa
(invoke request)
devicebprivatekey
)
m1privatekey
+(端口号)
55.m1获取到该请求后可以用自己的私钥对请求进行解密,然后从访问控制策略列表中获取到设备b的公钥再次进行解密,这个过程验证了消息来源于m2且来源于设备b。m1会将该请求解密后转发给设备a的指定端口。两台设备之后的交互也都通过这种传输方式。
56.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
技术特征:
1.一种基于区块链技术的大规模物联网访问控制方法,其特征在于,包括策略控制层、网关控制层、设备接入层;所述策略控制层代表区块链网络和节点的交互模式,构造区块链,并将访问控制策略以智能合约的形式发布在区块链上;有权限的用户如果希望创建或更新访问控制策略,需要向区块链节点客户端出示由安全网关颁发的授权证书,在证明自己的权限之后提交对策略的行为由区块链节点客户端代为执行;所述网关控制层代表物理zone中安全网关的控制模式,安全网关在设备接入时解析设备上报的能力列表,并根据设备的性能进行具体安全策略的下发,进行密钥的配置操作;设备接入安全网关后,安全网关会根据设备上报的性能安排不同的安全策略;对安全网关下辖设备的访问都需要和安全网关进行交互以进行身份认证、策略验证、数据加密;所述设备接入层代表物联网设备的接入模式,物联网设备接入并上报设备能力与性能,进行差异化的安全策略配置,并根据分配的安全策略和安全网关进行密钥交换。2.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述区块链由开源区块链框架fabric实现。3.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述物理zone为一个封闭的域,内中设备不与外界链接,相互之间也不进行直接链接,唯一的通信方是安全网关。4.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述物理zone中所有设备和安全网关进行p2p的链接。5.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述安全网关会定时轮询区块链节点在本地做缓存。6.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述安全策略包括不加密、对称加密、非对称加密。7.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,包括以下步骤:步骤1、设备接入;步骤2、用户授权;步骤3、策略验证及能力调用。8.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述设备与安全网关的通信协议包括coap协议。9.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述安全网关根据节点选取算法挑选区块链节点进行链接。10.如权利要求1所述的基于区块链技术的大规模物联网访问控制方法,其特征在于,所述区块链的共识协议为可插拔式。
技术总结
本发明公开了一种基于区块链技术的大规模物联网访问控制方法,涉及计算机和物联网领域。包括策略控制层、网关控制层、设备接入层;策略控制层代表区块链网络和节点的交互模式,网关控制层代表物理zone中安全网关的控制模式,设备接入层代表物联网设备的接入模式。本发明解决现有物联网访问控制技术必须基于中心化节点,难以应用于大规模物联网中多方介入场景的问题。场景的问题。场景的问题。
技术研发人员:吴越 沈志豪 邹福泰
受保护的技术使用者:上海交通大学
技术研发日:2021.12.03
技术公布日:2022/3/8