一种IMAP协议多链接关联解析方法及系统技术方案

技术编号:20978243 阅读:40 留言:0更新日期:2019-04-29 18:38
本发明专利技术公开了一种IMAP协议多链接关联解析方法及系统。本方法为:1)从TCP链接中获取每一描述整封邮件的所有MIME块的头部信息的数据结构BODYSTRUCTURE;2)从该数据结构BODYSTRUCTURE中抽取MIME块头部,并根据MIME块头部所在的位置对其进行标号;3)对每一MIME块头部构造唯一键KEYx并将MIME块的头部信息加入哈希表;传输MIME实体的TCP链接捕获到MIME块实体的流量后,从流量中提取关键信息,生成与KEYx一致的键,根据键KEYx从该哈希表中获取对应的MIME头部信息。本发明专利技术具有更全面的监测能力,极大增强了进行哈希关联时的效率。

An IMAP Protocol Multi-Link Association Resolution Method and System

The invention discloses an IMAP protocol multi-link association analysis method and system. This method is as follows: 1) Get the header information of all MIME blocks from TCP links; 2) Extract the header of MIME blocks from the data structure BODYSTRUCTURE and label it according to the location of the header of MIME blocks; 3) Construct a unique key KEYx for each MIME block header and add the header information of MIME blocks to the hash table; 2) Transfer the header information of MIME entities into the hash table; After the CP link captures the traffic of the MIME block entity, it extracts the key information from the traffic, generates keys consistent with KEYx, and obtains the corresponding MIME header information from the hash table according to KEYx. The invention has more comprehensive monitoring capability and greatly enhances the efficiency of hash correlation.

