首页 > 专利 > 杭州电子科技大学 > 基于区块链的资源访问令牌的分发和资源使用监控方法专利详情

基于区块链的资源访问令牌的分发和资源使用监控方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-02-01
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-07-09
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2021-03-30
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-02-01
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910104337.X 申请日 2019-02-01
公开/公告号 CN109886675B 公开/公告日 2021-03-30
授权日 2021-03-30 预估到期日 2039-02-01
申请年 2019年 公开/公告年 2021年
缴费截止日
分类号 G06Q20/36G06Q20/38H04L29/08 主分类号 G06Q20/36
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 0
权利要求数量 1 非专利引证数量 1
引用专利数量 2 被引证专利数量 0
非专利引证 1、2018.12.20董贵山等.基于区块链的身份管理认证研究《.计算机科学》.2018,第52-59页.;
引用专利 US2019026450A、US2018367314A 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 吕秋云、祁伊祯、郑宁 第一发明人 吕秋云
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 3
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱月芬
摘要
本发明公开了一种基于区块链的资源访问令牌的分发和资源使用监控方法。本发明通过区块链交易的形式实现访问令牌的安全分发和资源使用的有效监控。内容提供者以访问令牌授予交易的形式将访问令牌授予内容请求者,如果内容请求者拥有该访问令牌的分享权限或者委托权限,说明该访问令牌可以被内容请求者分享给其他用户或者委托给第三方。内容请求者使用所获得的访问令牌访问内容,对应的内容访问操作将以内容访问交易的形式被记录在区块链上。本发明还通过令牌撤销交易实现访问令牌的撤销,以增强了访问控制的安全性。本发明提高了访问令牌的验证效率,从而提高整个系统的访问效率。
  • 摘要附图
    基于区块链的资源访问令牌的分发和资源使用监控方法
  • 说明书附图:图1
    基于区块链的资源访问令牌的分发和资源使用监控方法
  • 说明书附图:图2
    基于区块链的资源访问令牌的分发和资源使用监控方法
  • 说明书附图:图3
    基于区块链的资源访问令牌的分发和资源使用监控方法
  • 说明书附图:图4
    基于区块链的资源访问令牌的分发和资源使用监控方法
  • 说明书附图:图5
    基于区块链的资源访问令牌的分发和资源使用监控方法
  • 说明书附图:图6
    基于区块链的资源访问令牌的分发和资源使用监控方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2021-03-30 授权
