本发明涉及导航定位技术领域,具体涉及一种广播差分数据认证鉴权和加密的系统及方法。
背景技术:
广域差分增强系统(星基增强系统):sbas(satellite-basedaugmentationsystem),即星基增强系统,通过地球静止轨道(geo)卫星搭载卫星导航增强信号转发器,可以向用户播发星历误差、卫星钟差、电离层延迟等多种修正信息,实现对于原有卫星导航系统定位精度的改进。
ntrip协议:networkedtransportofrtcmviainternetprotocol通过互联网进行rtcm网络传输的协议。
差分账号:ntrip协议定义的差分数据服务的账号,包括用户名和密码。
云端:运行在云环境下的提供高精度定位服务的平台。
终端:接入高精度定位服务的终端设备。
现有的高精度定位系统,以互联网的方式提供差分数据播发服务,然而互联网播发方式的前提条件是互联网信号的覆盖,在没有网络覆盖的区域,就无法提供高精度定位服务。
除了互联网方式播发以外,还有一些广播方式下发差分数据的方法,如星基播发和电台播发,不用依赖于互联网信号的覆盖。例如,星基增强系统通过l波段地球同步轨道通信卫星向全球广播差分数据,使更多地基增强网信号及互联网信号无法覆盖的区域,如海洋、沙漠、山区等也能够实现高精度定位服务。
广播方式下发差分数据,理论上所有用户都可以收到差分数据,出于商业化的考虑,需要限制非授权用户使用这些差分数据,这时就需要对广播的差分数据做加密处理,并且对用户终端做接入时的认证鉴权,同时还要兼容在线(有互联网信号)及离线(无互联网信号)使用。
目前非商业化的广播方式差分数据播发存在一个缺点:由于是通过广播方式播发差分数据,没有对数据进行加密,某个区域内所有用户(终端设备)都可以收到差分数据,意味着授权和非授权用户都可以使用差分数据进行高精度定位。
技术实现要素:
本发明提出了一种广播差分数据认证鉴权和加密的系统及方法,解决了现有技术中授权和非授权用户都可以使用差分数据,以及在线和离线场景使用兼容性的技术问题。
本发明采用的技术方案如下:
一种广播差分数据认证鉴权和加密的系统,包括云端和终端,云端对差分数据进行加密处理,并将差分数据上传到卫星,由卫星向终端播发差分数据,或者云端直接向终端播发差分数据;终端向云端发起认证和鉴权请求,成功后收到云端下发的解密密钥;终端将解密密钥存储在本地;终端收到卫星或者云端播发的差分数据后,用解密密钥进行解密,解密后用差分数据进行高精度定位解算
进一步地,云端接收到基准站的卫星观测数据,通过差分数据产生模块计算产生差分数据,并将差分数据发送给差分数据加密模块和互联网播发模块;差分数据加密模块对差分数据进行加密处理,星基播发模块将加密处理后的差分数据发送给卫星;互联网播发模块将差分数据发送给终端;云端通过账号和密钥管理模块管理终端的账号以及加密密钥和解密密钥,云端认证、鉴权、密钥模块对终端进行认证和鉴权,并对解密密钥进行管理和下发。
进一步地,卫星通过差分数据接收模块接收云端上传的差分数据,通过差分数据广播模块向终端播发差分数据。
进一步地,终端通过差分数据接收模块接收来自卫星或者互联网播发模块发送的差分数据;终端认证、鉴权、密钥模块向云端发起认证和鉴权请求,并对解密密钥进行接收和管理;差分数据选择模块选择来自卫星或者互联网播发模块发送的差分数据,并将差分数据送给解压、解密、解码模块进行解压、解密和解码;高精度定位解算模块基于解压、解密和解码后的差分数据进行高精度定位解算。
一种广播差分数据认证鉴权和加密的方法,包括以下步骤:
步骤s1,云端对差分数据进行加密处理,并将差分数据上传到卫星,由卫星向终端发送差分数据,或者云端直接向终端发送差分数据;云端管理加密密钥和解密密钥,对终端进行认证和鉴权,并对解密密钥进行管理和下发;
步骤s2,终端向云端发起认证和鉴权请求,成功后收到云端下发的解密密钥;终端将解密密钥存储在本地;终端收到卫星或者云端发送的差分数据后,用解密密钥进行解密,解密后用差分数据进行高精度定位解算。
进一步地,云端向终端下发n个解密密钥,n至少为2,终端将第1个解密密钥用于差分数据的解密,第2~n个解密密钥用作第1个解密密钥的备份。
进一步地,所述步骤s1具体包括以下步骤:
步骤s11,云端初始化;
步骤s12.1,云端根据基准站的卫星观测数据,通过差分数据产生模块计算产生差分数据;
步骤s12.2,差分数据加密模块用加密密钥对差分数据进行加密处理;
步骤s12.3,星基播发模块将加密处理后的差分数据发送给卫星,然后通过卫星将差分数据发送给终端;
步骤s13,云端等待终端的认证和鉴权请求;
步骤s14,云端认证、鉴权、密钥模块对终端进行认证和鉴权;
步骤s15,云端认证、鉴权、密钥模块认证和鉴权通过后,分配解密密钥给终端;
步骤s16,差分数据产生模块将计算产生的差分数据通过互联网播发模块发送给终端。
进一步地,所述步骤s12.3中卫星通过差分数据接收模块接收星基播发模块发送的差分数据,通过差分数据广播模块将差分数据发送给终端。
进一步地,所述步骤s16中云端对通过互联网播发模块发送的差分数据进行加密处理。
进一步地,所述步骤s2具体包括以下步骤:
步骤s21,终端初始化;
步骤s22,终端认证、鉴权、密钥模块向云端发起认证和鉴权请求;
步骤s23,终端认证、鉴权、密钥模块获得云端分配的解密密钥;
步骤s24.1,终端通过差分数据接收模块接收卫星发送的差分数据;
步骤s24.2,终端通过差分数据接收模块接收互联网播发模块发送的差分数据;
步骤s25,差分数据选择模块选择卫星发送的差分数据或者互联网播发模块发送的差分数据;
步骤s26,解压、解密、解码模块对差分选择数据模块选择的差分数据进行解压、解密和解码;
步骤s27,高精度定位解算模块基于解压、解密和解码后的差分数据进行高精度定位解算。
本发明的有益效果在于,仅允许授权用户使用广播差分数据,并兼容在线和离线场景的使用。
附图说明
图1是本发明实施示意图。
图2是本发明系统结构图。
图3是云端和终端交互逻辑图。
图4是本发明云端流程图。
图5是本发明终端流程图。
具体实施方式
本发明提出了一种广播差分数据认证鉴权和加密的系统及方法,可以实现仅允许授权用户使用广播差分数据,并兼容了在线和离线场景的使用。下文中,结合附图和实施例对本发明作进一步阐述。
图1是本发明实施例示意图,具体如下:
1、云端对所有需要通过广播方式播发的差分数据进行加密,并通过上星通道将差分数据上传到卫星。
优选地,广播方式包括卫星(星基增强系统)播发方式和电台方式播发。
2、卫星通过l-band广播方式,播发差分数据。
3、在线的终端通过互联网向云端发起认证鉴权的请求,成功后收到云端下发的差分数据解密密钥。
4、终端将差分数据解密密钥存储在本地。
5、(在线或离线)的终端收到卫星通过广播方式播发的差分数据后,用存储在本地的解密密钥进行解密,解密后用差分数据进行高精度定位解算。
图2是本发明系统结构图,包括云端、卫星和终端三部分,其中云端包括以下模块:
差分数据产生模块:基于接收到的物理基准站的卫星观测数据,计算产生(如基于虚拟网格点技术)差分数据。
差分数据加密模块:对推送到上星通道的差分数据,用加密密钥进行加密处理。
星基播发模块:将加密过后的差分数据推送到上星通道从而发送给卫星。
互联网播发模块:通过互联网方式播发差分数据,加密或不加密都可,根据实际使用情况可以进行选择。
账号和密钥管理模块:管理高精度定位终端设备的账号,以及用于加解密的密钥。
云端认证、鉴权、密钥模块:对终端进行认证和鉴权,并对解密密钥进行管理和下发。
卫星部分包括以下模块:
差分数据接收模块:接收来自上星通道的差分数据。
差分数据广播模块:通过l-band将差分数据广播出去。
终端部分包括以下模块:
终端差分数据接收模块:接收来自卫星或互联网的差分数据。
终端认证、鉴权、密钥模块:向云端发起认证和鉴权请求,并对解密密钥进行接收和管理(存储)。
差分数据选择模块:用于根据一定的策略,选择来自卫星或互联网的差分数据。
解压、解密、解码模块:选择了来自卫星或互联网的差分数据后,进行该数据的解压,解密和解码。
高精度定位解算模块:基于差分数据进行高精度定位解算。
云端和终端交互逻辑图如图3所示(包括差分数据解密密钥产生、分配、下发的策略):
云端所有通过广播方式(例如星基增强系统)播发的差分数据都用加密密钥做加密处理。云端周期性的生成(差分数据)加密密钥和(差分数据)解密密钥,例如三个月生成一个密钥。
出于网络传输安全性的考虑,需要把密钥分为masterkey和userkey。
masterkey:
masterkey是用来加解密播发数据;
密钥定期由平台生成(如三个月一次);
密钥需要周期性更换使用;
密钥只能在有效期内使用(如三个月);
密钥与设备id无关。
userkey:
userkey是由masterkey生成,并下发到对应用户;
userkey可以反向解密出masterkey;
密钥与设备id相关。
具体步骤如下:
步骤1,终端在开机有互联网信号的情况下,向云端发起认证和鉴权请求,并申请解密密钥。
步骤2,为了兼容在线和离线的使用场景,云端在终端认证和鉴权通过后,一次性下发n个解密密钥(n至少为2,一般2个解密密钥即可,以下用2个解密密钥的情况进行说明)。
步骤3,终端收到云端下发的2个解密密钥:
-解密密钥1用于差分数据的解密;
-解密密钥2存储在本地,暂时不用于解密。
为了兼容长时间离线使用的场景,终端需要提供离线(无互联网信号)方式导入解密密钥的功能,例如通过usb或串口本地导入解密密钥。
步骤4,终端如果开机时无互联网信号(无法通过互联网方式向云端申请解密密钥),则使用存储在本地的解密密钥1进行解密。
步骤5,解密密钥1到期,终端使用预先存储在本地的解密密钥2进行差分数据的解密。
步骤6,终端在开机有互联网信号的情况下,向云端发起认证鉴权请求,并申请密钥。此时由于解密密钥1已到期,云端下发的密钥变成了解密密钥2和解密密钥3。
步骤7,解密密钥2到期,终端使用预先存储在本地的解密密钥3进行差分数据的解密。
以下步骤按照时间顺序进行递增。
图4是本发明云端流程图,具体包括以下步骤:
步骤s11,云端初始化。
步骤s12.1,云端根据基准站的卫星观测数据,通过差分数据产生模块计算产生差分数据。
步骤s12.2,差分数据加密模块用加密密钥对差分数据进行加密处理。
步骤s12.3,星基播发模块将加密处理后的差分数据发送给卫星,然后通过卫星进行广播播发。
步骤s13,云端等待终端的认证和鉴权请求。
步骤s14,云端认证、鉴权、密钥模块对终端进行认证和鉴权。
步骤s15,云端认证、鉴权、密钥模块认证和鉴权通过后,分配解密密钥给终端。
云端根据终端申请解密密钥的时间,选择下发的解密密钥(最近一个生成的解密密钥)。在终端申请时已过期的密钥不再下发。
步骤s16,差分数据产生模块将计算产生的差分数据通过互联网播发模块发送给终端。
优选地,对步骤s16中的差分数据进行加密处理。
图4是本发明终端流程图,具体包括以下步骤:
步骤s21,终端初始化。
步骤s22,终端向云端发起认证和鉴权请求。
步骤s23,终端获得云端分配的解密密钥。
步骤s24.1,终端通过差分数据接收模块接收卫星发送的差分数据。
步骤s24.2,终端通过差分数据接收模块接收互联网播发模块发送的差分数据。
步骤s25,差分数据选择模块选择差分数据的来源,包括卫星发送的差分数据或者互联网播发模块发送的差分数据。
步骤s26,终端对差分选择数据模块选择的差分数据进行解压、解密和解码。
步骤s27,高精度定位解算模块基于解压、解密和解码后的差分数据进行高精度定位解算。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。