一种LEO卫星网络内分布式的接入认证管理方法与流程

文档序号:11234381阅读:654来源:国知局
一种LEO卫星网络内分布式的接入认证管理方法与流程

本发明涉及加解密、身份认证及分布式数据库技术,特别是一种适用于leo卫星网络中可以实现安全认证、快速切换以及分布式记录和存储注册、注销、登入、登出和切换等信息的方法。



背景技术:

基于身份标识的密码体制(ibc)最早是在1984年由shamir提出,其最大的优点是每个节点可以使用其自身的身份标识生成公钥,并可以相应由密钥生成中心(kgc)计算出私钥,当一位用户需要向另一位用户安全发送信息时,只需要利用接收方的身份标识计算其公钥并用来加密,接收方利用kgc计算并返回给自己的私钥进行解密即可,避免了传统pki体系中关于密钥管理和数字证书颁发/吊销的开销。另一方面,传统的卫星网络中使用的认证方法,其计算及通信开销一般都较大,同时也十分不适合于具备动态拓扑、通信链路频繁切换等特点的leo卫星网络,以美国摩托罗拉公司的iridium铱系统为例,用户可以看到一颗卫星的时间大约为10分钟,因此需要研究出一种可以快速进行认证,同时在频繁发生链路切换时,可以实现用户节点在不同卫星之间快速切换的安全认证方法。同时卫星网络内相关的分布式数据存储技术较为落后,需要在满足安全性的前提下进行改进。



技术实现要素:

本发明的目的在于提供一种能够在leo卫星网络体系内实现用户快速认证及快速切换功能且同时分布式记录用户与卫星相关信息的方法。本方法将基于身份标识的密码体制(ibc)应用于leo卫星网络接入认证场景中,利用密钥生成中心(kgc)的私钥快速生成用户及卫星节点的公私钥对,并在标识字段中约定角色信息来实现系统内角色区分。同时利用ibc机制,构建以kgc和卫星为信任主体的可信链,采用区块链的链式分布式数据结构存储用户及卫星相关信息,实现用户快速接入认证以及星间快速切换的身份验证功能,适应leo卫星网络内动态拓扑、星地链路频繁切换的特点。另一方面,本方法利用ibc体制及区块链技术的优势,以kgc及卫星的私钥签名作为共识机制,记录系统内产生的注册、注销、登入、登出及切换等相关信息并打包进相应区块进行存储,提供了健壮高效的日志功能。

实现本发明目的的技术解决方案为:一种leo卫星网络内分布式的接入认证管理方法,应用场景为近地卫星网络,以类铱星星座为例,划分系统内所有节点为树形逻辑结构并以此来约定用户信息块归并以及分发的流向,具体包括以下步骤:

步骤1:新用户凭借身份证明,提供自身的身份标识,密钥生成中心kgc核实后,利用自身系统私钥及相关参数计算用户公私钥对,构造权限令牌并签名,然后返回给用户;接着kgc将用户注册信息打包进区块,并存储在本地区块链中;如若是已注册用户,则直接与卫星进行接入认证过程;

步骤2:认证阶段,用户验证欲接入卫星的标识并计算对应公钥,接着利用此公钥与当前卫星进行挑战应答,卫星利用挑战应答过程中用户发来的身份标识计算其公钥,并加密返回卫星自己选择的随机数及会话密钥,用户收到后利用自身私钥解密,获取会话密钥;

步骤3:用户利用会话密钥加密发送卫星选择的随机数、自身信息和权限令牌给当前卫星,当前卫星收到后,解密并验证随机数及权限令牌的签名和时限,搜索包含最新注销信息的区块,查看有无当前用户,如果有则拒绝连接,接着比对权限令牌中的用户标识与步骤2中用户发送的标识是否一致,核实申请服务是否在权限内,如果有误则拒绝连接;

