使用区块链进行授权认证的方法及系统与流程

文档序号:12375582阅读:1940来源:国知局
使用区块链进行授权认证的方法及系统与流程

本发明涉及信息安全领域,尤其涉及一种使用区块链进行授权认证的方法及系统。



背景技术:

随着物联网技术的发展,家居联网、电器联网、车联网等领域在技术上和应用场景上有了突飞猛进的发展。通行设备IOT(Internet Of Things,物联网)化,随着蓝牙技术、人脸识别技术、指纹识别技术的不断成熟,智能门禁、智能门锁、智能道闸、智能车位地锁、智能抬杆等智能通行设备智能控制和联网,让通行的控制变得更便捷、更安全、更智能。

然而现有的智能物联网设备都没有一个相对安全的授权认证的方法,因此,创造一种安全的授权认证方案是亟待解决的问题。



技术实现要素:

本发明旨在至少克服上述缺陷之一提供一种使用区块链进行授权认证的方法及系统,使得智能物联网设备具备安全的授权认证性能。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明的一个方面提供了一种使用区块链进行授权认证的方法,包括:

第一用户设备存储第一用户密钥,配对为智能设备的管理员,并将第一用户公钥存储在智能设备的管理员公钥列表中;

第一用户设备将第二用户设备更改消息广播到区块链网络中,其中第二用户设备更改消息至少包括智能设备的标识、第一用户设备公钥信息、第二用户设备的公钥信息、授权更改类型以及第一用户设备利用第一用户密钥计算待签名信息获得的签名;

智能设备定时查询区块链,接收第二用户设备更改消息;

智能设备判断第一用户公钥是否在配对的管理员公钥列表中;

智能设备在判断出第一用户公钥在管理员公钥列表中,且第一用户公钥在有效期内,判断签名是否正确;

智能设备判断出签名正确,根据授权更改类型查询更改类型;

智能设备根据查询到的更改类型,对第二用户设备更改消息执行更改操作;

第二用户设备将操作请求发送至智能设备;

智能设备判断第二用户公钥是否在公钥列表中;

智能设备判断出第二用户公钥在公钥列表中,且第二用户公钥在有效期内,向第二用户设备发送验证数据;

第二用户设备接收验证数据,并利用第二设备密钥对验证数据进行签名,得到签名数据;

第二用户设备将签名数据发送至智能设备;

智能设备接收签名数据,并利用第二用户公钥对签名进行验证;

智能设备验证签名通过后,根据操作请求执行操作。

另外,智能设备根据查询到的更改类型,对第二用户设备更改消息执行更改操作包括:

如果更改类型为允许通行,则将第二用户公钥和对应的有效期加入通行公钥列表。

如果更改类型为加入管理员,则将第二用户设备的公钥以及对应的有效期加入管理员公钥列表;

如果更改类型为为撤销授权,则将已经在列表中的第二用户公钥删除。

另外,

第一用户公钥信息包括:第一用户公钥以及有效期;

智能设备判断第一用户公钥是否在配对的管理员公钥列表中包括:

智能设备判断第一公钥是否在配对的管理员公钥列表中;

或者

第一用户公钥信息包括:第一用户公钥的哈希以及有效期;

智能设备判断第一用户公钥是否在配对的管理员公钥列表中包括:

智能设备计算管理员公钥列表中的第一用户公钥的哈希,并与第一用户公钥信息中的第一用户公钥的哈希进行比对。

另外,第二用户公钥信息包括:

第二用户公钥以及有效期;或者

第二用户公钥的哈希以及有效期。

另外,验证数据为智能设备根据当前时间产生的随机数据。

本发明的另一个方面提供了一种使用区块链进行授权认证的系统,包括:

第一用户设备,用于存储第一用户密钥,配对为智能设备的管理员,并将第一用户公钥存储在智能设备的管理员公钥列表中;将第二用户设备更改消息广播到区块链网络中,其中第二用户设备更改消息至少包括智能设备的标识、第一用户设备公钥信息、第二用户设备的公钥信息、授权更改类型以及第一用户设备利用第一用户密钥计算待签名信息获得的签名;

智能设备,用于定时查询区块链,接收第二用户设备更改消息;判断第一用户公钥是否在配对的管理员公钥列表中;在判断出第一用户公钥在管理员公钥列表中,且第一用户公钥在有效期内,判断签名是否正确;判断出签名正确,根据授权更改类型查询更改类型;根据查询到的更改类型,对第二用户设备更改消息执行更改操作;

