南华大学计算机科学与技术学院毕业设计
i
基于 SMTP 的邮件截获与还原技术研究
叶善锦
计算机科学与技术学院
摘 要
电子邮件是当今网络最常用的一种通信方式,作为保护网络信息安全的一种重
要手段,对电子邮件的网络监视的重要性日益彰显。本文首先分析了邮件传输协议
和邮局协议,掌握了 Base64 编码的原理和方法,然后以 Java 为平台,实现了基于
SMTP 协议的电子邮件的截获和邮件信息还原的有关技术和核心算法。本文有关技术
和算法经过了实验的验证。
关键词:
网络监视系统;邮件还原;简单邮件传输协议;MIME 协议
南华大学计算机科学与技术学院毕业设计
ii
Abstract:
E-mail is a common communication mode in network nowadays, as an
important means for protecting network information safety, It’s of great
importance to monitor the transmission of the E-mail. This paper first
analyzes SMTP protocol and POP protocol, the principle and methods of
Base64 is understood, then taking Java as the platform, we realize the
technology and the core algorithm about the intercept and restore of Email
based on SMTP. Relevant technology and algorithms are proved through
experience.
Keywords: Network Monitor System; Mail Restore; SMTP;MIME
南华大学计算机科学与技术学院毕业设计
iii
目 录
引 言 .......................................................................................................................................... 1
第一章 电子邮件技术 .................................................................................................................. 2
1.1 什么是电子邮件....................................................................................................................... 2
1.2 电子邮件的发展历史 ............................................................................................................... 2
1.2.1 电子邮件的诞生 ........................................................................................................... 2
1.2.2 电子邮件的 30 年发展历程........................................................................................... 2
1.2.3 Eudora 简史 .................................................................................................................. 3
1.3 三个重要的电子邮件传输协议 ............................................................................................... 3
1.3.1 SMTP 协议 ...................................................................................................................... 3
1.3.2 POP3 协议 ...................................................................................................................... 5
1.3.3 IMAP 协议 ...................................................................................................................... 7
1.4 多用途 Internet 邮件扩展(Multipurpose Internet Mail Extensions) ......................... 9
1.4.1 Base64 编码 .................................................................................................................. 9
1.4.2 Base64 编码/解码的算法实现 .................................................................................... 10
1.4.3 MIME 简介 .................................................................................................................... 11
1.4.4 MIME 邮件头的组成 ..................................................................................................... 12
1.4.5 MIME 的编码格式......................................................................................................... 12
1.5 电子邮件的编写与分析 ........................................................................................................ 14
1.5.1 Email 的封装过程 ....................................................................................................... 14
1.5.2 Email 的传输过程 ....................................................................................................... 16
1.5.3 信封头 ........................................................................................................................ 18
第二章 Java 技术简介 ................................................................................................................ 20
2.1 Java 是什么? ...................................................................................................................... 20
2.2 Java 语言的优势 ................................................................................................................... 20
2.2.1 安全性 ........................................................................................................................ 20
2.2.2 与平台无关性 ............................................................................................................. 22
2.3 Java 和 Jpcap 环境变量的设置 ............................................................................................ 23
2.4 Java 的多线程技术 ............................................................................................................. 24
2.4.1 线程与进程的区别 ...................................................................................................... 24
2.4.2 多线程的调度 ............................................................................................................. 26
2.4.3 线程的状态 ................................................................................................................. 26
2.4.4 线程的同步机制 ......................................................................................................... 27
2.4.5 系统多线程的实现 ...................................................................................................... 28
第三章 监控系统的整体设计 ..................................................................................................... 29
3.1 邮件监视系统的基本功能...................................................................................................... 29
3.2 邮件监视系统的基本模型 ..................................................................................................... 29
第四章 数据报的截获与分析 ..................................................................................................... 31
4.1 网络数据包的捕获 ................................................................................................................. 31
4.1.1 winpcap 介绍 .............................................................................................................. 31
4.1.2 数据报采集原理 ......................................................................................................... 31
4.1.3 网络接口卡的设置 ...................................................................................................... 32
第五章 邮件监视系统的实现 ..................................................................................................... 34
南华大学计算机科学与技术学院毕业设计
iv
5.1 捕获器的实现 ........................................................................................................................ 34
5.1.1 捕获器原理 ................................................................................................................. 34
5.1.3 捕获器算法实现 ......................................................................................................... 35
5.1.2 捕获器的代码实现 ...................................................................................................... 36
5.2 分析器的实现 ........................................................................................................................ 38
5.3 基于 base64 的邮件的解码实现 ........................................................................................... 41
5.3.1 系统解码算法实现 ...................................................................................................... 41
5.3.2 邮件信头的识别 ......................................................................................................... 42
5.3.3 邮件的正文的识别 ...................................................................................................... 45
5.4 基于 Multipurpose Internet Mail Extensions 的解码实现 ............................................. 49
第六章 进一步工作 .................................................................................................................... 50
结束语 .......................................................................................................................................... 51
【参考文献】 ............................................................................................................................... 52
谢 辞 ........................................................................................................................................ 53
南华大学计算机科学与技术学院毕业设计
1
引 言
随着 Internet 的普及,网络数据的安全问题越来越引起人们的重视。特别是在
一些企业和国家机关,为了防止本单位数据的泄密,常需要网络监视系统来监视从
本单位传出的数据。
网络监视系统的关键技术有包捕获技术、包过滤技术和协议分析技术等。包捕
获技术研究如何捕获网络上的数据报,并采取措施降低丢包率。包过滤技术研究如
何从大量网络数据流中实时过滤出符合特定条件的数据帧,这些条件包括协议、IP
地址等
[1]
。协议分析技术应用于对捕获的数据流按协议进行解码分析,以提取数据
流中包含的信息。目前主流的包捕获技术有机 WinPcap
[2]
等,包过滤技术有 BSD 包
过滤器
[3]
。因为网络监视系统涉及面很广,所以通常设计的网络监视系统都针对某
种特定的应用。本文提出了一种电子邮件监视系统的模型,并在 Windows 环境下实
现了该系统,本系统在稍作修改后,还可以作为网络 IE 的监控。
要想截获以太同上的所有包,必须在连接时,通过编程把网卡设置戚杂乱模式。
本文以基于 SMTP 协议电子邮件为例,介绍过滤和还原的方法与技术。本文分析了多
用途 Internet 邮件扩展(MIME)报文中增加的 MIME 版本、内容类型、传输编码格式、
内容 ID 和内容说明等 5 个新的头域。并针对 RFC822 指定邮件消息必颏是 ASCII 字
符,讨论了数据转换中 MIME 定义的 Base64 编码。以这种编码为例,分析它的编码
技术,给出了 Base64 编码格式。
信息捕捉与还原技术是网络安全技术中监控系统实施的一个难点,同时也是实
现网络监控系统的基础。其中信息还原技术尤其重要,只有把要监控的信息还原成
监控软件能识别的格式或者把经过封装的信息还原成其初始状态,才能对其进行进
一步的分析和处理。本文以 Email 的 Base64 编码为例,对 Email 的内容中的文字进
行有效的解码。