HTTP通信方法及装置与流程

文档序号:20839300发布日期:2020-05-22 17:17阅读:217来源:国知局
HTTP通信方法及装置与流程

本发明涉及通信技术领域,具体涉及一种http通信方法及装置。



背景技术:

随着近些年网络安全事件的频繁发生,使得用户对网络通信安全的意识越来越强。国内外的网络服务提供商都逐渐提供全站的安全通信服务,全站部署https。

但是,目前tv设备硬件老旧且性能差,对https支持比较差。例如,tv设备系统时间错误会导致https证书校验失败等问题。而tv设备对http支持比较好,但http协议未对通信信道进行加密,导致http通信的安全性不能得到保障。



技术实现要素:

本发明提供一种http通信方法及装置,能够有效提高http通信的安全性。

第一方面,本申请提供一种http通信方法,应用于用户终端,所述http通信方法包括:

生成http请求信息;

对服务器进行认证;

在所述服务器认证通过后,获取第一密钥和密钥识别码;

采用所述第一密钥,对所述http请求信息进行加密,得到加密请求信息;

将所述加密请求信息和所述密钥识别码发送给所述服务器,使所述服务器获取所述密钥识别码对应的第二密钥后,根据所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

在本发明一些实施例中,在所述对服务器进行认证之前,还包括:

生成第一公钥和对应的第一私钥;

随机生成请求序列号;

将所述第一公钥和所述请求序列号发送给所述服务器,使所述服务器生成密钥识别码,并建立所述密钥识别码与所述第二密钥的对应关系;所述密钥识别码是所述服务器根据所述第一公钥和所述请求序列号生成的,所述第二密钥是所述服务器生成第二公钥和对应的第二私钥后,根据所述第一公钥和所述第二私钥生成的。

在本发明一些实施例中,所述对服务器进行认证,具体包括:

接收所述服务器发送的签名;所述签名是所述服务器根据预置的第三私钥对所述第二密钥进行签名所得到的;

采用预置的与所述第三私钥相对应的第三公钥,对所述签名进行认证;

若所述签名认证通过,则判定所述服务器认证通过;

若所述签名认证未通过,则判定所述服务器认证未通过。

在本发明一些实施例中,所述获取第一密钥和密钥识别码,具体包括:

获取所述服务器发送的第二公钥;

根据所述第一私钥和所述第二公钥,生成所述第一密钥;

根据所述第一公钥和所述请求序列号,生成所述密钥识别码。

在本发明一些实施例中,所述方法还包括:

接收所述服务器反馈的加密响应信息;所述加密响应信息为所述服务器根据所述http请求信息生成http响应信息后,采用所述第二密钥对所述http响应信息进行加密后的信息;

采用所述第一密钥对所述加密响应信息进行解密,得到所述http响应信息。

第二方面,本发明提供一种http通信方法,应用于服务器,所述方法包括:

在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码;所述加密请求信息为所述用户终端生成http请求信息后,采用第一密钥对所述http请求信息进行加密后的信息;

获取所述密钥识别码对应的第二密钥;

采用所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

在本发明一些实施例中,所述方法还包括:

在被所述用户终端认证之前,获取所述用户终端发送的第一公钥和请求序列号;所述请求序列号为所述用户终端随机生成的序列号;

生成第二公钥和对应的第二私钥;

根据所述第一公钥和所述第二私钥生成所述第二密钥;

根据所述第一公钥和所述请求序列号生成所述密钥识别码,并建立所述密钥识别码与所述第二密钥的对应关系。

在本发明一些实施例中,所述方法还包括:

根据所述http请求信息生成http响应信息;

采用所述第二密钥对所述http响应信息进行加密,得到加密响应信息;

将所述加密响应信息发送给所述客户端,使所述客户端采用所述第一密钥对所述加密响应信息进行解密,得到所述http响应信息。

第三方面,本发明提供一种http通信装置,所述装置包括:

信息获取模块,用于生成http请求信息;