步骤4:卫星检查无误后,返回认证成功信息,并利用会话密钥正式同用户间建立安全会话,同时卫星将用户的登入信息打包进区块,存储在本地区块链中;

步骤5:用户获取卫星的返回消息,如果是成功则利用与卫星间的安全会话开始使用卫星提供的服务;

步骤6:切换阶段,用户向切换前的卫星发送欲进行切换的信息,卫星返回确认,同时将用户切换登出信息打包进区块,存储在本地区块链中;接着此卫星将用户的切换登出信息区块转发给用户下一刻欲切换登入的那颗相邻卫星,切换后的那颗卫星相应的将此切换登出信息块存储进本地区块链中;

步骤7:用户收到切换前的卫星的确认后,断开与其的连接,向欲切换登入的卫星发送切换信息;当前卫星收到后,搜索本地区块链,查找有无相符用户切换登出区块,没有则询问用户切换前所连卫星,若仍没有,则拒绝连接;若当前卫星查找到,则搜索本地区块链中包含最新注销信息的区块,查找有无当前用户,如果没有,则计算用户公钥并加密返回随机数以及新会话密钥;

步骤8:用户利用自身私钥解密获得会话密钥,计算当前卫星的公钥,并利用此公钥加密返回随机数;卫星收到后验证随机数,无误则凭新会话密钥正式建立与用户间的安全会话,并将用户的切换登入信息打包进区块,存储在本地区块链中,同时返回切换认证成功消息;用户验证消息,利用卫星与自身的安全会话使用卫星提供的服务。

本方法采用基于以kgc及每颗卫星为信任主体的信任链共识机制实现合法区块的共识。当用户登入、切换或登出时卫星会将用户对应的信息打包进区块并在区块链内进行存储,同时定期按照逻辑结构向邻接节点发送这些新的区块,邻接节点收到后进行归并,并继续向除来源外的邻接节点发送这些区块,最终完成在系统内所有节点处的更新。

本发明与现有技术相比,其显著优点:

(1)借助引用基于身份标识的密码机制(ibc)省去了证书颁发/注销及管理的开销,用户及卫星可以方便的提交自身的身份标识由kgc快速生成对应公私钥。同时,得益于以身份标识来生成公钥,所以可以利用在身份标识中的固定字段来进行角色区分,提供了高可扩展性。

(2)借鉴ibc机制和区块链思想,依赖于以卫星与kgc为信任主体的信任链,实现了去中心化的用户接入认证以及星间快速切换的功能。同时用户接入认证与切换的过程完全离线,即整个认证或切换过程只需要卫星和用户本身,不需要kgc的参与,避免了集中式认证带来的性能瓶颈。

(3)本方法中接入认证及切换认证的计算开销十分小,接入认证过程只需要两次哈希、两次对称加解密、两次公私钥加解密以及一次验证签名的计算,切换认证过程只需要两次公私钥加解密的计算,因而是十分高效的。

(4)基于对私钥签名的信任共识机制,采用区块链技术存储用户及卫星的相关信息,保证区块内信息的准确性、完整性、一致性、可回溯性及不可篡改性,避免了比特币所采用的区块链中基于算力的共识机制带来的过大计算开销及算力浪费问题,以及确保了只有有效用户在有效卫星处才可接入。

(5)借鉴区块链思想实现的分布式存储结构,可以在不影响业务的同时有效减少卫星端存储和数据交换的开销。

附图说明

图1是本发明方法的协议流程。

图2是存储注册、登入、登出、切换及注销这五种记录的区块结构。

图3是用户注销及重新注册的流程。

图4是本系统的逻辑结构,用于指明区块的流向。

图5是用户切换认证流程。

图6是用户接入认证流程。

具体实施方式

本发明leo卫星网络内分布式的接入认证管理方法,主要有以下步骤:为方便说明,指定本方法中涉及到的利用公私钥加解密的方法全部采用的是ibc加解密方法,且协议涉及到的所有消息包都会包含时间戳,当系统内任一节点收到消息包后都会进行时间戳检验,在接下来叙述原理及流程时关于时间戳将不再赘述。

