一种基于区块链的属性基访问控制方法及系统

文档序号:25991901发布日期:2021-07-23 21:04阅读:137来源:国知局
一种基于区块链的属性基访问控制方法及系统

本发明属于信息技术领域,尤其涉及一种基于区块链的属性基访问控制方法及系统。



背景技术:

目前,物联网设备数量的急剧增长给物联网系统带来了新的安全风险和挑战。由于物联网设备分布广泛,因此难以对它们实施严格的安全管控,使其极易受到来自外界的各种恶意攻击。物联网设备通常存储了许多有价值且敏感的数据,所以保护物联网设备,禁止未经授权的访问是相当必要的,因为这通常会导致严重的数据泄漏。众所周知,访问控制是保证数据安全的重要技术之一。传统的访问控制技术,如自主访问控制(dac),基于身份的访问控制(ibac),不适合应用于物联网系统。因为物联网中设备基数大,大量未知身份使得物联网系统为每个人建立访问控制列表(acl)几乎是不可能的。另一个常见技术强制访问控制(mac)通常由一个中央管理员来控制执行,这使得系统存在单点失效问题。由于物联网设备分布广泛,可能会因为位置或功能的不同而分属不同的管理组织,所以中心化的访问控制模式也不适合物联网系统。

区块链是科技巨头和企业关注的另一个热门技术。它的实质是一个公开,透明的分布式账本,以可验证的方式高效的记录双方之间的交易。数据一旦上链,就无法被篡改,除非节点之间能达成新的共识。将物联网技术与区块链技术相结合是很有发展前景的趋势,有望在确保安全的同时降低物联网系统的整体开销。区块链可以帮助物联网建立一个分布式的,可信的和可公开验证的数据库,使得数十亿的可连接设备可以通过它实现分布式信任。

现有常用的访问控制方法主要有以下几种:(1)使用一次性密码、登录口令等简单的身份认证方法进行访问控制,在这种情况下攻击者可采用暴力破解或者漏洞攻击等方式获取平台的相应权限,造成数据泄露。(2)使用中心化权威机构,并基于oauth协议来实施授权。有很多文献表明在资源受限的设备中运行所有oauth逻辑几乎是不可能的,因为oauth协议的通信开销和计算开销对它们来说过高。(3)使用基于角色的访问控制(rbac),该方法是一种将访问权限授予授权用户的常用方法,根据用户在系统中的角色授予用户特定的权限。但是这种方法并不适用于物联网系统,主要是由于这种类型的访问控制不够灵活且可扩展能力差,一旦被分配了角色之后,只能以固定的方式访问数据。

通过上述分析,现有技术存在的问题及缺陷为:

(1)现有技术中使用一次性密码、登录口令等简单的身份认证方法进行访问控制,在这种情况下攻击者可采用暴力破解或者漏洞攻击等方式获取平台的相应权限,造成数据泄露。

(2)在资源受限的设备中由于oauth协议的通信开销和计算开销过高,不能运行所有oauth逻辑。

(3)现有技术中使用基于角色的访问控制,该方法并不适用于物联网系统,主要是由于这种类型的访问控制不够灵活且可扩展能力差,一旦被分配了角色之后,只能以固定的方式访问数据。

解决以上问题及缺陷的难度为:物联网设备数量规模庞大,分布范围广泛,使得设备与设备之间的交互受不同安全需求和策略的影响而变得更为复杂。物联网设备种类繁多,操作环境各异,难以开发出一套通用的安全策略或模型来保障网络的安全。物联网设备通常只具备有限的计算能力和能源供应,许多传统的、成熟的安全算法或协议因计算开销较大而不能有效应用于物联网设备之上。传统的物联网系统需要一个中心化的数据中心来收集、处理和存储数据,这使得数据面临严峻的隐私和安全挑战。中心化的结构使得系统面临单点失效的风险,而且由于数据存储在数据中心而非用户端本地,数据所有者失去了对数据的直接管控。