认证模块,用于对服务器进行认证;

第一密钥获取模块,用于在所述服务器认证通过后,获取第一密钥和密钥识别码;

加密模块,用于采用所述第一密钥,对所述http请求信息进行加密,得到加密请求信息;以及,

发送模块,用于将所述加密请求信息和所述密钥识别码发送给所述服务器,使所述服务器获取所述密钥识别码对应的第二密钥后,根据所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

第四方面,本发明提供一种http通信装置,所述装置包括:

获取模块,用于在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码;所述加密请求信息为所述用户终端生成http请求信息后,采用第一密钥对所述http请求信息进行加密后的信息;

第二密钥获取模块,用于获取所述密钥识别码对应的第二密钥;以及,

解密模块,用于采用所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

本发明实施例中用户终端获取http请求信息后,对服务器进行认证,并在服务器认证通过后,获取第一密钥和密钥识别码,以采用第一密钥对http请求信息进行加密,得到加密请求信息,并将加密请求信息和密钥识别码发送给服务器,服务器获取密钥识别码对应的第二密钥,并根据第二密钥对加密请求信息进行解密,得到http请求信息,以通过用户终端和服务器的加解密,有效提高http通信的安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的http通信系统的场景示意图;

图2是本发明实施例中提供的http通信方法的一个实施例流程示意图;

图3是本发明实施例中http通信方法的时序图;

图4是本发明实施例中提供的http通信方法的另一个实施例流程示意图;

图5是本发明实施例中http通信装置的一个实施例结构示意图;

图6是本发明实施例中http通信系统的另一个场景示意图;

图7是本发明实施例中提供的http通信方法的另一个实施例流程示意图;

图8是本发明实施例中提供的http通信装置的另一个实施例结构示意图;

图9是本发明实施例提供的服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有说明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

本文所使用的术语“模块”或“单元”可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本发明实施例提供一种http通信方法及装置。

请参阅图1,图1为本发明实施例所提供的http通信系统的场景示意图,该http通信系统可以包括用户终端100和服务器200,用户终端100和服务器200通过网络连接,用户终端100中集成有http通信装置,用户终端100可以访问服务器200。本发明实施例中用户终端100主要用于获取http请求信息;对服务器进行认证;在所述服务器认证通过后,获取第一密钥和密钥识别码;采用所述第一密钥,对所述http请求信息进行加密,得到加密请求信息;将所述加密请求信息和所述密钥识别码发送给所述服务器,使所述服务器获取所述密钥识别码对应的第二密钥后,根据所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

本发明实施例中,该服务器200可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本发明实施例中所描述的服务器200,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(cloudcomputing)的大量计算机或网络服务器构成。本发明的实施例中,服务器与客户端之间可通过任何通信方式实现通信,包括但不限于,基于第三代合作伙伴计划(3rdgenerationpartnershipproject,3gpp)、长期演进(longtermevolution,lte)、全球互通微波访问(worldwideinteroperabilityformicrowaveaccess,wimax)的移动通信,或基于tcp/ip协议族(tcp/ipprotocolsuite,tcp/ip)、用户数据报协议(userdatagramprotocol,udp)协议的计算机网络通信等。

可以理解的是,本发明实施例中所使用的用户终端100可以理解为客户端设备,客户端设备既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种客户端设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备。用户终端100具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的一种。

本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的服务器,或者服务器网络连接关系,例如图1中仅示出1个服务器和2个用户终端,可以理解的,该http通信系统还可以包括一个或多个其他服务器,或/且一个或多个与服务器网络连接的用户终端,具体此处不作限定。

另外,如图1所示,该http通信系统还可以包括存储器300,用于存储数据,如存储对象数据库,该对象数据库中保存有对象数据,该对象数据可以包括应用模版(例如审批模版、打卡模版等各种应用模版),文件数据(如word文件、excel文件或ppt文件等各种格式的文件),图片数据(如jpg、png、bmp等各种格式的图片)等多种数据,与之对应的,该对象数据库也可以分为多种类型的数据,例如应用数据库,文件数据库或图片数据库等。

