一种基于区块链的物联网跨域认证系统及方法与流程

文档序号:15818840发布日期:2018-11-02 22:54阅读:298来源:国知局
一种基于区块链的物联网跨域认证系统及方法与流程

本发明属于物联网安全认证技术领域,尤其涉及一种基于区块链的物联网跨域认证系统及方法。

背景技术

目前,业内常用的现有技术是这样的:随着物联网在智能家居、智慧医疗、车联网等行业的广泛应用,产生海量的物联网数据,但是,目前物联网的数据大多都集中在一个中心域的环境下,各个域之间的数据没有交互,物联网数据存在简单、孤立、分散、片段等问题,物联网各域之间的数据共享问题受到越来越多的关注,实现各物联网域之间数据安全共享的需求越来越大。传统的跨域认证解决方案是一个中心域存储了跨域认证策略,用户进行跨域认证都需要请求中心域来获取认证信息。这种认证策略中心化的架构存在以下问题:(1)容易造成单点故障问题,即如果中心节点发生故障或宕机,那么认证信息将无法被读取。(2)存储在中心节点的认证策略安全性较低,即认证策略在用户进行认证前就可能被篡改。针对传统的跨域认证解决方案中存在的问题,结合区块链的去中心化、集体维护、防篡改的特点,发明了一种去中心化的跨域认证系统。促进了物联网多域之间进行安全交互,提供一种安全的跨域认证解决方案。

综上所述,现有技术存在的问题是:

(1)物联网的数据采用以计算为中心的架构,各个域之间的数据没有交互,物联网数据存在简单、孤立、分散、片段等问题。物联网各域之间要进行数据安全共享。

(2)现有的跨域认证策略中心化的架构存在容易造成单点故障问题,即如果中心节点发生故障或宕机,认证信息将无法被读取。

(2)现有的跨域认证策略中心化的架构存在存储在中心节点的认证策略安全性较低的问题,即认证策略在用户进行认证前就可能被篡改。

解决上述技术问题的难度和意义:

(1)物联网数据的安全性涉及到生活的切身问题,物联网数据的泄露暴露了人们生活的种种隐私,在物联网数据共享的同时,要确保数据的安全性,保护用户隐私。

(2)确保跨域认证的可靠性,即保证物联网数据安全共享的可靠性,保证认证策略中心能够抵御网络攻击,安全可靠运行。

(3)要保证跨域认证的安全性,就要做到认证策略的分布式存储,并且各分布式节点进行的操作要可追溯,这样可以确保认证策略一旦被篡改即可被察觉,进行保护操作。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于区块链的物联网跨域认证系统及方法。

本发明是这样实现的,一种基于区块链的物联网跨域认证系统,所述基于区块链的物联网跨域认证系统包括:

网络层,用于维护同一个账本和一个状态数据库,记录区块链上存储的状态值,各节点完成状态数据库的同步更新;

业务层:基于网络层开发的智能合约,通过智能合约来进行对网络层的操作,业务层通过对用户进行认证,完成跨域权限注册和权限认证,判定各域的请求是否合法,以及返回状态码;

用户层,用于提供跨域权限注册和数据跨域访问授权的请求。

进一步,所述网络层的区块链由物联网多个域组成;

各个域分别作为一个peer节点,组成一个区块链网络,各个节点维护同一个账本和一个状态数据库,账本记录着每个时间发生操作对应的hash值,存储在区块block中,区块block相互连接形成区块链;

状态数据库是一个key-value数据库,记录区块链上存储的状态值,各节点完成状态数据库的同步更新。

本发明的另一目的在于提供一种所述的基于区块链的物联网跨域认证系统的基于区块链的物联网跨域认证方法,所述基于区块链的物联网跨域认证方法包括:

(1)用户通过用户层提供的请求接口发送;

(2)用户发送跨域权限注册请求时,用户发送域注册申请给业务层,业务层与用户进行密码验证,验证通过后,业务层获取用户提交的信息,生成accesstoken以及有效期;返回用户带状态码的信息,业务层将用户注册信息、accesstoken和有效期提交到网络层进行存储;使用用户账户以及accesstoken通过用户层请求接口请求业务层;

