1.本发明涉及一种物联网环境下基于区块链的跨域认证和密钥协商方法。
背景技术:2.由于物联网环境中的异构性以及存在多个不同的安全域,其中以用户为代 表的低性能终端设备计算能力有限,在一些要求实时性和安全性的物联网场景 中,基于传统中心化的“云服务器-终端设备”认证方式难以实现现有的边缘计算 环境下“边缘设备-终端设备”的高效跨域认证和密钥协商通信。基于公钥基础设 施(public key infrastructure,pki)认证技术依赖数字证书进行身份认证,通过 加密技术保证信息安全不被泄露,pki作为安全基础设施,能够提供身份认证、 数据完整性、数据保密性、数据公正性、不可抵赖性和时间戳六种安全服务。 目前基于pki技术的认证方案虽然能实现跨域认证但需要复杂的证书管理体系, 对于物联网终端设备分布广、数量多并且涉及多个通信域等特性,pki技术已 经不能很好地解决物联网设备身份认证问题。
3.边缘计算(edge computing)是指数据或任务能够在靠近数据源头的网络边 缘侧进行计算和执行计算的一种新型服务模型。随着物联网技术的快速发展和 广泛应用,大量的终端设备接入网络中将产生海量级的数据,这为云中心及时 有效地处理数据带来了更大的挑战。此时,边缘计算应运而生,与现有的云计 算(cloud computing)集中式处理模型相结合,能有效解决云中心和网络边缘 的大数据处理问题。边缘计算的一个优势在于其突破了终端硬件的限制,使移 动终端等便携式设备大量参与到服务计算中来,实现了移动数据存取、智能负 载均衡和低管理成本。
4.区块链(blockchain)是一种按照时间顺序将数据区块以链条的方式组合而 成的特定数据结构,并以密码学方式保证的不可篡改不可伪造的去中心化公共 总账。区块链技术的发展主要依赖如下技术:
5.p2p网络技术
6.p2p网络技术又称为对等互联网技术或点对点技术,是区块链系统连接各对 等节点的组网技术,是与中心化连接网络相对应的一种构建在互联网上的连接 网络。
7.非对称加密算法
8.非对称加密算法是一种基于密钥的信息加解密方法,需要两个密钥:公钥 (public key)和私钥(private key)。由于加密和解密使用的是不同的密钥,因 此这种加密算法被称之为非对称加密算法。常用的非对称加密算法有rsa、ecc 等。
9.分布式数据库
10.分布式数据库是一个数据集合,这些数据在逻辑上属于同一个系统,但是 物理上却是分散在计算机网络的若干节点上,并且要求网络上的各个节点都具 有自治的能力,能执行本地的应用。区块链借助分布式数据库的思想,将数据 分散至网络中的各个节点上,使区块链数据难以被篡改,保证了数据的安全性 和稳定性。
11.默克尔树(merkle tree)
12.默克尔树是区块链的基本组成部分之一,是大量数据聚集成块的形式。假 设目前有很多包含数据的块,将这些数据块两两分组,为每一个组建立一个包 含每个数据块哈希指针的新的数据结构,知道得到一个单一的哈希指针,称之 为根哈希。在这种情况下,可以从根哈希回溯到任意数据块,从而保证数据不 能篡改,因为一旦攻击者篡改了默克尔树底部的数据,就会导致上一层的哈希 指针不匹配,从而使得任意篡改行为都能被检测到。
13.块链式数据结构
14.块链式数据结构从另一个角度保证了交易数据的防篡改,当每个节点都有 一批已经全网广播且已经发生的交易待打包成区块时,节点通过竞争计算随机 数来争取记账权。当节点争取到记账权时,需要将新区块的前一个区块的哈希 值、当前时间戳、一段时间发生的有效交易及其默克尔树根值等内容打包成一 个区块,并全网广播。由于每一个区块都和前一个区块有着密码学链接,当区 块达到一定长度之后,要想修改某个历史区块中的交易内容就必须将该区块之 后所有区块的交易记录和哈希值进行重构,这是非常困难的,从而有效实现了 交易数据的防篡改。
15.智能合约
16.智能合约是一套以数字形式定义的承诺,该承诺控制着数字资产并包含了 合约参与者约定的权力和义务,由计算机自动执行。智能合约程序不仅仅是一 个可以自动执行的计算机程序,它本身是一个系统参与者,对接收到的信息进 行回应,可以接受和存储价值,也可以对外发送价值,其体现的是特定应用程 序的业务逻辑。
17.微软公司早在1997年就进行了身份认证研究,这项研究允许用户通过身份 联盟以相同的身份登录多个网站。但是,跨域身份验证的概念最早被提出并应 用于kerberos系统。基于pki体系的物联网跨域认证和密钥协商已有学者做了 如下研究:2014年,张文芳等人借助虚拟桥ca建立信任链路,实现虚拟企业 级pki域间认证,该方案采用的是椭圆曲线门限签名方案,签名时需要分割密 钥因子,导致较高的通信代价,用户加入和取消的可拓展性也会降低。2018年, 周致成等人利用区块链技术设计了基于区块链证书授权中心(bcca)的信任模 型,实现高效的跨域认证,有效减少了公钥算法中签名和验证的次数,但是设 计中大量采用明文通信,存在较大的隐私泄露风险。2021年,张金花等人设计 了边缘计算环境下基于区块链的跨域认证和密钥协商协议,但是普通的dh协 议协商密钥的过程中不能抵抗中间人攻击。
技术实现要素:18.为了解决上述技术问题,本发明提供一种算法简单、安全性高的物联网环 境下基于区块链的跨域认证和密钥协商方法。
19.本发明解决上述技术问题的技术方案是:一种物联网环境下基于区块链的 跨域认证和密钥协商方法,包括以下步骤:
20.(1)初始化:每个实体、边缘服务器和基于区块链证书授权中心bcca在 初始化阶段生成自己的公私钥对;
21.(2)用户注册:实体通过边缘服务器向bcca发起注册请求,合法的实体 收到边缘服务器返回的数字证书;
22.(3)域内认证:已经注册并拥有数字证书的实体向边缘服务器发起在家乡 域内的
身份认证;
23.(4)域间认证:一个域的可信实体到另一个域进行的身份认证,记为域间 认证;设定信任域a和b,a域的已注册实体ea需要访问b域,在进行通信之 前b域的边缘服务器esb对a域的已注册实体ea进行身份认证,完成身份认证 后才可与b域的可信实体eb进行密钥协商,交互信息。
24.上述物联网环境下基于区块链的跨域认证和密钥协商方法,所述步骤(1) 中,初始化阶段是指ea或者a域的边缘服务器esa在注册身份前做的准备工作, 以ea的初始化过程为例,首先选择一个随机数da∈[1,n-1]作为私钥保存,并根 据e(f
p
)计算自己的公钥qa=da·
p;同理,每个实体、边缘服务器和bcca都 在初始化阶段生成自己的公私钥对;
[0025]
其中e(f
p
)为选取有限域f
p
上随机生成的一条椭圆曲线,一旦椭圆曲线确定, 椭圆曲线上的基点p也随之确定,p的阶数为n,n是一个素数。
[0026]
上述物联网环境下基于区块链的跨域认证和密钥协商方法,所述步骤(2) 中用户注册的具体过程为:
[0027]
2-1)ea→
esa:{qa,ida},ea向esa发送qa和ida并发起注册请求,其中qa、 ida分别为ea的公钥和id;
[0028]
2-2)esa收到来自ea的注册请求后,首先保存ida, 为了避免重放攻击,esa发送一个用ea的公钥qa进行加密后的随机数n1给ea确 认注册请求;
[0029]
2-3)ea收到来自esa的随机数n1时,返回验证 一个用ea的公钥qa进行加密后的消息n
1-1表明白己确认注册信息;
[0030]
2-4)esa→
bcca:{qa,ida,(n2)
sig
,n2},esa收到来自ea的验证消息后确认 ea身份,身份无确认误后发送qa、ida给bcca,为其向bcca申请数字证书, 申请过程中esa用私钥签名一个随机数n2用来声明ea在esa管辖范围内;bcca 检查ea的ida是否已经被注册,若已经被注册,则此次注册申请不通过,返回错 误信息给esa,若没有被注册则选择一个随机数n3然后为ea计算数字证书并 将数字证书的哈希值hash(ida)存储至区块链中,一个完整的数字证书签名由 (ra,sa)两部分组成,其中ra=(da·
p).x mod n,.x是取坐标的x轴的值,mod 是取余操作,sa=n
3-1
(ea+d
ca
·
ra),其中哈希值ea=hash(qa.x,ida,ta), ta为ea数字证书签名的有效期,d
ca
为bcca的私钥;
[0031]
2-5)bcca
→
ea:{q
ca
,ida,(ra,sa),ta},bcca将bcca的公钥q
ca
,ea的 数字证书(ra,sa)和ea数字证书签名的有效期ta发送给ea。
[0032]
上述物联网环境下基于区块链的跨域认证和密钥协商方法,所述步骤(3) 中域内认证的具体过程为:
[0033]
3-1)ea→
esa:{ida},ea发送ida向esa发起认证请求;
[0034]
3-2)esa→
bcca:{ida},esa发送ida向bcca发起查询请求,查询ida是否 为已经注册过的实体;
[0035]
3-3)bcca
→
esa:{hash(ida)},bcca到区块链中查找是否存在ida的注 册记录,并查看证书撤销列表crl中是否有ea的被撤销记录,如果出现以下情 况会被记入crl中:a)私钥不安全;b)数字证书不安全;c)数字证书逾期; 若存在ida的注册记录且并不存在被撤销记录,则说明ea为可信任的实体,bcca 返回从区块链中查找到的实体ea的hash(ida)给esa,
否则返回错误;
[0036]
3-4)esa→
ea:{qa,ida,(ra,sa),ta,n4p,n5p},esa收到bcca返回的结果, 若返回的结果为错误,即为恶意用户,则认证失败,不返回消息至ea;若返回 的结果说明ea为可信任的实体,通过认证,则esa将自己的公钥qa、ida、数字 证书(ra,sa)和数字证书签名的有效期ta发送给ea,同时采用椭圆曲线 diffie-hellman密钥交换方法ecdh通过随机数n4、n5生成临时密钥n4p和公钥n5p一起发送给ea;
[0037]
3-5)ea→
esa:{n6p,n7p,en
a1
,en
a2
},ea收到成功消息则可与esa建立会 话密钥;ea选择随机数n6,n7计算对称密钥ka=hash(daqa.x,n6n5p.x)来加密 (ra,sa)、ida和n4p得到密文利用椭圆曲 线加密方法eces计算密文再发 送n6p、n7p、en
a1
和en
a2
给esa,然后计算会话密钥 k
aa
=hash(daqa.x,n6n5p.x,ida,ida);
[0038]
3-6)esa→
ea:esa解密en
a2
中的qa然后才能顺利计算出对称密钥 ka=hash(da·
qa.x,n5n6p.x),只有ka等于ka才能解密en
a1
检查n4p.x和 (ra,sa)的有效期,同时也计算出会话密钥k
aa
=hash(daqa.x,n5n6p.x,ida,ida)。
[0039]
上述物联网环境下基于区块链的跨域认证和密钥协商方法,所述步骤3-4) 中,椭圆曲线diffie-hellman密钥交换方法ecdh的过程为:
[0040]
1.1:alice选择随机数ma,计算qa=map发送给bob;
[0041]
1.2:bob选择随机数mb,计算qb=mbp发送给alice;
[0042]
1.3:alice计算maqb;
[0043]
1.4:bob计算mbqa;
[0044]
1.5:alice和bob生成会话密钥key=(maqb).x=(mbqa).x。
[0045]
上述物联网环境下基于区块链的跨域认证和密钥协商方法,所述步骤3-5) 中,ea收到成功消息后,同样ea也需要查验esa的身份信息,检查esa发送的ta是 否在有效期内,以及根据椭圆曲线数字签名算法ecdsa验证数字证书的签名信 息是否有效,只有在通过验证的情况下才能进行后续的步骤;
[0046]
椭圆曲线数字签名算法ecdsa的过程为:
[0047]
2.1:alice选择随机数ma作为私钥保存,计算公钥qa=map公开;
[0048]
2.2:alice对message签名时选择随机数k,并计算r=(kp).x mod n和 s=k-1
(hash(message)+mar)mod n,此时对消息的签名是(r,s);
[0049]
2.3:bob收到alice消息后验证签名时,计算s-1
(hash(message)p+ rqa).x mod n是否等于r,若等于说明签名正确。
[0050]
上述物联网环境下基于区块链的跨域认证和密钥协商方法,所述步骤3-5) 中,椭圆曲线加密方法eces的过程为:
[0051]
3.1:alice选择随机数ma作为私钥保存,计算公钥qa=map公开;
[0052]
3.2:bob用qa对message加密时选择随机数k并计算kp和密文对message加密时选择随机数k并计算kp和密文一起发送给alice;
[0053]
3.3:alice计算解密即可得到消息。
[0054]
上述物联网环境下基于区块链的跨域认证和密钥协商方法,所述步骤(4) 中域间认证的具体过程为:
[0055]
4-1)ea→
esb:(ida,),ea向esb发起对b域的访问请求;
[0056]
4-2)esb→
esa:{ida},esb收到异域实体的跨域访问请求后向esa请求认证 ea;
[0057]
4-3)esa→
esb:{ida,qa},esa收到本域实体的跨域请求后,回复确认信息 给esb;
[0058]
4-4)esb→
bcca:{ida},esb向bcca发起查询请求,查询ida是否为已经 注册过的实体;
[0059]
4-5)bcca
→
esb:{hash(ida)},bcca到区块链中查找是否存在ida的注 册记录,如果存在则返回该实体的数字证书中查询到的hash(ida),否则返回错 误;
[0060]
4-6)esb→
ea:{qb},esb确认ea为可信实体通过认证,将b域的公钥发送 给ea使得ea能与b域任意设备实现暂时通信;
[0061]
4-7)ea→
eb:{qa,ida,(ra,sa),ta,n8p,n9p},ea收到esb返回的实体eb公钥 信息后,ea尝试与eb建立连接,ea将自己的公钥qa、ida、数字证书(ra,sa)和数 字证书签名的有效期ta发送给eb,同时采用椭圆曲线diffie-hellman密钥交换方 法ecdh通过随机数n8、n9生成临时密钥n8p和公钥n9p一起发送给eb;
[0062]
4-8)eb→
ea:{n
10
p,n
11
p,en
a3
,en
a4
},eb收到消息后开始与ea建立会话密 钥;eb选择随机数n
10
,n
11
计算对称密钥kb=hash(dbqa.x,n
10
n9p.x)来加密 (rb,sb)、idb和n8p得到密文(rb,sb)为eb的 数字证书,idb为eb的id,tb为eb数字证书签名的有效期;利用椭圆曲线加密方 法eces计算密文再发送n
10
p、 n
11
p、en
a3
和en
a4
给ea,然后计算会话密钥 k
ba
=hash(dbqa.x,n
10
n9p.x,idb,ida);
[0063]
4-9)ea→
eb:ea解密en
a4
中的qa并计算出对称密钥 kb=hash(dbqa.x,n
10
n9p.x),解密en
a3
检查n8p.x和(rb,sb),计算会话密钥 k
ab
=hash(dbqa.x,n9n
10
p.x,idb,ida)。
[0064]
本发明的有益效果在于:
[0065]
1、本发明提出一个在物联网环境下基于区块链的跨域认证方案,解决了多 个pki应用域情况下实体的身份认证的问题。相比传统的单个ca情况下容易 发生单点失效,本发明将多个ca节点布置在区块链上,既能有效避免单点失效, 还能保证认证过程的安全性。
[0066]
2、本发明在方案设计过程中基于边缘设备低性能、实时性、安全性等特点, 选择具有密钥长度短、数字签名快、计算数据量小等优势的椭圆曲线密码体制, 设计了基于椭圆曲线的物联网实体身份认证和密钥协商协议,保证低性能终端 设备的高效通讯,不仅能有效抵抗中间人攻击,而且更适用于性能较低的物联 网边缘设备。
[0067]
3、本发明将边缘服务器部署在终端设备附近,通过边缘服务器将终端设备 的认证进行本地化处理,减轻了云中心的网络负担,同时也提高了认证效率。 结合区块链的运用,更大程度保证了方案在实际运用中的安全性。
附图说明
[0068]
图1为本发明的整体流程图。
[0069]
图2为本发明的系统框架图。
[0070]
图3为本发明的用户注册示意图。
[0071]
图4为本发明的域内认证示意图。
[0072]
图5为本发明的域间认证示意图。
具体实施方式
[0073]
下面结合附图和实施例对本实用新型做进一步的说明。
[0074]
如图2所示,图2为本发明的系统框架图,esa作为一个边缘服务器,是管 理可信域a(domain a)中设备,并且充当终端实体e和区块链认证中心 (blockchain certificate authentication,bcca)之间沟通的桥梁。bcca将收到 的信息上传至区块链,利用区块链的不可篡改性及可追溯性保证信息的真实准 确。边缘实体ea经过注册后可以与域内的认证后实体进行通信,也可以对跨域 设备进行访问。
[0075]
如图1所示,一种物联网环境下基于区块链的跨域认证和密钥协商方法, 包括以下步骤:
[0076]
(1)初始化:每个实体、边缘服务器和基于区块链证书授权中心bcca在 初始化阶段生成自己的公私钥对。
[0077]
初始化阶段是指ea或者a域的边缘服务器esa在注册身份前做的准备工作, 以ea的初始化过程为例,首先选择一个随机数da∈[1,n-1]作为私钥保存,并根 据e(f
p
)计算自己的公钥qa=da·
p;同理,每个实体、边缘服务器和bcca都 在初始化阶段生成自己的公私钥对;
[0078]
其中e(f
p
)为选取有限域f
p
上随机生成的一条椭圆曲线,一旦椭圆曲线确定, 椭圆曲线上的基点p也随之确定,p的阶数为n,n是一个素数。
[0079]
(2)用户注册:实体通过边缘服务器向bcca发起注册请求,合法的实体 收到边缘服务器返回的数字证书。
[0080]
如图3所示,用户注册的具体过程为:
[0081]
2-1)ea→
esa:{qa,ida},ea向esa发送qa和ida并发起注册请求,其中qa、 ida分别为ea的公钥和id;
[0082]
2-2)esa收到来自ea的注册请求后,首先保存ida, 为了避免重放攻击,esa发送一个用ea的公钥qa进行加密后的随机数n1给ea确 认注册请求;
[0083]
2-3)ea收到来自esa的随机数n1时,返回验证 一个用ea的公钥qa进行加密后的消息n
1-1表明白己确认注册信息;
[0084]
2-4)esa→
bcca:{qa,ida,(n2)
sig
,n2},esa收到来自ea的验证消息后确认 ea身份,身份无确认误后发送qa、ida给bcca,为其向bcca申请数字证书, 申请过程中esa用私钥签名一个随机数n2用来声明ea在esa管辖范围内,(n2)
sig
为esa用私钥签名的随机数n2,但是用私钥签名的随机数任何设备都可以用公钥 解密,单独发送随机数n2的初衷是确保bcca收到的随机数一定是n2而不是伪 造的随机数,公钥和私钥的关系在于:公钥加密的内容只有私钥可以解密,而 私钥签名的内容只有公钥可以解密;bcca检查ea的ida是否已经被注册,若已 经被注册,则此次注册申请不通过,返回错误信息给esa,若没有被注册则选 择一个随机数n3然后为ea计算数字证书并将数字证书的哈希值hash(ida)存 储至区块链中,一个完整的
数字证书签名由(ra,sa)两部分组成,其中 ra=(da·
p).x mod n,.x是取坐标的x轴的值,mod是取余操作,sa=n
3-1
(ea+ d
ca
·
ra),其中哈希值ea=hash(qa.x,ida,ta),hash(qa.x,ida,ta)表示对 qa.x,ida,ta取哈希值,然后将这个哈希值记录为ea,ea是签名后部分sa的一个 组成部分,ta为ea数字证书签名的有效期,d
ca
为bcca的私钥;
[0085]
2-5)bcca
→
ea:{q
ca
,ida,(ra,sa),ta},bcca将bcca的公钥q
ca
、分配 给ea的数字证书(ra,sa)和hea数字证书签名的有效期ta发送给ea。
[0086]
(3)域内认证:已经注册并拥有数字证书的实体向边缘服务器发起在家乡 域内的身份认证。
[0087]
如图4所示,域内认证的具体过程为:
[0088]
3-1)ea→
esa:{ida},ea发送ida向esa发起认证请求;
[0089]
3-2)esa→
bcca:{ida},esa发送ida向bcca发起查询请求,查询ida是否 为已经注册过的实体;
[0090]
3-3)bcca
→
esa:{hash(ida)},bcca到区块链中查找是否存在ida的注 册记录,并查看证书撤销列表crl中是否有ea的被撤销记录,如果出现以下情 况会被记入crl中:a)私钥不安全;b)数字证书不安全;c)数字证书逾期; 若存在ida的注册记录且并不存在被撤销记录,则说明ea为可信任的实体,bcca 返回从区块链中查找到的实体ea的hash(ida)给esa,否则返回错误;
[0091]
3-4)esa→
ea:{qa,ida,(ra,sa),ta,n4p,n5p},esa收到bcca返回的结果, 若返回的结果为错误,即为恶意用户,则认证失败,不返回消息至ea;若返回 的结果说明ea为可信任的实体,通过认证,则esa将自己的公钥qa、ida、数字 证书(ra,sa)和数字证书签名的有效期ta发送给ea,同时采用椭圆曲线 diffie-hellman密钥交换方法ecdh通过随机数n4、n5生成临时密钥n4p和公钥 n5p一起发送给ea;
[0092]
椭圆曲线diffie-hellman密钥交换方法ecdh的过程为:
[0093]
1.1:alice选择随机数ma,计算qa=map发送给bob;
[0094]
1.2:bob选择随机数mb,计算qb=mbp发送给alice;
[0095]
1.3:alice计算maqb;
[0096]
1.4:bob计算mbqa;
[0097]
1.5:alice和bob生成会话密钥key=(maqb).x=(mbqa).x。
[0098]
3-5)ea→
esa:{n6p,n7p,en
a1
,en
a2
},ea收到成功消息则可与esa建立会 话密钥,ea收到成功消息后,同样ea也需要查验esa的身份信息,检查esa发送 的ta是否在有效期内,以及根据椭圆曲线数字签名算法ecdsa验证数字证书的 签名信息是否有效,只有在通过验证的情况下才能进行后续的步骤;
[0099]
椭圆曲线数字签名算法ecdsa的过程为:
[0100]
2.1:alice选择随机数ma作为私钥保存,计算公钥qa=map公开;
[0101]
2.2:alice对message签名时选择随机数k,并计算r=(kp).x mod n和s=k-1
(hash(message)+mar)mod n,此时对消息的签名是(r,s);
[0102]
2.3:bob收到alice消息后验证签名时,计算s-1
(hash(message)p+ rqa).x mod n是否等于r,若等于说明签名正确。
[0103]
ea选择随机数n6,n7计算对称密钥ka=hash(daqa.x,n6n5p.x)来加密 (ra,sa)、ida和
n4p得到密文利用椭圆曲 线加密方法eces计算密文再发 送n6p、n7p、en
a1
和en
a2
给esa,然后计算会话密钥 k
aa
=hash(daqa.x,n6n5p.x,ida,ida);
[0104]
椭圆曲线加密方法eces的过程为:
[0105]
3.1:alice选择随机数ma作为私钥保存,计算公钥qa=map公开;
[0106]
3.2:bob用qa对message加密时选择随机数k并计算kp和密文对message加密时选择随机数k并计算kp和密文一起发送给alice;
[0107]
3.3:alice计算解密即可得到消息。
[0108]
3-6)esa→
ea:esa解密en
a2
中的qa然后才能顺利计算出对称密钥 ka=hash(da·
qa.x,n5n6p.x),只有ka等于ka才能解密en
a1
检查n4p.x和 (ra,sa)的有效期,同时也计算出会话密钥k
aa
=hash(daqa.x,n5n6p.x,ida,ida)。
[0109]
(4)域间认证:一个域的可信实体到另一个域进行的身份认证,记为域间 认证;设定信任域a和b,a域的已注册实体ea需要访问b域,在进行通信 之前b域的边缘服务器esb对a域的已注册实体ea进行身份认证,完成身份认 证后才可与b域的可信实体eb进行密钥协商,交互信息。
[0110]
如图5所示,域间认证的具体过程为:
[0111]
4-1)ea→
esb:(ida),ea向esb发起对b域的访问请求;
[0112]
4-2)esb→
esa:{ida},esb收到异域实体的跨域访问请求后向esa请求认证 ea;
[0113]
4-3)esa→
esb:{ida,qa},esa收到本域实体的跨域请求后,回复确认信息 给esb;
[0114]
4-4)esb→
bcca:{ida},esb向bcca发起查询请求,查询ida是否为已经 注册过的实体;
[0115]
4-5)bcca
→
esb:{hash(ida)},bcca到区块链中查找是否存在ida的注 册记录,如果存在则返回该实体的数字证书中查询到的hash(ida),否则返回错 误;
[0116]
4-6)esb→
ea:{qb},esb确认ea为可信实体通过认证,将b域的公钥发送 给ea使得ea能与b域任意设备实现暂时通信;
[0117]
4-7)ea→
eb:{qa,ida,(ra,sa),ta,n8p,n9p},ea收到esb返回的实体eb公钥 信息后,ea尝试与eb建立连接,ea将自己的公钥qa、ida、数字证书(ra,sa)和数 字证书签名的有效期ta发送给eb,同时采用椭圆曲线diffie-hellman密钥交换方 法ecdh通过随机数n8、n9生成临时密钥n8p和公钥n9p一起发送给eb;
[0118]
4-8)eb→
ea:{n
10
p,n
11
p,en
a3
,en
a4
},eb收到消息后开始与ea建立会话密 钥;eb选择随机数n
10
,n
11
计算对称密钥kb=hash(dbqa.x,n
10
n9p.x)来加密 (rb,sb)、idb和n8p得到密文(rb,sb)为eb的 数字证书,idb为eb的id,tb为eb数字证书签名的有效期;利用椭圆曲线加密方 法eces计算密文再发送n
10
p、 n
11
p、en
a3
和en
a4
给ea,然后计算会话密钥 k
ba
=hash(dbqa.x,n
10
n9p.x,idb,ida);
[0119]
4-9)ea→
eb:ea解密en
a4
中的qa并计算出对称密钥 kb=hash(dbqa.x,n
10
n9p.x),解
密en
a3
检查n8p.x和(rb,sb),计算会话密钥 k
ab
=hash(dbqa.x,n9n
10
p.x,idb,ida)。
技术特征:1.一种物联网环境下基于区块链的跨域认证和密钥协商方法,其特征在于,包括以下步骤:(1)初始化:每个实体、边缘服务器和基于区块链证书授权中心bcca在初始化阶段生成自己的公私钥对;(2)用户注册:实体通过边缘服务器向bcca发起注册请求,合法的实体收到边缘服务器返回的数字证书;(3)域内认证:已经注册并拥有数字证书的实体向边缘服务器发起在家乡域内的身份认证;(4)域间认证:一个域的可信实体到另一个域进行的身份认证,记为域间认证;设定信任域a和b,a域的已注册实体e
a
需要访问b域,在进行通信之前b域的边缘服务器es
b
对a域的已注册实体e
a
进行身份认证,完成身份认证后才可与b域的可信实体e
b
进行密钥协商,交互信息。2.根据权利要求1所述的物联网环境下基于区块链的跨域认证和密钥协商方法,其特征在于,所述步骤(1)中,初始化阶段是指e
a
或者a域的边缘服务器es
a
在注册身份前做的准备工作,以e
a
的初始化过程为例,首先选择一个随机数d
a
∈[1,n-1]作为私钥保存,并根据e(f
p
)计算自己的公钥q
a
=d
a
·
p;同理,每个实体、边缘服务器和bcca都在初始化阶段生成自己的公私钥对;其中e(f
p
)为选取有限域f
p
上随机生成的一条椭圆曲线,一旦椭圆曲线确定,椭圆曲线上的基点p也随之确定,p的阶数为n,n是一个素数。3.根据权利要求2所述的物联网环境下基于区块链的跨域认证和密钥协商方法,其特征在于,所述步骤(2)中用户注册的具体过程为:2-1)e
a
→
es
a
:{q
a
,id
a
},e
a
向es
a
发送q
a
和id
a
并发起注册请求,其中q
a
、id
a
分别为e
a
的公钥和id;2-2)es
a
→
e
a
:es
a
收到来自e
a
的注册请求后,首先保存id
a
,为了避免重放攻击,es
a
发送一个用e
a
的公钥q
a
进行加密后的随机数n1给e
a
确认注册请求;2-3)e
a
→
es
a
:e
a
收到来自es
a
的随机数n1时,返回验证一个用e
a
的公钥q
a
进行加密后的消息n
1-1表明白己确认注册信息;2-4)es
a
→
bcca:{q
a
,id
a
,(n2)
sig
,n2},es
a
收到来自e
a
的验证消息后确认e
a
身份,身份无确认误后发送q
a
、id
a
给bcca,为其向bcca申请数字证书,申请过程中es
a
用私钥签名一个随机数n2用来声明e
a
在es
a
管辖范围内;bcca检查e
a
的id
a
是否已经被注册,若已经被注册,则此次注册申请不通过,返回错误信息给esa,若没有被注册则选择一个随机数n3然后为e
a
计算数字证书并将数字证书的哈希值hash(id
a
)存储至区块链中,一个完整的数字证书签名由(r
a
,s
a
)两部分组成,其中r
a
=(d
a
·
p).x mod n,.x是取坐标的x轴的值,mod是取余操作,s
a
=n
3-1
(e
a
+d
ca
·
r
a
),其中哈希值e
a
=hash(q
a
.x,id
a
,t
a
),t
a
为e
a
数字证书签名的有效期,d
ca
为bcca的私钥;2-5)bcca
→
e
a
:{q
ca
,id
a
,(r
a
,s
a
),t
a
},bcca将bcca的公钥q
ca
,e
a
的数字证书(r
a
,s
a
)和e
a
数字证书签名的有效期t
a
发送给e
a
。4.根据权利要求3所述的物联网环境下基于区块链的跨域认证和密钥协商方法,其特
征在于,所述步骤(3)中域内认证的具体过程为:3-1)e
a
→
es
a
:{id
a
},e
a
发送id
a
向es
a
发起认证请求;3-2)es
a
→
bcca:{id
a
},es
a
发送id
a
向bcca发起查询请求,查询id
a
是否为已经注册过的实体;3-3)bcca
→
es
a
:{hash(id
a
)},bcca到区块链中查找是否存在id
a
的注册记录,并查看证书撤销列表crl中是否有e
a
的被撤销记录,如果出现以下情况会被记入crl中:a)私钥不安全;b)数字证书不安全;c)数字证书逾期;若存在id
a
的注册记录且并不存在被撤销记录,则说明e
a
为可信任的实体,bcca返回从区块链中查找到的实体e
a
的hash(id
a
)给es
a
,否则返回错误;3-4)es
a
→
e
a
:{q
a
,id
a
,(r
a
,s
a
),t
a
,n4p,n5p},es
a
收到bcca返回的结果,若返回的结果为错误,即为恶意用户,则认证失败,不返回消息至e
a
;若返回的结果说明e
a
为可信任的实体,通过认证,则es
a
将自己的公钥q
a
、id
a
、数字证书(r
a
,s
a
)和数字证书签名的有效期t
a
发送给e
a
,同时采用椭圆曲线diffie-hellman密钥交换方法ecdh通过随机数n4、n5生成临时密钥n4p和公钥n5p一起发送给e
a
;3-5)e
a
→
es
a
:{n6p,n7p,en
a1
,en
a2
},e
a
收到成功消息则可与es
a
建立会话密钥;e
a
选择随机数n6,n7计算对称密钥k
a
=hash(d
a
q
a
.x,n6n5p.x)来加密(r
a
,s
a
)、id
a
和n4p得到密文利用椭圆曲线加密方法eces计算密文再发送n6p、n7p、en
a1
和en
a2
给es
a
,然后计算会话密钥k
aa
=hash(d
a
q
a
.x,n6n5p.x,id
a
,id
a
);3-6)es
a
→
e
a
:es
a
解密en
a2
中的q
a
然后才能顺利计算出对称密钥k
a
=hash(d
a
·
q
a
.x,n5n6p.x),只有k
a
等于k
a
才能解密en
a1
检查n4p.x和(r
a
,s
a
)的有效期,同时也计算出会话密钥k
aa
=hash(d
a
q
a
.x,n5n6p.x,id
a
,id
a
)。5.根据权利要求4所述的物联网环境下基于区块链的跨域认证和密钥协商方法,其特征在于,所述步骤3-4)中,椭圆曲线diffie-hellman密钥交换方法ecdh的过程为:1.1:alice选择随机数m
a
,计算q
a
=m
a
p发送给bob;1.2:bob选择随机数m
b
,计算q
b
=m
b
p发送给alice;1.3:alice计算m
a
q
b
;1.4:bob计算m
b
q
a
;1.5:alice和bob生成会话密钥key=(m
a
q
b
).x=(m
b
q
a
).x。6.根据权利要求4所述的物联网环境下基于区块链的跨域认证和密钥协商方法,其特征在于,所述步骤3-5)中,e
a
收到成功消息后,同样e
a
也需要查验es
a
的身份信息,检查es
a
发送的t
a
是否在有效期内,以及根据椭圆曲线数字签名算法ecdsa验证数字证书的签名信息是否有效,只有在通过验证的情况下才能进行后续的步骤;椭圆曲线数字签名算法ecdsa的过程为:2.1:alice选择随机数m
a
作为私钥保存,计算公钥q
a
=m
a
p公开;2.2:alice对message签名时选择随机数k,并计算r=(kp).x mod n和s=k-1
(hash(message)+m
a
r)mod n,此时对消息的签名是(r,s);2.3:bob收到alice消息后验证签名时,计算s-1
(hash(message)p+rq
a
).x mod n是否等于r,若等于说明签名正确。
7.根据权利要求4所述的物联网环境下基于区块链的跨域认证和密钥协商方法,其特征在于,所述步骤3-5)中,椭圆曲线加密方法eces的过程为:3.1:alice选择随机数m
a
作为私钥保存,计算公钥q
a
=m
a
p公开;3.2:bob用q
a
对message加密时选择随机数k并计算kp和密文对message加密时选择随机数k并计算kp和密文一起发送给alice;3.3:alice计算解密即可得到消息。8.根据权利要求4所述的物联网环境下基于区块链的跨域认证和密钥协商方法,其特征在于,所述步骤(4)中域间认证的具体过程为:4-1)e
a
→
es
b
:(id
a
,),e
a
向es
b
发起对b域的访问请求;4-2)es
b
→
es
a
:{id
a
},es
b
收到异域实体的跨域访问请求后向es
a
请求认证e
a
;4-3)es
a
→
es
b
:{id
a
,q
a
},es
a
收到本域实体的跨域请求后,回复确认信息给es
b
;4-4)es
b
→
bcca:{id
a
},es
b
向bcca发起查询请求,查询id
a
是否为已经注册过的实体;4-5)bcca
→
es
b
:{hash(id
a
)},bcca到区块链中查找是否存在id
a
的注册记录,如果存在则返回该实体的数字证书中查询到的hash(id
a
),否则返回错误;4-6)es
b
→
e
a
:{q
b
},es
b
确认e
a
为可信实体通过认证,将b域的公钥发送给e
a
使得e
a
能与b域任意设备实现暂时通信;4-7)e
a
→
e
b
:{q
a
,id
a
,(r
a
,s
a
),t
a
,n8p,n9p},e
a
收到es
b
返回的实体e
b
公钥信息后,e
a
尝试与e
b
建立连接,e
a
将自己的公钥q
a
、id
a
、数字证书(r
a
,s
a
)和数字证书签名的有效期t
a
发送给e
b
,同时采用椭圆曲线diffie-hellman密钥交换方法ecdh通过随机数n8、n9生成临时密钥n8p和公钥n9p一起发送给e
b
;4-8)e
b
→
e
a
:{n
10
p,n
11
p,en
a3
,en
a4
},e
b
收到消息后开始与e
a
建立会话密钥;e
b
选择随机数n
10
,n
11
计算对称密钥k
b
=hash(d
b
q
a
.x,n
10
n9p.x)来加密(r
b
,s
b
)、id
b
和n8p得到密文(r
b
,s
b
)为e
b
的数字证书,id
b
为e
b
的id,t
b
为e
b
数字证书签名的有效期;利用椭圆曲线加密方法eces计算密文再发送n
10
p、n
11
p、en
a3
和en
a4
给e
a
,然后计算会话密钥k
ba
=hash(d
b
qa.x,n
10
n9p.x,id
b
,id
a
);4-9)e
a
→
e
b
:e
a
解密en
a4
中的q
a
并计算出对称密钥k
b
=hash(d
b
q
a
.x,n
10
n9p.x),解密en
a3
检查n8p.x和(r
b
,s
b
),计算会话密钥k
ab
=hash(d
b
qa.x,n9n
10
p.x,id
b
,id
a
)。
技术总结本发明公开了一种物联网环境下基于区块链的跨域认证和密钥协商方法,包括以下步骤:(1)初始化:每个实体、边缘服务器和基于区块链证书授权中心BCCA在初始化阶段生成自己的公私钥对;(2)用户注册:实体通过边缘服务器向BCCA发起注册请求,合法的实体收到边缘服务器返回的数字证书;(3)域内认证:已经注册并拥有数字证书的实体向边缘服务器发起在家乡域内的身份认证;(4)域间认证:一个域的可信实体到另一个域进行的身份认证,记为域间认证。本发明设计了基于椭圆曲线的物联网实体身份认证和密钥协商协议,保证低性能终端设备的高效通讯,不仅能提供更强的安全性能,而且更适用于性能较低的物联网边缘设备。性能较低的物联网边缘设备。性能较低的物联网边缘设备。
技术研发人员:张世文 晏紫微 李梦玲 何家毅 梁伟
受保护的技术使用者:湖南科技大学
技术研发日:2022.03.28
技术公布日:2022/7/5