需要说明的是,图1所示的http通信系统的场景示意图仅仅是一个示例,本发明实施例描述的http通信系统以及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着http通信系统的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。

下面结合具体实施例进行详细说明。

在本实施例中,将从http通信装置的角度进行描述,该http通信装置具体可以集成在用户终端100中。

本发明提供一种http通信方法,该http通信方法包括:获取http请求信息;对服务器进行认证;在所述服务器认证通过后,获取第一密钥和密钥识别码;采用所述第一密钥,对所述http请求信息进行加密,得到加密请求信息;将所述加密请求信息和所述密钥识别码发送给所述服务器,使所述服务器获取所述密钥识别码对应的第二密钥后,根据所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

请参阅图2,为本发明实施例中本发明实施例中http通信方法的一个实施例流程示意图,该http通信方法包括:

201、生成http请求信息。

本发明实施例中,用户终端可以通过浏览器向服务器发起请求,在用户终端发起请求时,可以先选择请求类型,如http请求类型。其中,http(hypertexttransferprotocol,超文本传输协议)为互联网上应用最为广泛的一种网络协议。根据http请求类型对应生成的请求消息为http请求信息,http请求信息一般由3个部分组成,即请求方法uri协议/版本、请求头(requestheader)和请求正文。

本实施例在用户终端发起请求时,还可以选择https请求类型,根据https请求类型对应生成的请求消息为https请求信息。用户终端可以根据选择的请求类型,生成不同类型的请求信息,进而对不同类型的请求信息进行不同的加密处理。

具体地,如图3所示,用户终端中集成的http通信装置包括业务逻辑层(hippy)和网络库。用户通过用户终端在浏览器上进行操作,用户终端根据用户操作向业务逻辑层发起请求。请求类型不同,相应的配置不同,业务逻辑层根据该请求的配置切换http加密通道或https加密通道。若业务逻辑层切换为http加密通道,则表明当前请求类型为http请求类型,若业务逻辑层切换为https加密通道,则表明当前请求类型为https请求类型。业务逻辑层在切换相应的加密通道后,将请求类型发送给网络库,如本实施例中将请求类型req_type==http发送给网络库,表明本实施例采用的请求类型为http请求类型。

202、对服务器进行认证。

本发明实施例中,用户终端生成http请求信息后,还需对其要发送的服务器进行认证,以判断服务器是否为合法的服务器。服务器认证可以通过服务器发送签名,用户终端对签名进行认证来实现,服务器将服务器中存储的第二密钥作为消息进行签名,因此在对服务器进行认证之前,还需使服务器生成第二密钥。

具体地,在所述对服务器进行认证之前,还包括:生成第一公钥和对应的第一私钥;随机生成请求序列号;将所述第一公钥和所述请求序列号发送给所述服务器,使所述服务器生成密钥识别码,并建立所述密钥识别码与第二密钥的对应关系;所述密钥识别码是所述服务器根据所述第一公钥和所述请求序列号生成的,所述第二密钥是所述服务器生成第二公钥和对应的第二私钥后,根据所述第一公钥和所述第二私钥生成的。

其中,第一公钥和对应的第一私钥是用户终端根据预设算法实时生成的一对公钥和私钥,也可以称为用户终端公钥和用户终端私钥。由于第一公钥的传递可以公开,因此用户终端可以将第一公钥发送给服务器。第二公钥和对应的第二私钥是服务器根据预设算法实时生成的一对公钥和私钥,也可以称为服务器公钥和服务器私钥。由于第二公钥的传递可以公开,因此服务器可以将第二公钥发送给用户终端。

服务器对第一公钥(用户终端公钥)和第二私钥(服务器私钥)进行ecdh密钥协商算法计算得出第二密钥,即第二密钥为服务器与用户终端协商得到的密钥,第二密钥保存在服务器侧。另外,服务器对第一公钥和请求序列号进行md5(message-digestalgorithm5,信息-摘要算法5)运算得到密钥识别码,并将密钥识别码与第二密钥对应保存,以便后续服务器能够根据密钥识别码查找相应的密钥。