解决以上问题及缺陷的意义为:通过解决以上问题能够在一定程度提升物联网数据存储的可靠性,和数据分享的安全性,能够极大的推动物联网行业的发展。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于区块链的属性基访问控制方法及系统。

本发明是这样实现的,一种基于区块链的属性基访问控制方法,所述基于区块链的属性基访问控制方法,包括:

步骤一,每个设备由系统中定义的属性进行描述,属性授权机构会根据其身份或能力为其分发对应的属性;同时使用区块链来记录属性的分发;

属性授权机构只需要管理系统中定义的所有属性,并将属性私钥分发给拥有相应属性的用户。这种方式可以有效简化访问管理,因为属性的数量要远远少于系统中的用户数量,可以极大的提升系统的效率和性能。

步骤二,属性授权机构之间共同维护一个公开可信的记录“属性交易”的分布式账本;

区块链的实质是利用去中心化和去信任化的方式集体维护一个公开可验证的分布式共享数据库,而且通过各种密码学算法有效保证了链上的数据不可篡改和不可伪造的,所以利用区块链可以解决传统物联网访问控制方案的单点故障问题,并提升物联网系统中数据存储的可靠性。

步骤三,参与数据交互的双方只需要做一些简单的签名和哈希操作即可完成访问控制的功能。

本发明所提出的方案只是让通信双方做一些简单的签名和哈希操作,使得本发明所提出的方案能够满足物联网中设备计算能力和能源供应不足的需求。

进一步,所述步骤一中,只有拥有与访问策略相匹配的属性集,才拥有访问权限。

进一步,所述步骤二中,一旦被记录,区块中的数据就不能被篡改,任何人在需要时查询区块链上的记录。

本发明的另一目的在于提供一种实施所述基于区块链的属性基访问控制方法的属性基访问控制系统,所述属性基访问控制系统,包括:

智能物联网设备,负责收集、处理和共享物联网系统中的数据;不参与交易的验证,只拥有区块链的读取权限;

属性授权机构是属性的授权者,同时也是区块链的管理者;每个设备在进入系统前都需要在属性授权机构完成注册;

区块链,为一串通过哈希函数相连接的区块;每个区块包含两部分:区块头和区块体。

进一步,所述智能物联网设备不参与交易的验证,拥有区块链的读取权限具体为:

在共享数据前获得数据拥有者的访问授权,使用属性授权机构授权的属性来向数据拥有者证明所拥有所需的权限;

当数据使用者拥有的属性满足数据拥有者设置的访问策略要求时,数据拥有者才允许数据使用者访问数据。

进一步,所述属性授权机构首先会基于身份密码技术为每个管理的设备分发一对公私钥,用来与其他设备进行双向认证与密钥协商;

然后会根据每个设备的身份、特征或角色为其授权合适的属性;属性的授权将以交易的形式被记录在区块链中,作为联盟链的共识节点,属性授权机构在交易生成后会将其放入自己的交易池中,在与其他属性授权机构达成共识后,交易才会被写入到区块链中;

一旦被成功记录,数据将不能被篡改,除非共识节点之间达成了新的共识;共识节点可能会因为各种恶意攻击而成为拜占庭节点,所提方案允许最多(n-1)/3个节点为拜占庭节点,n为属性授权机构的总数;每个属性授权机构拥有一对公私钥,公钥用来生成自己的地址,私钥用来对交易进行签名,每个属性授权机构将私钥妥善保管。

进一步,所述区块中包含的所有交易信息组成了区块体,区块头包含上一个区块头的哈希值,时间戳和交易数据的merkle根;

区块按顺序相连,最终形成一条链;merkle根用来高效的验证交易数据的完整性;时间戳用来显示区块生成的时间,以及保证区块能按时间顺序排列;上一个区块头的哈希值包含与该区块有关的所有信息,确保区块数据的完整性。

