基于相似性量度过滤垃圾邮件的方法和装置的制作方法

文档序号:7606749阅读:301来源:国知局
专利名称:基于相似性量度过滤垃圾邮件的方法和装置的制作方法
技术领域
本发明涉及过滤电子邮件(email);更具体而言,本发明涉及基于相似性量度(similarity measure)过滤垃圾邮件(email spam)。
背景技术
因特网正在逐渐普及,越来越多人通过因特网来从事商业活动,并通过生成和发送电子群发邮件来宣传他们的产品和服务。这些电子消息(email)通常是未经请求的,并被接收者看作令人讨厌的东西,因为这些消息占用了大量必需和重要的数据处理所需的存储空间。例如,当邮件服务器的存储容量被不想要的包含广告的电子邮件填满至最大值时,邮件服务器可能不得不拒收重要的和/或所需的电子邮件。此外,诸如机顶盒、PDA、网络计算机和寻呼机之类的精简型客户端系统都具有有限的存储容量。在这些系统中的任何一种系统中,不想要的电子邮件会占用用户的有限资源。另外,典型用户会由于下载大量无用的广告信息而浪费时间。这些不想要的电子邮件通常被称为垃圾邮件。
当前,存在能够过滤出不想要的消息的产品。例如,存在如下的垃圾邮件阻截方法,该方法保存所有垃圾邮件代理(即生成大量未经请求的电子邮件的公司)的索引列表,并且提供用于阻截从该列表上的公司发送的任何电子邮件的装置。
另一当前可用的“垃圾邮件”过滤器采用了如上所述的基于预定单词和样式的过滤器。如果传入的邮件的主题包含了已知的垃圾邮件样式,则将该邮件指定为不想要的邮件。
但是,随着垃圾邮件过滤技术复杂性的提高,垃圾邮件发送者用于避开过滤器的技术也在提高。近期的垃圾邮件发送者所采用的策略示例包括随机化、来源隐藏和使用HTML的过滤器逃避。

发明内容
本发明描述了用于基于相似性量度来过滤垃圾邮件的方法和系统。根据一个方面,所述方法包括接收传入的电子邮件消息,基于传入的电子邮件消息的内容来生成表征传入的电子邮件消息的数据,以及将生成的数据与表征垃圾邮件消息的数据集合相比较。该方法还包括确定表征传入的电子邮件消息的数据和来自表征垃圾邮件消息的数据集合的任何数据项之间的相似度(resemblance)是否超出阈值。
从以下附图和详细描述中,本发明的其他特征将更加明显。