服务器在计算出第二密钥后,即可向用户终端发送签名,实现用户终端对服务器的认证。具体地,所述对服务器进行认证,包括:接收所述服务器发送的签名;所述签名是所述服务器根据预置的第三私钥对所述第二密钥进行签名所得到的;采用预置的与所述第三私钥相对应的第三公钥,对所述签名进行认证;若所述签名认证通过,则判定所述服务器认证通过;若所述签名认证未通过,则判定所述服务器认证未通过。

其中,服务器中预置有第三私钥,第三私钥可以为ecdsa(椭圆曲线数字签名算法)私钥,服务器对第三私钥和第二密钥进行ecdsa计算得出签名。用户终端中预置有第三公钥,第三公钥可以为ecdsa公钥,且第三公钥与第三私钥为一对公钥和私钥。用户终端采用第三公钥对签名进行验证,即可实现用户终端对服务器的认证。

如图3所示,服务器包括接入层、网络层(redis)和服务层(svr)。用户终端的网络库在获知请求类型为http请求类型后,实时生成第一公钥cli_pub_key和对应的第一私钥cli_pri_key,并随机生成请求序列号seqnum,将第一公钥cli_pub_key和请求序列号seqnum发送至服务器的接入层。服务器的接入层实时生成第二公钥svr_pub_key和对应的第二私钥svr_pri_key,对第一公钥cli_pub_key和第二私钥svr_pri_key进行ecdh算法计算得出第二私钥s1,s1=ecdh(cli_pub_key,svr_pri_key),同时对第一公钥cli_pub_key和请求序列号seqnum进行md5计算得出密钥识别码k1,k1=md5(cli_pub_key+seqnum)。接入层将第二私钥s1与密钥识别码k1进行映射,并将s1与k1的映射关系缓存在网络层,网络层返回结果。进而,接入层对预置的第三私钥sign_key和第二密钥s1进行ecdsa计算得出签名sign1,sign1=ecdsa(sign_key,s1)。服务器的网络层将签名sign1和第二公钥svr_pub_key发送给用户终端的网络库,网络库根据预置的第三私钥verify_key验证签名sign1,并在验证通过后,继续后续步骤。

203、在所述服务器认证通过后,获取第一密钥和密钥识别码。

本发明实施例中,在服务器认证通过后,用户终端可以获取第一密钥,以便后续对生成的http请求信息进行加密处理。另外,用户终端获取密钥识别码,以便后续服务器能够根据密钥识别码查找与第一密钥相对应的第二密钥,实现对http请求信息的解密。

具体地,所述获取第一密钥和密钥识别码,具体包括:获取所述服务器发送的第二公钥;根据所述第一私钥和所述第二公钥,生成所述第一密钥;根据所述第一公钥和所述请求序列号,生成所述密钥识别码。

用户终端对第一私钥(用户终端私钥)和第二公钥(服务器公钥)进行ecdh密钥协商算法计算得出第一密钥,第一密钥为用户终端与服务器协商的密钥,第一密钥保存在用户终端侧。第一密钥和第二密钥为用户终端与服务器的共享密钥,即第一密钥与第二密钥相同。

例如,假设用户终端处的第一公钥为a,第一私钥为a,且a=a*g,服务器处的第二公钥为b,第二私钥为b,且b=b*g。用户终端将第一公钥a发送给服务器,a的传递可以公开,即攻击者可以获取a,但由于椭圆曲线的离散对数问题,所以攻击者无法通过a、g计算出a。服务器将第二公钥b发送给用户终端,b的传递可以公开,但同理攻击者也无法计算出b。服务器在获取第一公钥a后,计算第二密钥q1=b*a,用户终端在获取第二公钥b后,计算第一密钥q2=a*b,而q1=b*a=b*(a*g)=a*(b*g)=a*b=q2。由此可见,用户终端与服务器协商到一致的密钥,即第一密钥与第二密钥相同。

