网络垃圾邮件的预防
欧盟星期五发表的一份报告表明,垃圾邮件每年给全球网民造成的损失约为100亿欧元(合93.6亿美元),全球的网民每天收到的广告性电子邮件约为5亿条。欧盟在报告中指出,用户阅读或删除这些垃圾电子邮件所需的连接的费用正在不断地上升,“全球的互联网用户每年在这些垃圾邮件上所用的连接费用为100亿欧元。”垃圾邮件已经成为互联网上最令人担忧的问题之一。如何预防和制止垃圾邮件的产生和传播成为热点问题之一。
法律:
首先是法律上的原因。目前,美国有18个州通过了制止垃圾邮件的法律,欧洲有16国家通过了相关的法律。在这种情况下,垃圾邮件发送者,特别是职业的垃圾邮件发送者在这些地方进行操作会面临比较严厉的法律制裁。而在中国,目前还没有专门针对垃圾邮件的法律。虽然中国电信早在2000年8月就已经出台了垃圾邮件处理暂行办法,北京市工商局于2000年5月分布了《关于对利用电子邮件发送商业信息的行为进行规范的通告》,但截至目前,我们仍未发现有因为发送垃圾邮件而受到法律处罚的案例。慑于法律威力的美国垃圾邮件组织开始将操作重点移到中国。林弗德介绍说:“我们发现许多垃圾邮件团伙,例如81832.com在中国进行操作。因为他们知道,没有西方人能够制止他们(在中国)的活动。还有一个非常有名的垃圾邮件团伙,他们使用一个叫MrBill@btamail.net.cn的邮箱,只在中国进行操作。
协议
现行的邮件发送协议SMTP在设计时并没有考虑对发信人进行身份验证,因此如果一个刚刚装好未加任何修补措施的邮件服务器是不会对发信人进行身份验证的。由于在欧美,发送垃圾邮件有可能面临严厉的法律制裁,所以垃圾邮件组织都会选择未经修补的服务器进行操作。在西方,由于反垃圾邮件组织的努力,大部分服务商会告诫和帮助自己的用户修补这个漏洞。而国内ISP很少直接向用户进行这样的建议和帮助,所以国内有不少机器存在着这类问题。这种情况被美国的垃圾邮件组织发现并利用。我们对中国电信、韩国电信和美国在线的部分IP进行了一次粗略的测试,结果在相同的IP范围内,中国网段内未修补漏洞的机器数量是韩国的1.6倍,是美国的34倍。
管理
邮箱服务器的管理不是很规范,包括申请,发送,接收和过滤。此外,中国的网络管理员与国外反垃圾邮件组织沟通不畅,这也是造成美国垃圾邮件发送者在中国活动猩獗的重要原因。几乎所有被访的反垃圾邮件组织都抱怨,他们的投诉邮件几乎从未得到中国系统管理员的回应。史蒂夫.林弗德说:“在过去的三年里,中国电信忽略了所有关于垃圾邮件的投诉,这是为什么情况像今天这么糟糕的主要原因。我们年复一年地投诉而收不到任何回音,现在我们每个人都知道,除了全面屏蔽中国电信的地址,我们没有其他选择。”朱利安.海特则显得平静一些:“我曾经见过非常负责的中国网络管理员的回信,他们非常认真地处理被屏蔽的情况。但其他大部分中国网络管理员则不是这样,他们要么没空,要么根本不懂英语。”
解决方案
1、电子邮件系统和PKI系统的结合。
从结构上来说,电子邮件系统和PKI系统有很大程度上的相似性:
公钥
信箱地址
私钥
信箱密码
加密算法
远程邮箱服务器的存储
签名
显示信件的来源,发信时间
完整性
不可否认性
如果我们利用技术手段实现PKI的其他特性,我们可以实现普通的电子邮件不可能实现的激动人心的功能,如:
认证结构
证书库
证书撤销
交叉认证
客户端软件
机密性
认证
完整性
不可否认支持
安全时间戳
公正
安全时间归档
这样我们不仅可以实现安全电子邮件功能,而且还可以利用PKI的特性保证用户身份的可识别性,这样我们就保证了垃圾邮件的制造者无处可遁。
2、使用扩展的SMTP协议
扩展的SMTP协议称为ESMTP。我们以LOGIN登陆为例,其流程为
1 C: AUTH LOGIN
2 S: 334 dXNlcm5hbWU6
3 C: dXNlcm5hbWU6
4 S: 334 cGFzc3dvcmQ6
5 C: cGFzc3dvcmQ6
6 S: 235 Authentication successful.
1 为客户端向服务器发送认证指令。
2 服务端返回base64编码串,成功码为334。编码字符串解码后为“username:”,说明要求客户端发送用户名。
3 客户端发送用base64编码的用户名,此处为“username:”。
4 服务端返回base64编码串,成功码为334。编码字符串解码后为“password:”,说明要求客户端发送用户口令。
5 客户端发送用base64编码的口令,此处为“password:”。
6 成功后,服务端返回码为235,表示认证成功可以发送邮件了。
在ESMTP服务器上发送邮件,就像从POP3服务器收信一样,必须出示用户的帐号和密码,如果帐号和密码有误,ESMTP服务器则拒绝发送该邮件。
如此一来,非本地注册用户就无法盗用该ESMTP服务器乱发邮件了。如果发现是本地用户乱发垃圾邮件,网管马上就可以有的放矢地加以控制和制裁了。当所有的E-mail提供商都采用ESMTP这种措施之后,邮件系统的安全性和有效性将得到很大提高,使用户逐渐远离垃圾邮件的困扰。
3、利用数字现金协议实现电子邮件的匿名和识别
(1) 用户对给定数量的电子邮件申请文件准备n张匿名申请表。
在用户的不同的邮件中包含不同申请表版本,相同的邮件就包含相同的申请表。
每张申请表都包含了一个不同的随机唯一字符串X,X有足够长,足以使得有两个字符串相同的机会微乎其微。
在每一张申请表上也有n对鉴别比特字符串I1,I2,…,In。(在每张申请表上那都是n个不同的对。)这些对中的每一个都是按如下产生的:用户创造一个给出她的名字、地址以及任何管理员希望见到的鉴别信息的字符串。接着,她用秘密分割协议将它分成两部分。然后,她使用一种比特提交协议提交每一部分。
例如,I37由两部分组成: 和 。每一部分是一个可以要求用户打开的比特提交分组,其正确打开与否也可以立即验证。任何对如: 和 ,但不是 和 都会揭示用户的身份。
每张申请表看起来像这个样子:
总数 :n
唯一字符串:X
鉴别字符串:I1=(I1L,I1R)
I2=(I2L,I2R)
…
In=(InL,InR)
(2)用户用盲签名协议隐蔽所有n张申请表。她把它们全部给服务器。
(3)服务器要求用户恢复出随机的n-1张申请表并确认它们都是合格的。服务器检查总数、唯一字符串并要求用户出示所有鉴别字符串。
(4)如果服务器对没有任何进行欺骗的企图感到满意,它就在余下的一张隐蔽申请表上签名。服务器把这张隐蔽申请表的签名文件给用户,并开通对用户的电子邮件服务。
(5)用户恢复这张申请表,即可以通过已经开通的电子邮件服务收发邮件。
(6)接收方验证服务器的签名以确信这电子邮件是合法的。
(7)接收方要求随机解释邮件中申请表中每个鉴别字符串的左半或右半。实际上,接收方给用户一个随机的n比特选择字符串,b1,b2,…, bn。用户根据bI是0还是1公开II的左半或右半。
(8)用户同意。
(9)如果接收方认为这是垃圾邮件,他拿着这封电子邮件来到银行。
(10)服务器验证这个签名并检查它的数据以确信有相同唯一字符串的电子邮件先前没有被存过。如果没有,银行在它的数据库中记下这个唯一字符串和所有识别信息,且暂时不是垃圾邮件。
(11)如果这个唯一字符串在数据库中,它把汇票上的识别字符串同它数据库中存的相比较。如果相同,服务器知道是接收方复制了电子邮件,企图陷害用户。如果不同,银行知道是用户复制它,制造垃圾邮件。由于接收这封电子邮件的第二个接收方交给用户一个和第一个接收方不同的选择字符串,银行找出一个比特位,在这个比特位上,一个接收方让用户公开了左半,而另一个接收方让用户公开了右半。服务器异或这两半以揭露用户的身份。
这是一个相当迷人的协议,故让我们从不同角度来看看它。
用户能进行欺骗吗?她的电子邮件不过是一个比特字符串所以可以拷贝它,从而制造垃圾邮件。第一次发送它不会有问题,她只需完成协议,则一切进展顺利。接收方在第(7)步中给她一个随机的n比特选择字符串,并且用户在第(8)步中将公开每个II的左半或右半。在第(10)步中,服务器将记录所有这些数据,连同邮件的唯一字符串。
当她试图第二次发送同一邮件时,接收方(同一个接收方或另一接收方)将在第(7)步中给她一个不同的随机选择字符串。用户必须在第(8)步中同意;不这样做势必立即提醒接收方有些事值得怀疑。现在,当这个接收方在第(10)步中将邮件送到服务器时,服务器会立即发现带相同唯一字符串的电子已经存过。银行接着比较鉴别字符串中所有公开的部分。两个随机选择字符串相同的机会是2n分之一,这种概率非常小。现在,服务器找出这样一对,其中一半第一次被公开,另一半第二次被公开。它把这两半一起异或,马上得到用户的名字,于是服务器就知道谁试图多次发送同一邮件。
应当指出,这个协议不能让用户不进行垃圾邮件的产生和传播,但它能几乎肯定地检测她的欺骗。如果用户进行欺骗,她不可能不暴露身份。她不可能改变唯一字符串或任何的识别字符串,因为此时服务器的签名不再有效。这个商人将在第(6)步中马上意识到这点。
用户可能试图用一张空头的申请表骗过银行,这张申请表上的识别字符串不会泄露她的名字,或最好是一张其识别字符串泄露其他人名字的汇票。她在第(3)步中进行这种欺诈骗过银行的机会是n分之一。这些并非是不可能的机会,但如果你作出的惩罚足够严厉的话,用户不敢以身试法。或者,你可以增加用户在第(1)步中制作的多余申请表的数目。
这个接收方能进行欺骗吗?他的机会甚至更小。他同样不能将这封电子邮件发送两次;银行将会发现选择字符串被重复使用。他不能以捏造陷害用户,只有用户才能打开任意的识别字符串。
服务器又怎样呢?它能不能知道它从接收人那儿收到的是它为用户签的那张呢?在第(2)至第(5)中的盲签名协议保护了用户。银行无法作出判断,即使它保留了每次交易的完整记录。说得更重些,服务器和接收方在一起也无法知道用户是谁。只要用户不造成多个接收方的抱怨,她可以完全匿名地发送邮件。
第三方可以进行欺骗。如果她偷到服务器对申请书的签名,并在用户发现之前发送大量的垃圾邮件,那么用户会被认为是一个欺骗者。没有办法防止这种情况;它是匿名的直接后果。
以上的协议确保了电子邮件用户的匿名权利,但同时也防止了匿名所带来的不负责任的垃圾邮件,因为只要有一定数量的接收方发现邮件为垃圾邮件,就可以把邮件转给管理员,让他来处理。如果惩罚够严厉的话,相信不会有人以身试法。
垃圾电子邮件的问题不容忽视,我相信如果我们加大力度,结合技术,法律和管理,必然可以减少甚至杜绝垃圾邮件的产生