进一步,所述之前的区块中的某些交易数据被恶意篡改,则该区块中交易数据的merkle根也将产生变化,进而导致其区块头的哈希值改变;这种变化将迭代地扩展到后续所有的区块,最后形成一条叉链;

个区块体都由验证者从交易池打包的属性交易构成,一笔属性交易代表属性授权机构对该属性的授权,将该属性分配给目标地址。

结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明为物联网系统提出了一种新的基于属性的访问控制方案。系统不再需要为每个用户创建访问控制列表(acl)或分配角色。每个设备都可以由系统中定义的属性来描述,属性授权机构会根据其身份或能力为其分发对应的属性。只有拥有与访问策略相匹配的属性集,才拥有访问权限。同时使用区块链来记录属性的分发。属性授权机构之间共同维护一个公开可信的记录“属性交易”的分布式账本。一旦被记录,区块中的数据就不能被篡改,任何人都可以在需要时查询区块链上的记录。而且还简化了方案具体构造中访问控制协议的计算,参与数据交互的双方只需要做一些简单的签名和哈希操作即可完成访问控制的功能,这使得方案更适合应用于物联网系统中计算能力和能量供应有限的设备。本发明能够确保合法的访问以及数据的安全,避免造成数据泄露;本发明访问控制灵活性强,且可扩展能力强;同时本发明能够节约成本。

附图说明

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

图1是本发明实施例提供的基于区块链的属性基访问控制方法流程图。

图2是本发明实施例提供的属性基访问控制系统结构示意图。

图3是本发明实施例提供的pbft协议工作过程示意图。

图4是本发明实施例提供的alice和bob之间的访问控制协议执行过程示意图。

图中:1、智能物联设备;2、属性授权机构;3、区块链。

图5是本发明实施例提供的三十轮实验的平均值分析结果示意图。

图6是本发明实施例提供的系统中的设备设置的访问策略的存储开销依其复杂性和细粒度而定,且与访问策略中涉及到的属性的个数成正比示意图。

图7是本发明实施例提供的会话密钥的存储开销与通信参与者的数量成正比示意图。

具体实施方式

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

针对现有技术存在的问题,本发明提供了一种基于区块链的属性基访问控制方法及系统,下面结合附图对本发明作详细的描述。

如图1所示,本发明实施例提供的基于区块链的属性基访问控制方法,包括:

s101:每个设备由系统中定义的属性进行描述,属性授权机构会根据其身份或能力为其分发对应的属性;同时使用区块链来记录属性的分发。

s102:属性授权机构之间共同维护一个公开可信的记录“属性交易”的分布式账本。

s103:参与数据交互的双方只需要做一些简单的签名和哈希操作即可完成访问控制的功能。

本发明提供的基于区块链的属性基访问控制方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的基于区块链的属性基访问控制方法仅仅是一个具体实施例而已。

本发明实施例提供的而s101中,只有拥有与访问策略相匹配的属性集,才拥有访问权限。

本发明实施例提供的而s102中,一旦被记录,区块中的数据就不能被篡改,任何人都可以在需要时查询区块链上的记录。

如图2所示,本发明实施例提供的属性基访问控制系统,包括:

智能物联网设备1,负责收集、处理和共享物联网系统中的数据。不参与交易的验证,只拥有区块链的读取权限。为了确保合法的访问以及数据的安全,数据使用者需要在共享数据前获得数据拥有者的访问授权。数据使用者使用属性授权机构授权的属性来向数据拥有者证明所拥有所需的权限。只有当数据使用者拥有的属性满足数据拥有者设置的访问策略要求时,数据拥有者才允许数据使用者访问数据。数据使用者是不可信的,因为它们会在各自都不具备满足数据拥有设置的访问策略的属性集时,在利益的驱使下相互串通,甚至可能会尝试恶意篡改区块链上的数据或干扰属性授权机构达成共识的过程。

