本发明实施例涉及计算机技术领域,特别涉及一种业务请求方法及装置。
背景技术:
终端中可以安装客户端,通过安装的客户端向服务器发送业务请求,以从服务器中获取服务。
相关方案中,为了保证业务安全,客户端和服务器中可以约定加密密钥,客户端在发送业务请求至服务器时,通过约定的加密密钥加密业务请求,相应的,服务器收到加密后的业务请求之后,通过约定的解密密钥进行解密,进而在解密成功之后,为客户端提供业务服务。
上述方案中当约定的加密密钥被不法分子破解时,上述方案中的安全性较差。
技术实现要素:
为了解决相关技术中存在的问题,本发明实施例提供了一种业务请求方法及装置。技术方案如下:
根据本发明实施例的第一方面,提供一种业务请求方法,该方法包括:
获取票据和动态密钥,所述票据为服务器生成并发送的票据,所述票据中包括加密后的校验信息,所述校验信息包括所述动态密钥、有效期和客户端的标识信息;
生成业务请求,使用所述动态密钥加密所述业务请求;
发送所述票据和加密后的所述业务请求至服务器,所述服务器用于根据所述票据和加密后的所述业务请求认证所述客户端,并在认证通过时返回应答信息,所述应答信息中携带有业务信息;
接收所述服务器返回的所述应答信息;
根据所述应答信息展示所述业务信息。
根据本发明实施例的第二方面,提供一种业务请求方法,该方法包括:
接收客户端发送的票据和加密后的业务请求,所述票据为预先生成并发送至所述客户端的票据,所述票据中包括加密后的校验信息,所述校验信息包括动态密钥、有效期和客户端的标识信息;
根据所述票据和加密后的所述业务请求认证所述客户端;
在认证通过时返回应答信息至所述客户端,所述应答信息中携带有业务信息。
根据本发明实施例的第三方面,提供一种业务请求装置,该方法包括:
获取模块,用于获取票据和动态密钥,所述票据为服务器生成并发送的票据,所述票据中包括加密后的校验信息,所述校验信息包括所述动态密钥、有效期和客户端的标识信息;
生成模块,用于生成业务请求,使用所述动态密钥加密所述业务请求;
发送模块,用于发送所述票据和加密后的所述业务请求至服务器,所述服务器用于根据所述票据和加密后的所述业务请求认证所述客户端,并在认证通过时返回应答信息,所述应答信息中携带有业务信息;
接收模块,用于接收所述服务器返回的所述应答信息;
展示模块,用于根据所述应答信息展示所述业务信息。
根据本发明实施例的第四方面,提供一种业务请求装置,该方法包括:
接收模块,用于接收客户端发送的票据和加密后的业务请求,所述票据为预先生成并发送至所述客户端的票据,所述票据中包括加密后的校验信息,所述校验信息包括动态密钥、有效期和客户端的标识信息;
认证模块,用于根据所述票据和加密后的所述业务请求认证所述客户端;
返回模块,用于在认证通过时返回应答信息至所述客户端,所述应答信息中携带有业务信息。
本发明实施例提供的技术方案带来的有益效果是:
通过使用服务器生成的票据中的动态密钥加密业务请求,并发送票据和加密后的业务请求至服务器,票据中包括加密后的校验信息,所述校验信息包括所述动态密钥、有效期和客户端的标识信息,进而使得服务器可以对客户端进行认证,进而在认证通过时,向客户端返回应答信息;客户端根据接收到的应答信息展示业务信息;解决了相关技术中业务请求的安全性较差的问题;达到了可以保证业务请求的安全的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明各个实施例提供的业务获取方法所涉及的实施环境的示意图;
图2是本发明一个实施例提供的分片存储的示意图;
图3是本发明一个实施例提供的业务获取方法的流程图;
图4是本发明一个实施例提供的票据的示意图;
图5是本发明一个实施例提供的票据的另一示意图;
图6是本发明一个实施例提供的重放攻击的实验结果图;
图7是本发明另一个实施例提供的业务获取方法的另一流程图;
图8是本发明另一个实施例提供的业务获取方法的再一流程图;
图9是本发明一个实施例提供的业务请求装置的示意图;
图10是本发明一个实施例提供的业务请求装置的示意图;
图11是本发明一个实施例提供的终端的示意图;
图12是本发明一个实施例提供的服务器的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
请参考图1,其示出了本发明各个实施例提供的业务获取方法所涉及的实施环境的示意图,如图1所示,该实施环境可以包括终端110和服务器120。
终端110可以为诸如手机、平板电脑或者电子阅读器之类的移动终端。终端110中可以安装有客户端,该客户端可以为供用户下载应用程序的客户端,当然,实际实现时,该客户端还可以为其他类型的客户端,本实施例对此并不做限定。终端110可以通过有线或者无线网络与服务器120连接。
可选地,终端110中设置有数据库,该数据库中存储有默认动态密钥和默认票据,其中默认票据中包括默认动态密钥、默认有效期和默认标识信息。可选地,客户端可以对默认动态密钥进行分片,然后将分片后的默认动态密钥分布存储在数据库中。可选地,客户端还可以对默认票据进行分片,然后将分片后的默认票据分布存储在数据库中。以存储默认动态密钥为例,请参考图2,客户端可以将默认动态密钥切分为5份,然后将5份分开存储。通过将默认动态密钥和默认票据分片存储,增强了不法分子破解的难度,保证了默认动态密钥和默认票据的安全。
服务器120可以是一台服务器,也可以是由若干台服务器组成的服务器集群,还可以是一个云计算服务中心。比如,服务器120可以包括接入服务、认证服务器和业务服务器。其中,接入服务器用于提供客户端的接入,认证服务器用于对客户端进行认证,业务服务器用于为客户端提供业务服务,本实施例对此并不做限定。
请参考图3,其示出了本发明一个实施例提供的业务获取方法的方法流程图,本实施例以该业务获取方法用于图1所示的实施环境中来举例说明。如图3所示,该业务获取方法可以包括:
步骤301,客户端生成标识信息。
客户端的标识信息用于唯一标识一个客户端。客户端可以根据客户端所处终端的终端标识生成该标识信息。其中,终端标识可以包括终端的国际移动设备身份码(internationalmobileequipmentidentity,imei)、国际移动用户识别码(internationalmobilesubscriberidentificationnumber,imsi)、媒体访问控制(mediaaccesscontrol,mac)地址和终端的安卓标识(identification,id)中的至少一种。
客户端根据终端标识生成该标识信息的步骤可以包括:客户端根据预设算法以及该终端标识生成该标识信息。其中,预设算法可以为消息摘要算法第五版(messagedigestalgorithm,md5)算法,比如,客户端可以计算终端标识的md5值,将计算得到的md5值作为该客户端的标识信息。
步骤302,客户端发送标识信息至服务器。
客户端可以在终端中首次开启时,发送该标识信息至服务器。可选地,为了保证标识信息的安全,客户端可以使用默认动态密钥对标识信息进行加密,发送加密后的标识信息至服务器,本实施例对此并不做限定。
步骤303,客户端生成客户端签名。
客户端可以根据预设签名算法对客户端的名称进行签名,比如,客户端的名称为“yingyongbao”,则客户端根据通过预设签名算法计算“yingyongbao”的签名。其中,签名算法可以为md5算法或者其它算法,本实施例对此并不做限定。
步骤304,发送客户端签名至服务器。
可选地,客户端可以在重启时,或者,首次在终端中开启时,或者每隔预定时间间隔发送客户端签名至服务器,本实施例对此并不做限定。预定时间间隔为客户端中默认的时间间隔,或者用户在客户端中自定义的时间间隔,对此并不做限定。比如,预定时间间隔可以为默认的30分钟,则此时,客户端可以每隔30分钟发送客户端签名至服务器。
可选地,为了保证客户端签名的安全,在客户端首次在终端中开启时,客户端可以使用默认动态密钥加密客户端签名,发送加密后的客户端签名至服务器;而若客户端在重启或者每隔预定时间间隔发送客户端签名至服务器,则客户端可以使用服务器发送的动态密钥加密客户端签名,本实施例对此并不做限定。
需要说明的是,本实施例只是以标识信息和客户端签名分别发送为例,可选地,在客户端首次在终端中运行时,客户端可以同时发送标识信息和客户端签名至服务器,本实施例对此并不做限定。
步骤305,服务器接收客户端签名,根据客户端签名对客户端进行认证。
服务器可以根据预设签名算法计算保存的客户端的名称进行签名,检测计算得到的签名与接收到的客户端签名是否一致,若一致,则对客户端认证通过,反之若不一致,则对客户端认证失败。
可选地,若服务器接收到的客户端签名为加密后的签名,则服务器可以根据对应的动态密钥解密加密后的客户端签名,对解密后的客户端签名进行认证,本实施例对此并不做限定。比如,在服务器未生成过票据时,服务器使用默认动态密钥对加密后的客户端签名进行解密;而在服务器已经生成票据时,服务器可以使用生成的票据中的动态密钥对加密后的客户端签名进行解密,在此不再赘述。
步骤306,服务器生成票据。
服务器接收到客户端的标识信息之后可以生成票据。票据中可以包括校验信息,该校验信息用于实现对客户端的校验。校验信息可以包括动态密钥、有效期以及客户端的标识信息。
服务器可以随机生成动态密钥,实际实现时,该动态密钥可以为随机数。
有效期用于表示票据的有效期限,也即票据在该有效期内票据有效,而在超过该有效期后,该票据失效。可选地,该有效期可以为服务器中默认的有效期,或者是设计人员手动设置的有效期。比如,该有效期可以为默认的2分钟。实际实现时,有效期可以为到期时间。比如,服务器在生成有效期时的时刻为4月21日12:00,有效期的有效时长为30分钟,则服务器生成的有效期即为4月21日12:30,本实施例对此并不做限定。
客户端的标识信息为认证请求中携带的标识信息,在此不再赘述。
为了保证校验信息的安全,服务器可以通过预设加密算法以及票据密钥加密校验信息,并将加密后的校验信息作为该票据,实际实现时,该票据即为加密后的二进制数。其中,预设加密算法可以包括:高级加密标准(advancedencryptionstandard,aes)算法、数字签名算法(digitalsignaturealgorithm,dsa)或者数据加密标准(dataencryptionstandard,des)等等,本实施例对此并不做限定;票据密钥可以为设计人员自定义的密钥,也可以为服务器按照预设生成规则生成的密钥,比如,该票据密钥为服务器随机生成的随机数。为了后续步骤的执行,服务器可以包括该票据密钥,并且实际实现时,服务器可以保存票据密钥与客户端的标识信息之间的对应关系。
可选地,本实施例仅以服务器通过预设加密算法加密校验信息为例,实际实现时,服务器还可以通过预设加密算法分别加密校验信息中的每项信息,比如,通过第一加密算法加密动态密钥、通过第二加密算法加密有效期并通过第三加密算法加密客户端的标识信息,本实施例对此并不做限定。其中,对不同信息加密时使用的预设加密算法可以相同或者不同,也即上述第一加密算法、第二加密算法和第三加密算法可以相同或者不同,对此并不做限定。
实际实现时,服务器还可以将使用的预设加密算法的协议版本号以及加密后的校验信息一同作为票据,比如,请参考图4,其示出了一种可能的票据的结构示意图,其中v为使用的预设加密算法的协议版本号。当然,在服务器对校验信息中的每项信息分别加密且使用的加密算法不同时,服务器还可以将使用的各种加密算法按照预设顺序和加密后的校验信息中的每项信息一同作为票据。其中,预设顺序为校验信息中的每项信息的排序。比如,以通过第一加密算法加密动态密钥、通过第二加密算法加密有效期并通过第三加密算法加密客户端的标识信息为例,则请参考图5,其示出了另一种可能的票据的结构示意图,图中v1为第一加密算法的协议版本号、v2为第二加密算法的协议版本号,而v3为第三加密算法的协议版本号。
步骤307,服务器在对客户端认证通过时,发送票据和动态密钥至客户端。
服务器在对客户端签名认证通过时,服务器可以发送认证通过信息至客户端,该认证通过信息中携带有票据和动态密钥。可选地,为了保证发送的信息的安全,在服务器首次生成票据时,服务器可以使用默认动态密钥加密认证通过信息;而在服务器第n次生成票据时,服务器可以使用上一次生成的动态密钥加密认证通过信息,对此并不做限定。
可选地,若服务器对客户端认证失败,则服务器可以发送认证失败信息至客户端,流程结束,在此不再赘述。
步骤308,客户端接收并存储票据和动态密钥。
客户端可以分片存储票据和动态密钥。其中,客户端的分片存储方式与图2所示的存储方式类似,在此不再赘述。
可选地,若客户端接收到的认证失败信息,则流程结束。
步骤309,客户端在接收到触发指令时,客户端可以生成业务请求。触发指令为刷新页面的刷新指令,搜索目标内容的搜索指令,或者选择目标内容的选择指令等等。
比如,在客户端为供用户下载应用的客户端时,客户端接收到搜索某一应用的搜索指令时,客户端可以生成业务请求。
步骤310,客户端根据动态密钥加密业务请求。
业务请求中携带有客户端的标识信息。
步骤311,客户端发送票据以及加密后的业务请求至服务器。
步骤312,服务器接收客户端发送的票据以及加密后的业务请求,对客户端进行认证。
服务器根据保存的票据密钥对接收到的票据进行解密,进而得到校验信息,此后,服务器根据校验信息对客户端进行认证。
服务器根据校验信息对客户端认证的步骤包括:
第一,根据校验信息中的有效期检测票据是否过期。
可选地,服务器读取到校验信息中的有效期之后,检测当前时刻是否超过读取到的有效期所对应的时刻,若超过,则票据已经过期,反之,则票据没有过期。比如,校验信息中的有效期为4月21日12:30,则服务器可以检测当前时刻在该时刻之前还是之后,本实施例在此不再赘述。
第二,检测校验信息中的标识信息与业务请求中携带的标识信息是否一致。
在检测结果为票据未过期时,服务器可以根据校验信息中的动态密钥解密业务请求,得到业务请求中携带的标识信息,检测校验信息中的标识信息与业务请求中的标识信息是否一致。
在校验信息中的标识信息与业务请求的头部中携带的标识信息一致时,服务器确定对客户端认证通过;反之,则确定对客户端认证失败。
可选地,在检测结果为票据过期时,服务器可以再次生成票据,并将再次生成的票据和动态密钥发送至客户端,本实施例在此不再赘述。可选地,服务器发送再次生成的票据和动态密钥至客户端时,服务器可以使用接收到的票据中的动态密钥对再次生成的票据和动态密钥进行加密,发送加密后的内容至客户端。相应的,客户端使用上一次接收到的动态密钥对接收到的内容解密,进而保存最新的动态密钥和票据,本实施例对此并不做限定。
需要说明的是,本实施例对第一和第二的检测步骤的执行顺序并不做限定,实际实现时,可以先执行第一步的检测后执行第二步的检测,或者,同时执行两步的检测,再或者,先执行第二步的检测后执行第一步的检测,本实施例对此并不做限定。
步骤313,在对客户端认证通过时,服务器生成业务信息。
业务信息为向客户端提供的用于响应业务请求的信息。比如,在业务请求为搜索应用程序的请求时,业务信息包括搜索到的应用程序的相关信息,比如,包括搜索到的应用程序的名称、厂商、应用程序的大小等等。
步骤314,服务器根据动态密钥以及业务信息生成应答信息。
可选地,根据动态密钥对业务信息加密,加密结果即为应答信息。
而若对客户端认证失败,则服务器返回认证失败信息至客户端,对此并不做限定。
步骤315,服务器返回应答信息至客户端。
步骤316,客户端接收服务器返回的应答信息,根据动态密钥解密应答信息。
步骤317,客户端根据解密结果展示业务信息。
需要补充说明的一点是,本实施例只是以步骤304和步骤305只执行一次来举例,可选地,步骤304和步骤305还可以执行多次,比如,在客户端每次重启时执行,或者每隔预定时间间隔执行一次,本实施例对此并不做限定。并且上述仅以步骤304和步骤305在步骤307之前执行为例,可选地,实际实现时,还可以在步骤307之后执行,其只需在步骤312之前执行即可,并且,当步骤304和步骤309同时执行时,客户端签名还可以直接携带在业务请求中,本实施例对此并不做限定。
需要补充说明的另一点是,步骤309至步骤317可以在步骤308之后执行多次或者执行一次,本实施例对此并不做限定。
综上所述,本实施例提供的业务请求方法,通过使用服务器生成的票据中的动态密钥加密业务请求,并发送票据和加密后的业务请求至服务器,票据中包括加密后的校验信息,所述校验信息包括所述动态密钥、有效期和客户端的标识信息,进而使得服务器可以对客户端进行认证,进而在认证通过时,向客户端返回应答信息;客户端根据接收到的应答信息展示业务信息;解决了相关技术中业务请求的安全性较差的问题;达到了可以保证业务请求的安全的效果。
另外,由于服务器中无需存储为每个客户端生成的票据,降低了服务器存储票据时所需耗用的存储空间,达到了可以提高服务器所能服务的客户端的数量的效果。
在上述步骤309中,客户端在生成业务请求时,客户端可以先生成随机数,进而生成携带有随机数的业务请求。
相应的,步骤313可以包括:服务器根据动态密钥加密业务应答和随机数,得到应答信息。
步骤317包括:客户端检测应答信息中的随机数是否与业务请求中的随机数一致,若一致,则说明服务器是接收业务请求的服务器,对服务器认证通过,根据解密得到的业务应答渲染页面。
通过上述方法达到了对服务器进行认证的效果。
可选地,若应答信息中的随机数是否与业务请求中的随机数不一致,则流程结束。
在步骤309中,客户端还可以生成请求序列号,进而在生成业务请求时生成携带有请求序列号的业务请求。
客户端可以按照预设规则生成请求序列号。预设规则为生成的请求序列号按照预设数值递增或者递减。
比如,预设规则为生成的请求序列号递增且预设数值为1,则第一次生成请求序列号时,可以生成“0”,第二次生成时可以生成“1”,以此类推,在n次生成时,可以生成“n-1”。又比如,预设规则为生成的请求序列号递减且预设数值为2为例,第一次生成请求序列号时,可以生成“m”,第二次生成时可以生成“m-2”,以此类推,在此不再赘述。其中,m为预设规则中预先设定的起始值。
相应的,在步骤312中,服务器解密业务请求之后,服务器可以检测接收到的请求序列号与上一次接收到该客户端发送的业务请求中的请求序列号是否按照预设规则变化,若是,则确定客户端认证成功,反之,则对客户端认证失败。
步骤314包括,服务器根据动态密钥加密业务应答和请求序列号,加密结果即为应答信息。
步骤317包括:客户端检测应答信息中的请求序列号是否与业务请求中的请求序列号一致,若一致,则根据业务应答渲染页面,反之,则流程结束。
由于服务器接收到业务请求之后,服务器会对业务请求中的请求序列号进行认证,达到了可以过滤恶意用户在拦截业务请求之后,不断发送的业务请求,进而可以防重放攻击的效果。
在一个实施场景中,对业务请求中携带请求序列号和不携带请求序列号两种情况进行了测试,如图6所示,测试结果表明在业务请求中不包括请求序列号时,客户端的刷量比例在3.5%,而在业务请求中携带有请求序列号时,客户端的刷量比例降到了0.2%。
假设业务请求中包括随机数以及请求序列号,请参考图7,其示出了本实施例提供的业务获取方法的完整的方法流程图。如图7所示,该方法可以包括:
1、用户操作。
2、客户端生成业务请求,业务请求中携带有随机数、客户端签名和请求序列号,使用动态密钥加密业务请求。
3、客户端发送票据以及加密后的业务请求至服务器。
4、服务器根据协议版本号选择解密算法,根据选择的解密算法以及票据密钥解密票据。
5、服务器根据校验信息中的有效期检测票据是否过期。
6、若票据已过期,则服务器确定票据为无效票据。
7、若票据未过期,则服务器检测校验信息中的标识信息与业务请求的头部中的标识信息是否一致。
8、若不一致,则服务器确定客户端为非法客户端。
9、若一致,则服务器根据校验信息中的动态密钥解密业务请求。
10、服务器检测客户端签名是否合法。
11、若客户端签名合法,则服务器检测请求序列号是否递增。
12、若客户端签名不合法,则服务器确定对客户端认证失败。
13、若请求序列号递增,则服务器生成业务应答,使用动态密钥加密业务应答、请求序列号和随机数得到应答信息,发送应答信息至客户端。
14、客户端使用动态密钥解密接收到的应答信息。
15、客户端检测应答信息中的随机数是否与业务请求中的随机数一致。
16、若应答信息中的随机数是否与业务请求中的随机数一致,则检测应答信息中的请求序列号是否与业务请求中的请求序列号一致。
17、若应答信息中的随机数是否与业务请求中的随机数不一致,则对服务端认证失败。
18、若应答信息中的请求序列号是否与业务请求中的请求序列号一致,则客户端根据业务应答渲染页面。
19、若应答中的请求序列号是否与业务请求中的请求序列号不一致,则流程结束。
上述仅以服务器包括一台为例,可选地,服务器还可以包括多台,比如,服务器可以包括接入服务器、认证服务器和业务服务器,则此时,请参考图8,其示出了本实施例一种可能的业务获取方法的方法流程图,如图8所示,该方法包括:
步骤801,客户端生成业务请求,业务请求中包括随机数、请求序列号和客户端签名。
步骤802,客户端使用动态密钥加密业务请求。
步骤803,客户端发送票据和加密后的业务请求至接入服务器。
步骤804,接入服务器根据协议版本号选取解密算法,根据解密算法以及票据密钥解密票据。
步骤805,接入服务器根据校验信息中的有效期检测票据是否过期,检测校验信息中的标识信息与业务请求中的标识信息是否一致。
步骤806,若票据未过期且校验信息中的标识信息与业务请求中的标识信息一致,则接入服务器使用校验信息中的动态密钥解密业务请求。
步骤807,接入服务器发送解密后的业务请求中的客户端签名至认证服务器。
步骤808,认证服务器认证接收到的客户端签名。
步骤809,在客户端签名认证通过时,认证服务器发送业务请求至业务服务器。
步骤810,业务服务器返回业务应答至接入服务器。
步骤811,接入服务器使用动态密钥加密业务应答、随机数和请求序列号。
步骤812,接入服务器返回应答信息至客户端。
步骤813,客户端使用动态密钥解密应答信息。
步骤814,客户端检测解密后的应答信息中的随机数与业务请求中的随机数是否一致。
步骤815,若解密后的应答信息中的随机数与业务请求中的随机数一致,则检测解密后的应答信息中的请求序列号与业务请求中的请求序列号是否一致。
步骤816,若解密后的应答信息中的随机数与业务请求中的随机数不一致,则流程结束。
步骤817,若解密后的应答信息中的请求序列号与业务请求中的请求序列号一致,则根据业务应答渲染页面。
步骤818,若解密后的应答信息中的请求序列号与业务请求中的请求序列号不一致,则流程结束。
上述实施例中有关客户端侧的步骤可以单独实现成为客户端侧的业务请求方法,有关服务器侧的步骤可以单独实现成为服务器侧的业务请求方法。
请参考图9,其示出了本发明一个实施例提供的业务请求装置的结构示意图,如图9所示,该业务请求装置可以包括:获取模块910、生成模块920、发送模块930、接收模块940和展示模块950。
获取模块910,用于获取票据和动态密钥,所述票据为服务器生成并发送的票据,所述票据中包括加密后的校验信息,所述校验信息包括所述动态密钥、有效期和客户端的标识信息;
生成模块920,用于生成业务请求,使用所述动态密钥加密所述业务请求;
发送模块930,用于发送所述票据和加密后的所述业务请求至服务器,所述服务器用于根据所述票据和加密后的所述业务请求认证所述客户端,并在认证通过时返回应答信息,所述应答信息中携带有业务信息;
接收模块940,用于接收所述服务器返回的所述应答信息;
展示模块950,用于根据所述应答信息展示所述业务信息。
综上所述,本实施例提供的业务请求装置,通过使用服务器生成的票据中的动态密钥加密业务请求,并发送票据和加密后的业务请求至服务器,票据中包括加密后的校验信息,所述校验信息包括所述动态密钥、有效期和客户端的标识信息,进而使得服务器可以对客户端进行认证,进而在认证通过时,向客户端返回应答信息;客户端根据接收到的应答信息展示业务信息;解决了相关技术中业务请求的安全性较差的问题;达到了可以保证业务请求的安全的效果。
另外,由于服务器中无需存储为每个客户端生成的票据,降低了服务器存储票据时所需耗用的存储空间,达到了可以提高服务器所能服务的客户端的数量的效果。
基于上述实施例提供的业务请求装置,可选的,所述生成模块920,还用于生成携带有随机数的业务请求;
所述应答信息中携带有随机数,所述展示模块950,还用于:
检测所述业务请求中的随机数与所述应答信息中的随机数是否一致;
若所述业务请求中的随机数与所述应答信息中的随机数一致,则展示所述业务信息。
可选的,所述生成模块920,还用于:
生成携带有请求序列号的业务请求;所述请求序列号用于指示所述服务器对所述请求序列号进行认证。
可选的,所述生成模块920,还用于生成所述客户端的所述标识信息;
所述发送模块930,还用于发送所述标识信息至所述服务器,所述服务器用于根据接收到的所述标识信息生成携带有使用动态密钥加密后的所述校验信息的票据,返回所述票据以及所述动态密钥至所述客户端;
所述接收模块940,还用于接收并保存所述服务器返回的所述票据和所述动态密钥。
可选的,所述发送模块930,还用于发送客户端签名至所述服务器,所述客户端签名用于指示所述服务器根据所述客户端签名对所述客户端进行认证。
请参考图10,其示出了本发明一个实施例提供的业务请求装置的结构示意图,如图10所示,该业务请求装置可以包括:接收模块1010、认证模块1020和返回模块1030。
接收模块1010,用于接收客户端发送的票据和加密后的业务请求,所述票据为预先生成并发送至所述客户端的票据,所述票据中包括加密后的校验信息,所述校验信息包括动态密钥、有效期和客户端的标识信息;
认证模块1020,用于根据所述票据和加密后的所述业务请求认证所述客户端;
返回模块1030,用于在认证通过时返回应答信息至所述客户端,所述应答信息中携带有业务信息。
综上所述,本实施例提供的业务请求装置,通过使用服务器生成的票据中的动态密钥加密业务请求,并发送票据和加密后的业务请求至服务器,票据中包括加密后的校验信息,所述校验信息包括所述动态密钥、有效期和客户端的标识信息,进而使得服务器可以对客户端进行认证,进而在认证通过时,向客户端返回应答信息;客户端根据接收到的应答信息展示业务信息;解决了相关技术中业务请求的安全性较差的问题;达到了可以保证业务请求的安全的效果。
另外,由于服务器中无需存储为每个客户端生成的票据,降低了服务器存储票据时所需耗用的存储空间,达到了可以提高服务器所能服务的客户端的数量的效果。
基于上述实施例提供的业务请求装置,可选的,所述认证模块1020,包括:
解密单元,用于根据票据密钥解密所述票据,得到所述票据中的所述校验信息;
检测单元,用于根据所述票据中的有效期检测所述票据是否过期;
所述解密单元,还用于根据所述票据中的动态密钥解密加密后的所述业务请求;
所述检测单元,还用于检测所述票据中的所述标识信息是否与解密后的所述业务请求中携带的所述客户端的标识信息是否一致;
结果确定单元,用于在所述票据未过期且所述票据中的所述标识信息与所述业务请求中携带的所述客户端的标识信息一致时,对所述客户端认证通过。
可选的,所述解密单元,还用于:
获取所述票据中的协议版本号所对应的预设加密算法;
根据所述预设加密算法以及所述票据密钥解密所述票据,得到所述校验信息。
可选的,所述业务请求中还携带有请求序列号,所述结果确定单元,还用于:
检测所述业务请求中的所述请求序列号与上一次接收到的业务请求中的序列号是否按照预设规则变化;
在所述票据未过期、所述票据中的所述标识信息与所述业务请求中携带的所述客户端的标识信息一致且所述业务请求中的所述请求序列号与上一次接收到的业务请求中的序列号按照预设规则变化时,对所述客户端认证通过。
可选的,所述业务请求中还携带有随机数,所述返回模块,还用于:
在对所述客户端认证通过时,返回携带有所述随机数的所述应答信息至所述客户端。
可选的,所述接收模块,还用于接收所述客户端发送的所述客户端的标识信息;
所述装置还包括:
生成模块,用于生成动态密钥和有效期,根据预设加密算法以及票据密钥加密校验信息,生成携带有加密后的所述校验信息的所述票据,所述校验信息包括所述动态密钥、所述有效期和所述标识信息;
所述返回模块1030,还用于返回所述票据以及所述动态密钥至所述客户端,所述客户端接收并保存所述票据和所述动态密钥。
可选的,所述接收模块1010,还用于接收所述客户端发送的客户端签名;
所述认证模块1020,还用于根据所述客户端签名对所述客户端认证。
需要说明的是:上述实施例提供的业务请求装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的业务请求装置和业务请求方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端或者服务器中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行上述业务请求方法。
图11其示出了本发明一个实施例提供的终端1100的框图,该终端可以包括射频(rf,radiofrequency)电路1101、包括有一个或一个以上计算机可读存储介质的存储器1102、输入单元1103、显示单元1104、传感器1105、音频电路1106、无线保真(wifi,wirelessfidelity)模块1107、包括有一个或者一个以上处理核心的处理器1108、以及电源9011等部件。本领域技术人员可以理解,图11中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
rf电路1101可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1108处理;另外,将涉及上行的数据发送给基站。通常,rf电路1101包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim,subscriberidentitymodule)卡、收发信机、耦合器、低噪声放大器(lna,lownoiseamplifier)、双工器等。此外,rf电路1101还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(gsm,globalsystemofmobilecommunication)、通用分组无线服务(gprs,generalpacketradioservice)、码分多址(cdma,codedivisionmultipleaccess)、宽带码分多址(wcdma,widebandcodedivisionmultipleaccess)、长期演进(lte,longtermevolution)、电子邮件、短消息服务(sms,shortmessagingservice)等。
存储器1102可用于存储软件程序以及模块,处理器1108通过运行存储在存储器1102的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1102还可以包括存储器控制器,以提供处理器1108和输入单元1103对存储器1102的访问。
输入单元1103可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元1103可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1108,并能接收处理器1108发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元1103还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1104可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1104可包括显示面板,可选的,可以采用液晶显示器(lcd,liquidcrystaldisplay)、有机发光二极管(oled,organiclight-emittingdiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器1108以确定触摸事件的类型,随后处理器1108根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图11中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器1105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1106、扬声器,传声器可提供用户与终端之间的音频接口。音频电路1106可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路1106接收后转换为音频数据,再将音频数据输出处理器1108处理后,经rf电路1101以发送给比如另一终端,或者将音频数据输出至存储器1102以便进一步处理。音频电路1106还可能包括耳塞插孔,以提供外设耳机与终端的通信。
wifi属于短距离无线传输技术,终端通过wifi模块9011可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了wifi模块1107,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1108是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1102内的软件程序和/或模块,以及调用存储在存储器1102内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1108可包括一个或多个处理核心;优选的,处理器1108可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1108中。
终端还包括给各个部件供电的电源9011(比如电池),优选的,电源可以通过电源管理系统与处理器1108逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源9011还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器1108会运行存储在存储器1102中的一个或一个以上的程序指令,从而实现上述各个方法实施例中所提供的终端侧的业务请求方法。
请参考图12,其示出了本发明一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的关于服务器侧的业务请求方法。具体来讲:
所述服务器1200包括中央处理单元(cpu)1201、包括随机存取存储器(ram)1202和只读存储器(rom)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述服务器1200还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)1206,和用于存储操作系统1213、应用程序1214和其他程序模块1215的大容量存储设备1207。
所述基本输入/输出系统1206包括有用于显示信息的显示器1208和用于用户输入信息的诸如鼠标、键盘之类的输入设备1209。其中所述显示器1208和输入设备1209都通过连接到系统总线1205的输入输出控制器1212连接到中央处理单元1201。所述基本输入/输出系统1206还可以包括输入输出控制器1212以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1212还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1207通过连接到系统总线1205的大容量存储控制器(未示出)连接到中央处理单元1201。所述大容量存储设备1207及其相关联的计算机可读介质为服务器1200提供非易失性存储。也就是说,所述大容量存储设备1207可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1207可以统称为存储器。
根据本发明的各种实施例,所述服务器1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1200可以通过连接在所述系统总线1205上的网络接口单元1211连接到网络1212,或者说,也可以使用网络接口单元1211来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述服务器侧的业务请求方法的指令。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、“the”)旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。