终端定位数据的鉴权方法和装置与流程

文档序号:15023190发布日期:2018-07-25 01:39阅读:330来源:国知局
本发明涉及互联网领域,具体而言,涉及一种终端定位数据的鉴权方法和装置。
背景技术
:随着信息技术的发展,移动终端(如手机、平板电脑等等)的使用也越来越普遍,移动终端成为了人们生活的必需品。目前,越来越多移动终端上的APP(Application,应用)需要获取用户当前的位置信息,如天气、导航等LBS(LocationBasedService,基于位置服务)应用,以为用户提供更好的服务。目前绝大多数LBS应用均通过内置的SDK(SoftwareDevelopmentKit,软件开发工具包)获取位置信息。当LBS应用需要位置信息时,发起定位请求,并通过内置的SDK从百度、高德或腾讯等NLP(NetworkLocationProvider,网络定位提供者)厂商的定位服务器获取用户当前的定位数据,并以响应数据包的形式返回给应用。对于应用接收到的响应数据包,无法区分来源于哪家NLP厂商,也无法确认响应数据包的真实性,且响应数据包中的定位经纬度、精度等数据也无法得到完整性、准确性的保障,一旦NLP的响应数据包被篡改、伪造,会造成系统的各应用定位不准,甚至定位错误等严重问题。针对相关技术中的终端定位存在安全隐患的技术问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种终端定位数据的鉴权方法和装置,以至少解决相关技术中的终端定位存在安全隐患的技术问题。根据本发明实施例的一个方面,提供了一种终端定位数据的鉴权方法,包括:发送定位请求,定位请求用于请求对移动终端的当前位置进行定位;获取响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;通过与服务器的交互结果对响应数据包进行鉴权。根据本发明实施例的另一方面,还提供了一种终端定位数据的鉴权方法,包括:获取定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;生成响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;将响应数据包发送给移动终端,其中,移动终端用于通过与第二服务器的交互结果对响应数据包进行鉴权。根据本发明实施例的一个方面,提供了一种终端定位数据的鉴权装置,包括:第一发送单元,用于发送定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;第一获取单元,用于获取响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;鉴权单元,用于通过与服务器的交互结果对响应数据包进行鉴权。根据本发明实施例的一个方面,提供了一种终端定位数据的鉴权装置,包括:第二获取单元,用于获取定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;生成单元,用于生成响应数据包,其中,响应数据包中携带有第二服务器对移动终端的当前位置进行定位得到的定位信息;第二发送单元,用于将响应数据包发送给移动终端,其中,移动终端用于通过与第二服务器的交互结果对响应数据包进行鉴权。根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。在本发明实施例中,发送用于请求对移动终端的当前位置进行定位的定位请求;服务器对定位请求进行响应,返回的响应数据包给移动终端,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;通过与服务器的交互结果对响应数据包进行鉴权,可以解决相关技术中的终端定位存在安全隐患的技术问题,进而达到了提高定位信息的安全性的技术效果。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的终端定位数据的鉴权方法的硬件环境的示意图;图2是根据本发明实施例的一种可选的终端定位数据的鉴权方法的流程图;图3是根据本发明实施例的一种可选的应用界面的示意图;图4是根据本发明实施例的一种可选的应用界面的示意图;图5是根据本发明实施例的一种可选的终端定位数据的鉴权方法的流程图;图6是根据本发明实施例的一种可选的应用架构的示意图;图7是根据本发明实施例的一种可选的定位的流程图;图8是根据本发明实施例的一种可选的终端定位数据的鉴权方法的流程图;图9是根据本发明实施例的一种可选的终端定位数据的鉴权装置的示意图;图10是根据本发明实施例的一种可选的终端定位数据的鉴权装置的示意图;以及图11是根据本发明实施例的一种终端的结构框图。具体实施方式为了使本
技术领域
的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本发明实施例的一方面,提供了一种终端定位数据的鉴权方法的方法实施例,该方法可以运行在客户端或客户端所在的终端上。可选地,在本实施例中,上述终端定位数据的鉴权方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的终端定位数据的鉴权方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的终端定位数据的鉴权方法也可以是由安装在其上的客户端来执行。本申请的方法可以应用于LBS应用,如天气、购物、即时通讯、外卖等应用中,如图1所示,如在外卖应用的“订单确认”界面,用户可以在收货地址栏的光标“|”后选择手动输入收货地址,或者点击自动定位按钮。一种可选的本申请的方法的实施方式如图1所示:步骤S11,在用户点击自动定位按钮后,终端向服务器发送定位请求。步骤S12,服务器对终端的定位请求进行响应,返回响应数据包。步骤S13,对响应数据包进行鉴权。在鉴权通过后,根据响应数据包中的经纬度等地址信息查找与该地址信息对应的兴趣点POI(PointOfInterest)地址(如“北京市海淀区知春路”)。为了便于进一步了解本申请的鉴权方案,下面结合图2进行详述:图2是根据本发明实施例的一种可选的终端定位数据的鉴权方法的流程图,应用于移动终端,如图2所示,该方法可以包括以下步骤:步骤S202,发送定位请求,定位请求用于请求对移动终端的当前位置进行定位。上述的定位请求为移动终端向NLP厂商发送的、请求NLP厂商对移动终端的当前位置进行定位的请求。可选地,上述的NLP厂商通过第二服务器接收定位请求,第二服务器用户在移动终端上选定的或者移动终端默认的为移动终端提供网络定位服务的服务器。步骤S204,获取响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息。步骤S206,通过与服务器(即下文中的第一服务器)的交互结果对响应数据包进行鉴权。需要说明的是,上述的移动终端执行的“发送定位请求”和“获取响应数据包”也可理解为一种交互(记为第一交互);移动终端在获取到响应数据包之后,可继续与第一服务器进行交互(记为第二交互)。可见,移动终端可采用上述两种交互的交互结果来完成对响应数据包的鉴权,在通过交互结果确定第一服务器为第二服务器的情况下,确定响应数据包为可用的合法数据包;在通过交互结果确定第一服务器不为第二服务器的情况下,确定响应数据包为不可用的非法数据包。在Android系统、IOS系统等系统中,NLP作为系统的网络定位提供者,可作为系统的一个后台服务,开机后自动启动或在需要时启动,为各APP(如天气、Camera等)提供网络定位服务,NLP从网络服务器获取到定位location数据后,再通过系统框架层上报给各APP。如在Android系统中,包括百度,高德等NLP提供商,都是按照Android标准的Location类中定义的字段(如Latitude、Longitude、Accuracy等)组合成location数据(响应数据包,可称为定位数据)进行上报(给LBS应用),因此location数据容易被篡改、伪造,对于APP接收到的location数据,无法区分来源于哪家NLP厂商,也无法确认location数据的真实性,定位经纬度,精度等数据也无法得到完整性、准确性保障,一旦NLP的location数据被篡改,伪造,会造成系统的各APP定位不准,甚至定位错误等严重问题。采用本申请的方法,加入鉴权步骤,可以确认location数据的真实性,使得定位经纬度、精度等数据得到完整性、准确性保障,一旦NLP的location数据被篡改、伪造,会及时发现,避免因为使用了错误的数据而影响用户的体验。通过上述步骤S202至步骤S206,发送用于请求对移动终端的当前位置进行定位的定位请求;服务器对定位请求进行响应,返回的响应数据包给移动终端,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;通过与服务器的交互结果对响应数据包进行鉴权,可以解决相关技术中的终端定位存在安全隐患的技术问题,进而达到了提高定位信息的安全性的技术效果。本申请的方法可以集成在LBS应用(也即第一应用)的客户端中,也即本申请的方法可应用于第一应用的客户端,由LBS应用自己对响应数据包(也即定位数据)进行鉴权;本申请的方法还可应用在移动终端的底层系统中,作为一个单独的鉴权服务或作为已有的位置服务的一部分,为所有应用需求的定位数据提供鉴权服务,下面结合图2所示的步骤详述本申请的技术方案:在本申请的技术方案中,在NLP上报的location数据中,可用Android标准Location类中的Extra字段,先用自有的key和加密算法,对key进行加密后并填入到Extra字段中。应用APP收到location数据后,先获取到Extra字段,再对Extra字段的加密后的key信息进行解密,并与自有key进行比较,从而确认location数据的来源和准确性,提高了系统网络定位的安全性。在步骤S202提供的技术方案中,移动终端向第二服务器发送定位请求,定位请求用于请求对移动终端的当前位置进行定位。LBS服务可以应用于定位(个人位置定位)、导航(路径导航)、查询(查询某个人或某个对象)、识别(识别某个人或对象)、事件检查(当出现特殊情况下向相关机构发送带求救或查询的个人位置信息)等场景,上述的定位请求则是由这些场景直接或间接触发的。下面示意性地进行说明:(1)如图3所示,在如购物、外卖等应用中,当用户下单时,需要输入收货地址,此时,可以点击“定位”按钮,就会触发上述的定位请求,应用可根据定位结果,在定位数据经过鉴权后,自动输入当前地址到“收货地址”栏;(2)如图4所示,在相机类应用中,用户可以开启“定位”功能,此时就会触发上述的定位请求,相机可根据定位结果,在定位数据经过鉴权后,将与定位结果对应的POI地标贴到相片中。在步骤S204提供的技术方案中,获取响应数据包,响应数据包是第一服务器对定位请求进行响应所返回的数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息。可选地,服务器在接收到定位请求后,将经纬度等信息填入响应数据包中返回给移动终端,一种可选的响应数据包的格式如表1所示,包括纬度mLatitude、经度mLongitude、时间mTime、精度mAccuracy等字段,服务器可以在这些字段中填入相应的信息。表1字段含义mLatitude纬度mLongitude经度mTime时间mAccuracy精度mExtras额外字段在步骤S206提供的技术方案中,通过与服务器的交互结果对响应数据包进行鉴权,发送响应数据包的服务器为第一服务器。可选地,本申请的交互包括两种(即第一交互和第二交互),那么对应的鉴权方式也包括两种,下面逐一进行说明:(1)基于第一交互的鉴权方式仅对特定字段进行加密下的鉴权方式如下(包括步骤S21-步骤S24):步骤S21,在获取到响应数据包的情况下,将响应数据包作为与第一服务器的交互结果(也即在交互结果为响应数据包),可通过响应数据包确定第一服务器是否为第二服务器可通过如下方式实现:可选地,上述的第二服务器可以为多厂商的服务器(属于同一厂商的所有服务器可被视为一个),例如,厂商A对应一个第二服务器、厂商B对应一个地儿服务器、厂商C对应一个第二服务器。每个厂商与系统底层或应用约定有一个第三密钥。在通过至少一个第三密钥对响应数据包中第二字段携带的信息进行解密时,可获取响应数据包的多个字段中的第二字段,多个字段中包括第二字段和第三字段,第三字段为响应数据包中用于保存定位信息的字段(如mLatitude、mLongitude、mTime、mAccuracy),第二字段为响应数据包中预留的用于进行扩展的字段(如mExtras);依次使用至少一个第三密钥中的密钥对第二字段携带的信息进行解密,若某一个第三密钥成功解密,则停止,否则继续使用下一个密钥进行解密。步骤S22,通过至少一个第三密钥对响应数据包中第二字段携带的信息进行解密,第三密钥为与一个第二服务器约定的用于对第二字段携带的信息进行解密的密钥。可选地,合法NLP厂商可统一约定一个第三密钥,这样可减少终端与服务器的处理逻辑的复杂度;也可每个厂商与系统或应用约定一个单独的密钥,也即每个第三密钥对应一个第二服务器。也即,可以通过步骤S22确定NLP厂商(服务提供者),确定与成功对第二字段携带的信息进行解密的第三密钥对应的第三服务器,该第三服务器对应的服务提供者即实际为移动终端提供位置服务的服务提供者。步骤S23,在解密得到的第二字段携带的信息为目标信息的情况下,确定第一服务器为至少一个第二服务器中的一个,目标信息为用于标识第二服务器的信息。步骤S24,在至少一个第三密钥中的任意一个均不能对第二字段携带的信息成功解密或解密得到的第二字段携带的信息不为目标信息的情况下,确定第一服务器不为至少一个第二服务器中的任意一个。通过上述步骤可以第一服务器是否为第二服务器,进而确定响应数据包是否为可用的合法数据包。对整个数据包进行加密下的鉴权方式如下(包括步骤S31-步骤S32):在交互结果为响应数据包的情况下,通过交互结果确定第一服务器是否为第二服务器可包括以下步骤:步骤S31,通过至少一个第一密钥对响应数据包进行解密。在通过至少一个第一密钥中的任意一个对响应数据包成功解密的情况下,确定第一服务器为至少一个第二服务器中的一个。步骤S32,在至少一个第一密钥中的任意一个均不能对响应数据包成功解密的情况下,确定第一服务器不为至少一个第二服务器中的任意一个,其中,第一密钥为与一个第二服务器约定的用于对响应数据包进行解密的密钥。本实施例中的解密方式与上述实施例“仅对特定字段进行加密下的鉴权”的解密方式相同,不再赘述。对数据包中任意字段进行加密下的鉴权方式如下(包括步骤S41-步骤S43):步骤S41,通过至少一个第二密钥对响应数据包中第一字段携带的信息进行解密。步骤S42,在通过至少一个第二密钥中的任意一个对第一字段携带的信息成功解密的情况下,确定第一服务器为至少一个第二服务器中的一个。步骤S43,在至少一个第二密钥中的任意一个均不能对第一字段携带的信息成功解密的情况下,确定第一服务器不为至少一个第二服务器中的任意一个,第二密钥为与一个第二服务器约定的用于对第一字段携带的信息进行解密的密钥,第一字段为响应数据包的字段中的任意一个。上述的第一秘钥、第二密钥以及第三密钥可以为相同或不同的密钥,此处的密钥可以密钥对的形式存在,加密密钥和解密密钥可以相同或者不同。需要说明的是,对于上述三种方式,各有优点,对于第一种,尤其适用于自带可扩展字段(如mExtras)的定位数据;对于第二种和第三种则不受定位数据的数据结构的影响,均可使用,尤其是第二种可以对所有数据提供保护,避免被篡改;对于某些可以开放部分数据的改写权限的数据结构中,则可采用第三种方式,仅对需要保护的数据字段进行加密。(2)基于第二交互的鉴权方式可选地,在通过与服务器的交互结果对响应数据包进行鉴权之前,可按照如下方式执行第二交互:在获取响应数据包之后,按照目标方式与第一服务器进行交互,并获取按照目标方式与第一服务器进行交互的交互结果,其中,目标方式的交互用于验证第一服务器是否为第二服务器。例如,上述的目标方式为移动终端向第二服务器发送第一消息,第二服务器应该返回第二消息(即约定的应答消息),但是第一服务器收到第一消息后不会产生应答或者产生错误的应答,因此,可以通过以上三种交互结果来判断第一服务器是否为第二服务器,当第一服务器返回第二消息时才能证明其为合法的第二服务器。可选地,在确定响应数据包为可用的合法数据包之后,在第一应用的客户端上显示与定位信息对应的地址信息(如图1所示的“北京市海淀区知春路”),第一应用的客户端为发起定位请求的客户端;也可在第一应用的客户端上与定位信息对应的地图信息。可选地,为了避免移动终端的定位请求被非法劫持,在确定响应数据包为不可用的非法数据包之后,向第二服务器发送反馈信息,反馈信息用于反馈移动终端的定位请求被第一服务器劫持。也可在移动终端上显示上述反馈信息,以提示用户移动终端的定位请求被第一服务器劫持。根据本发明实施例的一方面,提供了一种终端定位数据的鉴权方法的方法实施例,该方法可以运行在服务器上。图5是根据本发明实施例的一种可选的终端定位数据的鉴权方法的流程图,如图5所示,该方法可以包括以下步骤:步骤S502,获取定位请求,定位请求用于请求对移动终端的当前位置进行定位。步骤S504,生成响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息。可选地,生成响应数据包可通过如下方式实现:使用第三密钥对目标信息进行加密,其中,第三密钥为与移动终端约定的用于对目标信息进行加密的密钥;将加密后的目标信息保存在响应数据包的第二字段中,第二字段为响应数据包中预留的用于进行扩展的字段。上述的第二字段可以是如表1所示的“mExtras”字段。步骤S506,将响应数据包发送给移动终端,移动终端用于通过与第二服务器的交互结果对响应数据包进行鉴权。通过上述步骤,在获取定位请求时,生成响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;将响应数据包发送给移动终端,移动终端通过与第二服务器的交互结果对响应数据包进行鉴权,可以解决相关技术中的终端定位存在安全隐患的技术问题,进而达到了提高定位信息的安全性的技术效果。作为一种可选的实施例,下面以安卓Android手机系统为例进行说明:如图6所示,在安卓系统中,应用层的天气应用、相机应用等通过框架层的位置管理服务(LocationManagerService)来发起定位请求,由NLP产生将定位结果返回给移动终端。如表1所示,在位置上报时,百度、高德等NLP位置服务提供商都是根据Android系统中Location定义的标准字段,填入经度、纬度、精度等数据,上报给框架层的LocationManagerService(定位管理服务),再由LocationManagerService回调应用的LocationListener(位置监听器接口),上报给请求定位的应用,如天气、相机Camera等应用。具体流程如图7所示:步骤S702,服务器的NLP获取服务端定位数据。步骤S704,对Location对象(即上述的定位数据的数据包、或称为响应数据包)的mLatitude、mLongitude等字段进行赋值。步骤S706,上报Location对象给系统框架层的LocationManagerService。步骤S708,通过onLocationChanged(即位置监听器)上报Location对象给应用APP。步骤S710,应用获取mLatitude、mLongitude等字段的内容,得到定位结果。NLP厂商上报的location数据未做安全校验,容易被篡改、伪造,应用APP接收到的location数据无法确认来自哪家NLP提供商,也无法确认location数据的有效性,造成定位不准,甚至定位错误等严重问题。在本申请技术方案中,可进行鉴权,如利用表1的mExtras字段,将key(即目标信息,如16位字符串)用加密算法(比如DES、AES、RSA等加密算法)加密后保存在mExtras字段发送,在APP接收到location数据后,再进行解密,并与保存的key值比较,从而确认location数据的来源,确保location数据的安全、可靠,提高了Android系统的定位安全性。如图8所示:步骤S801,NLP获取服务端定位数据。步骤S802,对Location对象的mLatitude、mLongitude等字段进行赋值。步骤S803,确定待填入mExtras字段的key(即目标信息)和所使用的加密算法。步骤S804,对key用加密算法加密,生成加密后keyenc信息(即加密后的key)。步骤S805,将keyenc赋值到Location对象mExtras字段。步骤S806,上报Location对象给系统框架层的LocationManagerService。步骤S807,通过onLocationChanged上报Location对象给应用APP。步骤S808,应用获取Location对象的mExtras字段。步骤S809,从mExtras字段获取加密后的keyenc信息。步骤S810,对keyenc信息解密,并判断是否解密成功。若是则执行步骤S812,否则执行步骤S811。步骤S811,无效定位数据,可丢弃。步骤S812,生成解密后的keydec信息。步骤S813,对解密后的keydec信息进行校验,并判断是否校验成功,若是则执行步骤S814,否则执行步骤S811。步骤S814,有效的定位数据,确定定位结果。本申请在NLP中增加了加密模块(执行步骤S803-步骤S805),在APP中增加了解密和key校验模块(执行步骤S808-步骤S814),在NLP中先对从服务端获取的定位数据解析,构造location对象,并对mLatitude,mLongitude,mAccuracy等字段赋值,再确定key和加密算法,对key加密后赋值给location的mExtras字段,并上报系统框架层的LocationManagerService,LocationManagerService通过onLocationChanged回调上报location数据给APP(天气,Camera等)。APP获取到location数据后,从Extra字段中获取加密后的keyenc再解密,解密后做key值校验,从而确认location数据的来源和有效性,确认location数据是否被篡改,伪造,解决了现有方案中APP因为未做安全性校验导致的定位不准或定位错误等严重问题,提高了NLP定位的安全性。在图7中,在NLP上报的location数据中未做任何安全性校验,APP收到location数据后,无法确认location数据的来源,第三方很容易就能对location数据进行攻击,如篡改,伪造,造成APP定位不准或定位错误等严重问题。而利用本申请的技术方案,提高手机系统定位安全性,location数据的有效性,避免定位无效,定位错误,确保APP获取到的定位数据的精度等数据安全、可靠。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。根据本发明实施例的另一个方面,还提供了一种用于实施上述终端定位数据的鉴权方法的终端定位数据的鉴权装置。图9是根据本发明实施例的一种可选的终端定位数据的鉴权装置的示意图,如图9所示,该装置可以包括:第一发送单元901、第一获取单元903以及鉴权单元905。第一发送单元901,用于发送定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位。上述的定位请求为移动终端向NLP厂商发送的、请求NLP厂商对移动终端的当前位置进行定位的请求。可选地,上述的NLP厂商通过第二服务器接收定位请求,第二服务器用户在移动终端上选定的或者移动终端默认的为移动终端提供网络定位服务的服务器。第一获取单元903,用于获取响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息。鉴权单元905,用于通过与服务器的交互结果对响应数据包进行鉴权。需要说明的是,上述的移动终端执行的“发送定位请求”和“获取响应数据包”也可理解为一种交互(记为第一交互);移动终端在获取到响应数据包之后,可继续与第一服务器进行交互(记为第二交互)。可见,移动终端可采用上述两种交互的交互结果来完成对响应数据包的鉴权,在通过交互结果确定第一服务器为第二服务器的情况下,确定响应数据包为可用的合法数据包;在通过交互结果确定第一服务器不为第二服务器的情况下,确定响应数据包为不可用的非法数据包。在Android系统、IOS系统等系统中,NLP作为系统的网络定位提供者,可作为系统的一个后台服务,开机后自动启动或在需要时启动,为各APP(如天气、Camera等)提供网络定位服务,NLP从网络服务器获取到定位location数据后,再通过系统框架层上报给各APP。如在Android系统中,包括百度,高德等NLP提供商,都是按照Android标准的Location类中定义的字段(如Latitude、Longitude、Accuracy等)组合成location数据(响应数据包,可称为定位数据)进行上报(给LBS应用),因此location数据容易被篡改、伪造,对于APP接收到的location数据,无法区分来源于哪家NLP厂商,也无法确认location数据的真实性,定位经纬度,精度等数据也无法得到完整性、准确性保障,一旦NLP的location数据被篡改,伪造,会造成系统的各APP定位不准,甚至定位错误等严重问题。采用本申请的方式,加入鉴权步骤,可以确认location数据的真实性,使得定位经纬度、精度等数据得到完整性、准确性保障,一旦NLP的location数据被篡改、伪造,会及时发现,避免因为使用了错误的数据而影响用户的体验。需要说明的是,该实施例中的第一发送单元901可以用于执行本申请实施例中的步骤S202,该实施例中的第一获取单元903可以用于执行本申请实施例中的步骤S204,该实施例中的鉴权单元905可以用于执行本申请实施例中的步骤S206。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。通过上述模块,发送用于请求对移动终端的当前位置进行定位的定位请求;服务器对定位请求进行响应,返回的响应数据包给移动终端,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;通过与服务器的交互结果对响应数据包进行鉴权,可以解决相关技术中的终端定位存在安全隐患的技术问题,进而达到了提高定位信息的安全性的技术效果。上述的发送单元还用于向第二服务器发送定位请求,其中,第二服务器为移动终端提供网络定位服务的服务器;鉴权单元包括:第一鉴权模块,用于在通过交互结果确定第一服务器为第二服务器的情况下,确定响应数据包为可用的合法数据包;第二鉴权模块,用于在通过交互结果确定第一服务器不为第二服务器的情况下,确定响应数据包为不可用的非法数据包。上述的鉴权单元可包括:交互结果确定模块,用于在通过与服务器的交互结果对响应数据包进行鉴权之前,在获取响应数据包之后,按照目标方式与第一服务器进行交互,并获取按照目标方式与第一服务器进行交互的交互结果,其中,目标方式的交互用于验证第一服务器是否为第二服务器;或,在获取到响应数据包的情况下,将响应数据包作为与第一服务器的交互结果。上述的鉴权单元可包括:服务器辨别模块,用于在交互结果为响应数据包的情况下,通过至少一个第一密钥对响应数据包进行解密,在通过至少一个第一密钥中的任意一个对响应数据包成功解密的情况下,确定第一服务器为至少一个第二服务器中的一个,在至少一个第一密钥中的任意一个均不能对响应数据包成功解密的情况下,确定第一服务器不为至少一个第二服务器中的任意一个,其中,第一密钥为与一个第二服务器约定的用于对响应数据包进行解密的密钥;或,通过至少一个第二密钥对响应数据包中第一字段携带的信息进行解密,在通过至少一个第二密钥中的任意一个对第一字段携带的信息成功解密的情况下,确定第一服务器为至少一个第二服务器中的一个,在至少一个第二密钥中的任意一个均不能对第一字段携带的信息成功解密的情况下,确定第一服务器不为至少一个第二服务器中的任意一个,其中,第二密钥为与一个第二服务器约定的用于对第一字段携带的信息进行解密的密钥,第一字段为响应数据包的字段中的任意一个。在交互结果为响应数据包的情况下,服务器辨别模块还可用于通过至少一个第三密钥对响应数据包中第二字段携带的信息进行解密,其中,第三密钥为与一个第二服务器约定的用于对第二字段携带的信息进行解密的密钥;在解密得到的第二字段携带的信息为目标信息的情况下,确定第一服务器为至少一个第二服务器中的一个,其中,目标信息为用于标识第二服务器的信息;在至少一个第三密钥中的任意一个均不能对第二字段携带的信息成功解密或解密得到的第二字段携带的信息不为目标信息的情况下,确定第一服务器不为至少一个第二服务器中的任意一个。服务器辨别模块还可用于获取响应数据包的多个字段中的第二字段,其中,多个字段中包括第二字段和第三字段,第三字段为响应数据包中用于保存定位信息的字段,第二字段为响应数据包中预留的用于进行扩展的字段;依次使用至少一个第三密钥中的密钥对第二字段携带的信息进行解密。本申请的装置还可包括,展示单元,用于在确定响应数据包为可用的合法数据包之后,在第一应用的客户端上显示与定位信息对应的地址信息,其中,第一应用的客户端为发起定位请求的客户端;和/或,在第一应用的客户端上与定位信息对应的地图信息。本申请的装置还可包括,反馈单元,用于在确定响应数据包为不可用的非法数据包之后,向第二服务器发送反馈信息,其中,反馈信息用于反馈移动终端的定位请求被第一服务器劫持。根据本发明实施例的另一个方面,还提供了一种用于实施上述终端定位数据的鉴权方法的终端定位数据的鉴权装置。图10是根据本发明实施例的一种可选的终端定位数据的鉴权装置的示意图,如图10所示,该装置包括:第二获取单元1001、生成单元1003以及第二发送单元1005。第二获取单元1001,用于获取定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;生成单元1003,用于生成响应数据包,其中,响应数据包中携带有第二服务器对移动终端的当前位置进行定位得到的定位信息;可选地,生成单元还可用于:使用第三密钥对目标信息进行加密,其中,第三密钥为与移动终端约定的用于对目标信息进行加密的密钥;将加密后的目标信息保存在响应数据包的第二字段中,其中,第二字段为响应数据包中预留的用于进行扩展的字段。第二发送单元1005,用于将响应数据包发送给移动终端,其中,移动终端用于通过与第二服务器的交互结果对响应数据包进行鉴权。通过上述模块,在获取定位请求时,生成响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;将响应数据包发送给移动终端,移动终端通过与第二服务器的交互结果对响应数据包进行鉴权,可以解决相关技术中的终端定位存在安全隐患的技术问题,进而达到了提高定位信息的安全性的技术效果。此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。根据本发明实施例的另一个方面,还提供了一种用于实施上述终端定位数据的鉴权方法的服务器或终端。图11是根据本发明实施例的一种终端的结构框图,如图11所示,该终端可以包括:一个或多个(图11中仅示出一个)处理器1101、存储器1103、以及传输装置1105(如上述实施例中的发送装置),如图11所示,该终端还可以包括输入输出设备1107。其中,存储器1103可用于存储软件程序以及模块,如本发明实施例中的终端定位数据的鉴权方法和装置对应的程序指令/模块,处理器1101通过运行存储在存储器1103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的终端定位数据的鉴权方法。存储器1103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1103可进一步包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。上述的传输装置1105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1105包括一个网络适配器(NetworkInterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1105为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。其中,具体地,存储器1103用于存储应用程序。处理器1101可以通过传输装置1105调用存储器1103存储的应用程序,以执行下述步骤:发送定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;获取响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;通过与服务器的交互结果对响应数据包进行鉴权。处理器1101还用于执行下述步骤:获取定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;生成响应数据包,其中,响应数据包中携带有第二服务器对移动终端的当前位置进行定位得到的定位信息;将响应数据包发送给移动终端,其中,移动终端用于通过与第二服务器的交互结果对响应数据包进行鉴权。采用本发明实施例,发送用于请求对移动终端的当前位置进行定位的定位请求;服务器对定位请求进行响应,返回的响应数据包给移动终端,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;通过与服务器的交互结果对响应数据包进行鉴权,可以解决相关技术中的终端定位存在安全隐患的技术问题,进而达到了提高定位信息的安全性的技术效果。可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternetDevices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行终端定位数据的鉴权方法的程序代码。可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:S51,发送定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;S52,获取响应数据包,响应数据包中携带有对移动终端的当前位置进行定位得到的定位信息;S53,通过与服务器的交互结果对响应数据包进行鉴权。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:S61,获取定位请求,其中,定位请求用于请求对移动终端的当前位置进行定位;S62,生成响应数据包,其中,响应数据包中携带有第二服务器对移动终端的当前位置进行定位得到的定位信息;S63,将响应数据包发送给移动终端,其中,移动终端用于通过与第二服务器的交互结果对响应数据包进行鉴权。可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1