属性授权机构2是属性的授权者,同时也是区块链的管理者。每个设备在进入系统前都需要在属性授权机构完成注册。属性授权机构首先会基于身份密码技术为每个管理的设备分发一对公私钥,用来与其他设备进行双向认证与密钥协商。然后会根据每个设备的身份、特征或角色为其授权合适的属性。属性的授权将以交易的形式被记录在区块链中,作为联盟链的共识节点,属性授权机构在交易生成后会首先将其放入自己的交易池中,在与其他属性授权机构达成共识后,交易才会被写入到区块链中。一旦被成功记录,数据将不能被篡改,除非共识节点之间达成了新的共识。共识节点可能会因为各种恶意攻击而成为拜占庭节点,所提方案允许最多(n-1)/3个节点为拜占庭节点,n为属性授权机构的总数。每个属性授权机构拥有一对公私钥。公钥用来生成自己的地址,私钥用来对交易进行签名。每个属性授权机构将私钥妥善保管,没人可以伪造签。

区块链3可被定义为一串通过哈希函数相连接的区块。每个区块包含两部分:区块头和区块体。区块中包含的所有交易信息组成了区块体。区块头包含上一个区块头的哈希值,时间戳和交易数据的merkle根。这些区块按顺序相连,最终形成一条链。merkle根用来高效的验证交易数据的完整性。时间戳用来显示区块生成的时间,以及保证区块能按时间顺序排列。上一个区块头的哈希值包含与该区块有关的所有信息,用来确保区块数据的完整性。如果之前的区块中的某些交易数据被恶意篡改,则该区块中交易数据的merkle根也将产生变化,进而导致其区块头的哈希值改变。这种变化将迭代地扩展到后续所有的区块,最后形成一条叉链。然而,这个新的链条并不是所有联盟节点之前达成的共识,所以该叉链不会被认可。因此,区块链这种特殊的结构使其具有抵抗数据篡改的能力。在方案中,个区块体都由验证者从交易池打包的属性交易构成。一笔属性交易代表属性授权机构对该属性的授权,将该属性分配给目标地址。

下面结合具体实施例对本发明的技术方案作进一步的描述。

为物联网系统提出了一种新的基于属性的访问控制方案。系统不再需要为每个用户创建访问控制列表(acl)或分配角色。每个设备都可以由系统中定义的属性来描述,属性授权机构会根据其身份或能力为其分发对应的属性。只有拥有与访问策略相匹配的属性集,才拥有访问权限。同时使用区块链来记录属性的分发。属性授权机构之间共同维护一个公开可信的记录“属性交易”的分布式账本。一旦被记录,区块中的数据就不能被篡改,任何人都可以在需要时查询区块链上的记录。而且还简化了方案具体构造中访问控制协议的计算,参与数据交互的双方只需要做一些简单的签名和哈希操作即可完成访问控制的功能,这使得方案更适合应用于物联网系统中计算能力和能量供应有限的设备。

在本实施例中主要涉及以下几个实体:属性授权机构、区块链、智能物联网设备。

智能物联网设备,负责收集、处理和共享物联网系统中的数据。不参与交易的验证,只拥有区块链的读取权限。为了确保合法的访问以及数据的安全,数据使用者需要在共享数据前获得数据拥有者的访问授权。数据使用者使用属性授权机构授权的属性来向数据拥有者证明所拥有所需的权限。只有当数据使用者拥有的属性满足数据拥有者设置的访问策略要求时,数据拥有者才允许数据使用者访问数据。数据使用者是不可信的,因为它们会在各自都不具备满足数据拥有设置的访问策略的属性集时,在利益的驱使下相互串通,甚至可能会尝试恶意篡改区块链上的数据或干扰属性授权机构达成共识的过程。