另外,用户终端对第一公钥和请求序列号进行md5运算得到密钥识别码,用户终端中密钥识别码的计算方法与服务器中密钥识别码的计算方法相同,因此用户终端中的密钥识别码与服务器中的密钥识别码相等。

如图3所示,用户终端的网络库对第一私钥cli_pri_key和第二公钥svr_pub_key进行ecdh计算得出第一密钥s2,s2=ecdh(cli_pri_key,svr_pub_key),对第一公钥cli_pri_key和请求序列号seqnum进行md5计算得出密钥识别码k2,k2=md5(cli_pub_key+seqnum),k2=k1。

204、采用所述第一密钥,对所述http请求信息进行加密,得到加密请求信息。

本发明实施例中,为了保证http通信安全,对http请求信息进行加密。具体地,采用第一密钥,对http请求信息的请求正文进行加密。

如图3所示,用户终端的网络库采用第一密钥s2对http请求信息的请求正文req_body进行aes(advancedencryptionstandard,高级加密标准)计算,得到加密请求信息t1,t1=aes(s2,req_body)。

需要说明的是,用户终端中还预置有固定公钥public_key_s_static,服务器中还预置有固定私钥private_key_s_static。若用户终端和服务器在协商第一密钥和第二密钥的过程中,网络出现故障,用户终端无法得到第一密钥,服务器无法得到第二密钥,则用户终端和服务器可采用固定公钥public_key_s_static和固定私钥private_key_s_static对http通信进行加解密,以确保http通信安全。

205、将所述加密请求信息和所述密钥识别码发送给所述服务器,使所述服务器获取所述密钥识别码对应的第二密钥后,根据所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

本发明实施例中,用户终端将加密请求信息作为请求正文,将密钥识别码作为请求头,共同发送给服务器。服务器在获取密钥识别码后,根据缓存的密钥识别码与第二密钥的对应关系,查找获得该密钥识别码对应的第二密钥。由于第二密钥与第一密钥相同,因此服务器可以根据第二密钥对加密请求信息进行解密,得到http信息。

如图3所示,用户终端的网络库将加密请求信息t1和密钥识别码k2发送给服务器的接入层,接入层根据密钥识别码k2从网络层中查询对应的密钥,由于k2=k1,因此k2对应的密钥即为k1对应的第二密钥s1。网络层返回第二密钥s1到接入层,接入层采用第二密钥s1解密加密请求信息t1,获得http请求信息req_body。

服务器在解密出http请求后,还需根据http请求向用户终端反馈http响应信息。同样,为了保证http通信安全,服务器反馈的http响应信息也需要进行加密。具体地,所述方法还包括:接收所述服务器反馈的加密响应信息;所述加密响应信息为所述服务器根据所述http请求信息生成http响应信息后,采用所述第二密钥对所述http响应信息进行加密后的信息;采用所述第一密钥对所述加密响应信息进行解密,得到所述http响应信息。

本发明实施例中,服务器采用第二密钥对http响应信息进行aes加密,得到加密响应信息,并将该加密响应信息发送给用户终端。由于第一密钥与第二密钥相同,因此用户终端可以采用第一密钥对加密响应信息进行解密,得到http响应信息。

如图3所示,服务器的接入层将解密得到的http请求信息req_body传输至服务层,服务层反馈http响应信息res_body至接入层。接入层采用第二密钥s1对http响应信息res_body进行aes加密,得到加密响应信息t2,t2=aes(s1,res_body)。接入层将加密响应信息t2发送至用户终端的网络库,网络库采用第一密钥s2解密加密响应信息t2,获得http响应信息res_body,并将http响应信息res_body传输至业务逻辑层。

综上,本发明实施例中用户终端获取http请求信息后,对服务器进行认证,并在服务器认证通过后,获取第一密钥和密钥识别码,以采用第一密钥对http请求信息进行加密,得到加密请求信息,并将加密请求信息和密钥识别码发送给服务器,服务器获取密钥识别码对应的第二密钥,并根据第二密钥对加密请求信息进行解密,得到http请求信息,以通过用户终端和服务器的加解密,有效提高http通信的安全性。

下面结合一具体应用场景对本发明实施例中http通信方法进行描述。

请参阅图4,为本发明实施例中http通信方法的另一个实施例流程示意图,该http通信方法应用于用户终端,该http通信方法包括:

401、生成http请求信息。

其中,用户终端根据用户在浏览器上的操作生成http请求信息。

402、实时生成ecdhclient公钥和ecdhclient私钥。

其中,ecdhclient公钥和ecdhclient私钥是用户终端生成的一对公钥和私钥。

403、将ecdhclient公钥发送给服务器,使服务器生成共享密钥,并采用预置的ecdsa私钥对共享密钥进行签名。

其中,服务器在接收到ecdhclient公钥后,生成ecdhserver公钥和ecdhserver私钥,并采用ecdh算法对ecdhclient公钥和ecdhserver私钥进行计算,得到共享密钥。

404、接收服务器发送的签名,并采用预置的ecdsa公钥对签名进行验证。

其中,用户终端中预置的ecdsa公钥与服务器中预置的ecdsa私钥为一对公钥和私钥。用户终端在签名验证通过后,即可判定服务器为合法服务器。

405、接收服务器发送的ecdhserver公钥,并根据ecdhserver公钥和ecdhclient私钥生成共享密钥。

其中,用户终端采用ecdh算法对ecdhserver公钥和ecdhclient私钥进行计算,得到共享密钥,且用户终端得到的共享密钥与服务器得到的共享密钥为相同密钥。

406、采用共享密钥对http请求信息进行加密,得到加密请求信息。

其中,http请求信息的加密算法可以为aes算法。

407、将加密请求信息发送给服务器,使服务器采用共享密钥从加密请求信息中解密出http请求信息,以根据http请求信息生成http响应信息,并采用共享密钥对http响应信息进行加密,得到加密响应信息。

其中,服务器在解密出http请求信息后,生成相应的http响应信息,并对共享密钥和http响应信息进行aes计算,得到加密响应信息,以将加密响应信息反馈给用户终端。

408、接收服务器反馈的加密响应信息。

409、采用共享密钥对加密响应信息进行解密,得到http响应信息。

本实施例采用ecdh密钥协商算法使服务器和用户终端协商出共享密钥,使用户终端在向服务器发送http请求信息时,采用共享密钥进行加密,服务器采用共享密钥进行解密,服务器在向服务器反馈http响应信息时,采用共享密钥进行加密,用户终端采用共享密钥进行解密,从而保证http通信安全。

为便于更好的实施本发明实施例提供的http通信方法,本发明实施例还提供一种基于上述http通信方法的装置。其中名词的含义与上述http通信方法中相同,具体实现细节可以参考方法实施例中的说明。

请参阅图5,图5为本发明实施例提供的http通信装置的结构示意图,其中该http通信装置可以包括:

信息获取模块501,用于生成http请求信息;

认证模块502,用于对服务器进行认证;

第一密钥获取模块503,用于在所述服务器认证通过后,获取第一密钥和密钥识别码;

加密模块504,用于采用所述第一密钥,对所述http请求信息进行加密,得到加密请求信息;以及,

发送模块505,用于将所述加密请求信息和所述密钥识别码发送给所述服务器,使所述服务器获取所述密钥识别码对应的第二密钥后,根据所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

在本发明一些实施例中,所述装置还包括生成模块,该生成模块具体用于:

生成第一公钥和对应的第一私钥;

随机生成请求序列号;

将所述第一公钥和所述请求序列号发送给所述服务器,使所述服务器生成密钥识别码,并建立所述密钥识别码与所述第二密钥的对应关系;所述密钥识别码是所述服务器根据所述第一公钥和所述请求序列号生成的,所述第二密钥是所述服务器生成第二公钥和对应的第二私钥后,根据所述第一公钥和所述第二私钥生成的。

