基于区块链的物联网身份认证方法与流程

文档序号:13641681阅读:871来源:国知局

本发明属于身份认证技术领域,具体涉及一种基于区块链的身份认证方法。



背景技术:

近年来,随着物联网技术迅速发展,连入网络的设备数量也呈爆炸式增长。根据gartner的统计,2016年全世界物联网设备为64.818亿台,而在2017年物联网的规模已经达到了83.806亿台,一年增长近三分之一。随着物联网规模的快速增大,物联网内设备的身份认证问题也越来越受重视。

现在主流的身份认证方法大都是中心化的,这些方法存在着诸多缺陷。首先,中心化的服务器容易受到攻击。服务器攻击后可能会造成服务器瘫痪,数据泄露或身份认证结果被恶意篡改。这些将直接影响到物联网设备的工作效率与数据安全。其次服务器的管理者本身也可能为了某些目的篡改认证结果,这种情况会严重危害设备的数据安全。最后,中心化服务器本身可能出现宕机、感染病毒或人为操作失误等意外情况导致服务器暂时无法工作。由此可见中心化的身份认证服务器存在诸多问题,这些问题也是由服务器“中心化”决定的。

区块链技术由中本聪在比特币白皮书《比特币:一种点到点的电子现金系统》中提出,比特币也是世界上第一个区块链系统。区块链是用分布式数据库识别、传播和记载信息的去中心化端到端网络。中本聪通过密码学、时序机制和共识机制的组合使得区块链能够在维护分布式网络系统数据的一致性的同时保证系统中的数据即时验证、可追溯却难以被篡改和被屏蔽。正因为这些特性,区块链被广泛应用在支付结算、票据、信用认证和监管等领域。

智能合约由尼可·萨博在90年代提出,它是一种不受人为干预可自动执行的计算机程序。由于一直以来缺少可信计算的环境,因此智能合约始终停留在理论层面。2014年,以太坊开发团队意识到区块链可以为智能合约提供可信的执行环境,2015年以太坊团队开发出第一个支持智能合约的区块链系统。区块链上的智能合约执行具有执行公开透明,过程无法被篡改,结果无法被销毁、伪造的优点,因此受到学术界和工业界的广泛关注。

区块链技术诞生后很快就有人将其用于认证领域:namecoin是世界上的首个比特币分支,它提供了免费的dns和认证服务,不过每一个比特币地址只能储存520字节的数据,因此限制了它的身份认证场景;singleid使用区块链技术开发了一个帮助用户管理账号密码和注册信息的应用程序;而mit的论文《decentralizingprivacy:usingblockchaintoprotectpersonaldata》则实现了一个去中心化的个人数据管理协议和自动化的访问控制系统。上述身份认证方法都没有考虑过身份认证在物联网领域的场景:首先因为物联网内的资源敏感程度的不同所以访问需要多因子认证,单靠一个私钥无法满足物联网的认证需求。其次,物联网中的设备的认证关系可能存在传递的情况,即实体a可以访问实体b上的资源,实体b可以访问实体c上的资源,此时实体a也可以访问实体c上的资源。

国内也有一些研究区块链在认证与物联网领域的专利。《使用区块链进行授权认证的方法及系统》(专利号cn106301794a)提供了一个基于区块链私钥/地址的认证系统,该发明中管理员会在区块链上维护一个可访问该设备的地址列表,当有实体访问智能设备时智能设备通过区块链查询访实体是否在区块链所保存的地址中,如果在则能够访问,否则则无法访问。这种方法是区块链在物联网身份认证领域的简单应用,没有保护实体隐私,无法适应复杂的身份认证场景,比如多因子认证和授权传递。同时由于管理员的存在,该发明也没有做到真正的去中心化。而《一种物联设备及用该设备的物联网构建方法》(专利号cn106130779a)则提供了一个基于区块链网络进行登记和发布物联网系统。该发明使用区块链登记物联网设备信息与访问信息。但是它没有将实体身份认证的过程通过智能合约的方式提交至区块链执行,无法使认证过程去中心化,同时该专利也无法支持包含多因子认证、访问传递等认证场景。



技术实现要素:

本发明的目的在于提供一种公正透明、自动执行、执行结果不可篡改的基于区块链的物联网身份认证方法。