属性授权机构是属性的授权者,同时也是区块链的管理者。每个设备在进入系统前都需要在属性授权机构完成注册。属性授权机构首先会基于身份密码技术为每个管理的设备分发一对公私钥,用来与其他设备进行双向认证与密钥协商。然后会根据每个设备的身份、特征或角色为其授权合适的属性。属性的授权将以交易的形式被记录在区块链中。做为联盟链的共识节点,属性授权机构在交易生成后会首先将其放入自己的交易池中,在与其他属性授权机构达成共识后,交易才会被写入到区块链中。一旦被成功记录,数据将不能被篡改,除非共识节点之间达成了新的共识。共识节点可能会因为各种恶意攻击而成为拜占庭节点,所提方案允许最多(n-1)/3个节点为拜占庭节点,n为属性授权机构的总数。每个属性授权机构拥有一对公私钥。公钥用来生成自己的地址,私钥用来对交易进行签名。每个属性授权机构将私钥妥善保管,没人可以伪造签。

区块链区块链可被定义为一串通过哈希函数相连接的区块。每个区块包含两部分:区块头和区块体。区块中包含的所有交易信息组成了区块体。区块头包含上一个区块头的哈希值,时间戳和交易数据的merkle根。这些区块按顺序相连,最终形成一条链。merkle根用来高效的验证交易数据的完整性。时间戳用来显示区块生成的时间,以及保证区块能按时间顺序排列。上一个区块头的哈希值包含与该区块有关的所有信息,用来确保区块数据的完整性。如果之前的区块中的某些交易数据被恶意篡改,则该区块中交易数据的merkle根也将产生变化,进而导致其区块头的哈希值改变。这种变化将迭代地扩展到后续所有的区块,最后形成一条叉链。然而,这个新的链条并不是所有联盟节点之前达成的共识,所以该叉链不会被认可。因此,区块链这种特殊的结构使其具有抵抗数据篡改的能力。在方案中,个区块体都由验证者从交易池打包的属性交易构成。一笔属性交易代表属性授权机构对该属性的授权,将该属性分配给目标地址。

具体的方案实施过程如下:

1、系统初始化

令λ为系统的安全参数。系统初始化算法将安全参数λ作为输入,输出系统的全局参数。系统中的设备共享一条定义在有限域gf(p)上的椭圆曲线,g为该椭圆曲线上一阶为r的基点,系统定义两个哈希函数,属性授权机构共享一个主私钥skmsk,主私钥由属性授权机构秘密保存,对应的主公钥pkmpk=skmskg则公开给系统中的所有设备。

2、设备注册

系统中的每个设备均拥有一个唯一的身份id作为其可辩别标识。当设备向系统注册时,该设备所隶属的属性授权机构会利用主私钥,基于该设备的身份id为它生成身份私钥。

3、地址生成

系统中的每个设备可以通过一个自己生成的地址及其身份标识id来向属性授权机构申请属性i。为了生成一个地址,设备首先随机选择作为秘钥ski,因此kg是即为对应的公钥pki。为了生成公钥对应的地址,设备可以对pki||id(ii这里表示连接)进行哈希,然后通过base58check编码对哈希值进行编码。因此,地址是:

address=base58check[h2(pki||id)]

4、属性申请

每个属性授权机构都有一对公私钥。其公钥用于生成自己的地址aa,私钥用于对生成的属性交易进行签名。设备在申请属性时,其所属的属性授权机构会验证申请人是否应拥有申请的属性i。如果设备通过了验证,则属性授权机构将生成一笔属性交易:然后属性授权机构将对该笔属性交易和时间戳的哈希值进行签名,也就是最后,属性授权机构将属性交易,签名信息和时间戳一起打包,放入自己的交易池中。

这些联盟节点将定期选出一个区块创造者。它的职责是将交易池中的交易打包成一个区块,并将其广播给其他联盟节点以达成共识。区块创造者会根据时间戳对交易进行排序,并计算所选属性交易的merkle根。区块头包含上一个区块的区块头哈希值、该区块生成的时间戳和merkle根。