第二用户设备,用于将操作请求发送至智能设备;

智能设备,还用于判断第二用户公钥是否在公钥列表中;判断出第二用户公钥在公钥列表中,且第二用户公钥在有效期内,向第二用户设备发送验证数据;

第二用户设备,还用于接收验证数据,并利用第二设备密钥对验证数据进行签名,得到签名数据;将签名数据发送至智能设备;

智能设备,还用于接收签名数据,并利用第二用户公钥对签名进行验证;验证签名通过后,根据操作请求执行操作。

另外,智能设备,通过如下方式根据查询到的更改类型,对第二用户设备更改消息执行更改操作:

如果更改类型为允许通行,则将第二用户公钥和对应的有效期加入通行公钥列表。

如果更改类型为加入管理员,则将第二用户设备的公钥以及对应的有效期加入管理员公钥列表;

如果更改类型为为撤销授权,则将已经在列表中的第二用户公钥删除。

另外,

第一用户公钥信息包括:第一用户公钥以及有效期;

智能设备,通过如下方式判断第一用户公钥是否在配对的管理员公钥列表中:

智能设备判断第一公钥是否在配对的管理员公钥列表中;

或者

第一用户公钥信息包括:第一用户公钥的哈希以及有效期;

智能设备,通过如下方式判断第一用户公钥是否在配对的管理员公钥列表中包括:

智能设备计算管理员公钥列表中的第一用户公钥的哈希,并与第一用户公钥信息中的第一用户公钥的哈希进行比对。

另外,第二用户公钥信息包括:

第二用户公钥以及有效期;或者

第二用户公钥的哈希以及有效期。

另外,验证数据为智能设备根据当前时间产生的随机数据。

由上述本发明提供的技术方案可以看出,本发明提供的使用区块链进行授权认证的方法及系统,可以使得网络授权的应用有安全性和可用性的提升。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的使用区块链进行授权认证的方法的流程图;

图2为本发明实施例提供的使用区块链进行授权认证的系统的结构示意图。

具体实施方式

下面结合附图对本发明的实施方式进行详细说明。

图1示出了本发明实施例提供的使用区块链进行授权认证的方法的流程图,参见图1,本发明实施例提供的使用区块链进行授权认证的方法,包括:

S101,第一用户设备存储第一用户密钥,配对为智能设备的管理员,并将第一用户公钥存储在智能设备的管理员公钥列表中;

在本发明的一些实施例中,在智能设备系统中,例如智能门锁等系统,每一名用户都可以随机产生密钥PRI_KEY(u)和公钥PUB_KEY(u),本发明实施例中可以采用标准的公钥加密算法,例如RSA或者ECDSA算法。密钥PRI_KEY(u)由用户自己保管,加密后储存在手机或者其他设备上,其他人不能接触。在本实施方案中,第一用户设备将第一用户密钥存储在第一用户设备中,将第一用户公钥存储在智能设备中,如果第一用户设备为管理员,则将第一用户公钥存储在管理员公钥列表中,将自己的PUB_KEY(u)加入管理员公钥列表,如果第一用户设备为其他角色,则将第一用户公钥存储在其他角色对应的公钥列表中。

当第一用户设备已经配对为智能设备的管理员的时候,想要更改对其他用户(例如第二用户)的授权的时候,则执行如下步骤S102至S107。

S102,第一用户设备将第二用户设备更改消息广播到区块链网络中,其中第二用户设备更改消息至少包括智能设备的标识、第一用户设备公钥信息、第二用户设备的公钥信息、授权更改类型以及第一用户设备利用第一用户密钥计算待签名信息获得的签名;

在本发明的一些实施例中,智能设备的标识可以为智能设备的识别代码,以便智能设备判断消息是否发给自身。

在本发明的一些实施例中,第一用户公钥信息包括:第一用户公钥以及有效期;或者第一用户公钥信息包括:第一用户公钥的哈希以及有效期。第二用户公钥信息包括:第二用户公钥以及有效期;或者第二用户公钥信息包括:第二用户公钥的哈希以及有效期。其中,有效期:例如2016-8-16到2017-8-16。

在本发明的一些实施例中,授权更改类型包括:允许通行,加入管理员,撤销授权等,但本发明并不局限于此。

在本发明的一些实施例中,第一用户设备利用第一用户密钥计算待签名信息获得的签名为由第一用户密钥(PRI_KEY(u1))产生的签名。

S103,智能设备定时查询区块链,接收第二用户设备更改消息;