(3)用户发送跨域权限注册请求时,业务层完成业务后将用户注册信息、accesstoken和有效期提交到网络层进行存储,网络层状态数据库存储跨域权限认证策略,在用户发送访问请求时,进行验证;

(4)用户跨域权限注册请求完成后,返回用户对应的账户、accesstoken,用户发送访问请求时,携带accesstoken,业务层完成验证,返回认证结果。

进一步,所述用户在发送跨域权限注册申请时,用户层与业务层进行密码审核和验证,验证通过后,由业务层处理请求;

用户层发来的请求分为注册请求和访问请求,当业务层接收到注册请求时,业务层获取用户的账户、欲访问域的账户以及时间戳,并且生成accesstoken和有效期,返回给用户。并且将这些信息提交到网络层存储到状态数据库中。用户通过自己的账户和accesstoken来进行跨域访问数据。

进一步,所述accesstoken的有效期根据具体的场景调整,用户在发送数据访问请求时,用户发送自己的账户,访问域的账户以及accesstoken提交到业务层,业务层通过获取网络层状态数据库所保存的权限数据与用户提交的数据进行验证,验证accesstoken是否在有效期之内,验证通过后,用户即可进行跨域访问数据。如果accesstoken已经超出有效期,用户可申请refreshtoken进行对accesstoken的刷新,然后通过使用新的accesstoken来提交业务层进行认证。

进一步,所述业务层实现跨域访问权限的增加,修改,删除和查询;完成跨域认证的权限管理业务,根据认证后用户的身份、权限信息和访问授权的规则,通过决策决定用户是都能够访问某个域、进行某项操作、获得某项服务;

业务层根据用户提交请求的频率,来判断用户所在的域是否被攻击,业务层通过判断机制,记录用户在最近几次请求的时间间隔,时间间隔小于预先设定的阈值,则此域将被限制请求业务层。

综上所述,本发明的优点及积极效果为:将密码技术的机密性、完整性和不可抵赖特性和区块链技术的分布式账本不可篡改特性相结合,开发出一个安全可扩展的物联网跨域认证系统,以促进物联网数据的安全和充分共享。所公开的网络层区块链是由物联网多个域作为区块链节点构成区块链网络,所构成的区块链为联盟链。实现了区块链网络的成员控制。所公开的跨域认证业务是基于区块链的智能合约来实现,保证认证策略不可伪造和篡改。实现了物联网域之间的去信任机制。所公开的跨域认证策略是存储到区块链网络账本中,实现了跨域认证策略分布式存储,避免遭受单点攻击。跨域认证权限注册操作和跨域认证操作都会记入网络层区块链账本中,保证认证操作不可篡改和可追溯。

对比目前跨域认证方法和系统,基于区块链的跨域认证方法采用去中心化的架构,能够保证系统在安全性、可靠性、可扩展性以及可用性等多方面相比目前跨域认证方法都要高。

附图说明

图1是本发明实施例提供的基于区块链的物联网跨域认证系统结构示意图。

图2是本发明实施例提供的业务层与网络层架构图。

图3是本发明实施例提供的基于区块链的物联网跨域认证方法执行过程图。

图4是本发明实施例提供的区块链背书节点验证区块过程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明旨在解决现有跨域认证系统中因使用中心化部署方式,导致系统容易遭受攻击,造成数据被篡改的技术问题。通过结合区块链技术,利用密码学的机密性、完整性、不可篡改等特性,实现一套分布式的跨域认证系统,促进了物联网各个域之间访问时进行安全认证。

如图1所示,基于区块链的物联网跨域认证系统包括:

网络层:网络层区块链由物联网多个域组成,各个域分别作为一个peer节点,组成一个区块链网络,各个节点维护同一个账本和一个状态数据库,账本记录着每个时间发生操作对应的hash值,存储在区块block中,区块block相互连接形成区块链。状态数据库是一个key-value数据库,记录区块链上存储的状态值,各节点完成状态数据库的同步更新。

业务层:如图2所示,业务层是基于网络层开发的智能合约,通过智能合约来进行对网络层的操作,业务层通过对用户进行认证,完成跨域权限注册和权限认证,判定各域的请求是否合法,以及返回状态码。业务层认证通过后,进行数据访问。