区块创造者利用pbft协议将这个新区块广播给其他联盟节点(pbft协议工作过程如下图所示)。在预备阶段,其余的每个联盟节点将验证新区块的有效性,并将其以同样的方式广播给其他人。一旦收到2f个相同的区块,他们将在准备阶段向其他人广播一个确认信息。如果一个节点接收到2f+1个确认信息,它会将新区块附加到区块链末尾。

5、访问控制

两个设备,一个是数据拥有者bob,另一个是数据使用者alice,之间若要共享数据,bob需要对其数据实施访问控制以防止未授权设备访问其数据。只有当alice拥有的属性集合满足bob设置的访问策略时,alice才可以获得访问bob数据的权限。alice和bob之间的访问控制协议执行如图4所示:

alice使用它的身份信息向bob发起一个通信请求,然后两人利用标准的基alice使用它的身份信息ida向bob发起一个通信请求,然后两人利用标准的基于身份的认证与密钥协商协议生成一个会话密钥k。它们之后的通信都由该会于身份的认证与密钥协商协议生成一个会话密钥k。它们之后的通信都由该会话密钥k基于对称密钥算法加密。为了便于描述,本发明将省略下述信息交互过程的对称加密过程。

bob返回给alice一随机数n∈zr,以及bob自己的访问策略p,该访问策略指明了拥有哪些属性集合的设备才能获得对其数据的访问授权。

alice根据自己拥有的属性,选择一个满足bob的访问策略的属性子集。该属性子集中的属性均在申请属性阶段由属性授权机构分发给了alice所提交的地址。alice利用每一个地址对应的私钥对随机数n进行签名。alice将其选择的满足bob设置的访问策略的属性子集,连同与该属性子集中的每一个属性对应的签名和公钥对一起发送给bob。

bob首先对alice提交的pki||ida进行哈希操作,并将得到的哈希值通过base58check编码得到对应的地址。然后bob在区块链上查询关于该地址的最新记录,如果该地址确实被属性授权机构分发过属性i,那么bob再用alice提交的公钥pki验证签名是否有效:

如果一切成立,即说明alice确实拥有该地址的所有权,且该地址被属性授权机构分发过alice所声称的属性。最后,bob验证alice所提交的属性集合是否足其所设置的访问策略。

如果alice拥有满足bob访问策略的属性集合,则bob将允许alice对其数据进行访问。数据共享的过程同样由第一步协商出的会话密钥k进行加密保护。

下面结合实验对本发明的技术效果作详细的描述。

实验环境为一台搭载英特尔pentiumg620cpu,2.60ghz和2gbram的机器上,该机器运行ubuntulinux16.04lts系统。方案基于pbc库(版本0.5.14),选择了512比特有限域上的一条超奇异曲线y2=x3+x上160比特的椭圆曲线群,来实现80比特的安全性。实验结果是三十轮实验的平均值。分析结果如图5所示。

从图5中可以看出,使用对应的私钥对bob选择的随机数进行签名是alice主要的计算开销。私钥对应于与bob访问策略匹配的属性。因此,随着属性数量的增加,计算开销也随之增加,两者成正比关系。对于bob,除了验证alice提供的签名之外,他还需要将每个alice提交的对pk与alice的身份id一起哈希并编码,来得到被属性授权机构颁发了属性的地址。很明显,bob的计算开销也与alice满足其访问策略的属性集中属性的数量成正比关系。一个高质量的椭圆曲线数字签名算法(ecdsa)的c++实现通常花费2.87ms来计算一次nist256p签名,花费6.34ms用于验证签名。alice和bob之间通信的机密性和真实性是由aes-128算法来保证的。从图5可以看出,虽然随着属性数量的增加,bob的计算开销高于alice的计算开销,但是实际的计算开销对这些物联网设备来说也是是合理且可接受的。也就是说,本发明使用区块链的基于属性的访问控制方案可以在物联网场景中有效应用。

