首页> 中国专利> 非对称加密Token验证方法、服务器、客户端及系统

非对称加密Token验证方法、服务器、客户端及系统

摘要

本发明实施例公开了一种非对称加密Token验证方法、服务器、客户端及系统,通过非对称加密Token,提升系统安全性,当客户端使用用户名和密码登陆成功,服务器传Token给客户端或者客户端向服务器请求数据携带Token时,Token即使被截取,也无法被直接用于请求数据,需要发送端的私钥和接收端的公钥解密获取真实Token之后才能用于从服务器请求数据。同时即使有不被允许的用户输入对了用户名和密码,如果无法正确解密和加密Token,也没法在后续数据请求中免除登录验证使用Token验证。而解密获取真实的Token用于服务器获取信息需要很长时间,有效保证数据安全。

著录项

说明书

技术领域

本发明实施例涉及信息安全技术领域,具体涉及一种非对称加密Token验证方法、服务器、客户端及系统。

背景技术

随着时代的发展,人们的生活也与数据密不可分,其中数据安全、信息安全则对人们是尤为重要的。对于一家企业更是如此,当第一次登录后,服务器会生成一个Token并将此Token返回给客户端,当使用VPN等进入企业内网时,可能会有木马等方式被截取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验证模块,用于将所述请求信息中携带的第二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与服务器端存储的Token进行比对,若相同,则向客户端返回请求数据,若不相同,则拒绝返回数据。

根据本发明实施例的第五方面,提出了一种非对称加密Token验证系统,所述系统包括:处理器和存储器;

所述存储器用于存储一个或多个程序指令;

所述处理器,用于运行一个或多个程序指令,用以执行如上应用于服务器的一种Token验证方法或执行如上应用于客户端的一种Token验证方法。

根据本发明实施例的第六方面,提出了一种计算机存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上应用于服务器的一种Token验证方法或执行如上应用于客户端的一种Token验证方法。

本发明实施例具有如下优点:

本发明实施例提出的一种非对称加密Token验证方法、服务器、客户端及系统,通过非对称加密Token,提升系统安全性,当客户端使用用户名和密码登陆成功,服务器传Token给客户端或者客户端向服务器请求数据携带Token时,Token即使被截取,也无法被直接用于请求数据,需要发送端的私钥和接收端的公钥解密获取真实Token之后才能用于从服务器请求数据。同时即使有不被允许的用户输入对了用户名和密码,如果无法正确解密和加密Token,也没法在后续数据请求中免除登录验证使用Token验证。而解密获取真实的Token用于服务器获取信息需要很长时间,有效保证数据安全。

附图说明

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

图1为本发明实施例1提供的一种非对称加密Token验证方法的流程示意图;

图2为本发明实施例2提供的一种服务器的结构示意图;

图3为本发明实施例3提供的一种非对称加密Token验证方法的流程示意图;

图4为本发明实施例4提供的一种客户端的结构示意图;

图5为本发明实施例5提供的一种非对称加密Token验证系统的结构示意图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例1提出了一种非对称加密Token验证方法,应用于服务器,如图1所示,该方法包括以下步骤:

步骤S110、当客户端使用用户名和密码成功登录服务器后,生成Token并存储。当客户端正确输入用户名和密码时,服务器会据此产生一个Token,并能记录在客户端和服务器的session中。

步骤S120、先使用客户端公钥加密Token再使用服务器私钥进行二次加密得到第一Token密文,并第一Token密文发送给客户端,以便客户端在接收到第一Token密文后先使用服务器公钥解密再使用客户端私钥解密后获取到Token并存储。

服务器先用客户端的公钥加密然后再用自己的私钥加密,然后将两次加密后的Token发送给客户端。客户端接收到后用服务器的公钥解密再用自身的私钥解密获取Token。

步骤S130、接收客户端发送的请求信息,请求信息中携带有第二Token密文,第二Token密文是由客户端先使用服务器公钥加密获取到的Token再使用客户端私钥进行二次加密后得到的。