用户层:用于提供跨域权限注册和数据跨域访问授权的请求。

用户在发送跨域权限注册申请时,用户层与业务层进行密码审核和验证,验证通过后,由业务层处理请求。

用户层发来的请求分为注册请求和访问请求,当业务层接收到注册请求时,业务层获取用户的账户、欲访问域的账户以及时间戳,并且生成accesstoken和有效期,返回给用户。并且将这些信息提交到网络层存储到状态数据库中。用户通过自己的账户和accesstoken来进行跨域访问数据。

进一步的,accesstoken的有效期可以根据具体的场景调整。

用户在发送数据访问请求时,用户发送自己的账户,访问域的账户以及accesstoken提交到业务层,业务层通过获取网络层状态数据库所保存的权限数据与用户提交的数据进行验证,验证accesstoken是否在有效期之内,验证通过后,用户即可进行跨域访问数据。如果accesstoken已经超出有效期,用户可申请refreshtoken进行对accesstoken的刷新,然后通过使用新的accesstoken来提交业务层进行认证。

业务层可实现跨域访问权限的增加,修改,删除和查询。完成跨域认证的权限管理业务,根据认证后用户的身份、权限信息和访问授权的规则,通过决策决定用户是都能够访问某个域、进行某项操作、获得某项服务。

进一步的,业务层可根据用户提交请求的频率,来判断用户所在的域是否被攻击,业务层通过判断机制,记录用户在最近几次请求的时间间隔,如果时间间隔小于预先设定的阈值,则此域将被限制请求业务层。

进一步的,如图4所示,网络层区块链是联盟链,由预先设定好的节点来作为区块链的背书节点,共识机制采用权威共识poa(proofofauthority),背书节点验证刚生成区块的合法性,进而广播到其他peer节点,其他peer节点将此区块加入到自己的区块链中。每个区块的内部包含前一个区块的hash值,从而形成一条链。实现数据的分布式存储并且不可篡改。

进一步的,以上与业务层交互的操作,都要生成区块,由背书节点来验证才能完成操作。

如图3所示,本发明实施例提供的基于区块链的物联网跨域认证方法包括以下步骤:

1.用户请求

用户请求分为跨域权限注册请求和跨域访问请求,用户通过用户层提供的请求接口发送。

2.业务层处理请求

用户发送跨域权限注册请求时,用户发送域注册申请给业务层,业务层与用户进行密码验证,验证通过后,业务层获取用户提交的信息,生成accesstoken以及有效期;

用户发送跨域访问请求时,验证机制通过获取用户提交信息和网络层状态数据库保存的权限信息进行对用户身份认证,用户发起对业务层的请求都会产生操作信息,区块链中的背书节点验证此区块合法性,背书节点通过智能合约预先设定好的认证策略,验证此区块的信息是否通过认证。

返回用户带状态码的信息,业务层将用户注册信息、accesstoken和有效期提交到网络层进行存储。使用用户账户以及accesstoken通过用户层请求接口请求业务层,

3.网络层数据处理

用户发送跨域权限注册请求时,业务层完成业务后将用户注册信息、accesstoken和有效期提交到网络层进行存储,网络层状态数据库存储跨域权限认证策略,在用户发送访问请求时,进行验证。

4.结果返回

用户跨域权限注册请求完成后,返回用户对应的账户、accesstoken,用户发送访问请求时,携带accesstoken,业务层完成验证,返回认证结果。

如图4所示,区块链背书节点验证区块过程具体包括:

1.如图中序号1所示,用户层发送操作信息,提交到业务层进行处理;

2.如图中序号2所示,背书节点将业务层的业务处理请求操作,统一打包成一个区块,进行验证。

3.如图中序号3所示,背书节点通过获取状态数据库中的数据对区块中的操作进行一一验证,验证通过过的操作将放入验证区块中,验证不通过的操作将被废弃。验证结束后,背书节点将验证后的区块广播到区块链网络中,peer节点将区块加到自己的区块链中。

4.如图中序号4所示,peer节点收到验证过的区块,将区块加入自己节点的区块链中,完成此次操作。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1