2 2019-07-09 实质审查的生效 IPC(主分类): G06Q 20/36 专利申请号: 201910104337.X 申请日: 2019.02.01
3 2019-06-14 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.基于区块链的资源访问令牌的分发和资源使用监控方法,其特征在于包括设置访问交易格式、访问令牌的安全分发、访问令牌的撤销、内容访问的监控以及使用Cuckoo filter的快速检索;
所述的设置访问交易格式,具体实现如下:
分发访问令牌AccToken的访问交易TTtype定义为:
在式子(1)中,Tid表示交易标识;Ttype表示交易类型;Tin[]为交易输入数组包括交易创建者的地址PKi、访问令牌AccToken的上一次交易Tpre以及交易输入脚本 Tout[]表示交易输出数组包括交易输出地址PKj、被交易的访问令牌AccToken和交易输出脚本访问令牌的安全分发,根据不同的访问需求设计有3种访问令牌的分发方式,并以区块链交易的形式进行访问令牌分发,分别为:访问令牌的授予Grant交易、访问令牌分享Share的交易和访问令牌的委托Delegate交易,具体实现如下:
2-1访问令牌的授予交易
当内容提供者第一次响应内容请求者的访问请求时,内容提供者将访问令牌以访问令牌授予交易TGrant的形式分发给内容请求者,其中TGrant如下所示:
在式子(2)中,TGrant是访问令牌AccToken的初始交易,因而它的Tpre和 都为空,可以记作φ;TGrant用于访问令牌的授予,所以它的访问类型为Grant;
2-2访问令牌的分享交易
当内容请求者B通过访问令牌授予交易从内容提供者A获取访问令牌之后,内容请求者B拥有访问令牌的分享权限,B还可以将该访问令牌分享给其他请求者,此时内容请求者B也被称为分享者B;而分享者B能够通过访问令牌的分享交易Tshare将访问令牌分享给请求者C,分享交易Tshare如下所示:
在式子(3)中,Tpre是内容提供者A授予分享者B的访问令牌授予交易TGrant,PKB,PKC分别表示分享者B和请求者C的地址;
2-3访问令牌的委托交易
访问令牌的委托交易用于处理当内容提供者A需要将该访问令牌通过该内容请求者D委托给第三方C的情况,而此时内容请求者D也被称为委托者D;此过程首先内容提供者A通过令牌授予交易TGrant将访问令牌分发给委托者D,然后委托者D生成访问令牌的委托交易Tdelegate,通过Tdelegate将访问令牌委托给第三方C,Tdelegate如下所示:
在式子(4)中,Tpre是内容提供者A授予委托者D的访问令牌授予交易TGrant,PKD,PKC分别表示委托者D和请求者C的地址;注意:委托者D有仅只有一次可以把内容委托给第三方;
访问令牌的撤销,具体实现如下:
访问令牌的撤销分两种情况:
一是访问令牌的过期失效;
二是在有效期内,访问令牌的创建者主动撤销访问令牌;
对于情况一:任何访问令牌的验证者都可以对已过期的访问令牌进行撤销;
对于情况二:如果用户想要撤销由他自己授予、分享或委托的访问令牌,他可以生成访问令牌撤销交易Trevoke,如下所示:
在式子(5)中,Tpre表示该访问令牌上一次的交易,PKuser表示启动该访问令牌撤销的用户的地址,输出地址和输出交易都设置为空,从而确保已撤销的访问令牌不再在区块链上传输;
内容访问的监控,具体实现如下:
内容请求者B使用已签名的访问令牌向内容提供者A发送请求以访问内容,内容提供者A先验证内容请求者B的访问令牌,之后为B提供内容同时A将生成内容访问交易Taccess,见式子(6);访问令牌的验证过程如下所示:
(1)令牌签名验证:A使用内容请求者B的公钥进行签名验证,若验证失败拒绝访问,否则继续验证;
(2)时间验证:A验证访问令牌是否已过期,若是拒绝访问,否则继续验证;
(3)撤销验证:A在区块链上检索该访问令牌的撤销交易,若存在说明该访问令牌已被撤销,拒绝访问,否则继续验证;
(4)授予验证:A在区块链上检索该访问令牌的授予交易,若存在说明该访问令牌是合法令牌,可以为内容请求者B提供内容;
如果内容请求者B通过以上的验证,A将为B提供访问内容之后将生成一个关于B使用该访问令牌的内容访问交易Taccess;
在本方法中,涉及访问令牌的所有操作都以交易的形式记录在区块链上,包括访问令牌的分发,使用访问令牌的内容访问操作以及访问令牌的撤销,这将组成一个全面的内容提供者的资源使用监控;输出数组Tout[]中的AccToken||access表示所使用的访问令牌和对应的内容;
使用Cuckoo filter的快速交易检索,具体实现如下:
分别为已授予的访问令牌和已撤销的访问令牌构建Cuckoo filter,分别记作CFg,CFinv;当矿工验证一个访问令牌授予交易成功后,矿工将该令牌的哈希H(AccToken)添加到CFg同时将该交易写入区块链;而当矿工验证一个访问令牌撤销交易成功后,他只需从CFg中删除H(AccToken)并将H(AccToken)添加到CFinv同时将该交易写入区块链;用户无需再检索整个区块链以实现访问令牌的有效性验证,只需查询CFg,CFinv就可实现。
说明书

技术领域

[0001] 本发明涉及区块链、访问控制和访问令牌技术领域,具体涉及一种基于区块链的资源访问令牌的分发和资源使用监控方法。

背景技术