本发明提供的基于区块链的身份认证方法,通过运行在区块链上的智能合约自动执行身份认证过程,无需权威第三方机构介入;基本步骤为:实体凭自身拥有的密钥调用智能合约,完成在身份认证系统中的注册;每个实体可以调用智能合约以设置访问策略来限制其他实体对其访问并形成物联网的信任网络;一个实体访问另一个实体的数据时需要向智能合约申请令牌以获得访问资格,智能合约根据实体间信任网络中被访问实体设置的访问策略核对发起访问的实体是否有访问资格,如果有则生成令牌返回给发起访问的实体;否则返回申请令牌失败。无论成功或失败智能合约都将会把申请记录在区块链中方便日后核对。本发明基于区块链维护物联网中的实体信任关系并实现身份认证,去除了身份认证过程中的中心化的权威机构,保证了身份认证与数据访问的记录不会被恶意篡改,策略执行结果不会被人为操纵,为物联网中实体身份认证提供了公正、透明、可信的执行环境。

本发明提供的基于区块链的身份认证方法,具体步骤为:

(1)实体(物联网中的用户和设备,下面统称为实体)首先使用区块链密钥在智能合约上注册,并设置其他实体访问其资源需要满足的条件,智能合约将注册的信息储存在区块链中,其注册步骤如下:

i.实体a使用本地的区块链客户端生成私钥与地址,其中,地址为实体a在区块链网络的公开身份,私钥则为证明其身份的认证凭证;

ii.实体a根据自身的情况生成如表1所示的配置;其中,地址,表示上步生成的地址,认证方式,表示访问实体a上的资源需要的认证方式,认证方式字段可以设置为地址认证、多重签名认证、指纹认证等认证方式;黑名单,记录的所有地址无法访问实体a上的资源,无论这些地址代表的实体是否通过认证方式中要求的身份认证;最后一个传递性,表示实体a上的资源认证是否具有传递性,即如果实体c通过了实体b的认证,实体b通过了实体a的认证,那么当实体a把传递性设置为真,且实体c不在实体a的黑名单时,实体c可以访问实体a上的资源,当传递性被设置为假时,实体c只有通过了实体a的认证且不在实体a的黑名单中,才能访问实体a上的资源。注意,传递性仅在拥有非敏感资源的实体设置其认证方式为基于区块链私钥/地址的认证方式时可被设置为真;

iii.实体a使用智能合约提供的私钥将上述配置加密后发送给智能合约;

iv.智能合约将配置解密并处理后储存在区块链中;

表1

(2)当实体a申请访问实体b时,实体a使用其密钥调用区块链中的智能合约;

(3)智能合约根据实体a提供的信息与实体b的身份,在区块链中查找实体b是否允许实体a访问其资源。若实体a被允许访问实体b上的资源,那么智能合约将会生成令牌并返回给实体a,如果实体a没有被实体b允许访问实体b上的资源,智能合约将检查是否需要实体a提供额外的认证信息,若需要提供则通知实体a重新发起申请,申请后验证过程同上。如果实体a无法提供所需的认证信息,那么智能合约返回令牌申请失败提示。以上操作都会被智能合约记录日志保存于区块链中;

(4)实体a收到令牌后将令牌与自己的地址加密发给实体b,实体b解密令牌并向智能合约核实令牌合法性,若合法实体b将向实体a开放资源,否则返回访问失败提示。实体b会将以上过程记录日志保存在区块链中。

由上述过程可见,建立在智能合约上的身份认证系统避免了传统身份认证系统因为中心化带来的安全性隐患,让身份认证整个过程更加的可靠。认证后的访问信息永久存储,且无法被篡改,这使得任何异常的访问都会被记录在案,方便事后进行溯源。使用区块链的地址作为非敏感数据的身份认证凭证,使用多因子认证作为敏感数据的身份认证凭证也使得本方法兼具易用性和安全性。

本发明中,所述的代表实体身份的密钥由区块链生成,由实体保管并可由实体替换。

本发明中,所述的令牌为智能合约生成的一串字符串,作为实体访问的凭证。令牌生成后将被存放在云存储系统中,每个令牌只能使用一次,使用完后令牌将会失效。

本发明中,所述的额外的认证信息可为除原本使用的私钥以外的任意一种认证因子,比如另外一个密钥、指纹或密码等认证因子,智能合约将根据认证方式的不同使用不同方法存储检测凭证(比如对于指纹智能合约将采集指纹特征,对于密码将会储存用于验证密码的特征值)。

本发明中,所述的日志可向申请认证的实体与被访问的实体选择性公开,每次公开需要相关实体或管理员的密钥进行签名授权。

本发明中,所述的传递性指在物联网实体信任网络中,资源的访问是可以传递性。设有实体a、实体b和实体c,实体a符合实体b身份认证要求,实体b符合实体c身份认证要求,实体a在没有通过实体c的身份认证的情况下通过上述传递的访问关系访问实体c,这种情况我们称实体c的访问是可传递的。实体把表示可传递或不可传递的数据发送到身份认证系统,身份认证系统会自动更新实体的传递性设置并维护一张表示节点传递性的有向图方便进行访问传递性检索。当实体a进行身份认证以访问实体c时,智能合约发现实体a在有向图中可以到达实体c且实体a不在实体c的访问黑名单中,那么智能合约将通过实体a的认证并返回传递认证令牌。