之后客户端向服务器请求信息时可以携带先用服务器公钥加密再用自身私钥加密的Token。

步骤S140、将请求信息中携带的第二Token密文先使用客户端公钥进行解密再使用服务器私钥进行解密后得到Token,并将得到的Token与服务器端存储的Token进行比对,若相同,则向客户端返回请求数据,若不相同,则拒绝返回数据。

服务器接收到请求信息时,会将请求信息中携带的加密Token先用客户端公钥解密再用自身私钥解密,解密后的Token与session中记录的Token比对,相同则返回客户端请求信息,否则拒绝。这样之后客户端在Token过期前就无需输入用户名和密码了。

这样即使有人截取到Token,也无法直接用于传输给服务器获取数据。同时解密获取真实的Token用于服务器获取信息需要更多时间,甚至可能超过Token有效时间。这就加强了Token验证的安全性。

进一步地,该方法还包括:

生成服务器公私钥对,保留服务器私钥,并将服务器公钥发送给客户端。服务器和客户端有自己的公钥和私钥,并发给对方自己的公钥。

进一步地,该方法还包括:

对生成的服务器公私钥对进行定期更换。

目前常用的非对称密钥2048位,暴力破解需要因子分解而这用传统的超级计算机暴力破解需要80年。2019年有人用有2000个量子位的量子计算机破解也用了8个小时,也就是说企业内部用户只要和服务器每6个小时换一次密钥组,就算用最先进的量子计算机目前也没法破解,更何况一般最多是传统的超级计算机,一年换一次基本足够保障服务器安全性。

本发明实施例提出的一种非对称加密Token验证方法,通过非对称加密Token,提升系统安全性,当客户端使用用户名和密码登陆成功,服务器传Token给客户端或者客户端向服务器请求数据携带Token时,Token即使被截取,也无法被直接用于请求数据,需要发送端的私钥和接收端的公钥解密获取真实Token之后才能用于从服务器请求数据。同时即使有不被允许的用户输入对了用户名和密码,如果无法正确解密和加密Token,也没法在后续数据请求中免除登录验证使用Token验证。而解密获取真实的Token用于服务器获取信息需要很长时间,有效保证数据安全。

与上述实施例相对应的,本发明实施例2提出了一种服务器,如图2所示,该服务器包括:

Token生成模块210,用于当客户端使用用户名和密码成功登录后,生成Token并存储;

Token加密模块220,先使用客户端公钥加密Token再使用服务器私钥进行二次加密得到第一Token密文,并第一Token密文发送给客户端,以便客户端在接收到第一Token密文后先使用服务器公钥解密再使用客户端私钥解密后获取到Token并存储;

请求接收模块230,用于接收客户端发送的请求信息,请求信息中携带有第二Token密文,第二Token密文是由客户端先使用服务器公钥加密获取到的Token再使用客户端私钥进行二次加密后得到的;

Token验证模块240,用于将请求信息中携带的第二Token密文先使用客户端公钥进行解密再使用服务器私钥进行解密后得到Token,并将得到的Token与服务器端存储的Token进行比对,若相同,则向客户端返回请求数据,若不相同,则拒绝返回数据。

本发明实施例提供的一种服务器中各部件所执行的功能均已在上述实施例1中做了详细介绍,因此这里不做过多赘述。

本发明实施例提出的一种服务器,通过非对称加密Token,提升系统安全性,当客户端使用用户名和密码登陆成功,服务器传Token给客户端或者客户端向服务器请求数据携带Token时,Token即使被截取,也无法被直接用于请求数据,需要发送端的私钥和接收端的公钥解密获取真实Token之后才能用于从服务器请求数据。同时即使有不被允许的用户输入对了用户名和密码,如果无法正确解密和加密Token,也没法在后续数据请求中免除登录验证使用Token验证。而解密获取真实的Token用于服务器获取信息需要很长时间,有效保证数据安全。