[0002] 访问令牌最初是Windows操作系统安全性的一个概念。当用户登陆时,系统创建一个访问令牌,该令牌包含了用户登录进程时返回的SID和由本地安全策略分发给用户和用户的安全组的特权列表。系统使用令牌控制用户可以访问哪些安全对象,但是它仅适用于本地登陆访问。而在目前使用访问令牌的访问控制方案中,都将访问令牌作为一个凭证从而进行内容的远程访问,但这些带令牌的访问控制方案中普遍存在以下问题:
[0003] (1)访问令牌传输的安全和隐私问题。当前访问控制方案中,访问令牌要么直接传输,要么加密传输,这都将带来访问令牌的安全和隐私问题,如果直接传输那么该令牌很容易被伪造,冒用等,而加密传输虽然无法知道令牌的具体内容,但是通过抓包很容易泄露使用者的身份隐私。
[0004] (2)存在访问令牌撤销难问题。传统的方案中,往往对应访问令牌的撤销问题考虑欠缺,要么完全撤销,这将会带来巨大的计算和通信开销,要么部分撤销,这使得之前的访问令牌依然可以进行正常的内容访问。
[0005] (3)未考虑资源使用监控。当前的相关方案中,一旦内容提供者授予了内容请求者访问令牌(访问权限),内容请求者将任意使用该资源,且内容提供者无法知晓内容请求者对于资源的具体使用情况。这容易导致资源的被私自泄露和滥用,且即使知道资源被泄露或者滥用了内容提供者也很难追责。
[0006] 随着互联网的发展,区块链技术受到广泛关注。而区块链的防篡改性、匿名性以及去中心化等特性,可以很好的解决以上几个问题,但是在区块链中,每次查询记录在区块链上的某个内容,都必须遍历整个区块链,随着区块链的增加,它的将带来大量的计算开销。

发明内容