在本发明的一些实施例中,由于智能设备不局限于一台,在整个系统中可以存在若干台智能设备,此时,每台智能设备均可以定时查询区块链,根据智能设备的标识来判断是否由自身完成相应操作。

S104,智能设备判断第一用户公钥是否在配对的管理员公钥列表中;

在本发明的一些实施例中,如果第一用户公钥信息包括:第一用户公钥以及有效期;则智能设备判断第一用户公钥是否在配对的管理员公钥列表中包括:智能设备判断第一公钥是否在配对的管理员公钥列表中;通过此种方式,可以快速的进行判断。

如果第一用户公钥信息包括:第一用户公钥的哈希以及有效期,则智能设备判断第一用户公钥是否在配对的管理员公钥列表中包括:智能设备计算管理员公钥列表中的第一用户公钥的哈希,并与第一用户公钥信息中的第一用户公钥的哈希进行比对。通过此种方式,可以防止公钥被拦截和篡改。

S105,智能设备在判断出第一用户公钥在管理员公钥列表中,且第一用户公钥在有效期内,判断签名是否正确;

在本发明的一些实施例中,智能设备根据第一用户公钥对签名进行判断。

另外,如果智能设备判断出第一用户公钥不在管理员公钥列表中,则丢弃掉该消息。

S106,智能设备判断出签名正确,根据授权更改类型查询更改类型;

如果智能设备判断出签名不正确,则丢弃掉该消息。

S107,智能设备根据查询到的更改类型,对第二用户设备更改消息执行更改操作;

在本发明的一些实施例中,如果更改类型为允许通行,则将第二用户公钥和对应的有效期加入通行公钥列表。

如果更改类型为加入管理员,则将第二用户设备的公钥以及对应的有效期加入管理员公钥列表;

如果更改类型为为撤销授权,则将已经在列表中的第二用户公钥删除。另外,如果更改类型为撤销授权,但如果第二用户公钥并未存储在智能设备的相应公钥列表中,即第二用户公钥不存在,则不做操作。

第二用户设备在进行需要授权的操作(例如智能门锁的开门)的时候,可以执行步骤S108至S114。

S108,第二用户设备将操作请求发送至智能设备;

S109,智能设备判断第二用户公钥是否在公钥列表中;

在本发明的一些实施例中,如果第二用户公钥信息包括:第二用户公钥以及有效期;则智能设备判断第二用户公钥是否在公钥列表中包括:智能设备判断第二公钥是否在公钥列表中;通过此种方式,可以快速的进行判断。

如果第二用户公钥信息包括:第二用户公钥的哈希以及有效期,则智能设备判断第二用户公钥是否在公钥列表中包括:智能设备计算公钥列表中的第二用户公钥的哈希,并与第二用户公钥信息中的第二用户公钥的哈希进行比对。通过此种方式,可以防止公钥被拦截和篡改。

S110,智能设备判断出第二用户公钥在公钥列表中,且第二用户公钥在有效期内,向第二用户设备发送验证数据;

在本发明的一些实施例中,验证数据为智能设备根据当前时间产生的随机数据。由此可以保证验证数据的随机性,防止被破解。当然,验证数据还可以为其他的数据,在本发明中并不做出限制。

另外,智能设备除了判断第二用户公钥在公钥列表中,且第二用户公钥在有效期内外,还可以判断第二用户设备是否具有相应的操作权限,例如利用第二用户公钥所在的公钥列表进行判断第二用户设备是否具有相应的操作权限等,本发明在此并不做出限制。

如果智能设备判断第二用户公钥不在公钥列表中,和/或第二用户公钥不在有效期内,和/或第二用户设备不具有相应的操作权限,则拒绝执行操作。

S111,第二用户设备接收验证数据,并利用第二设备密钥对验证数据进行签名,得到签名数据;

S112,第二用户设备将签名数据发送至智能设备;

S113,智能设备接收签名数据,并利用第二用户公钥对签名进行验证;

S114,智能设备验证签名通过后,根据操作请求执行操作。

由此可见,由于区块链通过大量的计算来确保数据的正确性和真实性,区块链上面的数据难以被更改和删除,由此,对于智能物联网设备的授权来说,通过本发明的使用区块链进行授权认证的方法,可以使得网络授权的应用有安全性和可用性的提升。

同时,可以拥有如下的有用的特性:

分布性:广泛分布,任何联网设备都能使用本地的节点来进行操作。

可用性:网络中的节点可以随时离开和加入,不会影响区块链的可用性。

无中心性:不存在中心,防止了传统中心数据库被恶意更改等情况。