本发明实施例3提出了一种非对称加密Token验证方法,应用于客户端,如图3所示,该方法包括:

步骤S310、使用用户名和密码登录服务器,以便登录成功后在服务器端生成Token并存储;

步骤S320、接收服务器端发送的第一Token密文,第一Token密文是服务器先使用客户端公钥加密Token再使用服务器私钥进行二次加密得到的;

步骤S330、在接收到第一Token密文后先使用服务器公钥解密再使用客户端私钥解密后获取到Token并存储;

步骤S340、先使用服务器公钥加密获取到的Token再使用客户端私钥进行二次加密后得到第二Token密文,并携带第二Token密文向服务器发送请求信息,以便服务器在接收到请求信息后,将请求信息中携带的第二Token密文先使用客户端公钥进行解密再使用服务器私钥进行解密后得到Token,并将得到的Token与服务器端存储的Token进行比对,若相同,则向客户端返回请求数据,若不相同,则拒绝返回数据。

进一步地,该方法还包括:

生成客户端公私钥对,保留客户端私钥,并将客户端公钥发送给服务器。

进一步地,该方法还包括:

对生成的客户端公私钥对进行定期更换。

本发明实施例提出的一种非对称加密Token验证方法,通过非对称加密Token,提升系统安全性,当客户端使用用户名和密码登陆成功,服务器传Token给客户端或者客户端向服务器请求数据携带Token时,Token即使被截取,也无法被直接用于请求数据,需要发送端的私钥和接收端的公钥解密获取真实Token之后才能用于从服务器请求数据。同时即使有不被允许的用户输入对了用户名和密码,如果无法正确解密和加密Token,也没法在后续数据请求中免除登录验证使用Token验证。而解密获取真实的Token用于服务器获取信息需要很长时间,有效保证数据安全。

与上述实施例相对应的,本发明实施例4提出了一种客户端,如图4所示,该客户端包括:

登录模块410,用于使用用户名和密码登录服务器,以便登录成功后在服务器端生成Token并存储;

Token接收模块420,用于接收服务器端发送的第一Token密文,第一Token密文是服务器先使用客户端公钥加密Token再使用服务器私钥进行二次加密得到的;

Token解密模块430,用于在接收到第一Token密文后先使用服务器公钥解密再使用客户端私钥解密后获取到Token并存储;

请求发送模块440,用于先使用服务器公钥加密获取到的Token再使用客户端私钥进行二次加密后得到第二Token密文,并携带第二Token密文向服务器发送请求信息,以便服务器在接收到请求信息后,将请求信息中携带的第二Token密文先使用客户端公钥进行解密再使用服务器私钥进行解密后得到Token,并将得到的Token与服务器端存储的Token进行比对,若相同,则向客户端返回请求数据,若不相同,则拒绝返回数据。

本发明实施例提出的一种客户端,通过非对称加密Token,提升系统安全性,当客户端使用用户名和密码登陆成功,服务器传Token给客户端或者客户端向服务器请求数据携带Token时,Token即使被截取,也无法被直接用于请求数据,需要发送端的私钥和接收端的公钥解密获取真实Token之后才能用于从服务器请求数据。同时即使有不被允许的用户输入对了用户名和密码,如果无法正确解密和加密Token,也没法在后续数据请求中免除登录验证使用Token验证。而解密获取真实的Token用于服务器获取信息需要很长时间,有效保证数据安全。

与上述实施例相对应的,本发明实施例5提出了一种非对称加密Token验证系统,如图5所示,该系统包括:处理器510和存储器520;

存储器520用于存储一个或多个程序指令;

处理器510,用于运行一个或多个程序指令,用以执行如上应用于服务器的一种Token验证方法或执行如上应用于客户端的的一种Token验证方法。

与上述实施例相对应的,本发明实施例6提出了一种计算机存储介质,计算机存储介质中包含一个或多个程序指令,一个或多个程序指令用于执行如上应用于服务器的一种Token验证方法或执行如上应用于客户端的一种Token验证方法。

虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号