在本发明一些实施例中,认证模块502具体用于:

接收所述服务器发送的签名;所述签名是所述服务器根据预置的第三私钥对所述第二密钥进行签名所得到的;

采用预置的与所述第三私钥相对应的第三公钥,对所述签名进行认证;

若所述签名认证通过,则判定所述服务器认证通过;

若所述签名认证未通过,则判定所述服务器认证未通过。

在本发明一些实施例中,第一密钥获取模块503具体用于:

获取所述服务器发送的第二公钥;

根据所述第一私钥和所述第二公钥,生成所述第一密钥;

根据所述第一公钥和所述请求序列号,生成所述密钥识别码。

在本发明一些实施例中,所述装置还包括响应接收模块,该响应接收模块具体用于:

接收所述服务器反馈的加密响应信息;所述加密响应信息为所述服务器根据所述http请求信息生成http响应信息后,采用所述第二密钥对所述http响应信息进行加密后的信息;

采用所述第一密钥对所述加密响应信息进行解密,得到所述http响应信息。

具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。

本发明实施例中用户终端获取http请求信息后,对服务器进行认证,并在服务器认证通过后,获取第一密钥和密钥识别码,以采用第一密钥对http请求信息进行加密,得到加密请求信息,并将加密请求信息和密钥识别码发送给服务器,服务器获取密钥识别码对应的第二密钥,并根据第二密钥对加密请求信息进行解密,得到http请求信息,以通过用户终端和服务器的加解密,有效提高http通信的安全性。

本发明实施例还提供一种http通信方法及装置。

请参阅图6,图6为本发明实施例所提供的http通信系统的场景示意图,该http通信系统可以包括用户终端600和服务器700,用户终端600和服务器700通过网络连接,服务器700中集成有http通信装置,用户终端600可以访问服务器700。本发明实施例中服务器700主要用于在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码;所述加密请求信息为所述用户终端生成http请求信息后,采用第一密钥对所述http请求信息进行加密后的信息;获取所述密钥识别码对应的第二密钥;采用所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

下面结合具体实施例进行详细说明。

在本实施例中,将从http通信装置的角度进行描述,该http通信装置具体可以集成在用户终端100中。

请参阅图7,为本发明实施例中本发明实施例中http通信方法的一个实施例流程示意图,该http通信方法包括:

701、在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码;所述加密请求信息为所述用户终端生成http请求信息后,采用第一密钥对所述http请求信息进行加密后的信息。

进一步地,所述方法还包括:

在被所述用户终端认证之前,获取所述用户终端发送的第一公钥和请求序列号;所述请求序列号为所述用户终端随机生成的序列号;

生成第二公钥和对应的第二私钥;

根据所述第一公钥和所述第二私钥生成所述第二密钥;

根据所述第一公钥和所述请求序列号生成所述密钥识别码,并建立所述密钥识别码与所述第二密钥的对应关系。

进一步地,在所述在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码之前,还包括:

根据预置的第三私钥对所述第二密钥进行签名;

将所述签名和所述第二公钥发送给所述用户终端,使所述用户终端根据预置的与所述第三私钥相对应的第三公钥对所述签名进行认证,并在所述签名认证通过时,判定所述服务器认证通过。

702、获取所述密钥识别码对应的第二密钥。

703、采用所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

进一步地,所述方法还包括:

根据所述http请求信息生成http响应信息;

采用所述第二密钥对所述http响应信息进行加密,得到加密响应信息;

将所述加密响应信息发送给所述客户端,使所述客户端采用所述第一密钥对所述加密响应信息进行解密,得到所述http响应信息。