不可更改性:单一用户几乎无法更改数据内容,也不存在有更改权限的中心节点。

图2示出了本发明实施例提供的使用区块链进行授权认证的系统的结构示意图,该使用区块链进行授权认证的系统采用上述方法,在此不再赘述,其他未尽事宜,可以参照上述方法,参见图2,本发明实施例提供的使用区块链进行授权认证的系统,包括:第一用户设备10、智能设备20以及第二用户设备30;其中:

第一用户设备10,用于存储第一用户密钥,配对为智能设备的管理员,并将第一用户公钥存储在智能设备20的管理员公钥列表中;将第二用户设备更改消息广播到区块链网络中,其中第二用户设备更改消息至少包括智能设备的标识、第一用户设备公钥信息、第二用户设备的公钥信息、授权更改类型以及第一用户设备利用第一用户密钥计算待签名信息获得的签名;

智能设备20,用于定时查询区块链,接收第二用户设备更改消息;判断第一用户公钥是否在配对的管理员公钥列表中;在判断出第一用户公钥在管理员公钥列表中,且第一用户公钥在有效期内,判断签名是否正确;判断出签名正确,根据授权更改类型查询更改类型;根据查询到的更改类型,对第二用户设备更改消息执行更改操作;

第二用户设备30,用于将操作请求发送至智能设备20;

智能设备20,还用于判断第二用户公钥是否在公钥列表中;判断出第二用户公钥在公钥列表中,且第二用户公钥在有效期内,向第二用户设备30发送验证数据;

第二用户设备30,还用于接收验证数据,并利用第二设备密钥对验证数据进行签名,得到签名数据;将签名数据发送至智能设备20;

智能设备20,还用于接收签名数据,并利用第二用户公钥对签名进行验证;验证签名通过后,根据操作请求执行操作。

由此可见,由于区块链通过大量的计算来确保数据的正确性和真实性,区块链上面的数据难以被更改和删除,由此,对于智能物联网设备的授权来说,通过本发明的使用区块链进行授权认证的系统,可以使得网络授权的应用有安全性和可用性的提升。

同时,可以拥有如下的有用的特性:

分布性:广泛分布,任何联网设备都能使用本地的节点来进行操作。

可用性:网络中的节点可以随时离开和加入,不会影响区块链的可用性。

无中心性:不存在中心,防止了传统中心数据库被恶意更改等情况。

不可更改性:单一用户几乎无法更改数据内容,也不存在有更改权限的中心节点。

在本发明的一些实施例中,智能设备20,通过如下方式根据查询到的更改类型,对第二用户设备更改消息执行更改操作:

如果更改类型为允许通行,则将第二用户公钥和对应的有效期加入通行公钥列表。

如果更改类型为加入管理员,则将第二用户设备的公钥以及对应的有效期加入管理员公钥列表;

如果更改类型为为撤销授权,则将已经在列表中的第二用户公钥删除。

在本发明的一些实施例中,第一用户公钥信息包括:第一用户公钥以及有效期;

智能设备20,通过如下方式判断第一用户公钥是否在配对的管理员公钥列表中:

智能设备20判断第一公钥是否在配对的管理员公钥列表中;

通过此种方式,可以快速的进行判断。

或者

第一用户公钥信息包括:第一用户公钥的哈希以及有效期;

智能设备20,通过如下方式判断第一用户公钥是否在配对的管理员公钥列表中包括:

智能设备20计算管理员公钥列表中的第一用户公钥的哈希,并与第一用户公钥信息中的第一用户公钥的哈希进行比对。

通过此种方式,可以防止公钥被拦截和篡改。

在本发明的一些实施例中,第二用户公钥信息包括:第二用户公钥以及有效期;或者第二用户公钥的哈希以及有效期。当第二用户公钥信息包括:第二用户公钥以及有效期时,可以方便后续进行快速判断,当第二用户公钥信息包括:第二用户公钥的哈希以及有效期时,可以方式公钥被拦截和篡改。

在本发明的一些实施例中,验证数据为智能设备20根据当前时间产生的随机数据。由此可以保证验证数据的随机性,防止被破解。当然,验证数据还可以为其他的数据,在本发明中并不做出限制。

另外,智能设备20除了判断第二用户公钥在公钥列表中,且第二用户公钥在有效期内外,还可以判断第二用户设备是否具有相应的操作权限,例如利用第二用户公钥所在的公钥列表进行判断第二用户设备是否具有相应的操作权限等,本发明在此并不做出限制。

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