[0007] 本发明主要针对目前存在的使用访问令牌进行访问控制的方案中的不足,提供的一种基于区块链的资源访问令牌分发和资源使用监控方法。
[0008] 本发明包括访问交易格式、访问令牌的安全分发、访问令牌的撤销、内容访问的监控以及使用Cuckoo filter的快速检索。本发明基于区块链交易实现访问令牌安全分发和资源使用的有效监控,可以适用于任何使用访问令牌(或访问凭证)的访问控制系统,其结构如图1所示,具体实现过程如下:
[0009] 步骤1、设置访问交易格式
[0010] 在区块链中,每个交易都由三部分组成:交易标识(Tid)、交易的输入数组Tin[]和交易的输出数组Tout[]。而在本发明中,我们增加了一个新的字段:交易类型(Ttype),以便于快速查找某一交易记录而无需遍历整个区块链,而其中交易类型包括授予(Grant)、分享(Share)、委托(Delegate)、撤销(Revoke)和访问(Access),可表示为Ttype∈{Grant,Share,Delegate,Revoke,Access}。因此,本发明中访问交易TTtype的交易格式用公式表示如公式(1)所示:
[0011]
[0012] 在公式(1)中,PKi,PKj分别表示交易的创建者和接收者地址;Tpre表示访问令牌(AccToken)的上一次交易;是一个输入脚本,用于获取之前交易的访问令牌; 是一个输出脚本,给出获取交易TTtype中所分发的访问令牌的条件。为了更加清晰的阐述,本发明的访问交易格式也可如表1所示。
[0013] 表1访问交易TTtype
[0014]
[0015] 在表1中,body包括Tpre,Ttype,AccToken,PKCQ;σ表示内容提供者对该访问交易的签名。如果该访问交易是一个初始交易,那么它的输入交易为空,可用φ表示。
[0016] 步骤2访问令牌的安全分发
[0017] 本发明根据不同的访问需求设计了3种访问令牌的分发方式,并以区块链交易的形式进行访问令牌分发,分别为:访问令牌的授予(Grant)交易、访问令牌分享(Share)的交易和访问令牌的委托(Delegate)交易。
[0018] 2-1访问令牌的授予(Grant)交易
[0019] 当内容提供者第一次响应内容请求者的访问请求时,内容提供者将访问令牌以授予访问令牌交易的方式分发给内容请求者,访问令牌的授予的详细过程如图2所示,具体过程如下:
[0020] (1)内容请求者通过网络发送访问请求(可以带一些身份标识数据,具体根据所用的访问控制模型)。
[0021] (2)内容提供者接收该请求,身份认证通过之后为该请求者生成访问令牌。
[0022] (3)内容提供者根据该访问令牌生成访问令牌的授予交易TGrant如下所示:
[0023]
[0024] 在式子(2)中,TGrant是访问令牌AccToken的初始交易,因而它的Tpre和 都为空,可以记作φ。TGrant用于访问令牌的授予,所以它的访问类型为Grant。
[0025] (4)该访问令牌的授予交易将被广播到区块链中。
[0026] (5)矿工根据共识协议验证交易的有效性,若有效则写入区块链中转入到步骤(7),否则拒绝进行步骤(6)。
[0027] (6)若交易被拒绝,将会通知内容请求者,内容请求者可再次发送请求。
[0028] (7)内容请求者使用自身的私钥SKCQ从区块链中获取访问令牌。
[0029] 而访问令牌的分享(Share)交易和委托(Delegate)交易中,交易的广播和矿工验证方式以及访问令牌的获取方式和1-2相同,将不再赘述。
[0030] 2-2访问令牌的分享(Share)交易
[0031] 当内容请求者B通过访问令牌授予交易从内容提供者A获取访问令牌之后,如果内容请求者B拥有访问令牌的分享权限,B还可以将该访问令牌分享给其他请求者(例如请求者C),此时内容请求者B也被称为分享者B,如图3所示。而分享者B可以通过访问令牌的分享交易Tshare将访问令牌分享给请求者C,分享交易Tshare如下所示:
[0032]
[0033] 在式子(3)中,Tpre是内容提供者A授予分享者B的访问令牌授予交易TGrant,PKB,PKC分别表示分享者B和请求者C的地址。
[0034] 2-3访问令牌的委托(Delegate)交易
[0035] 访问令牌的委托交易用于处理当内容提供者A需要将该访问令牌通过该内容请求者D委托给第三方请求者C的情况,而此时内容请求者D也被称为委托者D,如图4所示。此过程首先内容提供者A通过令牌授予交易TGrant将访问令牌分发给委托者D,然后委托者D生成访问令牌的委托交易Tdelegate,通过Tdelegate将访问令牌委托给第三方请求者C,Tdelegate如下所示:
[0036]
[0037] 在式子(4)中,Tpre是内容提供者A授予委托者D的访问令牌授予交易TGrant,PKD,PKC分别表示委托者D和第三方请求者C的地址。注意:委托者D有仅只有一次可以把内容委托给第三方请求者C。
[0038] 步骤3访问令牌的撤销
[0039] 访问令牌的撤销可以分为两种情况:一是访问令牌的过期失效;二是在有效期内访问令牌的创建者主动撤销访问令牌。对于情况一:任何访问令牌的验证者都可以对已过期的访问令牌进行撤销;对于情况二:如果某一用户想要撤销由他自己授予、分享或委托的访问令牌,他可以生成访问令牌撤销交易Trevoke,如下所示:
[0040]
[0041] 在式子(5)中,Tpre表示该访问令牌上一次的交易,PKuser表示启动该访问令牌撤销的用户的地址,输出地址和输出交易都设置为空(可以φ表示)是为了确保已撤销的访问令牌不再在区块链上传输。
[0042] 步骤4内容访问的监控
[0043] 内容请求者B使用已签名的访问令牌AccToken||σ向内容提供者A发送请求以访问内容,内容提供者A先验证内容请求者B的访问令牌,之后为B提供内容同时A将生成内容访问交易Taccess,如图5所示。访问令牌的验证过程(见图6)具体步骤如下所示:
[0044] 4-1.令牌签名验证,A使用内容请求者B的公钥进行签名验证,若验证失败拒绝访问,否则继续验证。
[0045] 4-2.时间验证,A验证访问令牌是否已过期,若是拒绝访问,否则继续验证。
[0046] 4-3.撤销验证,A在区块链上检索该访问令牌的撤销交易,若存在说明该访问令牌已被撤销,拒绝访问,否则继续验证。
[0047] 4-4.授予验证,A在区块链上检索该访问令牌的授予交易,若存在说明该访问令牌是合法令牌,可以为内容请求者B提供内容。
[0048] 如果内容请求者B通过以上的验证,A将为B提供访问内容之后将生成一个关于B使用该访问令牌的内容访问交易Taccess,如下所示:
[0049]
[0050] 在式子(6)中,Tpre表示该访问令牌上一次的交易,输出数组Tout[]中的AccToken||access表示所使用的访问令牌和对应的内容访问操作。
[0051] 在本发明中,涉及访问令牌的所有操作都以交易的形式记录在区块链上。这些操作包括访问令牌的分发(授予、分享和委托),使用访问令牌的内容访问操作以及访问令牌的撤销,这将组成一个全面的内容提供者的资源使用监控。内容提供者想要追责或者查询自己内容的访问情况都可以通过查找区块链获取,而区块链的防篡改特性也保证了资源使用监控的正确性。
[0052] 步骤5使用Cuckoo filter的快速交易检索
[0053] 为了提高区块链中交易记录的检索效率,本发明引入了Cuckoo filter。Cuckoo filter是一种高效的数据结构,支持动态添加和删除条目比Bloom filter拥有更好的检索性能和更少的空间使用率。一个Cuckoo filter由多个桶组成,而其中一个桶可以由多个实体,而每个实体存储一个指纹。对于添加条目x,先使用哈希函数计算两个候选桶b1和b2的索引如下所示(其中fingerpr int(x)是hash(x)的最低k bits,M表示桶的数量):
[0054]
[0055] 如果候选桶中有空桶,将fingerpr int(x)保存到空桶中,否则,只需选择一个候选存储桶,删除它现有的条目,然后将此条目重新插入其候选桶中,重复该过程直到找到空桶或超过最大位移数。在Cuckoofilter中的查找过程是先给定条目x,然后根据式子(7)计算fingerpr int(x)和两个候选桶,最后遍历两个候选桶,如果任一桶中的任何现有指纹匹配,返回true,否则返回false。在Cuckoo filter中删除条目过程为,先检查给定项x的两个候选桶,如果fingerpr int(x)匹配任意一个候选桶中的条目,从该桶中删除该匹配fingerpr int(x)的一个副本。
[0056] 在本发明中,我们分别为已授予的访问令牌和已撤销的访问令牌构建Cuckoo filter,分别记作CFg,CFinv。当矿工验证一个访问令牌授予交易成功后,他将该令牌的哈希H(AccToken)添加到CFg同时将该交易写入区块链;而当矿工验证一个访问令牌撤销交易成功后,他只需从CFg中删除H(AccToken)并将H(AccToken)添加到CFinv同时将该交易写入区块链。这将提高用户在访问令牌验证过程的验证效率,用户无需再检索整个区块链以实现访问令牌的有效性验证,只需查询CFg,CFinv就可实现。
[0057] 本发明有益效果如下:
[0058] 本发明提高用户在访问令牌验证过程的验证效率,用户无需再检索整个区块链以实现访问令牌的有效性验证,只需查询CFg,CFinv就可实现。
[0059] 本发明基于区块链,交易实现访问令牌安全分发和资源使用的有效监控,可以适用于任何使用访问令牌(或访问凭证)的访问控制系统。
[0060] 发明通过令牌撤销(Revoke)交易实现访问令牌的撤销,以增强了访问控制的安全性。
[0061] 本发明引入了Cuckoo filter提高了访问令牌的验证效率,从而提高整个系统的访问效率。
[0062] 综上所述,在本发明中,访问令牌的分发、使用以及撤销都以交易的形式记录在区块链上,这将形成一个全面的资源使用监控,而区块链的防篡改特性也确保这个监控的正确性。

