本技术涉及网络技术与安全领域,尤其涉及一种会话劫持防御方法、装置、设备及存储介质。
背景技术:
1、随着互联网的普及以及技术的进步,网络安全问题日益严峻。目前,会话劫持防御已经成为网络安全领域的研究热点之一。攻击者可以通过各种攻击手段获取用户的会话信息,从而冒充合法用户身份进行相应的操作。
2、现有会话劫持防御会通过利用客户端与服务器端的信息交互机制来验证当前会话标识与用户信息之间的映射关系。会话标识作为当前会话的身份凭证存储在cookie小型文本文件中。然而,基于现有的技术即使与当前用户令牌关联采用数字签名策略进行身份验证,仍然存在漏洞暴露的风险,攻击者甚至能够通过猜解令牌直接获取用户权限或敏感信息。
技术实现思路
1、本技术提供了一种会话劫持防御方法、装置、设备及存储介质,用于通过零知识证明协议可以确定客户端的身份,从而防止攻击者冒充合法用户进行会话劫持,保护用户的隐私并提高安全性。
2、第一方面,本技术提供了一种会话劫持防御方法,应用于客户端,包括:
3、向服务器发送第一登录请求,所述第一登录请求包括客户端的公钥及包括协议信息的零知识证明协议;
4、接收所述服务器返回的第一响应信息,所述第一响应信息包括所述零知识证明协议的确认信息;
5、利用非交互式零知识证明算法,基于所述协议信息、所述客户端的公钥及所述客户端的私钥,生成证明信息;
6、将所述证明信息携带在第二资源请求发送给所述服务器,以使所述服务器基于所述客户端的公钥、所述协议信息对所述证明信息进行验证。
7、在一个或多个可能的实施例中,所述客户端的私钥通过所述协议信息映射至椭圆曲线群上的一个点得到所述客户端的公钥。
8、在一个或多个可能的实施例中,利用非交互式零知识证明算法,基于所述协议信息、所述客户端的公钥及所述客户端的私钥,生成证明信息,包括:
9、生成一个随机数并通过所述协议信息映射至椭圆曲线群上的一个点得到第一参数;
10、根据所述客户端的公钥、所述第一参数和哈希函数得到挑战值,并利用非交互式零知识证明算法,基于所述挑战值、所述客户端的私钥和所述随机数得到第二参数;
11、根据所述第一参数和所述第二参数确定证明信息。
12、在一个或多个可能的实施例中,所述零知识证明协议为所述客户端向所述服务器证明拥有所述公钥对应的私钥,以使所述客户端证明自己的身份;
13、所述零知识证明协议的确认信息为所述服务器同意所述客户端通过向所述服务器证明拥有所述公钥对应的私钥的方式证明自身的身份。
14、在一个或多个可能的实施例中,所述第一响应信息和所述第二资源请求还包括当前会话标识符,用于识别是否属于当前会话。
15、在一个或多个可能的实施例中,向所述服务器发送携带所述证明信息的第二资源请求,包括:
16、对所述证明信息按照预设规则进行加密;
17、向所述服务器发送携带加密证明信息的第二资源请求。
18、第二方面,本技术提供一种会话劫持防御方法,应用于服务器,包括:
19、接收客户端发送的第一登录请求,所述第一登录请求包括所述客户端的公钥及包括协议信息的零知识证明协议;
20、发送第一响应信息到所述客户端,所述第一响应信息携带所述零知识证明协议的确认信息;
21、接收所述客户端发送的携带证明信息的第二资源请求;
22、根据所述公钥和所述协议信息确定所述证明信息成立时,向所述客户端发送与所述第二资源请求对应的第二响应信息。
23、在一个或多个可能的实施例中,根据所述公钥和所述协议信息确定所述证明信息成立,包括:
24、根据所述证明信息中的第一参数、所述公钥和哈希函数确定挑战值;
25、根据所述公钥、所述挑战值和所述协议信息确定预设公式成立时,确定所述证明信息成立。
26、在一个或多个可能的实施例中,还包括:
27、确定所述证明信息不成立时,确定所述客户端为第三方攻击者。
28、在一个或多个可能的实施例中,所述第一响应信息和所述第二资源请求均包括当前会话标识符,用于识别是否属于当前会话。
29、在一个或多个可能的实施例中,接收所述客户端发送的第二资源请求后,还包括:
30、根据所述第二资源请求中的当前会话标识符确定是否属于当前会话;
31、若是,则确定所述证明信息是否成立,否则,确定所述客户端为第三方攻击者。
32、在一个或多个可能的实施例中,接收所述客户端发送的第二资源请求,包括:
33、接收所述客户端发送的携带加密证明信息的第二资源请求;
34、根据预设解密规则对所述加密证明信息进行解密,获取证明信息。
35、第三方面,本技术提供一种会话劫持防御装置,应用于客户端,所述装置包括:
36、登录请求发送模块,用于向服务器发送第一登录请求,所述第一登录请求包括客户端的公钥及包括协议信息的零知识证明协议;
37、协议确认模块,用于接收所述服务器返回的第一响应信息,所述第一响应信息包括所述零知识证明协议的确认信息;
38、证明信息生成模块,用于利用非交互式零知识证明算法,基于所述协议信息、所述客户端的公钥及所述客户端的私钥,生成证明信息;
39、资源请求发送模块,用于将所述证明信息携带在第二资源请求发送给所述服务器,以使所述服务器基于所述客户端的公钥、所述协议信息对所述证明信息进行验证。
40、第四方面,本技术提供一种会话劫持防御装置,应用于服务器,所述装置包括:
41、登录请求接收模块,用于接收客户端发送的第一登录请求,所述第一登录请求包括所述客户端的公钥及包括协议信息的零知识证明协议;
42、确认信息发送模块,用于发送第一响应信息到所述客户端,所述第一响应信息携带所述零知识证明协议的确认信息;
43、资源请求接收模块,用于接收所述客户端发送的携带证明信息的第二资源请求;
44、证明信息验证模块,用于根据所述公钥和所述协议信息确定所述证明信息成立时,向所述客户端发送与所述第二资源请求对应的第二响应信息。
45、第五方面,本技术提供一种会话劫持防御设备,所述设备包括:
46、至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面或第二方面中任何一项所述的会话劫持防御的方法。
47、第六方面,本技术还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序用于使计算机执行如第一方面或第二方面中任何一项所述的会话劫持防御的方法。
48、根据本技术提供的一种会话劫持防御方法、装置、设备及存储介质,零知识证明协议是服务器确定客户端的身份,从而防止攻击者冒充合法用户进行会话劫持,同时服务器不需要存储或传输客户端的敏感数据,用于保证客户端用户数据的安全,零知识协议还可以根据应用场景或安全需求进行调整,能够提供更加灵活和可定制的会话劫持防御方案。