一种以流为粒度的传输加密方法

文档序号:9420362阅读:356来源:国知局
一种以流为粒度的传输加密方法
【技术领域】
[0001]本发明涉及数据传输加密的技术领域,具体涉及一种以流为粒度的传输加密方法。
【背景技术】
[0002]近年来,伴随着网络全覆盖和上网终端的普及,大量的数据在网络间传递互通。在这些数据当中往往加载着许多敏感信息,就需要对这些数据采用相应方式进行安全性保护。目前,有很多成熟的加密算法和加密方式已经被广泛使用,而往往采取的加密手段都是对应用的全部数据进行加密,这将导致许多非敏感类信息也需要被加密,提高了整体传输的安全性但是降低了传输效率。通常一个业务当中涉及到不同的业务流,比如音频、视频、文本等,也许只有音频数据包含关键信息,就没有必要对视频和文本也进行加密,对于该场景下的使用需求,现有方案不能解决该问题。
[0003]现有的加密方式不支持以流为粒度的传输加密,而是对所有的业务数据进行加密,这种方式虽然提高了安全性但是降低了传输效率。申请号为201310433157.9的中国发明专利申请《一种基于正迀移学习的智能网络业务识别方法》,公开了利用深度包检测法(Deep Packet Inspect1n, DPI)和基于流特征的检测法(又称为深度/动态流检测Deep/Dynamic Flow Inspect1n,DFI)并行检测的方法对网络业务进行检测、识别,从而提高了对网络业务的识别效率,但是并未涉及到具体的加密方式。

【发明内容】

[0004]为了解决上述技术问题,本发明提供了一种以流为粒度的传输加密方法,能够对不同的应用进行业务区分,并将其细分为不同的业务流,只对特定的流进行加密。
[0005]为了达到上述目的,本发明的技术方案是:一种以流为粒度的传输加密方法,其步骤如下:
步骤一:用户根据需求制定加密策略;
步骤二:业务流管理模块对数据包进行类型分析,获取数据包的应用类型和业务类型;
步骤三:业务流管理模块将不同类型的数据包放入不同的类型队列中;
步骤四:数据加密模块根据加密策略,判断是否需要对数据包进行加密,对需要加密的队列进行加密操作;
步骤五:收、发数据包。
[0006]所述业务流管理模块用于对数据包进行类型分析,并按照类型将数据包放入相应的发送队列中;业务流管理模块以LKM形式加载在操作系统中的,其为内核态,可伴随系统自启动。
[0007]所述业务流管理模块包括类型识别单元和队列维护单元;所述类型识别单元用于对数据包进行捕获分析,类型识别单元包括应用业务流分析单元和业务类型分析单元;所述应用业务流分析单元通过挂载点的钩子函数对数据包进行应用类型分析;所述业务类型分析单元通过现有的类型识别方法对数据包进行业务类型分析;所述队列维护单元用于将数据包按照不同的队列进行存放。
[0008]所述数据加密模块以LKM形式加载在操作系统中的,其为内核态,可伴随系统自启动;数据加密模块用于识别加密策略,并根据加密策略判断不同的队列是否需要加密,并采用现有的成熟的加密算法对数据包业务流进行加密。
[0009]所述数据加密模块包括数据加密单元,数据加密单元采用加密算法对需要加密的队列进行数据加密
本发明的有益效果是:所有模块是以LKM形式动态加载在手机、PC和各种上网终端等终端上,对操作系统原有功能不会造成任何兼容性的问题;本发明基于现有的类型识别方法对终端上所有数据包进行应用区分,再对数据包进行业务分析,然后对每个应用的各个类型业务流进行以流为粒度的加密通信,粒度更细致,加密方式更为灵活,不但兼顾了数据安全,同时也提升了传输效率。
【附图说明】
[0010]图1为本发明整个数据传输加密的流程图。
[0011]图2为本发明以流为粒度的传输加密具体示意图。
【具体实施方式】
[0012]为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0013]—种以流为粒度的传输加密方法,其步骤如下:
步骤一:用户根据需求制定加密策略。
[0014]用户根据自己的实际需求制定合适的加密策略,即是对哪个应用的视频、音频、文件或其他中的一种或几种进行加密。制定的加密策略可以通过图形界面的操作界面形式进行操作,方便用户选择将某个应用的某种类型的业务流进行加密通信。加密策略指定后通过进程通信机器从操作系统的用户态传递给内核态。
[0015]步骤二:业务流管理模块对数据包进行类型分析,获取数据包的应用类型和业务类型。
[0016]业务流管理模块用于对数据包进行类型分析,并按照类型将数据包放入相应的发送队列中。业务流管理模块以LKM (Loadable Kernel Module)形式加载在操作系统中的,其为内核态,可伴随系统自启动。具体工作时,在业务流管理模块基于Netfilter框架下的挂载点添加相应的钩子函数,就可以自动的对数据包进行捕获分析。数据包的五元组信息可以唯一标识一条业务流。业务流管理模块对于本机发送的所有数据包进行分析操作,可以查看其五元组信息,即源IP地址,目的IP地址,源端□号,目的端□号,协议类型,通过Hash运算,定位数据包的ID入口,从而识别出数据包的类型。
[0017]业务流管理模块包括类型识别单元和队列维护单元。类型识别单元用于对数据包进行捕获分析,包括应用业务流分析单元和业务类型分析单元。应用业务流分析单元用于对数据包进行应用类型分析,通过挂载点的钩子函数实现,即识别出该数据包是属于哪种应用,比如数据包是QQ、迅雷、FTP等。通过应用业务流分析单元可以将某一应用的业务流同时进行加密的后续处理。业务类型分析单元对数据包进行业务类型分析,可以基于现有的类型识别方法,比如DP1、L7识别法等对数据包进行业务类型分析,识别出数据包是视频、音频、文件或其他。队列维护单元用于将数据包按照不同的队列进行存放。类型识别单元将不同类型的数据包划分为不同的业务流,可以对一个应用中的视频、音频、文件或其他的一种或几种进行加密操作,使粒度更细致,后续的加密方式更为灵活。
[0018]步骤三:业务流管理模块将不同类型的数据包放入不同的类型队列中。
[0019]业务流管理模块的队列维护单元用于将数据包按照不同的队列进行存放。队列维护单元根据类型识别单元识别出的数据包的应用类型和业务类型,将不同应用的数据包存放在不同的应用列表中,不同业务类型的数据包放入业务流表的类型入口处,将数据包挂载在对应的类型
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1