CN107579991A - 一种对客户端进行云端防护认证的方法、服务器和客户端 - Google Patents

一种对客户端进行云端防护认证的方法、服务器和客户端 Download PDF

Info

Publication number
CN107579991A
CN107579991A CN201710899504.5A CN201710899504A CN107579991A CN 107579991 A CN107579991 A CN 107579991A CN 201710899504 A CN201710899504 A CN 201710899504A CN 107579991 A CN107579991 A CN 107579991A
Authority
CN
China
Prior art keywords
client
request information
authentication
random number
source station
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710899504.5A
Other languages
English (en)
Other versions
CN107579991B (zh
Inventor
王照旗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qianxin Technology Co Ltd
Original Assignee
Beijing Qianxin Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qianxin Technology Co Ltd filed Critical Beijing Qianxin Technology Co Ltd
Priority to CN201710899504.5A priority Critical patent/CN107579991B/zh
Publication of CN107579991A publication Critical patent/CN107579991A/zh
Application granted granted Critical
Publication of CN107579991B publication Critical patent/CN107579991B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明的实施例公开了一种对客户端进行云端防护认证的方法、服务器和客户端,该方法在判断接收的请求信息未携带Token后,生成由云端随机数、认证时间和密钥套餐封装而成的响应内容,将该响应内容发送至客户端,客户端根据该响应内容、客户端标识和客户端自身生成的客户端随机数得到新生的Token,生成携带该新生的Token的第二请求信息,将第二请求信息发送至服务器,服务器通过该Token实现对是否允许客户端访问源站进行认证。该方法通过和客户端的交互,使得发送了未携带Token的第一请求信息的客户端重新生成携带Token的第二请求信息,进而通过对第二请求信息携带的Token的对请求信息的合法性和对客户端的真实性进行检验,实现了对未携带Token的请求信息进行Token的身份验证。

Description

一种对客户端进行云端防护认证的方法、服务器和客户端
技术领域
本发明的实施例涉及网络安全技术领域,尤其是涉及一种对客户端进行云端防护认证的方法、服务器和客户端。
背景技术
在计算机身份认证中作为令牌或者暗号的Token,代表了执行某些操作的权利的对象。例如,在一些数据传输之前,要先通过Token进行暗号的核对,不同的暗号被授权不同的数据操作。
传统的基于Token进行身份验证的方法中,客户端使用用户名跟密码请求登录,服务器收到请求,去验证用户名与密码验证成功后,服务器会签发一个Token,再把这个Token发送给客户端,客户端收到Token以后可以把它存储起来,比如放在Cookie里或者LocalStorage(本地存储器)里客户端每次向服务器请求资源的时候需要带着服务器签发的Token服务器收到请求,然后去验证客户端请求里面带着的Token,如果验证成功,就向客户端返回请求的数据。因此,当客户端没有存储服务器签发的Token或者存储的Token损坏或丢失时,就无法通过Token对客户端进行身份验证。
在实现本发明实施例的过程中,发明人发现现有的基于Token进行身份验证的方法中,无法对未携带Token的请求信息进行基于Token的身份验证。
发明内容
本发明所要解决的技术问题是如何解决现有的基于Token进行身份验证的方法中,无法对未携带Token的请求信息进行基于Token的身份验证的问题。
针对以上技术问题,本发明的实施例提供了一种对客户端进行云端防护认证的方法,包括:
接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;
将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;
若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;
其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
可选地,所述若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证,包括:
根据所述加密套餐对所述第二请求信息携带的Token进行解析,得到解析结果,获取所述解析结果中的所述客户端标识;
判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系;
若判断存在所述映射关系,则判定对所述客户端访问所述源站进行认证的认证结果为不允许所述客户端访问所述源站。
可选地,所述判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系之后,还包括:
若判断不存在所述映射关系,则从所述解析结果中获取所述客户端随机数和所述第一密参,根据所述密钥套餐对所述云端随机数和所述客户端随机数进行加密,得到第二密参,判断所述第一密参是否与所述第二密参相同;
若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站;
若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站,否则,判定所述认证结果为允许所述客户端访问所述源站。
可选地,所述若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站之后,还包括:
判断对所述客户端访问所述源站进行认证的认证次数是否大于预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送所述第二请求信息为非法请求的第一提示消息,否则,向所述客户端发送所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数;
和/或,
若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站之后,还包括:
判断所述认证次数是否大于所述预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送对所述第二请求认证的认证时间超时的第二提示消息;否则,向所述客户端发送所述响应内容和所述反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数。
可选地,所述将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端之后,还包括:
若接收到所述客户端发送的所述响应内容的响应码不是所述预设响应码的第三提示消息,则判定所述认证结果为不允许所述客户端访问所述源站。
可选地,所述接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐之前,还包括:
接收所述客户端发送的原始第一请求信息,通过LVS对所述原始第一请求信息进行流量清洗,得到所述第一请求信息;
判断当前是否设置了对访问所述源站的客户端进行验证的端验证操作,若是,则判断所述第一请求信息是否携带Token,否则,允许所述客户端对所述源站进行访问。
第二方面,本发明的实施例还提供了一种对客户端进行云端防护认证的方法,包括:
向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;
生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;
根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得到新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
可选地,所述向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容之后,还包括:
解析出所述响应内容的响应码,判断所述响应码是否是预设响应码,若所述响应码不是所述预设响应码,则向所述服务器发送所述响应内容的响应码不是所述预设响应码的第三提示消息。
可选地,所述生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参之前,还包括:
若接收到所述服务器发送的所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息,则获取所述响应内容。
第三方面,本发明的实施例还提供了一种服务器,包括:
第一生成模块,用于接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;
发送模块,用于将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;
认证模块,用于若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;
其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
可选地,所述认证模块还用于根据所述加密套餐对所述第二请求信息携带的Token进行解析,得到解析结果,获取所述解析结果中的所述客户端标识;判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系;若判断存在所述映射关系,则判定对所述客户端访问所述源站进行认证的认证结果为不允许所述客户端访问所述源站。
可选地,所述认证模块还用于若判断不存在所述映射关系,则从所述解析结果中获取所述客户端随机数和所述第一密参,根据所述密钥套餐对所述云端随机数和所述客户端随机数进行加密,得到第二密参,判断所述第一密参是否与所述第二密参相同;若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站;若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站,否则,判定所述认证结果为允许所述客户端访问所述源站。
可选地,所述认证模块还用于判断对所述客户端访问所述源站进行认证的认证次数是否大于预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送所述第二请求信息为非法请求的第一提示消息,否则,向所述客户端发送所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数;
和/或,
所述认证模块还用于判断所述认证次数是否大于所述预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送对所述第二请求认证的认证时间超时的第二提示消息;否则,向所述客户端发送所述响应内容和所述反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数。
可选地,所述认证模块还用于若接收到所述客户端发送的所述响应内容的响应码不是所述预设响应码的第三提示消息,则判定所述认证结果为不允许所述客户端访问所述源站。
可选地,还包括验证模块,所述验证模块用于接收所述客户端发送的原始第一请求信息,通过LVS对所述原始第一请求信息进行流量清洗,得到所述第一请求信息;判断当前是否设置了对访问所述源站的客户端进行验证的端验证操作,若是,则判断所述第一请求信息是否携带Token,否则,允许所述客户端对所述源站进行访问。
第四方面,本发明的实施例还提供了一种客户端,包括:
获取模块,用于向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;
加密模块,用于生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;
第二生成模块,用于根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
可选地,所述获取模块还用于解析出所述响应内容的响应码,判断所述响应码是否是预设响应码,若所述响应码不是所述预设响应码,则向所述服务器发送所述响应内容的响应码不是所述预设响应码的第三提示消息。
可选地,所述获取模块还用于若接收到所述服务器发送的所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息,则获取所述响应内容。
第五方面,本发明的实施例还提供了一种服务器,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于和客户端的通信设备或者其它服务器的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行以上对应于任一项服务器执行的方法。
第六方面,本发明的实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行以上对应于任一项服务器执行的方法。
第七方面,本发明的实施例还提供了一种客户端,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于该客户端和服务器的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行以上对应于任一项客户端执行的方法。
第六方面,本发明的实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行对应于任一项客户端执行的方法。
本发明的实施例提供了一种对客户端进行云端防护认证的方法、服务器和客户端,该方法在判断接收的请求信息未携带Token后,生成由云端随机数、认证时间和密钥套餐封装而成的响应内容,将该响应内容发送至客户端,客户端根据该响应内容、客户端标识和客户端自身生成的客户端随机数得到新生的Token,生成携带该新生的Token的第二请求信息,将第二请求信息发送至服务器,服务器通过该Token实现对是否允许客户端访问源站进行认证。该方法通过和客户端的交互,使得发送了未携带Token的第一请求信息的客户端重新生成携带Token的第二请求信息,进而通过对第二请求信息携带的Token的对请求信息的合法性和对客户端的真实性进行检验,实现了对未携带Token的请求信息进行基于Token的身份验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的对客户端进行云端防护认证的方法的流程示意图;
图2是本发明另一个实施例提供对客户端进行云端防护认证的方法的流程示意图;
图3是本发明另一个实施例提供的对客户端进行云端防护认证的方法中客户端和云端服务器的交互过程示意图;
图4是本发明另一个实施例提供的云端服务器接收到客户端发送的第一请求信息或者第二请求信息后,通过Token对是否允许客户端访问源站的认证过程的流程示意图;
图5是本发明另一个实施例提供的结合LVS和WAF业务对客户端进行云端防护认证的方法的流程示意图;
图6是本发明另一个实施例提供的服务器的结构框图;
图7是本发明另一个实施例提供的客户端的结构框图;
图8是本发明另一个实施例提供的服务器的实体结构示意图;
图9是本发明另一个实施例提供的客户端的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本实施例提供的一种对客户端进行云端防护认证的方法的流程示意图,参见图1,该方法包括:
101:接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;
102:将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;
103:若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;
其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
需要说明的是,本实施例提供的方法由服务器执行,例如,由云端服务器或代理服务器(如Nginx)执行。客户端可以为手机、电脑或者网络电视,本实施例对此不做具体限制。
第一请求信息至少携带了要访问的源站的标识信息。云端随机数、认证时间和密钥套餐由接收该第一请求信息的服务器生成,其中,密钥套餐中至少包括了加密的算法、加密的密钥(参数),认证时间为人为设定的对客户端访问源站进行认证所耗费的时间。服务器将云端随机数、认证时间和密钥套餐封装为具有该预设响应码的响应内容,并将该响应内容发送至客户端。客户端根据该响应内容、客户端本身的客户端标识和客户端生成的客户端随机数得到新生的Token,并生成携带该新生的Token的第二请求信息,将该第二请求信息发送给服务器。对客户端访问源站进行认证即对是否允许客户端访问源站进行判断。
服务器接收到该第二请求信息后,即可通过第二请求信息携带的Token对该客户端访问源站进行认证。其中,第二请求信息携带的Token根据响应内容(云端随机数、认证时间和密钥套餐)、客户端随机数、客户端标识生成,具体来说,第二请求信息携带的Token的生成过程包括:首先,根据密钥套餐确定出加密的算法和密钥,然后通过该加密的算法和密钥,对认证时间、客户端标识、客户端随机数,以及由云端随机数和客户端随机数生成的第一密参进行加密得到第二请求信息携带的Token。
本实施例提供了一种对客户端进行云端防护认证的方法,该方法在判断接收的请求信息未携带Token后,生成由云端随机数、认证时间和密钥套餐封装而成的响应内容,将该响应内容发送至客户端,客户端根据该响应内容、客户端标识和客户端自身生成的客户端随机数得到新生的Token,生成携带该新生的Token的第二请求信息,将第二请求信息发送至服务器,服务器通过该Token实现对是否允许客户端访问源站进行认证。该方法通过和客户端的交互,使得发送了未携带Token的第一请求信息的客户端重新生成携带Token的第二请求信息,进而通过对第二请求信息携带的Token的对请求信息的合法性和对客户端的真实性进行检验,实现了对未携带Token的请求信息进行基于Token的身份验证。
更进一步地,在上述实施例的基础上,所述若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证,包括:
根据所述加密套餐对所述第二请求信息携带的Token进行解析,得到解析结果,获取所述解析结果中的所述客户端标识;
判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系;
若判断存在所述映射关系,则判定对所述客户端访问所述源站进行认证的认证结果为不允许所述客户端访问所述源站。
需要说明的是,对Token解析的过程是根据所述密钥套餐确定加密算法和密钥,然后通过加密算法和密钥对该Token进行解析,得到认证时间、第一密参、客户端标识和客户端随机数的过程,即对该Token进行解析的解析结果包括认证时间、第一密参、客户端标识和客户端随机数。
服务器得到解析结果后,从解析结果中得到客户端标识,然后判断服务器中是否存储了该客户端标识和该Token的映射关系。为了排查虚假客户端盗用现有的客户端标识和Token对源站进行访问,本实施例中从Token中解析出客户端标识,在检测到服务器中存在该客户端标识和第二请求信息中携带的Token的映射关系后,判定对该客户端的认证结果为不允许该客户端访问源站,即对第二请求信息进行拦截。
本实施例提供的对客户端进行云端防护认证的方法中,服务器接收到客户端生成的第二请求信息后,对该第二请求信息携带的Token和该客户端标识的映射关系进行检验,对虚假的客户端进行排查,避免了虚假客户端对源站访问带来的安全威胁。
更进一步地,在上述各实施例的基础上,所述判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系之后,还包括:
若判断不存在所述映射关系,则从所述解析结果中获取所述客户端随机数和所述第一密参,根据所述密钥套餐对所述云端随机数和所述客户端随机数进行加密,得到第二密参,判断所述第一密参是否与所述第二密参相同;
若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站;
若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站,否则,判定所述认证结果为允许所述客户端访问所述源站。
进一步地,所述实际认证时间为本次接收到所述第二请求信息的第一时刻到判断所述第一密参和所述第二密参相同的第二时刻之间的时间段。
相应地,若判断服务器中不存在该Token和该客户端标识的映射关系,则服务器根据密钥套餐确定的加密的算法和密钥,对客户端随机数和云端随机数进行加密,得到第二密参,将该第二密参和客户端发送的第一密参进行比较,判断第一密参和第二密参是否相同。
服务器通过对第二密参和第一密参是否相同,判断出第二请求信息是否为非法请求。当第二密参和第一密参不相同时,则判定第二请求信息是非法请求信息,对该客户端的认证结果为不允许该客户端访问源站,对该第二请求信息进行拦截。
相应地,若判断第二密参和第一密参相同,则需要对实际认证时间是否超过认证时间进行检验。若实际认证时间超过了认证时间,则认为对第二请求信息的认证无效,丢弃该第二请求信息,即不允许该客户端访问源站。若实际认证时间没有超过(小于或者等于)认证时间,则允许该客户端访问源站。
本实施例提供的对客户端进行云端防护认证的方法中,服务器判断不存在客户端标识和Token之间的映射关系后,对第二请求信息的合法性进行检验,排查了对源站的非法访问。
更进一步地,在上述各实施例的基础上,
所述若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站之后,还包括:
判断对所述客户端访问所述源站进行认证的认证次数是否大于预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送所述第二请求信息为非法请求的第一提示消息,否则,向所述客户端发送所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数;
和/或,
若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站之后,还包括:
判断所述认证次数是否大于所述预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送对所述第二请求认证的认证时间超时的第二提示消息;否则,向所述客户端发送所述响应内容和所述反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数。
为了提高认证结果的准确性,本实施例提供的方法中,服务器在判断到第一密参和第二密参不相同,或者,在判断实际认证时间超过认证时间后,向客户端发送重新对客户端访问所述源站进行认证的反馈信息和响应内容,客户端接收到该反馈信息后,重新根据服务器发送的响应内容对客户端访问源站进行认证。
需要说明的是,认证次数即为服务器接收到第二请求信息的次数,其中,无论客户端接收到响应内容(对应于第一请求信息未携带Token的情况),还是接收到响应内容和反馈信息(对应于对第二请求信息的校验失败,且认证次数没有超过预设认证次数的情况),其再次向服务器发送的请求信息均为第二请求信息。预设认证次数为人为根据经验规定的次数,本实施例对此不做限制。第一提示消息和第二提示消息可以是以弹幕的方式出现在客户端,也可以也短信的方式发送到客户端,本实施例对此不作具体限制。
在判断第一密参与第二密参不相同的情况下,如果认证次数大于预设认证次数,则不允许该客户端访问源站,对该第二请求信息进行拦截,并向客户端发送相应的第二提示信息。若果认证次数小于或等于预设认证次数,则向客户端发送响应内容和反馈信息,客户端接收到该响应内容和反馈信息后,重新生成第二请求信息,并将第二请求信息发送到服务器,再次对是否允许客户端访问源站进行认证。
同理,在判断实际认证时间超过认证时间的情况下,如果认证次数大于预设认证次数,则不允许该客户端访问源站,对该第二请求信息进行拦截,并向客户端发送相应的第三提示信息。若果认证次数小于或等于预设认证次数,则向客户端发送响应内容和反馈信息,客户端接收到该响应内容和反馈信息后,重新生成第二请求信息,并将第二请求信息发送到服务器,再次对是否允许客户端访问源站进行认证。
本实施例提供的对客户端进行云端防护认证的方法中,当服务器检测到第一密参和第二密参不相同,或者,实际认证时间超过认证时间后,向客户端返回响应内容和反馈信息,以重新对客户端访问源站进行认证,避免了由于客户端或者服务器本身偶然的失误造成的认证结果的错误,提高了认证结果的准确性。
更进一步地,在上述各实施例的基础上,所述将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端之后之后,还包括:
若接收到所述客户端发送的所述响应内容的响应码不是所述预设响应码的第三提示消息,则判定所述认证结果为不允许所述客户端访问所述源站。
需要说明的是,预设响应码为预先设定的字符,服务器将云端随机数、认证时间和密钥套餐封装为具有该预设响应码的响应内容,并将该响应内容发送至客户端,客户端对该响应内容进行解析得到响应码,若客户端解析出的响应码为预设响应码,则根据该响应内容、客户端本身的客户端标识和客户端生成的客户端随机数得到新生的Token,并生成携带该新生的Token的第二请求信息,将该第二请求信息发送给服务器。
客户端接收到响应内容后对响应码是否是预设响应码进行判断。例如,若规定预设响应码为494(可理解的是,预设响应码还可以由其它字符构成,本实施例对此不做具体限制),若客户端解析出的响应码不是494,则生成响应内容的响应码不是预设响应码的第三提示消息,并将该第三提示消息发送至服务器,服务器接收到该响应之后,判定认证结果为不允许所述客户端访问所述源站(即对该客户端发送的第一请求信息进行拦截)。
本实施例提供了一种对客户端进行云端防护认证的方法,该方法将响应内容发送至客户端后,若客户端检测到该响应内容的响应码不是预设响应码,则向服务器发送第三提示消息,使得服务器即使对第一请求信息进行拦截。
更进一步地,在上述各实施例的基础上,所述接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐之前,还包括:
接收所述客户端发送的原始第一请求信息,通过LVS对所述原始第一请求信息进行流量清洗,得到所述第一请求信息;
判断当前是否设置了对访问所述源站的客户端进行验证的端验证操作,若是,则判断所述第一请求信息是否携带Token,否则,允许所述客户端对所述源站进行访问。
LVS(Linux Virtual Server,虚拟服务器),在接收到原始第一请求信息的数据包时,通过LVS对该数据包进行流量清洗,去除非法或者恶意的流量,或者将非法的流量合法化后,得到第一请求信息,该过程防止了恶意流量对服务器的攻击,增强了信息传输的安全性。
需要说明的是,端验证操作指的是通过接收到的请求信息(第一请求信息或第二请求信息)携带的Token来验证是否允许客户端访问源站的操作。是否进行端验证操作可以人为设定。若第一请求信息携带了Token,则按照上述各实施例提供的方法对是否允许客户端访问源站进行验证即可。若当前没有设置端验证操作,则允许客户端直接对源站进行访问。
进一步地,所述判断当前是否设置了对访问所述源站的客户端进行验证的端验证操作,若是,则判断所述第一请求信息是否携带Token之后,还包括:
若判断所述第一请求信息携带Token,则根据所述第一请求信息携带的Token解析出所述客户端标识;
判断是否存在所述客户端标识和所述第一请求信息携带的Token之间的映射关系,若存在,则判定所述认证结果为不允许所述客户端访问所述源站,否则,判定所述认证结果为允许所述客户端访问所述源站。
可理解的是,通过第一请求信息携带的Token对是否允许客户端访问源站进行认证的方法可以根据具体的应用场景进行设置,本实施例对如何通过第一请求信息携带的Token对是否允许客户端访问源站进行认证不做具体限制。
本实施例提供的对客户端进行云端防护认证的方法中,流量清洗避免了非法或恶意的攻击,通过端验证操作工作人员可以根据实际的需要决定是否开启端验证操作,达到了对源站访问的灵活配置,以及对访问源站的流量的控制。
第二方面,图2是本实施例提供的一种对客户端进行云端防护认证的方法的流程示意图,参见图2,该方法包括:
201:向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;
202:生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;
203:根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得到新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
需要说明的是,本实施例提供的方法由客户端(例如,手机、电脑或者网络电视)执行。本实施例提供的方法和上述各实施例提供的方法结合,共同实现对客户端进行云端防护认证过程。
当客户端发送第一请求信息后,若第一请求信息未携带Token,则服务器会向客户端发送响应内容。客户端在接收到响应内容后,根据响应内容、以及客户端标识和客户端随机数得到新生的Token,进而生成携带该新生的Token的第二请求信息,将第二请求信息发送至服务器,对该客户端访问源站的进行认证。
本实施例提供了一种对客户端进行云端防护认证的方法,该方法中客户端接收到服务器发送的响应内容后,根据该响应内容、客户端标识和客户端自身生成的客户端随机数得到新生的Token,生成携带该新生的Token的第二请求信息,将第二请求信息发送至服务器。服务器通过该新生的Token实现对客户端访问源站的认证。该方法使得发送了未携带Token的第一请求信息的客户端重新生成携带新生的Token的第二请求信息,进而通过对第二请求信息携带的Token的验证,对请求信息的合法性和对客户端的真实性进行检验,实现了对未携带Token的请求信息进行基于Token的身份验证。
更进一步地,在上述实施例的基础上,所述向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容之后,还包括:
解析出所述响应内容的响应码,判断所述响应码是否是预设响应码,若所述响应码不是所述预设响应码,则向所述服务器发送所述响应内容的响应码不是所述预设响应码的第三提示消息。
客户端接收到响应内容后,对响应内容的响应码进行验证,若该响应码不是预设响应码,则向服务器发送第三提示消息,使得服务器及时根据该第三提示消息及时得到对客户端访问源站的认证结果。
本实施例提供了一种对客户端进行云端防护认证的方法,客户端在检测到响应码不是预设响应码后,及时向客户端发送第三提示消息,以使服务器及时得到客户端访问源站的认证结果。
更进一步地,在上述各实施例的基础上,所述生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参之前,还包括:
若接收到所述服务器发送的所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息,则获取所述响应内容。
本实施例提供了一种对客户端进行云端防护认证的方法,客户端在接收到响应内容后,生成作为第二请求信息携带的Token,在接收到反馈信息的情况下,也生成作为第二请求信息携带的Token,以保证服务器得到认证结果的准确性。
作为一种具体的实施例,图3为本实施例提供的对客户端进行云端防护认证的方法中客户端和云端服务器的交互过程示意图。参见图3,该过程包括(图3中未示出各个步骤的标号):
S1、客户端301发起GET/POST初次请求(即客户端主动触发得到请求信息,即上述实施例中的第一请求信息)。
S2:云端服务器302处理该初次请求(第一请求信息):
S21:云端收到请求后,若开启了云端认证(端验证操作),且请求信息中不存在Token,则生成云端随机数、认证时间和密钥套餐;
S22:将云端随机数、认证时间和密钥套餐封装为响应内容,例如,设定响应码为494(预设响应码,当然该预设响应码还可以为其他字符,本实施例对此不做具体限制);
S23:封装响应内容或者响应Header里包含云端随机数、认证时间和密钥套餐(可选择加密),进行响应。
S3:客户端301处理响应:
S31:解析响应内容,判断响应码是否是494(预设响应码),如果是,则通过密钥套餐选择客户端对应的域名的加密的密钥;
S32:解析响应内容,提取云端随机数、认证时间和密钥套餐;
S33:客户端生成客户端随机数和客户端唯一标识(客户端标识);
S34:客户端将客户端随机数和云端随机数做加密形成密参(第一密参);
S35:根据加密套餐选择加密的密钥和加密的算法;
S36:使用密钥加密(密参、客户端随机数、客户端唯一标识、认证时间)生成Token;
S37:生成Token后,客户端携带Token、云端随机数和密钥套餐,以及GET/POST请求内容进行二次请求(第二请求信息)。
S4:云端处理二次请求:
S41:云端判断存在Token,解析出云端随机数和密钥套餐;
S42:通过密钥套餐选择客户端对应的域名的加密的密钥;
S43:使用密钥解析Token(密参、客户端随机数、客户端唯一标识、认证时间);
S44:使用客户端随机数和云端随机数做加密形成密参(第二密参)与Token中的密参(第一密参)比对,若不等,则判定请求非法;
S45:若密参比对成功(第一密参和第二密参相等),则判断认证时间是够超时,若超时,则此次请求丢弃,否则,认证通过,正常请求;
S46:认证通过后,客户端可正常访问源站。
具体地,图4示出了云端服务器302接收到客户端发送的第一请求信息或者第二请求信息后,通过Token对是否允许客户端访问源站的认证过程,该过程包括:
接收到客户端发送的第一请求信息。
是否开启了端验证操作,若否则允许访问源站,若是,则判断第一请求信息是否携带了Token。
若判断第一请求信息没有携带Token,则将生成的云端随机数、认证时间和密钥套餐封装为预设响应码为494的响应内容,将该响应内容发送到客户端。
当云端服务器302接收到客户端发送的第二请求信息和第二请求信息携带的Token后,或者判断第一请求信息携带了Token后,解析出该Token中的客户端标识,判断是否存在该客户端标识和该Token的映射关系。
若存在该映射关系,则对该请求信息进行拦截,若不存在该映射关系,则解析出该Token中的密参,判断对该密参的校验(第一密参和第二密参是否相等)是否通过。
若通过(第一密参等于第二密参),则判断对该Token的实际认证时间是否超过认证时间,若实际认证时间没有超过认证时间,则允许该客户端访问源站。
若对密参的校验不通过或者实际认证时间超过认证时间,均判断认证次数是否大于预设认证次数,若是,则拦截该请求信息,否则,发送响应内容和重新对是否允许该客户端访问所述源站进行认证的反馈信息到客户端。
更进一步地,上述方法还可以和具体的LVS和WAF业务结合,图5示出了结合LVS和WAF业务对客户端进行云端防护认证的方法中客户端和云端服务器的交互过程示意图,该过程包括:
S1’、客户端301发起GET/POST初次请求(即客户端主动触发得到请求信息,即上述实施例中的第一请求信息)。
S2’:云端服务器302处理该初次请求(第一请求信息):
S21’:云端收到请求后,进入LVS进行DDOS流量清洗;
S22’:LVS进行流量清洗后,进入CACHE缓存进行处理;
S23’:在CACHE缓存中,若开启了云端认证(端验证操作),且请求信息中不存在Token,则生成云端随机数、认证时间和密钥套餐;
S24’:将云端随机数、认证时间和密钥套餐封装为响应内容,响应码为494(即预设响应码);
S25’:封装响应内容或者响应Header里包含云端随机数、认证时间和密钥套餐(可选择加密),进行响应。
S3’:客户端301处理响应:
S31’:解析响应内容,判断响应码是否是494(预设响应码),如果是,则通过密钥套餐选择客户端对应的域名的加密的密钥;
S32’:解析响应内容,提取云端随机数、认证时间和密钥套餐;
S33’:客户端生成客户端随机数和客户端唯一标识(客户端标识);
S34’:客户端将客户端随机数和云端随机数做加密形成密参(第一密参);
S35’:根据加密套餐选择加密的密钥和加密的算法;
S36’:使用密钥加密(密参、客户端随机数、客户端唯一标识、认证时间)生成Token;
S37’:生成Token后,客户端携带Token、云端随机数和密钥套餐,以及GET/POST请求内容进行二次请求(第二请求信息)。
S4’:云端处理二次请求(第二请求信息):
S41’:在CACHE缓存中,判断存在Token,解析出云端随机数和密钥套餐;
S42’:通过密钥套餐选择客户端对应的域名的加密的密钥;
S43’:使用密钥解析Token(密参、客户端随机数、客户端唯一标识、认证时间);
S44:使用客户端唯一标识和Token,查询是否存在这一映射值(映射关系);
S45’:若CACHE中存在这一映射值,则认证不通过,拦截该请求信息或者重新认证;
S46’:使用客户端随机数和云端随机数做加密形成密参(第二密参)与Token中的密参(第一密参)比对,若不等,则判定请求非法;
S47’:若密参比对成功(第一密参和第二密参相等),则判断认证时间是够超时,若超时,则此次请求丢弃,否则,认证通过,正常请求;
S48’:认证通过后,客户端可正常访问源站。
例如,云端防护认证流程:
每个用户申请端验证时,会颁发一个私有唯一的key(用于生成访问Token及对称加解密私钥),访问Token生成算法包括:
A1:随机生成32位字符串(由0-9,a-f组成),得到cloud-random(云端随机数);
A2:随机选择密钥参数(密钥参数可以是数组,数组里为密钥参数),以及密钥标识位(0-9或其他可标识的字符),得到密钥套餐;
A3:获取当前时间time(秒数)(认证时间);
A4:将A1,A2,A3生成的cloud-random,密钥套餐,认证时间,包装成Get/POST响应内容;
A5:将步骤A4中的响应内容返回给客户端。
其中,对称加解密算法中,对称加密算法可采用AES_128_CBC,密钥参数长度为16位。
云端防护返回中,当请求需要检查授权且检查未通过时,云端防护返回指定状态码,并带cloud-random、密钥套餐和认证时间,返回响应内容,可以是json串。
需要说明的是,状态码(即预设响应码)可以是494或其他,cloud-random(云端随机数)是32位随机数,密钥套餐包含密钥参数(密钥参数可以是数组)和密钥标识位。
例如:用户的密钥参数为83582d2f2g1ksowu9146la2580ewhwka。
客户端验证的流程包括:
B1:接收云端服务器返回的状态码(即预设响应码)为494或其他状态码的响应内容,解析出云端随机数、密钥套餐、认证时间等;
B2:生成客户端随机数client-random;
B3:获取客户端唯一标识;
B4:使用B1、B2中的云端随机数、客户端随机数以及用户颁发的用户私钥,根据密钥标识位从密钥套餐的密钥数组中选择密钥参数(密钥数组参数)。使用密钥参数和用户私钥,通过异或的算法或者其他算法生成加密密钥,云端随机数和客户端随机数使用加密套餐中的算法生成一个密参(第一密参);
B5:根据B4中的密参和用户私钥计算得到加密密钥63alsero926hay2ka7hd8ka1ndh4ka81;
B6:用B5的加密密钥加密密参、客户端唯一标识,认证时间,形成token,发起第二次请求,请求中需包括token,客户端随机数,云端随机数以及密钥数组和标识等。
对第二次请求的云端验证包括:
C1:解析第二次请求的Token;
C2:根据用户私钥形成加密密钥来解析token,并提取客户端随机数等校验密参,认证时间,以及客户端唯一标识等;
C3:最终通过后放行。
本实施例提供了对客户端进行云端防护认证的方法,使得发送了未携带Token的第一请求信息的客户端重新生成作为第二请求信息携带的Token,进而通过对第二请求信息携带的Token的验证,对请求信息的合法性和对客户端的真实性进行检验,实现了对未携带Token的请求信息进行基于Token的身份验证。
图6示出了本发明的实施例提供的一种服务器的结构框图,参见图6,该服务器包括第一生成模块601、发送模块602和认证模块603,其中,
第一生成模块601,用于接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;
发送模块602,用于将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;
认证模块603,用于若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;
其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
本实施例提供的服务器适用于上述实施例中提供的对客户端进行云端防护认证的方法中服务器执行的方法,在此不再赘述。
本发明的实施例提供了一种服务器,该服务器该方法在判断接收的请求信息未携带Token后,生成由云端随机数、认证时间和密钥套餐封装而成的响应内容,将该响应内容发送至客户端,客户端根据该响应内容、客户端标识和客户端自身生成的客户端随机数得到新生的Token,生成携带该新生的Token的第二请求信息,将第二请求信息发送至服务器,服务器通过该Token实现对是否允许客户端访问源站进行认证。该服务器通过和客户端的交互,使得发送了未携带Token的第一请求信息的客户端重新生成携带Token的第二请求信息,进而通过对第二请求信息携带的Token的对请求信息的合法性和对客户端的真实性进行检验,实现了对未携带Token的请求信息进行基于Token的身份验证。
图7示出了本发明的实施例提供的一种客户端的结构框图,参见图7,该客户端包括获取模块701、加密模块702和第二生成模块703,其中,
获取模块701,用于向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;
加密模块702,用于生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;
第二生成模块703,用于根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
本实施例提供的服务器适用于上述实施例中提供的对客户端进行云端防护认证的方法中客户端执行的方法,在此不再赘述。
本实施例提供了一种客户端,该客户端接收到服务器发送的响应内容后,根据该响应内容、客户端标识和客户端自身生成的客户端随机数得到新生的Token,生成携带该新生的Token的第二请求信息,将第二请求信息发送至服务器。服务器通过该新生的Token实现对客户端访问源站的认证。通过服务器和客户端的交互,使得发送了未携带Token的第一请求信息的客户端重新生成携带新生的Token的第二请求信息,进而通过对第二请求信息携带的Token的验证,对请求信息的合法性和对客户端的真实性进行检验,实现了对未携带Token的请求信息进行基于Token的身份验证。
图8是示出本实施例提供的服务器的实体结构示意图。
参照图8,所述服务器包括:处理器(processor)801、存储器(memory)802、通信接口(Communications Interface)803和总线804;
其中,
所述处理器801、存储器802、通信接口803通过所述总线804完成相互间的通信;
所述通信接口803用于该服务器和客户端的通信设备或者其它服务器(例如,源站)的通信设备之间的信息传输;
所述处理器801用于调用所述存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
图9是示出本实施例提供的客户端的实体结构示意图。
参照图9,所述客户端包括:处理器(processor)901、存储器(memory)902、通信接口(Communications Interface)903和总线904;
其中,
所述处理器901、存储器902、通信接口903通过所述总线904完成相互间的通信;
所述通信接口903用于该客户端和服务器的通信设备之间的信息传输;
所述处理器901用于调用所述存储器902中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得到新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得到新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得到新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。

Claims (22)

1.一种对客户端进行云端防护认证的方法,其特征在于,包括:
接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;
将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;
若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;
其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
2.根据权利要求1所述的方法,其特征在于,所述若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证,包括:
根据所述加密套餐对所述第二请求信息携带的Token进行解析,得到解析结果,获取所述解析结果中的所述客户端标识;
判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系;
若判断存在所述映射关系,则判定对所述客户端访问所述源站进行认证的认证结果为不允许所述客户端访问所述源站。
3.根据权利要求2所述的方法,其特征在于,所述判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系之后,还包括:
若判断不存在所述映射关系,则从所述解析结果中获取所述客户端随机数和所述第一密参,根据所述密钥套餐对所述云端随机数和所述客户端随机数进行加密,得到第二密参,判断所述第一密参是否与所述第二密参相同;
若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站;
若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站,否则,判定所述认证结果为允许所述客户端访问所述源站。
4.根据权利要求3所述的方法,其特征在于,
所述若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站之后,还包括:
判断对所述客户端访问所述源站进行认证的认证次数是否大于预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送所述第二请求信息为非法请求的第一提示消息,否则,向所述客户端发送所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数;
和/或,
若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站之后,还包括:
判断所述认证次数是否大于所述预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送对所述第二请求认证的认证时间超时的第二提示消息;否则,向所述客户端发送所述响应内容和所述反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数。
5.根据权利要求2所述的方法,其特征在于,所述将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端之后,还包括:
若接收到所述客户端发送的所述响应内容的响应码不是所述预设响应码的第三提示消息,则判定所述认证结果为不允许所述客户端访问所述源站。
6.根据权利要求1所述的方法,其特征在于,所述接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐之前,还包括:
接收所述客户端发送的原始第一请求信息,通过LVS对所述原始第一请求信息进行流量清洗,得到所述第一请求信息;
判断当前是否设置了对访问所述源站的客户端进行验证的端验证操作,若是,则判断所述第一请求信息是否携带Token,否则,允许所述客户端对所述源站进行访问。
7.一种对客户端进行云端防护认证的方法,其特征在于,包括:
向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;
生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;
根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得到新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
8.根据权利要求7所述的方法,其特征在于,所述向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容之后,还包括:
解析出所述响应内容的响应码,判断所述响应码是否是预设响应码,若所述响应码不是所述预设响应码,则向所述服务器发送所述响应内容的响应码不是所述预设响应码的第三提示消息。
9.根据权利要求8所述的方法,其特征在于,所述生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参之前,还包括:
若接收到所述服务器发送的所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息,则获取所述响应内容。
10.一种服务器,其特征在于,包括:
第一生成模块,用于接收所述客户端发送的访问源站的第一请求信息,若所述第一请求信息未携带Token,则生成云端随机数、认证时间和密钥套餐;
发送模块,用于将所述云端随机数、所述认证时间和所述密钥套餐封装为响应内容,将所述响应内容发送至所述客户端;
认证模块,用于若接收到所述客户端发送的访问所述源站的第二请求信息,则根据所述云端随机数、所述密钥套餐和所述第二请求信息携带的Token对所述客户端访问所述源站进行认证;
其中,所述第二请求信息携带的Token为所述客户端根据所述密钥套餐对所述认证时间、所述客户端对应的客户端标识、所述客户端生成的客户端随机数和所述客户端生成的第一密参进行加密得到,所述第一密参根据所述客户端随机数和所述云端随机数生成。
11.根据权利要求10所述的服务器,其特征在于,所述认证模块还用于根据所述加密套餐对所述第二请求信息携带的Token进行解析,得到解析结果,获取所述解析结果中的所述客户端标识;判断是否存在所述客户端标识和所述第二请求信息携带的Token之间的映射关系;若判断存在所述映射关系,则判定对所述客户端访问所述源站进行认证的认证结果为不允许所述客户端访问所述源站。
12.根据权利要求11所述的服务器,其特征在于,所述认证模块还用于若判断不存在所述映射关系,则从所述解析结果中获取所述客户端随机数和所述第一密参,根据所述密钥套餐对所述云端随机数和所述客户端随机数进行加密,得到第二密参,判断所述第一密参是否与所述第二密参相同;若所述第一密参与所述第二密参不相同,则判定所述第二请求信息为非法请求信息,所述认证结果为不允许所述客户端访问所述源站;若所述第一密参与所述第二密参相同,则判断对所述第二请求信息进行认证的实际认证时间是否超过所述认证时间,若是,则判定对所述第二请求信息的认证无效,所述认证结果为不允许所述客户端访问所述源站,否则,判定所述认证结果为允许所述客户端访问所述源站。
13.根据权利要求12所述的服务器,其特征在于,
所述认证模块还用于判断对所述客户端访问所述源站进行认证的认证次数是否大于预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送所述第二请求信息为非法请求的第一提示消息,否则,向所述客户端发送所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数;
和/或,
所述认证模块还用于判断所述认证次数是否大于所述预设认证次数,若是,判定所述认证结果为不允许所述客户端访问所述源站,并向所述客户端发送对所述第二请求认证的认证时间超时的第二提示消息;否则,向所述客户端发送所述响应内容和所述反馈信息;
其中,所述认证次数为接收到所述第二请求信息的次数。
14.根据权利要求11中所述的服务器,其特征在于,所述认证模块还用于若接收到所述客户端发送的所述响应内容的响应码不是所述预设响应码的第三提示消息,则判定所述认证结果为不允许所述客户端访问所述源站。
15.根据权利要求10所述的服务器,其特征在于,还包括验证模块,所述验证模块用于接收所述客户端发送的原始第一请求信息,通过LVS对所述原始第一请求信息进行流量清洗,得到所述第一请求信息;判断当前是否设置了对访问所述源站的客户端进行验证的端验证操作,若是,则判断所述第一请求信息是否携带Token,否则,允许所述客户端对所述源站进行访问。
16.一种客户端,其特征在于,包括:
获取模块,用于向服务器发送访问源站的第一请求信息后,若接收服务器发送的由云端随机数、认证时间和密钥套餐封装成的响应内容,获取所述响应内容;
加密模块,用于生成客户端随机数、获取客户端标识、从所述响应内容中获取所述云端随机数、所述认证时间和所述密钥套餐,并根据所述密钥套餐对所述云端随机数和客户端随机数进行加密,得到第一密参;
第二生成模块,用于根据所述密钥套餐对所述第一密参、所述客户端随机数、所述认证时间和所述客户端标识进行加密,得新生的Token,生成携带所述新生的Token的请求信息,作为第二请求信息,将所述第二请求信息、发送至所述服务器。
17.根据权利要求16所述的客户端,其特征在于,所述获取模块还用于解析出所述响应内容的响应码,判断所述响应码是否是预设响应码,若所述响应码不是所述预设响应码,则向所述服务器发送所述响应内容的响应码不是所述预设响应码的第三提示消息。
18.根据权利要求17所述的客户端,其特征在于,所述获取模块还用于若接收到所述服务器发送的所述响应内容和重新对所述客户端访问所述源站进行认证的反馈信息,则获取所述响应内容。
19.一种服务器,其特征在于,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于和客户端的通信设备或者其它服务器的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一项所述的方法。
20.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行权利要求1至6任一项所述的方法。
21.一种客户端,其特征在于,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于该客户端和服务器的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求7至9任一项所述的方法。
22.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行权利要求7至9任一项所述的方法。
CN201710899504.5A 2017-09-28 2017-09-28 一种对客户端进行云端防护认证的方法、服务器和客户端 Active CN107579991B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710899504.5A CN107579991B (zh) 2017-09-28 2017-09-28 一种对客户端进行云端防护认证的方法、服务器和客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710899504.5A CN107579991B (zh) 2017-09-28 2017-09-28 一种对客户端进行云端防护认证的方法、服务器和客户端

Publications (2)

Publication Number Publication Date
CN107579991A true CN107579991A (zh) 2018-01-12
CN107579991B CN107579991B (zh) 2021-03-02

Family

ID=61039474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710899504.5A Active CN107579991B (zh) 2017-09-28 2017-09-28 一种对客户端进行云端防护认证的方法、服务器和客户端

Country Status (1)

Country Link
CN (1) CN107579991B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108449358A (zh) * 2018-04-10 2018-08-24 肖恒念 基于云的低延时安全计算方法
CN109858201A (zh) * 2018-12-29 2019-06-07 北京奇安信科技有限公司 一种安全软件模式切换授权方法、客户端及服务端
CN110164004A (zh) * 2019-05-16 2019-08-23 东风小康汽车有限公司重庆分公司 一种智能钥匙的激活方法、系统、控制装置和客户端
CN110324287A (zh) * 2018-03-31 2019-10-11 华为技术有限公司 接入认证方法、装置及服务器
CN110430193A (zh) * 2019-08-06 2019-11-08 广州虎牙科技有限公司 信息验证方法、装置、服务器及存储介质
CN110912689A (zh) * 2019-10-30 2020-03-24 苏州科达科技股份有限公司 一种唯一值的生成、验证方法及系统
CN111314061A (zh) * 2019-10-29 2020-06-19 苏州科达科技股份有限公司 一种随机数的生成方法及系统
CN111917714A (zh) * 2020-06-18 2020-11-10 云南电网有限责任公司信息中心 一种零信任架构系统及其使用方法
CN111917767A (zh) * 2020-07-29 2020-11-10 苏州浪潮智能科技有限公司 一种客户端的请求认证方法、装置、设备及存储介质
CN112035853A (zh) * 2020-08-13 2020-12-04 潘显富 一种基于企业云盘的存储数据访问控制系统
CN114828004A (zh) * 2022-04-28 2022-07-29 广州通则康威智能科技有限公司 小程序自动获取无线网络设备ip的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150737A1 (en) * 2005-12-22 2007-06-28 Microsoft Corporation Certificate registration after issuance for secure communication
CN101022455A (zh) * 2006-12-26 2007-08-22 北京大学 一种Web通信加密方法
CN105187450A (zh) * 2015-10-08 2015-12-23 飞天诚信科技股份有限公司 一种基于认证设备进行认证的方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070150737A1 (en) * 2005-12-22 2007-06-28 Microsoft Corporation Certificate registration after issuance for secure communication
CN101022455A (zh) * 2006-12-26 2007-08-22 北京大学 一种Web通信加密方法
CN105187450A (zh) * 2015-10-08 2015-12-23 飞天诚信科技股份有限公司 一种基于认证设备进行认证的方法和设备

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110324287A (zh) * 2018-03-31 2019-10-11 华为技术有限公司 接入认证方法、装置及服务器
CN110324287B (zh) * 2018-03-31 2020-10-23 华为技术有限公司 接入认证方法、装置及服务器
CN108449358A (zh) * 2018-04-10 2018-08-24 肖恒念 基于云的低延时安全计算方法
CN109858201A (zh) * 2018-12-29 2019-06-07 北京奇安信科技有限公司 一种安全软件模式切换授权方法、客户端及服务端
CN110164004A (zh) * 2019-05-16 2019-08-23 东风小康汽车有限公司重庆分公司 一种智能钥匙的激活方法、系统、控制装置和客户端
CN110430193A (zh) * 2019-08-06 2019-11-08 广州虎牙科技有限公司 信息验证方法、装置、服务器及存储介质
CN111314061A (zh) * 2019-10-29 2020-06-19 苏州科达科技股份有限公司 一种随机数的生成方法及系统
CN110912689A (zh) * 2019-10-30 2020-03-24 苏州科达科技股份有限公司 一种唯一值的生成、验证方法及系统
CN111917714A (zh) * 2020-06-18 2020-11-10 云南电网有限责任公司信息中心 一种零信任架构系统及其使用方法
CN111917714B (zh) * 2020-06-18 2022-11-11 云南电网有限责任公司信息中心 一种零信任架构系统及其使用方法
CN111917767A (zh) * 2020-07-29 2020-11-10 苏州浪潮智能科技有限公司 一种客户端的请求认证方法、装置、设备及存储介质
CN111917767B (zh) * 2020-07-29 2022-06-07 苏州浪潮智能科技有限公司 一种客户端的请求认证方法、装置、设备及存储介质
CN112035853A (zh) * 2020-08-13 2020-12-04 潘显富 一种基于企业云盘的存储数据访问控制系统
CN112035853B (zh) * 2020-08-13 2024-07-05 南京育志光科技有限公司 一种基于企业云盘的存储数据访问控制系统
CN114828004A (zh) * 2022-04-28 2022-07-29 广州通则康威智能科技有限公司 小程序自动获取无线网络设备ip的方法及装置
CN114828004B (zh) * 2022-04-28 2024-01-26 广州通则康威科技股份有限公司 小程序自动获取无线网络设备ip的方法及装置

Also Published As

Publication number Publication date
CN107579991B (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
CN107579991B (zh) 一种对客户端进行云端防护认证的方法、服务器和客户端
US8302170B2 (en) Method for enhancing network application security
CN108173662B (zh) 一种设备的认证方法和装置
CN102378170B (zh) 一种鉴权及业务调用方法、装置和系统
CN106453361B (zh) 一种网络信息的安全保护方法及系统
CN102299930B (zh) 一种保障客户端软件安全的方法
CN104243419B (zh) 基于安全外壳协议的数据处理方法、装置及系统
CN109309565A (zh) 一种安全认证的方法及装置
CN108322416B (zh) 一种安全认证实现方法、装置及系统
CN106576041A (zh) 客户端与服务器之间相互验证的方法
CN110933078B (zh) 一种h5未登录用户会话跟踪方法
CN106453352B (zh) 一种单系统多平台身份验证方法
CN114900338A (zh) 一种加密解密方法、装置、设备和介质
CN111030814A (zh) 秘钥协商方法及装置
JP2019536157A (ja) 透過性多要素認証およびセキュリティ取り組み姿勢チェックのためのシステムおよび方法
US11811739B2 (en) Web encryption for web messages and application programming interfaces
CN111918284B (zh) 一种基于安全通信模组的安全通信方法及系统
CN111800378A (zh) 一种登录认证方法、装置、系统和存储介质
CN114584386B (zh) 全局多级加密网络通信方法
CN112968910B (zh) 一种防重放攻击方法和装置
CN109218334B (zh) 数据处理方法、装置、接入控制设备、认证服务器及系统
CN110035035B (zh) 一种单点登录的二次认证方法及系统
CN112699374A (zh) 一种完整性校验漏洞安全防护的方法及系统
CN113055357B (zh) 单包验证通信链路可信的方法、装置、计算设备及存储介质
CN105681364B (zh) 一种基于增强绑定的IPv6移动终端抗攻击方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Address before: 100015 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing.

Applicant before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant