一种用于即时通讯的混合加密方法与流程

文档序号:16007490发布日期:2018-11-20 20:14阅读:471来源:国知局

本发明涉及一种即时通讯加密方法,尤其是涉及一种用于即时通讯的混合加密方法。



背景技术:

目前大多数的IM(即时通信)系统在与服务器的通讯过程中仅仅采用弱加密甚至不加密的方式,造成潜在的信息泄密可能性。在不加密的情况下攻击者可以利用抓包软件对数据包进行截取并获取其中的内容。在弱加密的情况下如采用DEC、AES、XTEA等对称加密算法,由于密钥是固定的客户端和服务器需要事先约定好密钥的生成规则,一旦生成规则泄露(例如通过内部开发人员或者客户端软件被攻击者反编译破解)攻击者同样可以利用抓包软件对数据包进行截取并获取其中的内容。

以上所述,攻击者利用加密的缺陷监听和窃取重要的数据,这种泄密会给企业和个人造成不可估量的损失,尤其是一些特殊行业,如金融和证券等行业将会构成巨大的商业安全威胁。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于即时通讯的混合加密方法。

本发明的目的可以通过以下技术方案来实现:

一种用于即时通讯的混合加密方法,该方法包括如下步骤:

(1)客户端获取非对称加密公钥,同时随机生成对称加密密钥;

(2)客户端向服务端发送登录请求,所述的登录请求中包含客户端随机生成的对称加密密钥,且所述的登录请求通过非对称加密公钥进行非对称加密后发送至服务器;

(3)服务端接受登录请求完成登录后获得客户端发送的对称加密密钥;

(4)完成登录后,客户端与服务端之间的所有交互请求采用对称加密密钥进行对称加密。

步骤(1)中非对称加密密钥通过如下方式获得:客户端读取本地缓存中的非对称加密公钥,若本地缓存中不存在非对称加密公钥,则客户端向服务端请求非对称加密公钥并且缓存在本地缓存中。

所述的客户端获取非对称加密公钥时还获取服务端提供的加密配置信息,所述的加密配置信息包括非对称加密算法以及对称加密算法,所述的加密配置信息存储于客户端本地缓存中。

步骤(3)具体为:服务器采用非对称加密私钥对登录请求进行解密,完成登录并获取对称加密密钥。

所述的非对称加密算法包括RSA、SM2。

所述的对称加密算法包括AES、DEC、SM4。

与现有技术相比,本发明具有如下优点:

(1)本发明将对称加密和非对称加密进行结合实现混合加密,通过登录请求操作这一步骤实现客户端向服务端发送对称加密密钥,且对称加密密钥的发送过程通过非对称加密算法进行加密,极大的提高了即时通讯的安全性,通过抓包软件对数据包进行截取无法解密数据的原始内容;

(2)本发明非对称加密公钥存储在客户端的本地缓存中,因此无需每次登录时均向服务端请求非对称加密公钥,提高效率;

(3)本发明客户端还从服务端获取加密配置信息,由此,服务端可以提前告知本次登录通讯中所采用的非对称加密以及对称加密的具体算法,可以自由配置,灵活性强。

附图说明

图1为本发明用于即时通讯的混合加密方法的流程框图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。注意,以下的实施方式的说明只是实质上的例示,本发明并不意在对其适用物或其用途进行限定,且本发明并不限定于以下的实施方式。

实施例

如图1所示,一种用于即时通讯的混合加密方法,该方法包括如下步骤:

(1)客户端获取非对称加密公钥,同时随机生成对称加密密钥;

(2)客户端向服务端发送登录请求,所述的登录请求中包含客户端随机生成的对称加密密钥,且所述的登录请求通过非对称加密公钥进行非对称加密后发送至服务器;

(3)服务端接受登录请求完成登录后获得客户端发送的对称加密密钥;

(4)完成登录后,客户端与服务端之间的所有交互请求采用对称加密密钥进行对称加密。

步骤(1)中非对称加密密钥通过如下方式获得:客户端读取本地缓存中的非对称加密公钥,若本地缓存中不存在非对称加密公钥,则客户端向服务端请求非对称加密公钥并且缓存在本地缓存中。非对称加密公钥存储在客户端的本地缓存中,因此无需每次登录时均向服务端请求非对称加密公钥,提高效率。当非对称加密公钥失效后,客户端需要向服务端请求信的非对称加密公钥。

客户端获取非对称加密公钥时还获取服务端提供的加密配置信息,所述的加密配置信息包括非对称加密算法以及对称加密算法,所述的加密配置信息存储于客户端本地缓存中。

非对称加密算法包括RSA、SM2,对称加密算法包括AES、DEC、SM4。由于客户端从服务端获取加密配置信息,因此,服务端可以提前告知本次登录通讯中所采用的非对称加密以及对称加密的具体算法,可以自由配置,灵活性强。

步骤(3)具体为:服务器采用非对称加密私钥对登录请求进行解密,完成登录并获取对称加密密钥。

本实施例非对称加密算法采用RSA算法,对称加密算法采用AES算法,由此,构成RSA+AES的混合加密算法。服务端预先生成RSA公私钥对,客户端从服务端取得RSA公钥并存储于客户端本地缓存中。客户端随机生成AES密钥。客户端生成登陆请求包,将AES密钥放入登陆请求包中并且用RSA公钥对登陆请求包加密。服务端收到登陆请求包使用RSA私钥对登陆请求包解密,并取出其中的AES密钥。然后,登陆请求的回包以及之后所有客户端与服务端的交互都使用AES密钥加解密。

上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。

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