5.5.3 电子邮件系统原理及其安全技术
1.电子邮件概述
电子邮件(Electronic Mail,简称E-mail)又称电子信箱或电子邮政,是一种用电子手段提供信息交换的通信方式。它是全球多种网络上使用最普遍的一项服务。这种非交互式的通信,加速了信息的交流及数据传送。它通过连接全世界的Internet,实现各类信号的传送、接收、存储等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源使用最多的一种服务,E-mail不只局限于信件的传递,还可用来传递文件、声音及图形、图像等不同类型的信息。电子邮件是“存储转发式”服务,而这正是电子信箱系统的核心。利用存储转发可进行非实时通信,即信件发送者可随时随地发送邮件,不要求接收者同时在场,即使对方现在不在,仍可将邮件立刻送到对方的信箱内,且存储在对方的电子邮箱中。接收者可在他认为方便的时候读取信件,不受时空限制。在这里,“发送”邮件意味着将邮件放到收件人的信箱中,而“接收”邮件则意味着从自己的信箱中读取信件,信箱实际上是由文件管理系统支持的一个实体。电子邮件是通过邮件服务器(mail server)来传递文件的,而mail server通常是执行多任务操作系统的计算机,它提供24小时的电子邮件服务,用户只要向邮件服务器管理人员申请一个信箱账号,就可使用这项快速的邮件服务。
同文件传输应用一样,电子邮件也是最早出现在ARPANET中的应用,是传统邮件的电子化。它的诱人之处在于传递迅速。在ARPANET上,几秒钟就可以完成美国东西海岸间的邮件传递,风雨无阻,比人工邮件快了许多。跟最常用的日常通信手段——电话系统相比,电子邮件在速度上虽然不占优势,但它不要求通信双方同时在场:假如收方不在,系统可以留下一份消息(message)拷贝,到他上机时通知他。这是电话系统做不到的,而打电话时对方不在的情况在半数以上。另外,电子邮件还可以进行一对多的邮件传递,同一邮件可以一次发送给许多人。最重要的是,电子邮件是整个网间以至所有其他网络系统中直接面向人与人之间信息交流的系统,极大地满足了大量的人与人之间通信的需求。由于上述优点,电子邮件深受用户欢迎。出乎ARPANET设计者意料,人与人之间电子邮件的通信量一开始就大大超出进程间的通信量,使电子邮件成为ARPANET上最繁忙的业务。因此,后来出现的通用的网络体系结构,几乎无一例外地均把电子邮件作为一个重要的应用,纳入自己的协议族。
2.TCP/IP电子邮件系统原理
电子邮件的基本原理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”。每位用户都有属于自己的一个电子信箱,并确定一个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存档三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。电子邮件的通信是在信箱之间进行的。
邮件传递同其他的网络使用方法有着根本的区别。一般地,网络协议都是直接发送分组到目的地,并为各个报文段使用定时器,在超时未收到确认时要进行重传。但是使用电子邮件,当远地机器或网络连接出现故障时系统还必须提供服务。发送者在继续工作前不必等待远地机器变成可用,也不会仅仅由于暂中断与远地机器的连接就放弃传送。
在通常的情况下,一封电子邮件的发送需要经过用户代理(User Agent)、传输代理(Transfer Agent)和投递代理(Delivery Agent)等三个程序的参与。
用户代理是一个用户端发信和收信的程序,负责将信按照一定的标准封装,然后送至邮件服务器,将信件发出或由邮件服务器收回。用户代理接受用户输入的各种指令,将用户的邮件传送至信件传输代理或者通过POP3、IMAP将信件从传输代理服务器处取到本机上。常见的用户代理有“Foxmail”、“Outlook Express”等邮件客户程序。邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者提交给最终投递程序。也就是说传输代理负责信件的交换和传输,将信件传送至适当的邮件主机,再由投递代理将信件分发至不同的邮件信箱。传输代理必须要能够接收用户邮件程序送来的信件,解读收信人的地址,根据SMTP协议将它正确无误地传递到目的地。当用户发送一封电子邮件时,并不能直接将信件发送到对方邮件地址指定的服务器上,而是必须首先试图去寻找一个信件传输代理,把邮件提交给它。传输代理默认监听25号端口,当接受用户的请求时,邮件服务器程序得到一封待发送的邮件信件。传输代理得到了邮件后,首先将它保存在自身的缓冲队列中。然后,根据邮件的目标地址,信件传输代理程序查询到对应这个目标地址负责的邮件传输代理服务器,并且通过网络将邮件传送给它。根据目标地址确定将信件投递给哪一个服务器,这是通过DNS服务实现的。对方的邮件服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者查看自己的电子信箱。显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接收邮件。有许多的程序可以作为信件传输代理,包括qmail,sendmail,postfix等等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱。
在处理错误或超时发送的信件时,为了避免客户发送端需要等到对方邮件服务器恢复正常才能继续发送E-mail,邮件服务器采用了缓冲池技术(Spooling),当发送者发送邮件时,邮件服务器将诸如发送者ID,接收人的E-mail账号、寄件日期、时间、主题及E-mail内容等信息,放置于Spooling区中,然后邮件服务器会以后台方式,不断地尝试发送邮件至接收人的邮件服务器。而同时发送者仍旧能继续处理其他邮件,不像其他网络应用需要等待其返回确认信息。
传输代理和投递代理程序一般都运行在同一台邮件服务器上,所以又把传输代理和投递代理统称为报文传输代理(Message Transfer Agent,MTA)。在邮件整个传递过程中就是我们所说的邮件服务器,电子邮件在Internet上传送过程如图5-27所示。
图5-27 邮件传输过程
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。