实验结果

本发明的方案中,本发明选择hyperledgerfabric作为构建区块链的平台。它采用模块化架构,提供高度的机密性,弹性,灵活性和可扩展性。本发明将方案运行在系统为ubuntulinux16.04lts的台式机上,该台式机拥有intelpentiumg620cpu,2.60ghz和1gb内存。

存储开销

众所周知,物联网中的大多数设备都是资源受限型,所以存储开销是必须考虑的重要因素。除了那些必须存储的有价值的数据外,物联网设备没有太多存储空间可以分配给额外的数据。因此,本发明在对所提方案的存储开销进行了分析,并说明方案的合理性。物联网设备主要需要在本地额外存储三种附加数据,即全局参数,会话密钥和访问策略。

全局参数

物联网系统中的所有实体共享一组相同的全局参数。它指定了安全参数,椭圆曲线,涉及到的哈希函数,属性授权机构的公钥和每个设备的公钥。有了这些参数,本发明基于属性的访问控制方案才能被正确执行。系统初始化后,全局参数的大小就固定了,且对于物联网中那些资源受限的设备来说,这部分的存储开销显然是可以接受的。

访问策略

系统中的设备设置的访问策略的存储开销依其复杂性和细粒度而定,且与访问策略中涉及到的属性的个数成正比,如图6所示。从图中本发明可以清楚的看到即使设备设置的访问策略涉及到的属性的个数高达到50,其所占的存储开销也仅有500左右字节。这是因为属性实际上是用来描述某个设备的特性的一些数字或单词。在电子通信的标准字符编码中每个数字或字母仅占1字节。很明显,访问策略的存储开销是合理且可接受的。

会话密钥

在本发明的访问控制方案中,通信的双方需要先相互验证,然后为后续的交互协商出一个会话密钥。为了不用每次都重新协商,他们可以为协商出的会话密钥指定一个期限,并保留会话密钥一段时间。会话密钥可以由任何标准的基于身份的认证与密钥协商协议生成。例如,本发明使用基于身份的加密算法生成一个128比特的会话密钥,并使用aes-128确保后续通信的安全性。会话密钥的存储开销与通信参与者的数量成正比。如图7所示,这部分存储开销几乎可以忽略不计。

安全性证明:

为了能正确的实施访问控制,所提出的方案必须能够抵抗共谋攻击。有时有些不具备满足访问策略的属性集的设备可能会在利益的驱动下互相串通,以求能联合起来完成与目标设备的身份验证,获取其数据。这显然违背了为确保安全通信而实施访问控制的初衷。假设bob设置了自己的访问策略x∧(y∨z),这意味着只有同时具有属性x和y,或x和z的设备才可以获得访问bob的数据的权限。假设alice只有属性x,eve只有属性y。显然,如果alice与eve联合起来,那么他们就将拥有满足bob访问策略的属性集。由于没有全局id来绑定属于某一用户的全部属性,因此bob很难区分用户提交的属性是否全部归同一个人所有。但是,在本发明的方案中,为了获得alice提交的属性i所在的地址,bob需要对alice提交的公钥与他的身份id_a(a是下标)一起进行哈希操作,并通过base58check对得到的哈希值进行编码来到地址,即:

address=base58check[h2(pki||ida)]

虽然eve可以将自己的属性y给alice以求完成共谋攻击,这包括一个包含属性y的地址,该地址对应的公钥和对随机数的签名,但身份信息id的区别无法改变。如果alice按照协议要求向bob展示了属性y所在地址,该地址所对应的公钥以及属性y的签名,bob会发现地址:

base58check[h2(pky||ida)]

不等于alice提交的属性y所在的地址:

base58check[h2(pky||ide)]

通过这种方式,bob可以发现alice和eve在实施共谋攻击,并终止alice与其进行的身份验证。因此,本发明的访问控制方案能有效抵抗共谋攻击。

应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

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