1.本发明涉及区块链及信息技术领域,具体涉及一种基于区块链的物联网设备跨域认证与数据共享方法。
背景技术:2.传统的可穿戴设备认证方案大多采用集中式的认证方式,需要一个基于公钥基础结构(pki)的中央权限,由于设备的规模庞大,这种认证方式给集中认证服务器带来了很大的工作量,容易造成网络堵塞和延迟,并且认证服务器容易发生单点故障,影响认证服务的正常运行。
技术实现要素:3.为了提高了设备身份认证的可靠性与安全性,本发明提供了一种基于区块链的物联网设备跨域认证与数据共享方法。
4.本发明采用的技术方案如下:一种基于区块链的物联网设备跨域认证与数据共享方法,步骤如下:s1,创建域,部门h的管理者负责在区块链中创建部门h和加入管理者设备m,管理者向智能合约发送创建域交易,在区块链中保存部门编号hid、管理者设备m编号m-devid及管理者设备m的区块链地址αm;s2,设备注册,管理者为设备d颁发证书ticket,证书ticket采用ecdsa椭圆曲线算法进行签名,签名结构包括设备d要关联部门h的部门编号hid、设备d的设备号devid、设备d的类型role、设备d的区块链地址αd;s3,设备关联,设备d在区块链中进行注册,向区块链发送关联域交易,检查区块链检测设备d的证书ticket,若签名合法,设备关联域操作成功,区块链将保存设备d的部门编号hid、设备号devid和区块链地址αd;s4,跨域信任列表设置,隶属于不同部门的设备d是否可以通信取决于部门h之间的信任关系,信任关系由部门h之间的信任列表决定,管理者通过发送添加/撤销信任交易对信任列表进行增删操作;s5,域间跨域认证与数据分享,设备d已经在区块链中注册并进行了关联域的操作,经过验证的设备d可以按照访问控制规则进行数据交互,设备d与不同部门h的设备进行通信时,是否可以通信取决于两个部门h之间的信任关系,通信功能分为数据发送、数据转发及数据接收。
5.优选的,s1具体为:s1.1,管理者设备m使用secp256k1椭圆曲线创建一对公钥pkm和私钥skm;s1.2,根据其私钥skm生成管理者设备m的区块链地址αm,αm代表公钥pkm取keccak256哈希的前20字节;s1.3,向智能合约发送创建域交易,交易参数包括部门编号hid、管理者设备m编号
m-devid及管理者设备m的区块链地址αm,交易由私钥skm签名;s1.4,区块链收到交易后,使用私钥skm检查交易的合法性,若签名有效,则检测部门编号hid和管理者设备m编号m-devid的有效性,若合法,则交易有效;s1.5,创建域成功,区块链保存部门编号hid、管理者设备m编号m-devid及管理者设备m的区块链地址αm。
6.优选的,s2中最终的签名结构由管理者私钥对前四项数据的串联的哈希值进行签名,即ticket=pksign
sk
(h(hospid||devid||role||αd))。
7.优选的,s3具体为:s3.1,设备d获得医院管理者签发的ticket后,在区块链中进行注册,向区块链发送第一次关联域交易,交易参数包含要关联部门h的部门编号hid、设备d的设备号devid、设备d的区块链地址αd及证书ticket;s3.2,区块链根据设备d的公钥检查交易的签名完整性;s3.3,若签名有效,区块链检测设备d的设备号devid和区块链地址αd是否已被注册;s3.4,若设备d未注册,区块链根据部门h的管理者公钥检查证书ticket的合法性;s3.5,若证书ticket合法,设备关联域操作成功,区块链将保存设备d所属的部门编号hid、设备号devid及区块链地址αd。
8.优选的,s4中增加/撤销信任交易具体为:s4.1,部门hi的管理者提前获得信任的部门hj的部门编号hid(j),部门hi的设备mi发送添加信任交易,参数为部门hi的部门编号hid(i)、部门hj的部门编号hid(j),交易由部门hi的管理者设备mi的私钥签名;s4.2,区块链根据管理者设备mi的公钥检查交易的签名完整性;s4.3,若交易有效,区块链检测发送者是否为部门hi的管理者;s4.4,若管理者设备mi身份得到验证,区块链检测部门编号hid(j)是否已注册;s4.5,若部门编号hospid(j)有效,则将医院hi对医院hj信任值设置为true,即添加信任交易;s4.6,将医院hi对医院hj信任值设置为false,即撤销信任交易。
9.优选的,s5中数据发送具体如下:s5.1,设备di发送数据给设备dj,设备di向区块链发出数据发送交易,交易参数包括设备di的设备号devid(di)、设备dj的设备号devid(dj)及发送的数据data;s5.2,区块链根据管理者设备mi的公钥检查交易的签名完整性;s5.3,若交易有效,区块链检测设备di与设备dj的有效性,即devid(di)和devid(dj)是否在区块链注册且devid(di)与α
di
、devid(dj)与α
dj
对应;s5.4,若设备有效,区块链检测设备di与设备dj所属部门是否相同,若相同,则允许发送,若不同,则检测设备di所属部门的信任列表中是否包含设备dj所属部门;若包含,则设备dj所属部门信任设备di所属部门,区块链接受交易,否则,区块链拒绝交易;s5.5,区块链将发送的消息data保存到设备dj的消息地址msgaddr,设备dj可以通过读取此地址获得发送的数据data。
10.优选的,s5中数据接收具体如下:设备dj接收设备di发送的数据,设备dj发送读取
数据交易,区块链通过验证dj的公钥确定设备di的身份,如果验证成功,则读取设备dj的消息地址msgaddr(j),即可得到设备di向设备dj发送的数据。
11.优选的,s5中数据转发与数据发送步骤一致,s5.3中增加对设备di的类型role进行检测,判断是否具有转发权限。
12.本发明具有如下有益效果:本发明有效提高了身份认证的可靠性与安全性,与集中认证方式相比,能够防止认证服务器单点故障、通信流量集中、易被攻击的问题;而且,本发明支持在不同的参与机构之间通过信任列表来进行安全的访问控制,利用区块链对信任列表进行共识,避免了后续身份认证与数据共享过程中可能的重复的耗时的认证数据计算,同时还支持数据转发机制,避免了被访问数据在区块链中冗余存储,相比已有技术,身份认证与数据共享的效率更高,数据存储空间更小。
附图说明
13.图1是本发明实施例的系统架构图。
14.图2是本发明实施例的不同转发比例下的空间消耗示意图。
15.图3是本发明实施例的不同发送长度下的空间消耗示意图。
具体实施方式
16.下面结合实施例与附图,对本发明作进一步说明。
17.本实施例可移动设备医疗的跨域认证与数据分享方案,是一种基于区块链的物联网设备认证和安全通信方案,改变集中认证方式为分散式认证,防止了认证服务器单点故障、通信流量集中、易被攻击的问题;并且提出了在不同的参与机构之间通过信任列表来进行安全的访问控制,信任的机构下的可移动设备可以互相认证和通信,并且机构内进行了角色分类,不同的角色对应不同的发送权限。
18.如图1所示,本实施例系统中自下而上分别是以太坊区块链、区块链客户端、域管理模块以及iot设备等,以太坊区块链提供区块链共识协议以及以太坊api,起到跨域身份认证数据的分布式共识、存储以及校验等作用;区块链客户端用于提供以太坊api的外部调用;域管理模块提供由参与机构(医院)组成的域信息以及跨域协议信息的管理,包括域信息的添加与删除、域关联信息证书生成与验证、跨域协议信息的添加与删除以及信任列表的维护;iot设备主要包括可穿戴设备,用于设备用户(就医者)进行身份认证授权和敏感数据(电子病历)存储。
19.本实施例的跨域认证与数据分享步骤具体如下。
20.1. 创建域。
21.每个医院都会选择一个管理者负责对医院设备的管理,管理者主要负责在区块链中创建医院和医院所属设备的加入。每个医院在区块链中有唯一的编号hospid,具体如下。
22.(1)管理者设备m使用secp256k1椭圆曲线创建一对公私钥pkm和skm。
23.(2)管理员根据其私钥生成管理者设备m的区块链地址αm,αm代表公钥pkm取keccak256哈希的前20字节。
24.(3)管理员向智能合约发送创建域交易,交易参数包括hospid(医院在区块链中的唯一编号)、devid(设备在区块链中的唯一编号)、αd(设备的区块链地址)。交易由设备私钥
签名。
25.(4)区块链收到交易后,使用该设备公钥检查交易的合法性,若签名有效,则检测hospid和devid的有效性(在区块链上注册),若合法,则交易有效。
26.(5)创建域成功,区块链保存hospid和devid。
27.2. 设备注册。
28.设备分为医生设备和病人设备两类,两类设备具有不同的发送数据权限。设备d注册到医院需要经医院管理员的批准,批准后管理员用自己的私钥为设备颁发证书ticket td,证书采用ecdsa椭圆曲线算法进行签名,签名结构包括:(1)设备要关联的医院id(hospid),1字节。(2)设备自身的设备号(devid),1字节,具有全网唯一性。(3)设备的类型(role):1字节,医生设备或病人设备。(4)设备的区块链地址α
d 。
29.最终的签名结构(ticket),64字节,由管理员私钥对前四项数据的串联的哈希值进行签名,即ticket=pksign
sk
(h(hospid||devid||role||αd))。
30.3. 设备关联。
31.(1)设备获得医院管理员签发的ticket后,要在区块链中进行注册,向区块链发送第一次关联域交易,交易参数包含hospid(要关联的医院id)、devid(设备的编号)、role(设备的类型)、αd(设备的区块链地址)及ticket(由管理员签发的证书)。
32.(2)区块链根据设备的公钥检查交易的签名完整性。
33.(3)若签名有效,区块链检测设备的devid和αd是否已被注册。
34.(4)若设备未注册,区块链根据医院hospid的管理员公钥检查票据的合法性。即:verify
pkm
(ticket),由于管理员设备会先创建域,区块链之前会保存此医院hospid的管理员公钥。
35.(5)若证书ticket合法,设备关联域操作成功,区块链将保存设备所属的hospid、自己的devid和区块链地址。
36.4. 跨域信任列表设置隶属于不同医院的设备是否可以通信取决于医院之间的信任关系。信任关系由医院之间的信任列表决定。医院管理员通过发送添加信任交易和撤销信任交易对信任列表进行增删操作。增加/撤销信任交易步骤:(1)医院hi管理者提前获得信任的医院id,设备mi发送添加信任交易,参数为hospid(i)(自身的医院id)、hospid(j)(要信任的医院id),交易由设备mi的私钥签名。
37.(2)区块链根据设备mi的公钥检查交易的签名完整性。
38.(3)若交易有效,区块链检测发送者是否为医院hi的管理员。
39.(4)若管理员设备身份得到验证,区块链检测hospid(j)是否已注册。
40.(5)若hospid(j)有效,则将医院hi对医院hj信任值设置为true。
41.撤销信任交易与增加信任交易步骤类似,只是最后一步将医院hi对医院hj信任值设置为false。
42.5. 域间跨域认证与数据分享。
43.完成以上步骤后,设备已经在区块链中注册并进行了关联域的操作,经过验证的设备可以按照访问控制规则进行数据交互。我们认为隶属于同一个域的设备是相互信任
的,可以互相通信。
44.而当设备与不同域的设备进行通信时,是否可以通信取决于两个域之间的信任关系。通信功能分为数据发送、数据转发、数据接收。通信功能有数据发送、数据转发、数据接收。设备类型分为医生设备和病人设备,分为不同的权限:病人设备具备发送数据功能,而医生设备可以对数据进行发送和转发,方便分享病人信息,同时避免了数据在区块链中冗余存储。
45.数据发送步骤如下:(1)设备di要发送数据给设备dj。设备di向区块链发出数据发送交易,交易参数包括此设备devid(di)、要接收的devid(dj)、发送的数据data。
46.(2)区块链根据设备mi的公钥检查交易的签名完整性。
47.(3)若交易有效,区块链检测发送设备与接收设备的有效性,即devid(di)和devid(dj)是否在区块链注册且devid(di)与α
di
对应。
48.(4)若设备有效,区块链检测发送者与接收者所属域是否相同,若相同,则允许发送。若不同,则检测接收者所属域的信任列表中是否包含发送者所属域。若包含,则接收者所属域信任发送者所属域,区块链接受交易,否则,区块链拒绝交易。
49.(5)区块链将发送的消息data保存到设备dj的消息地址msgaddr,接收者devid(dj)可以通过读取此地址获得发送的数据。
50.数据接收流程:设备dj发送读取数据交易,区块链通过验证dj的公钥确定设备发送方的身份,如果验证成功,则读取设备dj的消息地址msgaddr(j),即可得到其他设备向其发送的数据。
51.数据转发流程:数据转发与数据发送流程类似,不同的是,数据转发流程在第三步增加对设备的类型判断步骤,仅医生设备可以转发数据。
52.实验结果表明,相比现有技术,本实施例因增加了数据转发机制使得占用区块空间小,这使得当转发率升高时,所占总体空间变小;又因为数据发送过程生成的区块大小随数据的长度增加而增加,而数据转发过程占用的空间却始终不变,当发送数据长度增加时,数据转发机制能节省更多的空间。实验结果如图2、图3所示(蓝色线为本实施例实验测量结果)。
53.显然,本发明的上述实施例仅仅是为了说明本发明所作的举例,而并非对本发明的实施方式的限定。其他由本发明的实质精神所引申出的显而易见的变化或变动仍属于本发明的保护范围。
技术特征:1.一种基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,步骤如下:s1,创建域,部门h的管理者负责在区块链中创建部门h和加入管理者设备m,管理者向智能合约发送创建域交易,在区块链中保存部门编号hid、管理者设备m编号m-devid及管理者设备m的区块链地址α
m
;s2,设备注册,管理者为设备d颁发证书ticket,证书ticket采用ecdsa椭圆曲线算法进行签名,签名结构包括设备d要关联部门h的部门编号hid、设备d的设备号devid、设备d的类型role、设备d的区块链地址α
d
;s3,设备关联,设备d在区块链中进行注册,向区块链发送关联域交易,检查区块链检测设备d的证书ticket,若签名合法,设备关联域操作成功,区块链将保存设备d的部门编号hid、设备号devid和区块链地址α
d
;s4,跨域信任列表设置,隶属于不同部门的设备d是否可以通信取决于部门h之间的信任关系,信任关系由部门h之间的信任列表决定,管理者通过发送添加/撤销信任交易对信任列表进行增删操作;s5,域间跨域认证与数据分享,设备d已经在区块链中注册并进行了关联域的操作,经过验证的设备d可以按照访问控制规则进行数据交互,设备d与不同部门h的设备进行通信时,是否可以通信取决于两个部门h之间的信任关系,通信功能分为数据发送、数据转发及数据接收。2.根据权利要求1所述的基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,s1具体为:s1.1,管理者设备m使用secp256k1椭圆曲线创建一对公钥pk
m
和私钥sk
m
;s1.2,根据其私钥sk
m
生成管理者设备m的区块链地址α
m
,α
m
代表公钥pk
m
取keccak256哈希的前20字节;s1.3,向智能合约发送创建域交易,交易参数包括部门编号hid、管理者设备m编号m-devid及管理者设备m的区块链地址α
m
,交易由私钥sk
m
签名;s1.4,区块链收到交易后,使用私钥sk
m
检查交易的合法性,若签名有效,则检测部门编号hid和管理者设备m编号m-devid的有效性,若合法,则交易有效;s1.5,创建域成功,区块链保存部门编号hid、管理者设备m编号m-devid及管理者设备m的区块链地址α
m
。3.根据权利要求1所述的基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,s2中最终的签名结构由管理者私钥对前四项数据的串联的哈希值进行签名,即ticket=pksign
sk
(h(hospid||devid||role||α
d
))。4.根据权利要求1所述的基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,s3具体为:s3.1,设备d获得医院管理者签发的ticket后,在区块链中进行注册,向区块链发送第一次关联域交易,交易参数包含要关联部门h的部门编号hid、设备d的设备号devid、设备d的区块链地址α
d
及证书ticket;s3.2,区块链根据设备d的公钥检查交易的签名完整性;s3.3,若签名有效,区块链检测设备d的设备号devid和区块链地址α
d
是否已被注册;s3.4,若设备d未注册,区块链根据部门h的管理者公钥检查证书ticket的合法性;
s3.5,若证书ticket合法,设备关联域操作成功,区块链将保存设备d所属的部门编号hid、设备号devid及区块链地址α
d
。5.根据权利要求1所述的基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,s4中增加/撤销信任交易具体为:s4.1,部门hi的管理者提前获得信任的部门hj的部门编号hid(j),部门hi的设备mi发送添加信任交易,参数为部门hi的部门编号hid(i)、部门hj的部门编号hid(j),交易由部门hi的管理者设备mi的私钥签名;s4.2,区块链根据管理者设备mi的公钥检查交易的签名完整性;s4.3,若交易有效,区块链检测发送者是否为部门hi的管理者;s4.4,若管理者设备mi身份得到验证,区块链检测部门编号hid(j)是否已注册;s4.5,若部门编号hospid(j)有效,则将医院hi对医院hj信任值设置为true,即添加信任交易;s4.6,将医院hi对医院hj信任值设置为false,即撤销信任交易。6.根据权利要求1所述的基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,s5中数据发送具体如下:s5.1,设备di发送数据给设备dj,设备di向区块链发出数据发送交易,交易参数包括设备di的设备号devid(di)、设备dj的设备号devid(dj)及发送的数据data;s5.2,区块链根据管理者设备mi的公钥检查交易的签名完整性;s5.3,若交易有效,区块链检测设备di与设备dj的有效性,即devid(di)和devid(dj)是否在区块链注册且devid(di)与α
di
、devid(dj)与α
dj
对应;s5.4,若设备有效,区块链检测设备di与设备dj所属部门是否相同,若相同,则允许发送,若不同,则检测设备di所属部门的信任列表中是否包含设备dj所属部门;若包含,则设备dj所属部门信任设备di所属部门,区块链接受交易,否则,区块链拒绝交易;s5.5,区块链将发送的消息data保存到设备dj的消息地址msgaddr,设备dj可以通过读取此地址获得发送的数据data。7.根据权利要求6所述的基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,s5中数据接收具体如下:设备dj接收设备di发送的数据,设备dj发送读取数据交易,区块链通过验证dj的公钥确定设备di的身份,如果验证成功,则读取设备dj的消息地址msgaddr(j),即可得到设备di向设备dj发送的数据。8.根据权利要求6所述的基于区块链的物联网设备跨域认证与数据共享方法,其特征在于,s5中数据转发与数据发送步骤一致,s5.3中增加对设备di的类型role进行检测,判断是否具有转发权限。
技术总结本发明公开了一种基于区块链的物联网设备跨域认证与数据共享方法,改变集中认证方式为分散式认证,提出了在不同的参与机构之间通过信任列表来进行安全的访问控制,并且机构内进行了角色分类。本发明有效提高了身份认证的可靠性与安全性,与集中认证方式相比,能够防止认证服务器单点故障、通信流量集中、易被攻击的问题;而且,本发明支持在不同的参与机构之间通过信任列表来进行安全的访问控制,利用区块链对信任列表进行共识,避免了后续身份认证与数据共享过程中可能的重复的耗时的认证数据计算,同时还支持数据转发机制,避免了被访问数据在区块链中冗余存储,相比已有技术,身份认证与数据共享的效率更高,数据存储空间更小。更小。更小。
技术研发人员:刘芳 杨柏蔼
受保护的技术使用者:牛哥信息科技(南京)有限公司
技术研发日:2022.07.13
技术公布日:2022/11/1