使用动态加密算法进行网络数据通讯的方法

文档序号:7613685阅读:224来源:国知局
专利名称:使用动态加密算法进行网络数据通讯的方法
技术领域
本发明涉及网络信息安全领域,特别是涉及一种保护网络产品数据通讯安全的方法。
背景技术
目前的网络产品都是以客户端/服务端的模式为主,服务端由运营商管理,客户端安装在用户的电脑上。客户端与服务端的交流完全依赖于数据包的通讯。很多网络产品都会把客户端与服务端之间通讯的数据包加密。这样虽然能防止数据包被盗用,但是由于客户端中的加密算法是固定写死的,因此破解者只要分析出客户端中的固定加密算法,就可以伪装客户端或服务端的一方发送数据包给另一方进行欺骗;也可以位于客户端与服务端中间的节点拦截通讯的数据包、解密还原、伪造更改数据、再加密后发送出去而不被发现。由于服务端与客户端都无法判断数据包是否从真实合法的另一方发送过来的,所以,普通的加密技术都无法从根本上解决网络产品的数据通讯安全问题,这极大地影响了网络环境健康发展。

发明内容
本发明要解决的技术问题是提供一种保护网络产品数据通讯安全的方法,它可实现对多种网络产品的数据进行加密,防止对于数据通讯的各种攻击。
为解决上述技术问题,本发明保护网络产品数据通讯安全的方法,服务端从加解密算法执行代码库中随机挑选一组动态加密算法执行模块,由服务端根据制定的规则,通知客户端使用动态加密算法的时间与方法,将动态加密算法下发给客户端,客户端接收到动态加密算法执行模块后,检查客户端程序以及动态加密算法的合法性,并执行动态加密算法执行模块,提取出隐藏在其中的加密与解密函数,根据动态加密算法中的实际规则对数据包进行加密与解密。
采用本发明的方法,使用动态加密算法进行网络数据通讯可以有效保证网络产品数据通讯的安全,防止各种对于数据包进行的攻击。以网络游戏为例,当外挂内嵌客户端并修改内存时,动态加密算法模块能对非正常的内存数据作出反应而报警;当伪装成客户端的脱机外挂欺骗服务端时,只要服务端通知并下发动态加密算法,脱机外挂将无法给动态加密算法提供合法的运行环境;当有攻击者在客户端与服务端之间进行中间人攻击时,攻击者也无法解析出使用动态加密算法模块加密的数据包;当攻击者收集一组服务端与客户端的数据进行重放攻击时,攻击者同样也是失败的,因为每一次服务端下发的动态加密算法都不是固定的。因此,使用本发明的动态加密算法进行网络数据通讯能有效的保护客户端与服务端的数据通讯。