实施方案

[0069] 下面结合附图和实施例对本发明作进一步说明。
[0070] 本发明包括访问交易格式、访问令牌的安全分发、访问令牌的撤销、内容访问的监控以及使用Cuckoo filter的快速检索。本发明基于区块链交易实现访问令牌安全分发和资源使用的有效监控,可以适用于任何使用访问令牌(或访问凭证)的访问控制系统,其结构如图1所示,具体实现过程如下:
[0071] 步骤1、设置访问交易格式
[0072] 在区块链中,每个交易都由三部分组成:交易标识(Tid)、交易的输入数组Tin[]和交易的输出数组Tout[]。而在本发明中,我们增加了一个新的字段:交易类型(Ttype),以便于快速查找某一交易记录而无需遍历整个区块链,而其中交易类型包括授予(Grant)、分享(Share)、委托(Delegate)、撤销(Revoke)和访问(Access),可表示为Ttype∈{Grant,Share,Delegate,Revoke,Access}。因此,本发明中访问交易TTtype的交易格式用公式表示如公式(1)所示:
[0073]
[0074] 在公式(1)中,PKi,PKj分别表示交易的创建者和接收者地址;Tpre表示访问令牌(AccToken)的上一次交易;是一个输入脚本,用于获取之前交易的访问令牌; 是一个输出脚本,给出获取交易TTtype中所分发的访问令牌的条件。为了更加清晰的阐述,本发明的访问交易格式也可如表1所示。
[0075] 表1访问交易TTtype
[0076]
[0077] 在表1中,body包括Tpre,Ttype,AccToken,PKCQ;σ表示内容提供者对该访问交易的签名。如果该访问交易是一个初始交易,那么它的输入交易为空,可用φ表示。
[0078] 步骤2访问令牌的安全分发
[0079] 本发明根据不同的访问需求设计了3种访问令牌的分发方式,并以区块链交易的形式进行访问令牌分发,分别为:访问令牌的授予(Grant)交易、访问令牌分享(Share)的交易和访问令牌的委托(Delegate)交易。
[0080] 2-1访问令牌的授予(Grant)交易
[0081] 当内容提供者第一次响应内容请求者的访问请求时,内容提供者将访问令牌以授予访问令牌交易的方式分发给内容请求者,访问令牌的授予的详细过程如图2所示,具体过程如下:
[0082] (8)内容请求者通过网络发送访问请求(可以带一些身份标识数据,具体根据所用的访问控制模型)。
[0083] (9)内容提供者接收该请求,身份认证通过之后为该请求者生成访问令牌。
[0084] (10)内容提供者根据该访问令牌生成访问令牌的授予交易TGrant如下所示:
[0085]
[0086] 在式子(2)中,TGrant是访问令牌AccToken的初始交易,因而它的Tpre和 都为空,可以记作φ。TGrant用于访问令牌的授予,所以它的访问类型为Grant。
[0087] (11)该访问令牌的授予交易将被广播到区块链中。
[0088] (12)矿工根据共识协议验证交易的有效性,若有效则写入区块链中转入到步骤(7),否则拒绝进行步骤(6)。
[0089] (13)若交易被拒绝,将会通知内容请求者,内容请求者可再次发送请求。
[0090] (14)内容请求者使用自身的私钥SKCQ从区块链中获取访问令牌。
[0091] 而访问令牌的分享(Share)交易和委托(Delegate)交易中,交易的广播和矿工验证方式以及访问令牌的获取方式和1-2相同,将不再赘述。
[0092] 2-2访问令牌的分享(Share)交易
[0093] 当内容请求者B通过访问令牌授予交易从内容提供者A获取访问令牌之后,如果内容请求者B拥有访问令牌的分享权限,B还可以将该访问令牌分享给其他请求者(例如请求者C),此时内容请求者B也被称为分享者B,如图3所示。而分享者B可以通过访问令牌的分享交易Tshare将访问令牌分享给请求者C,分享交易Tshare如下所示:
[0094]
[0095] 在式子(3)中,Tpre是内容提供者A授予分享者B的访问令牌授予交易TGrant,PKB,PKC分别表示分享者B和请求者C的地址。
[0096] 2-3访问令牌的委托(Delegate)交易
[0097] 访问令牌的委托交易用于处理当内容提供者A需要将该访问令牌通过该内容请求者D委托给第三方请求者C的情况,而此时内容请求者D也被称为委托者D,如图4所示。此过程首先内容提供者A通过令牌授予交易TGrant将访问令牌分发给委托者D,然后委托者D生成访问令牌的委托交易Tdelegate,通过Tdelegate将访问令牌委托给第三方请求者C,Tdelegate如下所示:
[0098]
[0099] 在式子(4)中,Tpre是内容提供者A授予委托者D的访问令牌授予交易TGrant,PKD,PKC分别表示委托者D和第三方请求者C的地址。注意:委托者D有仅只有一次可以把内容委托给第三方请求者C。
[0100] 步骤3访问令牌的撤销
[0101] 访问令牌的撤销可以分为两种情况:一是访问令牌的过期失效;二是在有效期内访问令牌的创建者主动撤销访问令牌。对于情况一:任何访问令牌的验证者都可以对已过期的访问令牌进行撤销;对于情况二:如果某一用户想要撤销由他自己授予、分享或委托的访问令牌,他可以生成访问令牌撤销交易Trevoke,如下所示:
[0102]
[0103] 在式子(5)中,Tpre表示该访问令牌上一次的交易,PKuser表示启动该访问令牌撤销的用户的地址,输出地址和输出交易都设置为空(可以φ表示)是为了确保已撤销的访问令牌不再在区块链上传输。
[0104] 步骤4内容访问的监控
[0105] 内容请求者B使用已签名的访问令牌AccToken||σ向内容提供者A发送请求以访问内容,内容提供者A先验证内容请求者B的访问令牌,之后为B提供内容同时A将生成内容访问交易Taccess,如图5所示。访问令牌的验证过程(见图6)具体步骤如下所示:
[0106] 4-1.令牌签名验证,A使用内容请求者B的公钥进行签名验证,若验证失败拒绝访问,否则继续验证。
[0107] 4-2.时间验证,A验证访问令牌是否已过期,若是拒绝访问,否则继续验证。
[0108] 4-3.撤销验证,A在区块链上检索该访问令牌的撤销交易,若存在说明该访问令牌已被撤销,拒绝访问,否则继续验证。
[0109] 4-4.授予验证,A在区块链上检索该访问令牌的授予交易,若存在说明该访问令牌是合法令牌,可以为内容请求者B提供内容。
[0110] 如果内容请求者B通过以上的验证,A将为B提供访问内容之后将生成一个关于B使用该访问令牌的内容访问交易Taccess,如下所示:
[0111]
[0112] 在式子(6)中,Tpre表示该访问令牌上一次的交易,输出数组Tout[]中的AccToken||access表示所使用的访问令牌和对应的内容访问操作。
[0113] 在本发明中,涉及访问令牌的所有操作都以交易的形式记录在区块链上。这些操作包括访问令牌的分发(授予、分享和委托),使用访问令牌的内容访问操作以及访问令牌的撤销,这将组成一个全面的内容提供者的资源使用监控。内容提供者想要追责或者查询自己内容的访问情况都可以通过查找区块链获取,而区块链的防篡改特性也保证了资源使用监控的正确性。
[0114] 步骤5使用Cuckoo filter的快速交易检索
[0115] 为了提高区块链中交易记录的检索效率,本发明引入了Cuckoo filter。Cuckoo filter是一种高效的数据结构,支持动态添加和删除条目比Bloom filter拥有更好的检索性能和更少的空间使用率。一个Cuckoo filter由多个桶组成,而其中一个桶可以由多个实体,而每个实体存储一个指纹。对于添加条目x,先使用哈希函数计算两个候选桶b1和b2的索引如下所示(其中fingerpr int(x)是hash(x)的最低k bits,M表示桶的数量):
[0116]
[0117] 如果候选桶中有空桶,将fingerpr int(x)保存到空桶中,否则,只需选择一个候选存储桶,删除它现有的条目,然后将此条目重新插入其候选桶中,重复该过程直到找到空桶或超过最大位移数。在Cuckoo filter中的查找过程是先给定条目x,然后根据式子(7)计算fingerpr int(x)和两个候选桶,最后遍历两个候选桶,如果任一桶中的任何现有指纹匹配,返回true,否则返回false。在Cuckoo filter中删除条目过程为,先检查给定项x的两个候选桶,如果fingerpr int(x)匹配任意一个候选桶中的条目,从该桶中删除该匹配fingerpr int(x)的一个副本。
[0118] 在本发明中,我们分别为已授予的访问令牌和已撤销的访问令牌构建Cuckoo filter,分别记作CFg,CFinv。当矿工验证一个访问令牌授予交易成功后,他将该令牌的哈希H(AccToken)添加到CFg同时将该交易写入区块链;而当矿工验证一个访问令牌撤销交易成功后,他只需从CFg中删除H(AccToken)并将H(AccToken)添加到CFinv同时将该交易写入区块链。这将提高用户在访问令牌验证过程的验证效率,用户无需再检索整个区块链以实现访问令牌的有效性验证,只需查询CFg,CFinv就可实现。

附图说明

[0063] 图1为本发明系统结构图;
[0064] 图2访问令牌授予过程
[0065] 图3访问令牌的分享过程
[0066] 图4访问令牌的委托过程
[0067] 图5带访问令牌的内容访问过程
[0068] 图6访问令牌的验证过程
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号