【技术实现步骤摘要】
一种IMAP协议多链接关联解析方法及系统
本专利技术属于计算机网络
,涉及一种IMAP协议多链接关联解析方法及系统。
技术介绍
一些安全性要求较高的企业或组织,对互联网传输的内容有较强的监测需求。通过对出入互联网的流量进行监测审计,以发现其中的攻击行为或泄密行为。电子邮件是企业和组织内部与外部进行文件交互的主要手段之一。随着互联网安全形势的恶化和保密意识的提高,越来越多的网络监测系统将电子邮件列入监测对象,并部署在运营商、政府、军队、企业等的互联网出入口。通常,网络监测系统通过分光或镜像的方法获得内部网络与互联网的网络流量。系统通过对网络流量进行重整和分析,能够对电子邮件内容进行检测分析和审查,并对电子邮件的传输进行记录。IMAP4(InternetMessageAccessProtocol,Version4)协议是主要的电子邮件协议之一。它与POP3协议主要的区别之一是支持分块、分段下载邮件的部分内容。同时,IMAP4协议将MIME(MultipurposeInternetMailExtensions)协议的头部抽象成了一种数据结构(BODY/BODYSTRUCTURE,以下统称BODYSTRUCTURE;BODYSTRUCTURE是一封邮件所有MIME块的头部的抽象),用以描述整封邮件的所有MIME块的头部信息,它通常在下载邮件时首先进行传输,其中,MIME块信息包括MIME块头部和MIME块实体。MIME块头部用于描述该MIME块的实体;MIME块支持多级嵌套,即一个整MIME块可以是另一个MIME块的实体。因此,基于IMAP4协议的电子邮件传输,MIME块实体和BODYSTRUCTURE会在不同的TCP链接中进行传输。这在移动智能终端的电子邮件应用中更加普遍。现有的解决方案中,或是针对一个TCP链接中传输整封邮件进行协议解析,或是没有考虑到多TCP链接传输的情况。专利公布号CN106385358A的专利申请提及了一种对电子邮件数据包进行核查取证的方法,但是对BODYSTRUCTURE的解析只是一带而过,没有说明解析方法,不支持分块下载时的数据获取方法,更没有提及多链接传输的情况。综上所述,为了更全面地对基于IMAP4协议的电子邮件进行监测,需要设计一种支持IMAP4BODYSTRUCTURE的邮件传输方式、支持多TCP链接的关联的协议解析系统。
技术实现思路
针对现有技术中存在的技术问题,本专利技术的目的在于提供一种IMAP协议多链接关联解析方法及系统。本专利技术能够从网络流量中获取BODYSTRUCTURE结构,抽取MIME块头部信息;能够获取MIME块实体信息,并将MIME块头部信息与MIME块实体信息关联起来,以完成IMAP4协议的解析。本专利技术的主要内容包括:1、对在任意TCP链接中抽取的MIME块头部、捕获的MIME块实体构造相同且唯一的键值,利用哈希算法进行关联,从而根据MIME块头部信息完成对MIME块实体的解析。2、根据BODYSTRUCTURE的结构形式,识别MIME块头部的开始、结束、嵌套深度和并列层数,设计路径层级标号衍生方法,对每一MIME块头部产生一个路径层级标号。3、根据BODYSTRUCTURE的结构形式,构建MIME块头部分离、MIME块头部字段抽取两级嵌套状态机。与现有技术相比,本专利技术的积极效果为:1、支持IMAP4协议分段、分块下载时的数据获取,能够通过哈希关联技术,获取下载的MIME块实体所对应的MIME块头部,完成MIME块的解析;具有更全面的监测能力。2、充分利用IMAP4分块下载时对MIME块进行标号的特点,对从BODYSTRUCTURE中抽取的MIME块头部进行路径层级标号,即MIME块标号,极大增强了进行哈希关联时的效率。附图说明图1为IMAP协议多链接关联示意图;图2为MIMENON-MULTIPART块字段抽取状态流转图。具体实施方式为使本专利技术的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。为了在企业或组织的互联网出入口对IMAP电子邮件传输进行更全面、更有效的监测,本专利技术提出了一种针对IMAP电子邮件多链接传输的关联方法,在IMAP电子邮件分块、分段下载时,能够将描述整封邮件的所有MIME块信息的MIME块头部和MIME块实体关联起来,根据MIME块头部对MIME块实体的描述,完成MIME块实体的解析。在多链接传输情况下,可能BODYSTRUCTURE的请求在其中一个TCP链接中,而正文或附件内容却在另外的TCP链接中,处于中间节点的处理机必须捕获到传输BODYSTRUCTURE的链接数据才能够将其应用于其他链接中的实体内容数据的解析。IMAP4协议解析建立在TCP链接管理基础上,针对跨链接的情况,协议解析维护一个全局信息表,用于关联一封邮件的多个TCP链接。整个系统的框架图如图1所示,主要分为三个子模块:(1)BODYSTRUCTURE解析状态机。由于MIME头部字段是可变的,字段的属性和值不是固定的,且部分字段并非是必选的,导致BODYSTRUCTURE字符串变化较大,不具有固定的字符串格式,通过普通的字符串解析难以实现复杂的MIME嵌套头部的抽取,因此本专利技术针对BODYSTRUCTURE的特殊结构,设计了一种能够良好适应其变化特点的状态机,能够高效地抽取BODYSTRUCTURE的MIME头部信息。(2)路径标识生成。IMAP4协议在通过块标号进行MIME块实体下载的时候,都会指定所请求的块的标号(IMAP4协议对MIME块进行了标号),如BODY[1.2]。在从BODYSTRUCTURE中抽取MIME块头部的同时,本专利技术针对MIME块头部所在的位置和嵌套,自动对MIME块头部进行标号(即根据MIME块头部在BODYSTRUCTURE中的出现顺序、嵌套的情况进行标号),保证该标号与对应MIME块的实体的标号一致。(3)哈希关联。在对一封邮件进行BODYSTRUCTURE抽取得到多个MIME块后,对每一MIME块头部构造唯一键KEYx,将MIME块的头部信息加入哈希表。在捕获到MIME块实体的流量后,从流量中提取关键信息,生成与KEYx一致的键,从而获取哈希表中已存储的MIME头部信息。完成以上步骤后,IMAP全局BODYSTRUCTURE信息表存储了流经该互联网出入口的所有IMAP4邮件的MIME块头部信息,任意的传输MIME实体的TCP链接都能够通过查找哈希表找到对应的MIME块头部,从而完成协议解析。下面对每个步骤的处理过程进行详细说明。(1)BODYSTRUCTURE解析状态机。分为MIME块分离状态机和MIME块头部字段抽取两级状态机。MIME块支持嵌套(参考RFC2045-RFC2049),因此BODYSTRUCTURE中的MIME头部也存在嵌套的情况。IMAP协议支持请求任意的MIME块标号,因此必须首先将一个MIME块的头部从BODYSTRUCTURE中剥离出来,然后再从剥离出来的MIME块头部中提取各个字段的信息。本专利技术针对以上两个步骤分别设计了一个状态机,即MIME块分离状态机和MIME块头部字段抽取两级状态机。状态机的输入数据为BODYSTRUCTURE响应数据,包括”BODYSTRUC本文档来自技高网
...

【技术保护点】
1.一种IMAP协议多链接关联解析方法,其步骤包括:1)从TCP链接中获取每一描述整封邮件的所有MIME块的头部信息的数据结构BODYSTRUCTURE;2)从该数据结构BODYSTRUCTURE中抽取MIME块头部,并根据MIME块头部所在的位置对其进行标号;3)对每一MIME块头部构造唯一键KEYx并将MIME块的头部信息加入哈希表;传输MIME实体的TCP链接捕获到MIME块实体的流量后,从流量中提取关键信息,生成与KEYx一致的键,根据键KEYx从该哈希表中获取对应的MIME头部信息。