下面结合附图与具体实施方式
对本发明作进一步详细的说明附图是本发明保护网络产品数据通讯安全的方法的实现流程图。
具体实施例方式
如图所示,本发明保护网络产品数据通讯安全的方法实现的流程是
服务端从加解密算法执行代码库中随机挑选一组动态加密算法执行模块;对该动态加密算法执行模块的执行代码进行初始化,取得加密函数与解密函数的调用入口;将所述的动态加密算法执行模块应用于网络数据的加密和解密。
加解密算法执行代码库采用动态算法,不局限于固定的算法,可以嵌套使用某些算法或者自编算法;这样更加灵活、安全。核心思想在于算法是动态的。
每次使用的算法由服务端来决定,如果客户端也可以决定,这样就无法保证安全性。
客户端接收服务端下发的动态加密算法执行模块;对该动态加密算法执行模块的执行代码进行初始化,取得加密函数与解密函数的调用入口;将所述的动态加密算法执行模块应用于网络数据的加密和解密。
客户端具有随时处理动态加密算法的能力。在任何时候客户端都保持着等待服务端下发的动态加密算法的通知,该通知可以是启动动态算法、更换动态加密算法或撤销动态加密算法。客户端一旦收到上述通知能立即作出相关的反应。
服务端预先制定一系列规则,能在任意时候通知客户端启动、更换、撤消动态加密算法。这些规则可以是一些关键验证或敏感操作,例如,在网络游戏中用户名、密码验证的时候,登录角色的时候,网络游戏中使用仓库的时候,对于珍贵物品网上交易的时候等等。当涉及上述操作时,服务端可以按规则强行通知客户端使用动态加密算法对后续的数据包进行加密与解密,待这些操作完成以后,服务端也可以有选择的通知客户端更换或撤销动态加密算法,恢复先前的会话数据通讯。
所述动态加密算法是一段可执行的代码,该代码中含有代码校验、代码混乱、程序检测、加密算法、解密算法,其长度由服务端决定。每个可执行的代码由服务端按一定的规则随机生成。它由三大部分组成原入口点、加密函数入口点和解密函数入口点。其中,只有原入口点是对外公开的,加密与解密函数的入口点是隐藏不可见的。另外,整个动态加密算法模块经过高强度的加密与随机混淆,并且随处包含检验合法性的代码,几乎不可能存在通用的程序或软件能对其进行分析而直接得到其中隐藏加密、解密的入口点与检验代码的位置。
客户端收到动态加密算法后,会装入预先安排好的环境,传入参数并从它的原入口点开始执行。在执行过程中,客户端并不知道动态加密算法的具体运行状况,在正确的执行完毕后,将返回隐藏的加密、解密的入口点。这样在以后的会话中,客户端就能将数据放入加密、解密的入口点进行安全的加密与解密。
检验代码被随机的放置在动态加密算法的各个地方。当客户端从原入口点开始执行动态加密算法时,会启动检验代码的模块。当数据进入动态加密算法中的加密与解密入口时,也会随机的调用检验代码的模块。这些检验代码将对客户端、动态加密算法本身进行合法性的检查,一旦发现有非法状况,立刻进入非法处理模块进行处理。
对用户来说,动态加密算法是透明的,即用户像正常的操作一样,不会看到也不可能看到动态加密算法相关的处理过程。当有人对客户端或动态加密算法进行恶意修改时,就会被发现,而进入非法处理的模块。
本发明通过使用动态加密的方法,使加密的算法不断的发生变化,从而有效的防止了对加密信息的非法破解,保障了通讯的安全。
采用动态加密算法时,最坏的情况是动态加密算法的内容被泄露。但这也不会产生很大的影响,一旦发现问题或不稳定的情况,运营商可以立即采用备份的其他动态加密算法。由于动态加密算法仅仅是一组可执行的代码,因此,使用时并不需要重启服务端,更不需要更新客户端,仅仅使用脚本配置进行简单而方便的操作。
权利要求
1.一种使用动态加密算法进行网络数据通讯的方法,其特征在于服务端从加解密算法执行代码库中随机挑选一组动态加密算法执行模块,由服务端根据制定的规则,通知客户端使用动态加密算法的时间与方法,将动态加密算法执行模块下发给客户端,客户端接收到动态加密算法执行模块后,检查客户端程序以及动态加密算法的合法性,并执行动态加密算法执行模块,提取出隐藏在其中的加密与解密函数,根据动态加密算法中的实际规则对数据包进行加密与解密;所述数据包的加密与解密,由服务端制定一系列规则,可在任意时间通知客户端采用新的动态加密算法。
2.根据权利要求1所述的使用动态加密算法进行网络数据通讯的方法,其特征在于客户端接收到动态加密算法执行模块后,可随时进行处理,在关键验证或敏感操作时使用动态加密算法;同时,客户端能稳定释放动态加密算法,恢复原来的流程。
3.根据权利要求1所述的使用动态加密算法进行网络数据通讯的方法,其特征在于所述动态加密算法是一段可执行的代码,该代码中含有代码校验、代码混乱、程序检测、加密算法、解密算法。
4.根据权利要求4所述的使用动态加密算法进行网络数据通讯的方法,其特征在于所述可执行的代码由三部分组成原入口点、加密函数入口点和解密函数入口点;其中,只有原入口点是对外公开的,加密与解密函数的入口点是隐藏不可见的;服务端更改加密算法的方式可以是,客户端在接收到加密算法后,会将该算法安装到预先安排好的软件环境中,然后从原先的入口点开始执行程序;在执行完毕后,程序会返回隐藏的加密、解密入口点,在之后的数据处理中,系统就使用更新的入口点。
5.根据权利要求1所述的使用动态加密算法进行网络数据通讯的方法,其特征在于所述动态加密算法可预制一定数量,采用脚本进行更换。
全文摘要
本发明公开了一种使用动态加密算法进行网络数据通讯的方法,由服务端根据制定的规则,通知客户端使用动态加密算法的时间与方法,将动态加密算法下发给客户端,客户端接收到动态加密算法执行模块后,检查客户端程序以及动态加密算法的合法性,并执行动态加密算法执行模块,提取出隐藏在其中的加密与解密函数,根据动态加密算法中的实际规则对数据包进行加密与解密。本发明能有效的保护服务端与客户端的数据通讯安全,可用于即时通讯软件、FTP软件、网络游戏等各类网络产品。
文档编号H04L9/16GK1909447SQ20051002840
公开日2007年2月7日 申请日期2005年8月3日 优先权日2005年8月3日
发明者徐海峡 申请人:盛趣信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1