欢迎来到天天文库
浏览记录
ID:24402666
大小:50.50 KB
页数:3页
时间:2018-11-14
《基于smtp的网络电子邮件解析设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于SMTP的网络电子邮件解析设计与实现本文通过研究用来传递电子邮件的SMTP协议的会话过程和基本原理,引入LibnidsX络开发包作为工具,捕获局域X的数据包并进行协议还原和协议分析,从而为邮件内容还原打下基础,以实现系统安全性的提升。关键词:SMTP;电子邮件;内容解析1引言 电子邮件虽然方便、快捷,但在安全性方面有一些固有的弱点,容易导致企业的商业机密泄漏,造成不必要的损失。为了提升系统安全性,亟需构建一个X络监控系统,监视从局域X传出的机密文件和资料。本文通过研究用来传递电子邮件的SMTP协议的会话过程和基本原理,引入Lib
2、nidsX络开发包作为工具,捕获局域X的数据包并进行协议还原和协议分析,为邮件内容还原打下基础,从而减少X络安全事件的发生。2系统基本原理概述 目前,运用比较广泛的电子邮件协议包括SMTP协议,POP3协议以及IMAP4协议,这几类协议都包含在TCP/IP协议簇中,电子邮件在X络上传输前,必须被封装成帧的形式。数据包的封装过程中,被应用程序所接收的数据包包含两方面的内容,一是邮件本身,二是来自应用层以下的各个层次的数据包头信息。本文的实现原理是以Libnids和X络开发函数库来完成数据包的捕获。3SMTP数据包的分析与还原3.1SM
3、TP数据包的捕获(1)捕获数据包的流程 本文基于Libnids进行数据包的捕获,主要流程为: ①获取本地X络接口列表; ②打开X络接口,将其设置为混杂模式; ③调用函数nidsinit()进行Libnids的初始化; ④调用函数voidnids_registertcp(void(*))注册回调函数; ⑤调用函数nidsrun()循环捕获数据包; ⑥判断是否是25号端口,如果是,则分析SMTP协议,实现邮件内容重现,否则丢弃数据包; ⑦释放缓冲区。 在应用程序中,主函数的实现形式为: (2)获得X络接口列表 本系统
4、调用TP数据。为保证了数据传输的可靠性和完整性,本文利用Libnids的TCP数据流重组功能来解决TCP数据流的乱序问题、重叠问题以及重传问题。借助TCP数据流重组功能能够显示基于TCP协议的任何应用层协议,对数据进行分析并实现TCP连接。结合SMTP的会话过程解析数据包,得到想要的信息。下面是电子邮件的解析过程: ①调用回调函数void_smtp_protocol_callback(structtcp_stream*ns,void**param) ②获取客户端和服务器端的连接状态; ③获取SMTP客户端接收到的数据; ④获取
5、SMTP服务器接收到的数据; ⑤分析SMTP协议,从获取的数据中解析邮件内容; ⑥SMTP客户端和SMTP发送端连接关闭。4结束语 在本文所研究的电子邮件解析的基础上,可以进一步利用Base64的解码功能将经过解析的邮件还原成具体的字符,以实现系统安全性的提升。本系统的开发可以保证X络中受到监听的电子邮件全部处于可控范围内,不会发生漏包的现象,增强了局域X的安全。
此文档下载收益归作者所有