综上,本发明实施例中用户终端获取http请求信息后,对服务器进行认证,并在服务器认证通过后,获取第一密钥和密钥识别码,以采用第一密钥对http请求信息进行加密,得到加密请求信息,并将加密请求信息和密钥识别码发送给服务器,服务器获取密钥识别码对应的第二密钥,并根据第二密钥对加密请求信息进行解密,得到http请求信息,以通过用户终端和服务器的加解密,有效提高http通信的安全性。

为便于更好的实施本发明实施例提供的http通信方法,本发明实施例还提供一种基于上述http通信方法的装置。其中名词的含义与上述http通信方法中相同,具体实现细节可以参考方法实施例中的说明。

请参阅图8,图8为本发明实施例提供的http通信装置的结构示意图,其中该http通信装置可以包括:

获取模块801,用于在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码;所述加密请求信息为所述用户终端生成http请求信息后,采用第一密钥对所述http请求信息进行加密后的信息;

第二密钥获取模块802,用于获取所述密钥识别码对应的第二密钥;以及,

解密模块803,用于采用所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

在发明一些实施例中,所述装置还包括第二密钥生成模块,第二密钥生成模块具体用于:

在被所述用户终端认证之前,获取所述用户终端发送的第一公钥和请求序列号;所述请求序列号为所述用户终端随机生成的序列号;

生成第二公钥和对应的第二私钥;

根据所述第一公钥和所述第二私钥生成所述第二密钥;

根据所述第一公钥和所述请求序列号生成所述密钥识别码,并建立所述密钥识别码与所述第二密钥的对应关系。

在发明一些实施例中,所述装置还包括签名模块,签名模块具体用于:

根据预置的第三私钥对所述第二密钥进行签名;

将所述签名和所述第二公钥发送给所述用户终端,使所述用户终端根据预置的与所述第三私钥相对应的第三公钥对所述签名进行认证,并在所述签名认证通过时,判定所述服务器认证通过。

在发明一些实施例中,所述装置还包括响应发送模块,响应发送模块具体用于:

根据所述http请求信息生成http响应信息;

采用所述第二密钥对所述http响应信息进行加密,得到加密响应信息;

将所述加密响应信息发送给所述客户端,使所述客户端采用所述第一密钥对所述加密响应信息进行解密,得到所述http响应信息。

具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。

本发明实施例中用户终端获取http请求信息后,对服务器进行认证,并在服务器认证通过后,获取第一密钥和密钥识别码,以采用第一密钥对http请求信息进行加密,得到加密请求信息,并将加密请求信息和密钥识别码发送给服务器,服务器获取密钥识别码对应的第二密钥,并根据第二密钥对加密请求信息进行解密,得到http请求信息,以通过用户终端和服务器的加解密,有效提高http通信的安全性。

本发明实施例还提供一种服务器,如图9所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:

该服务器可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图9中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中:

处理器901是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作存储介质、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。

存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作存储介质、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。

服务器还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理存储介质与处理器901逻辑相连,从而通过电源管理存储介质实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电存储介质、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该服务器还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:

在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码;所述加密请求信息为所述用户终端生成http请求信息后,采用第一密钥对所述http请求信息进行加密后的信息;获取所述密钥识别码对应的第二密钥;采用所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种http通信方法中的步骤。例如,该指令可以执行如下步骤:

生成http请求信息;对服务器进行认证;在所述服务器认证通过后,获取第一密钥和密钥识别码;采用所述第一密钥,对所述http请求信息进行加密,得到加密请求信息;将所述加密请求信息和所述密钥识别码发送给所述服务器,使所述服务器获取所述密钥识别码对应的第二密钥后,根据所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

或者,在被用户终端认证后,获取所述用户终端发送的加密请求信息和密钥识别码;所述加密请求信息为所述用户终端生成http请求信息后,采用第一密钥对所述http请求信息进行加密后的信息;获取所述密钥识别码对应的第二密钥;采用所述第二密钥对所述加密请求信息进行解密,得到所述http请求信息。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种http通信方法中的步骤,因此,可以实现本发明实施例所提供的任一种http通信方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本发明实施例所提供的一种http通信方法、装置、服务器和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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