为方便具体阐述,首先指明以下符号含义:

其中kgc是用来负责计算用户公私钥对及签发权限令牌(authorizationtoken)的可信中心。如果用户已经注册并获得了自身的公私钥对及权限令牌,则可在权限令牌有效期内随时同卫星进行接入认证的过程,否则用户前往kgc处,证实自身身份,提交自身身份标识ida并经过kgc审核合法后,由kgc计算其公私钥。计算过程如下:用户提供kgc审核后的身份标识ida(如user:alice@gmail.com),kgc利用杂凑函数及其公钥pkgc,计算用户a的公钥pa,接着利用其私钥dkgc计算用户a的私钥da,卫星在升空之前内置公私钥的过程与之近似。

与此同时,kgc构造用户a的权限令牌,并利用自身私钥dkgc进行签名,权限令牌的格式为:ida||ii_authority||start_time||stap_time||kgc_sign,其中kgc_sign为kgc对权限令牌中前四个字段的签名。kgc随后将用户a的公私钥对及权限令牌返回给用户,并将用户的注册信息打包进区块保存在本地区块链中。至此,用户a便已完成了认证前所需要的准备过程。

当用户a想要同当前上空所处的卫星进行认证以便合法接入获取服务的时候,此时,用户a先验证欲接入卫星的身份标识,接着利用杂凑函数计算得到此卫星的公钥ps,并利用ps加密自身身份标识ida发送给卫星。

当此卫星收到后,便利用自身私钥ds进行解密,然后根据用户的身份标识ida计算得到用户的公钥pa,并随机生成随机数r以及会话密钥k。接着此卫星利用用户的公钥pa加密返回给用户a随机数r和会话密钥k。用户a收到此消息包后,利用自身私钥da进行解密,保存返回的随机数r以及会话密钥k。接着,用户a利用此会话密钥加密发送给此卫星随机数r、kgc给用户a签发的权限令牌、用户a申请的服务以及用户a的相关信息。其结构如下:r||token||service||userinfo,其中userinfo包含用户当前接入时的地点、时刻、申请的服务以及用户的标识,卫星收到后,利用会话密钥k进行解密,验证随机数r的正确性并搜索本地区块链中包含最新注销信息的区块,查看有无当前用户,接着利用kgc的公钥验证权限令牌的签名。会话密钥k采用的加解密方式为对称加解密算法,如sm4算法。然后利用权限令牌中的用户a的身份标识ida核对最开始时用户a发送的其身份标识,一致则说明没有问题。随后卫星判断用户申请使用的服务是否在其权限内,且其权限令牌未过期,则卫星利用会话密钥k加密返回成功认证的信息给用户a,此时卫星正式分配相关资源,利用此会话密钥与用户a之间建立安全通信连接,同时相应的将此用户的登入信息打包进区块,记录的具体内容以userinfo为主,也可以根据业务需要进行相应的扩展,然后存储进卫星本地的区块链。否则,卫星返回登入认证失败,然后拒绝连接。

用户a收到卫星返回的消息后,利用会话密钥k解密,如果得到的是登入认证成功的信息,则通过与卫星间的安全连接取得卫星的服务,完成认证。

当用户a欲进行链路切换时,用户a向切换登出前的卫星发送欲进行切换的信息,包括用户a的标识以及切换后欲登入的卫星标识。切换登出前的卫星收到后,验证标识的有效性以及审核用户切换后欲登入的卫星是否为自身相邻的卫星,如果不是,则拒绝,否则将用户的切换登出信息打包进区块并存储在本地区块链中,其中记录的用户切换登出信息,具体包括用户切换的时间、地点、切换前使用的服务、切换后欲登入的卫星标识、切换登出前的卫星标识以及用户的标识,当然也可以根据业务需要记录相关的其他信息。然后将包含此信息的区块转发给指定的切换后欲登入的卫星,同时向用户返回确认信息。