从下面给出的详细描述和本发明的各种实施例的附图中,将更全面地理解本发明,但是,这些实施例不应被理解为将本发明局限于特定实施例,而仅仅是用于说明和理解的。
图1是用于控制垃圾电子邮件的递送的系统的一个实施例的框图。
图2是垃圾邮件内容准备模块的一个实施例的框图。
图3是相似性确定模块的一个实施例的框图。
图4是用于处理垃圾邮件消息的过程的一个实施例的流程图。
图5是用于基于相似性量度过滤垃圾邮件的过程的一个实施例的流程图。
图6A是用于创建电子邮件消息的签名的过程的一个实施例的流程图。
图6B是用于使用电子邮件消息的签名来检测垃圾邮件的过程的一个图7是用于对文档进行基于字符的比较的过程的一个实施例的流程图。
图8是用于确定两个文档是否相似的过程的一个实施例的流程图。
图9是用于减小电子邮件消息中的噪声的过程的一个实施例的流程图。
图10是用于修改电子邮件消息以减小噪声的过程的一个实施例的流程图。
图11是示例性计算机系统的框图。
具体实施例方式
本发明描述了用于基于相似性量度来过滤垃圾邮件的方法和装置。在以下描述中,提出了多个细节。但是,对本领域技术人员来说显而易见的是,无需这些具体细节也可以实现本发明。在其他实例中,公知的结构和设备以框图形式示出而未进行详细描述,以便避免模糊本发明的主题。
以下详细描述中的某些部分是根据对于计算机存储器内的数据位的操作的算法和符号表示而给出的。这些算法描述和表示是数据处理领域的技术人员用来向该领域的其他技术人员最有效地传达他们的工作实质的手段。算法在这里,并且在一般情况下,被认为是用于导向所需结果的前后一致的步骤序列。这些步骤需要物理量的物理处理。这些量通常采取能够被存储、传输、组合、比较和以其他方式被处理的电信号或磁信号的形式,但这不是必需的。已经证明,将这些信号称为位、值、元素、符号、字符、项、数字等有时是方便的,这主要出于公共使用的原因。
但是应该记住,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非特别指出,否则从以下论述中显而易见的是,贯穿整个说明书,利用诸如“处理”或“计算(computing)”或“计算(calculating)”或“确定”或“显示”等等的术语的论述指的是计算机系统或类似电子计算设备的动作和处理,所述计算机系统或类似电子计算设备对计算机系统的寄存器和存储器内的被表示为物理(电子)量的数据进行处理,并将其转换为计算机系统存储器或寄存器或其他这样的信息存储、传输或显示设备内的其他被类似地表示为物理量的数据。
本发明还涉及用于执行这里的操作的装置。该装置可以根据所需目的来具体构建,或者它也可以包含由存储在计算机中的计算机程序来选择性激活或重配置的通用计算机。这种计算机程序可以被存储在计算机可读存储介质中,所述计算机可读存储介质例如但不局限于包括软盘、光盘、CD-ROM和磁光盘在内的任何类型的盘、只读存储器(ROM)、随机访问存储器(RAM)、EPROM、EEPROM、磁卡或光卡或者适合于存储电子指令的任何类型的介质,并且它们中的每一个都被耦合到计算机系统总线。
这里给出的算法和显示并非固有地与任何特定计算机或其他装置相关。各种通用系统可以与根据这里教导的程序一起使用,或者可以证明,构建更加专门的装置来执行所需方法步骤是很方便的。从以下描述中,多种这些系统的所需结构将显现出来。另外,本发明不是参考任何特定编程语言来描述的。将会意识到,多种编程语言可以被用于实现这里所述的本发明的教导。
机器可读介质包括用于以机器(例如计算机)可读的形式来存储或传输信息的任何机制。例如,机器可读介质包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电的、光的、声的或其他形式的传播信号(例如载波、红外信号、数字信号等等)等等。
基于相似性量度过滤垃圾邮件图1是用于控制垃圾电子邮件(email)的递送的系统的一个实施例的框图。该系统包括控制中心102,该控制中心耦合到诸如公共网络(例如因特网、无线网络等等)或专用网络(例如LAN、内联网等等)之类的通信网络100。控制中心102经由网络100与多个网络服务器104通信。每个服务器104都使用专用或公共网络与用户终端106通信。
控制中心102是反垃圾邮件设施,它负责分析被识别为垃圾邮件的消息、开发用于检测垃圾邮件的过滤规则以及将过滤规则分发到服务器104。消息可以由于其发送自己知的垃圾邮件源(例如通过使用“垃圾邮件探测器”而确定出的垃圾邮件源,所述垃圾邮件探测器亦即为了进入尽可能多的垃圾邮件发送者邮件列表而具体选出的电子邮件地址)而被识别为垃圾邮件。
服务器104可以是邮件服务器,它接收和存储已发送的被寻址到相应用户终端的用户的消息。或者,服务器104可以是耦合到邮件服务器104的不同服务器。服务器104负责基于从控制中心102接收到的过滤规则来过滤传入的消息。
在一个实施例中,控制中心102包括垃圾邮件内容准备模块108,该模块负责生成表征与垃圾邮件攻击相关联的内容的数据,并将该数据发送到服务器104。每个服务器104包括相似性确定模块110,该模块负责存储从控制中心102接收到的垃圾邮件数据,并使用存储的数据来识别与垃圾邮件内容类似的传入电子邮件消息。
在另一个实施例中,每个服务器104既包含生成表征与垃圾邮件攻击相关联的内容的数据的垃圾邮件内容准备模块108,还包含使用生成的数据来识别与垃圾邮件内容类似的电子邮件消息的相似性确定模块110。
图2是垃圾邮件内容准备模块200的一个实施例的框图。垃圾邮件内容准备模块200包括垃圾邮件内容解析器202、垃圾邮件数据生成器206和垃圾邮件数据发送器208。
垃圾邮件内容解析器202负责解析出由于垃圾邮件攻击而产生的电子邮件消息(被称为垃圾邮件消息)的主体。
垃圾邮件数据生成器206负责生成表征垃圾邮件消息的数据。在一个实施例中,表征垃圾邮件消息的数据包括为构成垃圾邮件消息的多组标志(token)(例如字符、单词、行等等)计算出的散列值列表。表征垃圾邮件消息或任何其他电子邮件消息的数据在这里被称为消息签名。垃圾邮件消息或任何其他电子邮件消息的签名可以包含标识消息内容的各种数据,并且可以通过允许在比较不同电子邮件消息的签名的过程中使用相似性量度的各种算法来创建。
在一个实施例中,垃圾邮件内容准备模块200还包括噪声减小算法204,该算法负责检测指示噪声的数据,并在生成垃圾邮件消息的签名之前从垃圾邮件消息中删除噪声。噪声代表对接收者来说不可见的数据,该数据被添加到垃圾邮件消息中以隐藏其垃圾邮件的本质。
在一个实施例中,垃圾邮件内容准备模块200还包括消息分组算法(未示出),该算法负责将来源于单个垃圾邮件攻击的消息聚集成组。分组过程可以基于垃圾邮件消息的特殊特性(例如包括的URL、消息部分等等)来执行。如果使用分组过程,则垃圾邮件数据生成器206可以生成用于一组垃圾邮件消息而不是每个单独的消息的签名。
垃圾邮件数据发送器208负责将垃圾邮件消息的签名分发到参与的服务器,例如图1的服务器104。在一个实施例中,每个服务器104周期性地(例如每5分钟)发起与呼叫中心102的连接(例如安全的HTTPS连接)。使用该拉式(pull-based)连接,签名被从呼叫中心102发送到相关服务器106。
图3是相似性确定模块300的一个实施例的框图。相似性确定模块300包括传入消息解析器302、垃圾邮件数据接收器306、消息数据生成器310、相似度识别器312和垃圾邮件数据库304。
传入消息解析器302负责解析传入的电子邮件消息的主体。
垃圾邮件数据接收器306负责接收垃圾邮件消息的签名,并将它们存储在垃圾邮件数据库304中。
消息数据生成器310负责生成传入的电子邮件消息的签名。在某些实施例中,传入的电子邮件消息的签名包括为构成传入的电子邮件消息的多组标志(例如字符、单词、行等等)计算出的散列值列表。在其它实施例中,传入的电子邮件消息的签名包括表征电子邮件消息的内容的各种其他数据(例如构成传入的电子邮件消息的标志集合的子集)。如上所述,电子邮件消息的签名可以通过使用允许在比较不同电子邮件消息的签名的过程中使用相似性量度的各种算法来创建。
在一个实施例中,相似性确定模块300还包括传入消息清理算法308,如下面将更详细描述的,该算法负责检测指示噪声的数据,并在生成传入的电子邮件消息的签名之前,从传入的电子邮件消息中删除噪声。
相似度识别器312负责将每个传入的电子邮件消息的签名与存储在垃圾邮件数据库304中的垃圾邮件消息的签名相比较,并基于该比较的结果来确定传入的电子邮件消息是否与任何垃圾邮件消息相类似。
在一个实施例中,垃圾邮件数据库304存储为经历噪声减小过程之前的垃圾邮件消息(即带噪声的垃圾邮件消息)生成的签名以及为这些经历噪声减小过程之后的垃圾邮件消息(即噪声被减小的垃圾邮件消息)生成的签名。在该实施例中,消息数据生成器310首先生成在噪声减小之前传入的电子邮件消息的签名,并且相似度识别器312将该签名与带噪声的垃圾邮件消息的签名相比较。如果该比较的结果指示传入的电子邮件消息与这些垃圾邮件消息相类似,相似度识别器312则将该传入的电子邮件消息标记为垃圾邮件。或者,相似度识别器312调用传入消息清理算法308,以从传入的电子邮件消息中删除噪声。然后,消息数据生成器310生成修改后的传入消息的签名,然后相似度识别器312将该签名与噪声被减小的垃圾邮件消息的签名相比较。
图4是用于处理垃圾邮件消息的过程400的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。在一个实施例中,处理逻辑位于图1的控制中心102处。
参考图4,过程400开始于处理逻辑接收垃圾邮件消息(处理块402)。
在处理块404处,处理逻辑修改该垃圾邮件消息以减小噪声。随后将结合图9和10来更详细论述噪声减小算法的一个实施例。
在处理块406处,处理逻辑生成垃圾邮件消息的签名。正如下面将结合图6A更详细论述的,在一个实施例中,垃圾邮件消息的签名包括为构成传入的电子邮件消息的多组标志(例如字符、单词、行等等)计算出的散列值列表。在其他实施例中,传入的电子邮件消息的签名包括表征电子邮件消息的内容的各种其他数据。
在处理块408处,处理逻辑将垃圾邮件消息的签名传送到服务器(例如图1的服务器104),该服务器使用垃圾邮件消息的签名来找出与垃圾邮件消息相似的传入电子邮件消息(块410)。
图5是用于基于相似性量度来过滤垃圾邮件的过程500的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。在一个实施例中,处理逻辑位于图1的服务器104处。
参考图5,过程500开始于处理逻辑接收传入的电子邮件消息(处理块502)。
在处理块504处,处理逻辑修改传入消息以减小噪声。随后将结合图9和10来更详细论述噪声减小算法的一个实施例。
在处理块506处,处理逻辑基于传入消息的内容生成传入消息的签名。正如下面将结合图6A更详细论述的,在一个实施例中,传入的电子邮件消息的签名包括为构成传入的电子邮件消息的多组标志(例如字符、单词、行等等)计算出的散列值列表。在其他实施例中,传入的电子邮件消息的签名包括表征电子邮件消息的内容的各种其他数据。
在处理块508处,处理将传入消息的签名与垃圾邮件消息的签名相比较。
在处理块510处,处理逻辑确定传入消息的签名和某个垃圾邮件消息的签名之间的相似度是否超出阈值相似性量度。随后将结合图6B更详细论述用于确定两个消息之间的相似度的过程的一个实施例。
在处理块512处,处理逻辑将传入的电子邮件消息标记为垃圾邮件。
图6A是用于创建电子邮件消息的签名的过程600的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。在一个实施例中,处理逻辑位于图1的服务器104处。
参考图6A,过程600开始于处理逻辑将电子邮件消息划分为多组标志(处理块602)。其中每组标志可以包括来自电子邮件消息的预定数目的连续单元。该预定数目可以等于或大于1。一个单元可以代表电子邮件消息中的一个字符、一个单词或一行。在一个实施例中,每组标志与该组标志在电子邮件消息中的出现次数组合在一起。
在处理块604处,处理逻辑计算用于多组标志的散列值。在一个实施例中,散列值是通过将散列函数应用到一组标志和相应的标志出现次数的每个组合而计算出的。
在处理块606处,处理逻辑使用计算出的散列值来创建电子邮件消息的签名。在一个实施例中,通过选择计算出的散列值的一个子集,并将表征电子邮件消息的参数添加到所选出的计算出的散列值的子集来创建签名。所述参数例如可以指定电子邮件消息的大小、计算出的散列值的数目、与电子邮件消息相关联的关键字、附件的名称等等。
在一个实施例中,电子邮件消息的签名是通过使用基于字符的文档比较机制来创建的,该机制随后将结合图7和8来更详细地论述。
图6B是用于使用电子邮件消息的签名来检测垃圾邮件的过程650的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。在一个实施例中,处理逻辑位于图1的服务器104处。
参考图6B,过程650将传入的电子邮件消息的签名中的数据与每个垃圾邮件消息的签名中的数据相比较。签名数据包括表征电子邮件消息的内容的参数和为包含在电子邮件消息中的标志生成的散列值的子集。该参数例如可以指定电子邮件消息的大小、电子邮件消息中的标志数目、与电子邮件消息相关联的关键字、附件的名称等等。
该处理逻辑开始于将传入的电子邮件消息的签名中的参数与每个垃圾邮件消息的签名中的相应参数相比较(处理块652)。
在判决框654处,处理逻辑确定是否有任何垃圾邮件消息的签名包含了与传入消息的签名中的参数相类似的参数。相似性例如可以基于两个参数之间的允许差异或两个参数的允许比率来确定。
如果没有垃圾邮件消息签名包含与传入消息签名的参数相类似的参数,则处理逻辑判定传入的电子邮件消息是合法的(即不是垃圾邮件)(处理块662)。
或者,如果一个或多个垃圾邮件消息签名具有相似参数,则处理逻辑确定第一垃圾邮件消息的签名是否具有与传入电子邮件的签名中的散列值相类似的散列值(判决框656)。基于相似性阈值,例如,如果一定数目的散列值匹配或者匹配与不匹配的散列值之比超过指定阈值,则可以认为散列值是相似的。
如果第一垃圾邮件消息签名具有与传入的电子邮件签名的散列值相类似的散列值,则处理逻辑判定传入的电子邮件消息是垃圾邮件(处理块670)。否则,处理逻辑进一步利用相似参数确定是否存在其他垃圾邮件消息签名(判决框658)。如果是,则处理逻辑确定下一个垃圾邮件消息签名是否具有与传入电子邮件签名的散列值类似的散列值(判决框656)。如果是,则处理逻辑判定传入的电子邮件消息是垃圾邮件(处理块670)。如果不是,则处理逻辑返回到处理块658。
如果处理逻辑确定不再有其他垃圾邮件消息签名具有相似的参数,则其判定传入的电子邮件消息不是垃圾邮件(处理块662)。
基于字符的文档比较机制图7是用于对文档进行基于字符的比较的过程700的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。
参考图7,过程700开始于处理逻辑对文档进行预处理(处理块702)。在一个实施例中,通过将文档中的每个大写字母字符改为小写字母字符来对文档进行预处理。例如,消息“I am Sam,Sam I am.”可以被预处理成表达式“i.am.sam.sam.i.am”。
在处理块704处,处理逻辑将文档划分成多个标志,其中每个标志包括来自文档的预定数目的连续字符。在一个实施例中,每个标志与其出现次数相组合。该组合被称为标示招牌(labeled shingle)。例如,如果在标志中的连续字符的预定数目等于3,则上面指定的表达式包括以下标示招牌的集合
i.a1.am1am.1m.s1.sa1sam1sm.2m.s1.sm2sam2am.3m.i1.i.1i.a2.am4在一个实施例中,所述招牌被表示为柱状图。
在处理块706处,处理逻辑计算标志的散列值。在一个实施例中,针对标示招牌来计算散列值。例如,如果将散列函数H(x)应用到上述每个标示招牌,则产生以下结果H(i.a1)->458348732H(.am1)->200404023H(am.1)->692939349H(m.s1)->220443033H(.sa1)->554034022H(8am1)->542929292H(am.2)->629292229H(m.s1)->702202232H(.sa2)->322243349H(8am2)->993923828
H(am.3)->163393269H(m.i1)->595437753H(.i.1)->843438583H(i.a2)->244485639H(.am4)->493869359在一个实施例中,处理逻辑随后对散列值进行排序,如下163393269200604023220643033246685639322263369458368732493869359542929292554034022595637753629292229692939349702202232843438583993923828在处理块708处,处理逻辑从计算出的散列值中选出散列值的子集。在一个实施例中,处理逻辑从排序后的散列值中选出X个最小值,并从中创建该文档的“概要(sketch)”。例如,对于X=4,概要可以被表达如下[163393269 200404023 220443033 244485639]。
在处理块710处,处理逻辑通过将关于文档的标志的参数添加到概要来创建该文档的签名。在一个实施例中,参数指定文档中原始标志的数目。在上述示例中,原始标志的数目为15。因此,文档的签名可以被表达如下[15 163393269 200404023 220443033 244485639]。
或者,参数可以指定文档的内容的任何其他特性(例如文档的大小、与文档相关联的关键字等等)。
图8是用于确定两个文档是否相似的过程800的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。
参考图8,过程800开始于处理逻辑执行以下步骤将在文档1和2的签名中指定的标志数目相比较,并且确定第一签名中的标志数目相对于第二签名中的标志数目是否在允许范围内(判决框802)。例如,允许范围可以是差异为1或更小,或者比率为90%或更高。
如果第一签名中的标志数目相对于第二签名中的标志数目在允许范围之外,则处理逻辑判定文档1和2是不同的(处理块808)。否则,如果第一签名中的标志数目相对于第二签名中的标志数目在允许范围以内,则处理逻辑确定签名1和2中的散列值之间的相似度是否超过阈值(例如,超过95%的散列值是相同的)(判决框804)。如果是,则处理逻辑判定这两个文档是相似的(处理块806)。如果不是,则处理逻辑判定文档1和2是不同的(处理块808)。
使用噪声减小的垃圾邮件过滤图9是用于减小电子邮件消息中的噪声的过程900的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。
参考图9,过程900开始于处理逻辑在电子邮件消息中检测指示噪声的数据(处理块902)。如上所述,噪声代表对邮件消息的接收者来说不可见的数据,它被添加到电子邮件消息中以避开垃圾邮件过滤。这种数据例如可以包括格式数据(例如HTML标签)、数字字符引用、字符实体引用、预定类别的URL数据等等。数字字符引用指定一个字符在文档字符集合中的代码位置。字符实体引用使用符号名称,以使作者无需记住代码位置。例如,字符实体引用&aring指的是小写字母“a”字符上加圆圈。
在处理块904处,处理逻辑修改电子邮件消息的内容以减小噪声。在一个实施例中,内容修改包括删除格式数据、将数字字符引用和字符实体引用翻译成它们的ASCII等同物以及修改URL数据。
在处理块906处,处理逻辑将经修改的电子邮件消息的内容与垃圾邮件消息的内容相比较。在一个实施例中,执行比较以识别确切的匹配。或者,执行比较以确定两个文档是否相似。
图10是用于修改电子邮件消息以减小噪声的过程1000的一个实施例的流程图。该过程可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如专用逻辑、可编程逻辑、微代码等等)、软件(例如运行在通用计算机系统或专用机器上)或其组合。
参考图10,过程1000开始于处理逻辑搜索电子邮件消息以找出格式数据(例如HTML标签)(处理块1002)。
在判决框1004处,处理逻辑确定找出的格式数据是否有资格成为例外。通常,HTML格式不在消息的信息内容中添加任何东西。但是,还存在一些例外。这些例外是包含了用于进一步处理消息的有用信息的标签(例如标签<BODY>、<A>、<IMG>和<FONT>)。例如,<FONT>和<BODY>标签是“白上加白(white on white)”文本消除所需的,而<A>和<IMG>标签通常包含可用于将数据传递到系统中的其他组件的链接信息。
如果格式数据没有资格成为例外,则从电子邮件消息中提取出格式数据(处理块1006)。
接下来,处理逻辑将每个数字字符引用和字符实体引用转换成相应的ASCII字符(处理块1008)。
在HTML中,数字字符引用可以采取两种形式1.语法“&#D;”,其中D是十进制数字,参考ISO 10646十进制字符数字D;以及
2.语法“&#xH;”或“&#XH;”,其中H是十六进制数字,参考ISO10646十六进制字符数字H。在数字字符引用中的十六进制数字对大小写不敏感。
例如,主体中经随机化的字符可能如以下表达式所示Th&#101&#32&#83a&#118&#105n&#103&#115R&#101&#103is&#116e&#114&#119&#97&#110&#116&#115&#32yo&#117。
该表达式的意思是短语“The SavingsRegister wants you.”。
在处理块1008处执行的转换有时可能需要被重复。例如,串“&”对应于ASCII中的串“&”,串“&#35”对应于ASCII中的串“#”,串“3”对应于ASCII中的3,串“#56;”对应于ASCII中的8,“#59;”对应于ASCII中的串“;”。因此,当组合串“&#38&#59;”被转换时,产生需要被转换的串“&”。
因此,在处理块1008处的第一转换操作之后,处理逻辑检查经转换的数据是否仍包括数字字符引用和字符实体引用(判决框1010)。如果检查结果是肯定的,则处理逻辑重复在处理块1008处的转换操作。否则,处理逻辑前进至处理块1012。
在处理块1012处,处理逻辑修改预定类别的URL数据。这些类别例如可以包括包含在URL中的已被处理逻辑转换成相应ASCII字符的数字字符引用。另外,URL“密码”语法可被用于在URL主机名中的“@”前面添加字符。这些字符被目标web服务器所忽略,但是它们在每个URL中添加了大量噪声信息。处理逻辑通过删除这些附加字符来修改URL数据。最后,处理逻辑删除URL末尾处串“?”之后的URL“询问”部分。
URL的一个示例如下http%3a%2f%2flotsofjunk@www.foo.com%2fbar.html?muchmorejunk处理逻辑将以上URL数据修改为http://www.foo.com/bar.html。
示例性计算机系统图11是可用于执行这里所述操作中的一个或多个操作的示例性计算机系统1100的框图。在替换实施例中,机器可以包括网络路由器、网络交换机、网桥、个人数字助理(PDA)、蜂窝电话、web工具或者任何能够执行指定该机器将采取的动作的指令序列的机器。
计算机系统1100包括处理器1102、主存储器1104和静态存储器1106,它们经由总线1108彼此通信。计算机系统1100还可以包括视频显示单元1110(例如液晶显示器(LCD)或阴极射线管(CRT))。计算机系统1100还包括字母数字输入设备1112(例如键盘)、光标控制设备1114(例如鼠标)、盘驱动单元1116、信号生成设备1120(例如扬声器)和网络接口设备1122。
盘驱动单元1116包括计算机可读介质1124,其上存储了体现上述方法中的任何一种或全部方法的一组指令(即软件)1126。软件1126还被示为完全或至少部分位于主存储器1104内和/或处理器1102内。软件1126还可以经由网络接口设备1122来发送或接收。为了本说明书的目的,术语“计算机可读介质”应当被理解为包括能够存储或编码指令序列的任何介质,所述指令是用于被计算机执行的并且其致使计算机执行本发明的方法中的任何一种方法。因此,术语“计算机可读介质”应当相应地被理解为包括但不局限于固态存储器、光盘和磁盘以及载波信号。
虽然在阅读了上述描述之后,本领域普通技术人员无疑将意识到本发明的多种变化和修改,但是应该理解,这里以举例说明的方式示出和描述的任何特定实施例决不想要被看作限制性的。因此,不希望对各种实施例的细节的引用限制权利要求书的范围,所述权利要求书本身仅仅叙述了被看作是对本发明来说必要的那些特征。
权利要求
1.一种方法,包括接收电子邮件消息;基于所述电子邮件消息的内容,生成表征所述电子邮件消息的数据;将所述表征所述电子邮件消息的数据与表征多个垃圾邮件消息的数据集合相比较;以及确定所述表征所述电子邮件消息的数据和所述表征所述多个垃圾邮件消息的数据集合内的任何数据项之间的相似度是否超过阈值。
2.如权利要求1所述的方法,还包括如果所述表征所述电子邮件消息的数据和所述表征所述多个垃圾邮件消息的数据集合内的任何数据项之间的相似度超过阈值,则将所述电子邮件消息标记为垃圾邮件。
3.如权利要求1所述的方法,还包括接收表征新的垃圾邮件消息的数据;以及将接收到的数据存储在数据库中。
4.如权利要求1所述的方法,还包括在接收到所述电子邮件消息时,评价所述电子邮件消息中添加的用于避开垃圾邮件过滤的噪声的存在情况;以及修改所述电子邮件消息的内容以减小所述噪声。
5.如权利要求4所述的方法,其中评价所述电子邮件消息中的噪声存在情况的步骤包括检测格式数据、数字字符引用、字符实体引用和预定URL数据中的至少一个。
6.如权利要求1所述的方法,其中生成表征所述电子邮件消息的数据的步骤包括将所述电子邮件消息划分成多个标志;以及针对所述多个标志计算多个散列值。
7.如权利要求6所述的方法,其中将所述表征所述电子邮件消息的数据与所述表征所述多个垃圾邮件消息的数据集合相比较的步骤包括在所述表征所述多个垃圾邮件消息的数据集合中找出一个或多个数据项,这些数据项具有与包含在所述表征所述多个垃圾邮件消息的数据中的附加信息相类似的附加信息;以及将所述表征所述电子邮件消息的数据中的散列值的子集与每个找出的数据项中的散列值的子集相比较,直到找出相似的散列值子集为止。
8.如权利要求3所述的方法,还包括评价所述新的垃圾邮件消息中噪声的存在情况;修改所述新的垃圾邮件消息的内容以减小所述噪声;以及基于经修改的新的垃圾邮件消息的内容,生成表征所述垃圾邮件消息的数据。
9.一种方法,包括接收垃圾邮件消息;基于所述垃圾邮件消息的内容,生成表征所述垃圾邮件消息的数据;以及将所述表征所述垃圾邮件消息的数据传送到服务器,所述表征所述垃圾邮件消息的数据随后被用于找出与所述垃圾邮件消息相似的传入消息。
10.如权利要求9所述的方法,还包括在接收到所述垃圾邮件消息时,评价所述垃圾邮件消息中噪声的存在情况;以及修改所述垃圾邮件消息的内容以减小所述噪声。
11.如权利要求9所述的方法,其中评价所述垃圾邮件消息中噪声的存在情况的步骤包括检测格式数据、数字字符引用、字符实体引用和预定URL数据中的至少一个。
12.如权利要求9所述的方法,其中生成表征所述垃圾邮件消息的数据的步骤包括将所述垃圾邮件消息划分成多个标志;以及针对所述多个标志计算多个散列值。
13.一种系统,包括传入消息解析器,用于接收电子邮件消息;消息数据生成器,用于基于所述电子邮件消息的内容来生成表征所述电子邮件消息的数据;以及相似度识别器,用于将所述表征所述电子邮件消息的数据与表征多个垃圾邮件消息的数据集合相比较,并且确定所述表征所述电子邮件消息的数据和所述表征所述多个垃圾邮件消息的数据集合内的任何数据项之间的相似度是否超过阈值。
14.如权利要求13所述的系统,还包括数据库,用于存储表征新的垃圾邮件消息的数据。
15.如权利要求13所述的系统,还包括消息清理算法,用于评价所述电子邮件消息中添加的用于避开垃圾邮件过滤的噪声的存在情况,以及修改所述电子邮件消息的内容以减小所述噪声。
16.一种系统,包括垃圾邮件内容解析器,用于接收垃圾邮件消息;垃圾邮件数据生成器,用于基于所述垃圾邮件消息的内容来生成表征所述垃圾邮件消息的数据;以及垃圾邮件数据发送器,用于将所述表征所述垃圾邮件消息的数据传送到服务器,所述表征所述垃圾邮件消息的数据随后被用于找出与所述垃圾邮件消息相似的传入消息。
17.如权利要求16所述的系统,还包括噪声减小算法,其用于评价所述垃圾邮件消息中噪声的存在情况,以及修改所述垃圾邮件消息的内容以减小所述噪声。
18.如权利要求17所述的系统,其中所述噪声减小算法用于通过检测格式数据、数字字符引用、字符实体引用和预定URL数据中的至少一个,来评价所述垃圾邮件消息中噪声的存在情况。
19.一种装置,包括用于接收电子邮件消息的装置;用于基于所述电子邮件消息的内容,生成表征所述电子邮件消息的数据的装置;用于将所述表征所述电子邮件消息的数据与表征多个垃圾邮件消息的数据集合相比较的装置;以及用于确定所述表征所述电子邮件消息的数据和所述表征所述多个垃圾邮件消息的数据集合内的任何数据项之间的相似度是否超过阈值的装置。
20.如权利要求19所述的装置,还包括用于接收表征新的垃圾邮件消息的数据的装置;以及用于存储接收到的数据的数据库。
21.一种装置,包括用于接收垃圾邮件消息的装置;用于基于所述垃圾邮件消息的内容,生成表征所述垃圾邮件消息的数据的装置;以及用于将所述表征所述垃圾邮件消息的数据传送到服务器的装置,所述表征所述垃圾邮件消息的数据随后被用于找出与所述垃圾邮件消息相似的传入消息。
22.如权利要求21所述的装置,还包括用于评价所述垃圾邮件消息中噪声的存在情况的装置;以及用于修改所述垃圾邮件消息的内容以减小所述噪声的装置。
23.如权利要求21所述的装置,其中所述用于评价垃圾邮件消息中噪声的存在情况的装置包括用于检测格式数据、数字字符引用、字符实体引用和预定URL数据中的至少一个的装置。
24.一种包含可执行指令的计算机可读介质,当所述可执行指令在处理系统上被执行时致使所述处理系统执行包括以下步骤的方法接收电子邮件消息;基于所述电子邮件消息的内容,生成表征所述电子邮件消息的数据;将所述表征所述电子邮件消息的数据与表征多个垃圾邮件消息的数据集合相比较;以及确定所述表征所述电子邮件消息的数据和所述表征所述多个垃圾邮件消息的数据集合内的任何数据项之间的相似度是否超过阈值。
25.如权利要求24所述的计算机可读介质,其中所述方法还包括接收表征新的垃圾邮件消息的数据;以及将接收到的数据存储在数据库中。
26.如权利要求24所述的计算机可读介质,其中所述方法还包括在接收到所述电子邮件消息时,评价所述电子邮件消息中添加的用于避开垃圾邮件过滤的噪声的存在情况;以及修改所述电子邮件消息的内容以减小所述噪声。
27.一种包含可执行指令的计算机可读介质,当所述可执行指令在处理系统上被执行时致使所述处理系统执行包括以下步骤的方法接收垃圾邮件消息;基于所述垃圾邮件消息的内容,生成表征所述垃圾邮件消息的数据;以及将所述表征所述垃圾邮件消息的数据传送到服务器,所述表征所述垃圾邮件消息的数据随后被用于找出与所述垃圾邮件消息相似的传入消息。
28.如权利要求27所述的计算机可读介质,其中所述方法还包括在接收到所述垃圾邮件消息时,评价所述垃圾邮件消息中噪声的存在情况;以及修改所述垃圾邮件消息的内容以减小所述噪声。
29.如权利要求27所述的计算机可读介质,其中评价所述垃圾邮件消息中噪声的存在情况的步骤包括检测格式数据、数字字符引用、字符实体引用和预定URL数据中的至少一个。
30.一种方法,包括在电子邮件消息中检测指示添加到该电子邮件消息的用于避开垃圾邮件过滤的噪声的数据;修改所述电子邮件消息的内容以减小所述噪声;以及将所述电子邮件消息的修改后内容与垃圾邮件消息的内容相比较。
31.如权利要求30所述的方法,其中所述指示添加到所述电子邮件消息的噪声的数据是从如下群组中选出的,所述群组包括格式数据、一个或多个数字字符引用、一个或多个字符实体引用和预定类别的URL数据。
32.如权利要求31所述的方法,其中修改所述电子邮件消息的内容的步骤包括从所述电子邮件消息中提取出没有资格成为例外的格式数据。
33.如权利要求32所述的方法,其中有资格成为格式数据的例外的格式数据是所述电子邮件消息的处理所需的。
34.如权利要求31所述的方法,其中修改所述电子邮件消息的内容的步骤包括将每个数字字符引用和每个字符实体引用转换成相应的ASCII字符;确定经转换的数字字符引用和字符实体引用中的至少一个包含数字字符引用和字符实体引用中的任何一个;以及将所述数字字符引用和字符实体引用中的任何一个转换成相应的ASCII字符。
35.如权利要求31所述的方法,其中修改所述电子邮件消息的内容的步骤包括将URL内的每个数字字符和每个字符实体引用转换成相应的ASCII字符。
36.如权利要求31所述的方法,其中修改所述电子邮件消息的内容的步骤包括从URL中删除预定类别的唯一标识符数据。
37.如权利要求31所述的方法,其中修改所述电子邮件消息的内容的步骤包括从URL中删除预定类别的询问数据。
38.如权利要求30所述的方法,其中将所述电子邮件消息的修改后内容与所述垃圾邮件消息的内容相比较的步骤包括确定所述电子邮件消息的修改后内容是否与所述垃圾邮件消息的内容相似。
39.如权利要求30所述的方法,还包括在将所述电子邮件消息的修改后内容与所述垃圾邮件消息的内容相比较之前,修改所述垃圾邮件消息的内容以减小噪声。
40.一种系统,包括消息清理算法,用于在电子邮件消息中检测指示添加到该电子邮件消息的用于避开垃圾邮件过滤的噪声的数据,以及修改所述电子邮件消息的内容以减小所述噪声;以及相似度识别器,用于将所述电子邮件消息的修改后内容与垃圾邮件消息的内容相比较。
41.如权利要求40所述的系统,其中所述指示添加到所述电子邮件消息的噪声的数据是从如下群组中选出的,所述群组包括格式数据、一个或多个数字字符引用、一个或多个字符实体引用和预定类别的URL数据。
42.如权利要求41所述的系统,其中所述消息清理算法通过从所述电子邮件消息中提取出没有资格成为例外的格式数据来修改所述电子邮件消息的内容。
43.如权利要求42所述的系统,其中有资格成为格式数据的例外的格式数据是所述电子邮件消息的处理所需的。
44.如权利要求41所述的系统,其中所述消息清理算法通过如下方式来修改所述电子邮件消息的内容将每个数字字符引用和每个字符实体引用转换成相应的ASCII字符;确定经转换的数字字符引用和字符实体引用中的至少一个包含数字字符引用和字符实体引用中的任何一个;以及将所述数字字符引用和字符实体引用中的任何一个转换成相应的ASCII字符。
45.如权利要求41所述的系统,其中所述消息清理算法通过将URL内的每个数字字符和每个字符实体引用转换成相应的ASCII字符来修改所述电子邮件消息的内容。
46.如权利要求41所述的系统,其中所述消息清理算法通过从URL中删除预定类别的唯一标识符数据来修改所述电子邮件消息的内容。
47.如权利要求41所述的系统,其中所述消息清理算法通过从URL中删除预定类别的询问数据来修改所述电子邮件消息的内容。
48.如权利要求40所述的系统,其中所述相似度识别器通过确定所述电子邮件消息的修改后内容是否与所述垃圾邮件消息的内容相似来将所述电子邮件消息的修改后内容与所述垃圾邮件消息的内容相比较。
49.一种装置,包括用于在电子邮件消息中检测指示添加到该电子邮件消息的用于避开垃圾邮件过滤的噪声的数据的装置;用于修改所述电子邮件消息的内容以减小所述噪声的装置;以及用于将所述电子邮件消息的修改后内容与垃圾邮件消息的内容相比较的装置。
50.如权利要求49所述的装置,其中所述指示添加到所述电子邮件消息的噪声的数据是从如下群组中选出的,所述群组包括格式数据、一个或多个数字字符引用、一个或多个字符实体引用和预定类别的URL数据。
51.一种包含可执行指令的计算机可读介质,当所述可执行指令在处理系统上被执行时致使所述处理系统执行包括以下步骤的方法在电子邮件消息中检测指示添加到该电子邮件消息的用于避开垃圾邮件过滤的噪声的数据;修改所述电子邮件消息的内容以减小所述噪声;以及将所述电子邮件消息的修改后内容与垃圾邮件消息的内容相比较。
52.如权利要求51所述的计算机可读介质,其中所述指示添加到所述电子邮件消息的噪声的数据是从如下群组中选出的,所述群组包括格式数据、一个或多个数字字符引用、一个或多个字符实体引用和预定类别的URL数据。
53.一种方法,包括将第一文档划分成多个标志,其中每个标志包括来自所述第一文档的预定数目的连续字符;针对所述多个标志计算多个散列值;以及创建所述第一文档的签名,该签名包括来自所述多个散列值的散列值的子集以及与所述第一文档的多个标志相关的附加信息,所述第一文档的签名随后被与第二文档的签名相比较,以确定所述第一文档和所述第二文档之间的相似度。
54.如权利要求53所述的方法,还包括在将所述第一文档划分成多个标志之前,将所述第一文档内的每个大写字母字符改为小写字母字符,并且将所述第一文档内的每个非字母字符改为单个预定的非字母字符。
55.如权利要求53所述的方法,其中所述第一文档是第一电子邮件消息,所述第二文档是第二电子邮件消息。
56.如权利要求53所述的方法,其中针对所述多个标志计算所述多个散列值的步骤包括通过将所述多个标志中的每个标志与该标志在所述第一文档中的出现次数相结合,来为所述多个标志中的每个标志创建招牌;以及将散列函数应用到每个已创建的招牌。
57.如权利要求56所述的方法,其中针对所述多个标志创建的招牌被表示为柱状图。
58.如权利要求53所述的方法,其中每个标志中的连续字符的预定数目等于3。
59.如权利要求53所述的方法,其中所述与所述多个标志相关的附加信息包括包含在所述第一文档中的多个标志的数目。
60.如权利要求53所述的方法,其中创建所述第一文档的签名的步骤包括对所述多个散列值进行排序;以及从经排序的多个散列值中选出预定数目的最小散列值。
61.如权利要求59所述的方法,还包括确定包含在所述第一文档中的多个标志的数目相对于包含在所述第二文档中的多个标志的数目是否在允许范围内;并且如果包含在所述第一文档中的多个标志的数目相对于包含在所述第二文档中的多个标志的数目不在限定的范围内,则判定所述第一文档与所述第二文档不相似。
62.如权利要求61所述的方法,还包括确定包含在所述第一文档中的多个标志的数目相对于包含在所述第二文档中的多个标志的数目在限定的范围内;确定包含在所述第一文档的签名中的散列值的子集是否与包含在所述第二文档的签名中的散列值的子集相类似;并且如果包含在所述第一文档的签名中的散列值的子集与包含在所述第二文档的签名中的散列值的子集相类似,则判定所述第一文档与所述第二文档相似。
63.如权利要求62所述的方法,其中所述第二电子邮件消息是垃圾邮件消息。
64.如权利要求63所述的方法,还包括在判定所述第一文档与所述第二文档相似时,将所述第一电子邮件消息标记为垃圾邮件。
65.一种系统,包括解析器,用于将第一文档划分成多个标志,其中每个标志包括来自所述第一文档的预定数目的连续字符;以及消息数据生成器,用于针对所述多个标志计算多个散列值,并且创建所述第一文档的签名,该签名包括来自所述多个散列值的散列值的子集以及与所述第一文档的多个标志相关的附加信息,所述第一文档的签名随后被与第二文档的签名相比较,以确定所述第一文档和所述第二文档之间的相似度。
66.如权利要求65所述的系统,其中所述消息数据生成器还用于将所述第一文档内的每个大写字母字符改为小写字母字符,并且将所述第一文档内的每个非字母字符改为单个预定的非字母字符。
67.如权利要求65所述的系统,其中所述第一文档是第一电子邮件消息,所述第二文档是所述第二电子邮件消息。
68.如权利要求65所述的系统,其中所述消息数据生成器用于通过如下方式来针对所述多个标志创建多个散列值通过将所述多个标志中的每个标志与该标志在所述第一文档中的出现次数相结合,来为所述多个标志中的每个标志创建招牌;以及将散列函数应用到每个已创建的招牌。
69.如权利要求65所述的系统,其中每个标志中的连续字符的预定数目等于3。
70.如权利要求65所述的系统,其中所述与所述多个标志相关的附加信息包括包含在所述第一文档中的多个标志的数目。
71.如权利要求65所述的系统,其中所述消息数据生成器用于通过如下方式来创建所述第一文档的签名对所述多个散列值进行排序,并且从经排序的多个散列值中选出预定数目的最小散列值。
72.如权利要求70所述的系统,还包括相似度识别器,其用于确定包含在所述第一文档中的多个标志的数目相对于包含在所述第二文档中的多个标志的数目是否在允许范围内,并且如果包含在所述第一文档中的多个标志的数目相对于包含在所述第二文档中的多个标志的数目不在限定的范围内,则判定所述第一文档与所述第二文档不相似。
73.如权利要求72所述的系统,其中所述相似度识别器用于确定包含在所述第一文档中的多个标志的数目相对于包含在所述第二文档中的多个标志的数目在限定的范围内;确定包含在所述第一文档的签名中的散列值的子集是否与包含在所述第二文档的签名中的散列值的子集相类似;并且如果包含在所述第一文档的签名中的散列值的子集与包含在所述第二文档的签名中的散列值的子集相类似,则判定所述第一文档与所述第二文档相似。
74.一种装置,包括用于将第一文档划分成多个标志的装置,其中每个标志包括来自所述第一文档的预定数目的连续字符;用于针对所述多个标志计算多个散列值的装置;以及用于创建所述第一文档的签名的装置,该签名包括来自所述多个散列值的散列值的子集以及与所述第一文档的多个标志相关的附加信息,所述第一文档的签名随后被与第二文档的签名相比较,以确定所述第一文档和所述第二文档之间的相似度。
75.如权利要求74所述的装置,其中每个标志中的连续字符的预定数目等于3。
76.如权利要求74所述的装置,其中所述与所述多个标志相关的附加信息包括包含在所述第一文档中的多个标志的数目。
77.一种包含可执行指令的计算机可读介质,当所述可执行指令在处理系统上被执行时致使所述处理系统执行包括以下步骤的方法将第一文档划分成多个标志,其中每个标志包括来自所述第一文档的预定数目的连续字符;针对所述多个标志计算多个散列值;以及创建所述第一文档的签名,该签名包括来自所述多个散列值的散列值的子集以及与所述第一文档的多个标志相关的附加信息,所述第一文档的签名随后被与第二文档的签名相比较,以确定所述第一文档和所述第二文档之间的相似度。
78.如权利要求77所述的计算机可读介质,其中每个标志中的连续字符的预定数目等于3。
79.如权利要求77所述的计算机可读介质,其中所述与所述多个标志相关的附加信息包括包含在所述第一文档中的多个标志的数目。
全文摘要
本发明描述了基于相似性量度来过滤垃圾邮件的方法和系统。在一个实施例中,该方法包括接收传入的电子邮件消息;基于传入的电子邮件的内容生成表征传入的电子邮件消息的数据;以及将生成的数据与表征垃圾邮件消息的数据集合相比较。该方法还包括确定表征传入的电子邮件消息的数据和来自表征垃圾邮件消息的数据集合的任何数据项之间的相似度是否超过阈值。
文档编号H04L12/58GK1922837SQ200480017663
公开日2007年2月28日 申请日期2004年5月14日 优先权日2004年5月14日
发明者马特·格勒森, 大卫·赫格斯塔特, 桑迪·詹森, 埃里·曼特尔, 阿特·麦德拉, 肯·施奈德 申请人:布赖特梅有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1