本发明中,所述的实体以区块链节点的形式存在于区块链网络中。

本发明中,所述的区块链系统是去中心化的分布式账本系统。区块链的运行与智能合约执行不依赖第三方权威机构,区块链上存储的数据不能被删除和修改,这些特性为身份认证提供了可信的计算与存储环境。

本发明提供的基于区块链的物联网身份认证方法,由于区块链系统和智能合约所具有的各种优势,可为使用者带来以下益处:

1、自动执行身份认证方法。执行身份认证的智能合约运行在区块链上,实体调用该智能合约,智能合约根据实体提供的信息判断实体申请的访问是否通过。整个过程无需人工操作,快捷高效且正确率高;

2、无需第三方权威机构介入。执行智能合约的区块链系统是一个去中心的端到端网络,由密码学和数学知识保证智能合约的执行的公正,执行结果无法被篡改,无需第三方监控与管理;

3、执行过程公正透明。由于智能合约执行的结果几乎无法被人为操纵或篡改,因此身份认证的双方可以信任智能合约给出的身份认证结果,不会因为监管不力或程序执行结果错误产生的纠纷;

4、认证记录可追溯。本系统中数据被智能合约储存在区块链中,由于只有智能合约能够访问,因此数据的隐私得到了保护。而且因为数据无法被篡改,添加或删除,所有的认证申请与访问的记录将可被追溯;

5、身份认证方法不会被恶意篡改。因为身份认证方法以智能合约的形式存在于区块链中,区块链的特性保证了智能合约无法被篡改和伪造。

附图说明

图1为基于区块链的物联网身份认证过程图示。

具体实施方式

下面结合附图详细描述本发明。

在图1的左侧,实体b希望访问通过传递访问访问实体c上的资源,实体a希望访问实体c上的资源。

(1)实体b首先使用自己区块链节点的地址和实体a的地址作为认证信息调用身份认证智能合约;

(2)智能合约收到请求后会申请访问去中心化的云存储系统来获取访问实体c的条件。云存储返回实体c设置的访问条件后智能合约把访问条件与实体b传来的身份认证信息进行比较。图1中智能合约发现实体c允许实体b的地址代表的实体访问实体c的资源,那么智能合约将生成一个令牌,存储在去中心云上并返回给实体b;

(3)实体b通过令牌和其地址作为身份认证信息访问实体c;

(4)实体c向身份认证智能合约核实b的令牌;

(5)智能合约通知实体c令牌合法,同时将该令牌标记为过期;

(6)实体c通知实体b允许访问;

(7)实体a向智能合约申请访问实体c;

(8)智能合约首先检索实体a是否符合实体c设置的访问条件,发现不符合且实体c允许传递访问后检索a是否符合传递访问条件。图1中智能合约发现实体b允许实体a访问,实体c允许实体b访问,因此智能合约放回传递认证令牌给实体a;

(9)实体a使用传递认证令牌对实体c发起访问;

(10)实体c和智能合约经过和e,f相同的两步后通知实体a允许访问。

在图1的右侧,实体c希望访问实体d上的敏感资源。

(1)实体c按照上段提到的步骤将自己的地址作为身份凭证发送给身份认证智能合约;

(2)身份认证智能合约向区块链请求查找实体d的访问策略。区块链返回结果后智能合约审查实体c提供的身份认证信息是否符合实体d的要求。根据实体d的访问要求设置,身份认证合约向实体c要求提供额外认证信息;

(3)图中实体c无法提供该认证信息,因此无法访问实体d的资源。

注意,身份认证智能合约在向实体c请求额外认证信息之前需要实体c通过基于其地址的身份认证,否则智能合约将直接返回认证失败,这样的认证流程减轻了恶意用户通过检测某一实体是否需要多因子认证来推断实体上资源的敏感程度。因为通常情况下恶意访问无法通过基于地址的身份认证。

上述所有的申请与访问过程都会被提交至日志管理智能合约,该智能合约将日志格式化后调用存储接口将日志储存在区块链中。

本发明中,实体需要将自身资源的访问条件形式化为无歧义可被程序识别执行的策略。每个实体的策略可随时改变,改变前实体须通过身份认证。

本发明中,如果实体密钥丢失,则需要重新在身份认证智能合约上注册自己新的信息,并且通知访问过自己或者自己访问过的实体进行更新。

本发明中,由于身份认证由区块链的智能合约自动执行,区块链系统本身所具有的去中心化,可信计算,计算结果永久保存等优点可以保证本发明中的身份认证方法在公正透明、不需要第三方权威机构监管的环境中执行,保证了身份认证的可靠性。

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