随后,用户a收到此确认消息后,则断开与切换登出前的卫星的连接,向切换后欲登入的卫星明文发送切换登入信息,包括自身的标识及切换登出前的卫星的标识。此卫星收到后,验证用户发送的切换登出前的卫星标识是否为自己相邻卫星,不是则拒绝,否则根据用户标识在本地区块链中的一段处于切换合理时间范围内(即用户维持切换状态的最长时间)的区块中查找有无符合的最新切换登出信息,是否符合,主要依据于所查找的信息内,用户切换时间与当前时间差值是否合理、切换后欲登入的卫星标识与此卫星标识是否一致以及切换登出前的卫星标识与用户发来的是否一致。如果本地区块链中没有查找到,则此卫星会向用户切换登出前的卫星询问,用户切换登出前的卫星会进行查找,如果找到则发送给此卫星,否则告知此卫星没有查找到。如果询问之后依旧没有符合的包含用户切换登出信息的区块,则此卫星拒绝连接。如果成功查找或询问到,则此卫星搜索本地包含最新注销信息的区块,查看有无此用户,如果有,则拒绝,否则,计算此用户的公钥,并利用此公钥加密返回新的会话密钥k′给用户,同时利用此会话密钥正式建立与用户间的安全连接并提供与切换前一样的服务。另外,此卫星会将用户的切换登入信息打包为区块,并存储在本地区块链中,其中切换登入信息具体包括,用户切换登出前的卫星标识、用户切换登入的时间及地点、用户切换后登入的卫星标识、用户切换后使用的服务以及用户标识。

随后用户a收到当前卫星的返回消息后,利用自身私钥da解密,如果是切换认证成功,则可以得到新的会话密钥k′,并通过卫星与自身间的安全连接继续获得服务,从而完成快速切换的过程。如果切换流程中任一步骤出现问题,则卫星主动拒绝连接。

如上所述,当用户登入、登出或者在星间发生切换的时候,卫星都要相应保存此用户的相关信息(userinfo),并打包进对应的一个用户信息区块中,其结构参见附图图2。当用户注册或者注销时,则kgc要相应的保存此用户的相关信息,并打包进对应的用户信息区块中。所以用户相关信息包含注册、注销、登入、登出以及切换五种类型的记录,卫星的相关信息则会包含注册及注销这两种类型的记录。其中区块内建立merkle树的时候需采用杂凑函数,如sha1算法、sm3算法。

每到达更新周期时,每颗卫星按照划定好的逻辑结构向邻接节点发送自身最新的区块信息(即那些未向邻接节点发送过的区块),收到的卫星或kgc将此信息以时间戳为序与自己本地的区块链内信息进行归并,从而完成新的区块在系统内的更新。最终在卫星端的数据量达到阈值时,每颗卫星各自移除本地满足约定条件的所有区块(如当前所处日期所在日之前的所有区块),但必须保证移除的区块中的每个区块都至少发出去过一次。

当用户或者卫星注销并通知了kgc之后,kgc相应的将用户或卫星的注销信息打包进区块并存储进本地的区块链中。且kgc需要固定周期(也可主动)推送包含最新注销信息的区块给每个轨道的逻辑头结点,再由每个轨道的逻辑头节点依据附图图4的结构分发给邻接的节点并逐层分发下去,从而完成注销信息块在卫星端的更新。

无论是归并或分发,节点收到区块后,需验证区块签名的正确性,无误后再与本地区块链进行整合。

本协议划分的逻辑结构是应用层角度上的,在实际物理连接中,kgc可能只同少数轨道上的卫星可以直接进行连接,因而本协议涉及到的区块在整个系统内的归并及分发,会涉及到星间的路由。

在重新注册方面,用户挂失后,其需要以新的身份标识进行注册,流程同新用户注册一致。

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