【技术特征摘要】
1.一种IMAP协议多链接关联解析方法,其步骤包括:1)从TCP链接中获取每一描述整封邮件的所有MIME块的头部信息的数据结构BODYSTRUCTURE;2)从该数据结构BODYSTRUCTURE中抽取MIME块头部,并根据MIME块头部所在的位置对其进行标号;3)对每一MIME块头部构造唯一键KEYx并将MIME块的头部信息加入哈希表;传输MIME实体的TCP链接捕获到MIME块实体的流量后,从流量中提取关键信息,生成与KEYx一致的键,根据键KEYx从该哈希表中获取对应的MIME头部信息。2.如权利要求1所述的方法,其特征在于,从该数据结构BODYSTRUCTURE中抽取MIME块头部信息,并根据MIME块头部所在的位置对其进行标号的方法为:设置包括MIME块分离状态机和MIME块头部字段抽取状态机的两级状态机;a)MIME块分离状态机的步骤包括:步骤1101:设置MIME块分离状态机的上一状态变量prestate为IDLE状态,初始化当前路径标号path为顶级标号”0”;然后执行步骤1102、步骤1103;步骤1102:跳过输入数据的空格及制表符字符,若输入结束,则结束状态机循环;步骤1103:记录当前指针的位置pstart,当前指针加1;若下一字符不是圆括号”(”,则设置单一块标记变量single;执行步骤1102后跳转到步骤1104;步骤1104:设置prestate为START状态;若当前字符不是左圆括号”(”,则跳转至步骤1105;若当前字符是左圆括号”(”且状态prestate为START状态,则将路径标号path压栈,在路径标号path之后追加字符串”.1”;否则,若当前字符是左圆括号”(”,则将路径标号path的最后一个点号”.”之后的数字加1,若无点号”.”,则直接将数字加1,若此时路径标号path为”1”,则将路径标号”0”压栈;然后设置MIME块头部起始字符指针变量pstart指向当前位置,当前指针加1,执行步骤1102后执行步骤1104;步骤1105:设置状态变量prestate为PROC状态,从当前位置开始,向后查找字符”)”,直到取得一个完整的MIME块头部,执行步骤1102,更新当前指针指向下一个字符;然后提取pstart至当前位置之间的数据块,即MIME块的头部字段信息,以path为当前路径标号,抽取当前块的MIME头部字段信息,即执行步骤1201;若single变量被设置,则以”1”为当前路径标号,再次执行步骤1201;跳转至步骤1106;步骤1106:设置prestate为END状态,若当前字符为”(”,则将path的最后一个”.”号之后的数字加1,若无”.”,直接将数字加1;设置pstart指向当前位置,跳转至步骤1104;否则,当前块为MULTIPART块,设置pstart指向当前位置,从当前位置开始,向后查找字符”)”,直到取得一个完整的MIME块头部,然后执行出栈操作,弹出栈顶第一个元素,存入路径标号path,开始抽取当前块的MIME头部字段信息,即执行步骤1201;当前指针加1,若输入没结束,跳转至步骤1104,否则结束MIME块分离状态机;b)MIME块头部字段抽取状态机步骤包括:步骤1201:判断当前MIME块是否是MULTIPART块,若是执行步骤1203,否则执行步骤1202;步骤1202:按照MIME块头部字段的排列顺序,逐个进行提取,根据上下文判断可选字段是否存在确定是否跳转至下一字段状态;其中,对于参数组合列表,需要提取属性CHARSET和NAME的值;对于主体编码,需要提取编码类型;对于主体部署,需要提取FILENAME的值;提取完毕后,将MIME块头部信息加入哈希表;步骤1203:按照MIME头部字段的排列顺序,逐个进行提取,根据上下文判断可选字段是否存在确定是否跳转至下一字段状态;其中,对于参数组合列表,需要提取BOUNDARY属性的值;提取完毕后,将MIME块头部信息加入哈希表。3.如权利要求2所述的方法,其特征在于,若当前MIME块为MULTIPART块,则提取哈希表中属性BOUNDARY的信息,进行MIME解码;若当前MIME块不是MULTIPART块,则根据编码类型进行实体解码;若当前MIME块为附件,则关联附件名。4.如权利要求1或2或3所述的方法,其特征在于,生成MIME块头部的哈希表键KEYx方法为:将MIME块头部对应的IMAP电子邮件用户名、邮件唯一标识符UID以及MIME块路径标号path按照顺序和设定格式组合,组合结果是该MIME块头部的哈希表键KEYx。5.如权利要求1所述的方法,其特征在于,所述数据结构BODYSTRUCTURE中的各个MIME块头部分别生成一路径层级标号,该路径层级标号与IMAP4协议应答的对应MIME块实体的标号一致。6.一种IMAP协议多链接关联解析系统,其...

【专利技术属性】
技术研发人员:张成伟刘庆云刘洋杨威
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1