用于阻止大量电子邮件消息的密码难题注销设备的制作方法

文档序号:7619751阅读:418来源:国知局
专利名称:用于阻止大量电子邮件消息的密码难题注销设备的制作方法
技术领域
本发明总体上属于分布式计算领域并特别更多的关于减少不希望的行为的系统和方法,例如通过如因特网的计算机网络集体发送非请求电子消息。
背景技术
电子消息,特别是通过因特网传播的电子邮件(e-mail),对于许多个人和组织已经变成通信的最优选方法。不幸地,e-mail收件人正越来越多地被非请求和不希望的大量邮件所影响。随着基于因特网商务的增长,很宽广并增长的多种电子市场重复地发送非请求邮件以宣传e-mail收件人曾经扩展过的领域的产品和设备。例如,仅仅响应于对不同网站产生的可能无害出现的访问者信息请求提供他们的e-mail地址的因特网用户,常常发现他们已经被包括在电子分配表上,在这之后一旦接收非请求邮件就会更多的引起他们的不满。这对用户的经历有负面影响,并且接收这些不希望e-mail,或“兜售信息”会减少用户在他们的商业场所的用户效率。
一旦收件人发现自己在电子邮件清单上,个人如果根本不能轻易地从清单上消除他的地址,因而足以使他或她将不断的接收非请求邮件。仅仅因为发件人或者阻止信息收件人识别那条信息的发件人(例如通过代理服务器发送邮件)并且因此避免了收件人与发件人联系企图从分配清单中消除,或者仅仅不理睬先前从要消除的收件人接收的任一请求就会发生上述情况。
个人很容易地在一年期间或者更短时间就会接收几百或几千封非请求普通邮件。与所述的那样严重,鉴于电子分配清单的可以被很容易交换的极其容易和微不足道的花费和通过极其多的地址传播的e-mail消息,包括在多个分配清单上的单一e-mail地址能期望在更短的时间期间接收相当多的非请求email消息。此外,虽然许多非请求e-mail消息是良性的,但是其它一些例如色情的、煽动性的和辱骂性的资料令收到它们的人非常厌恶。一些(病毒)甚至对计算机有害。所有这些非请求消息共同地构成了所谓的“垃圾”邮件和“兜售信息”。
一种解决垃圾email问题的建议方法需要在e-mail消息上附加数字“邮票”。通常,这些邮票能组成“工作证明”。该基本想法可以被归纳如下无论何时发件人发送e-mail到预定的收件人,将产生数字邮票。不同于物理邮票的,发件人没有花钱但代替以由于解决难题而花费的CPU周期或其它计算机系统资源,该方案生成了邮票。该理论就是当要求e-mail有邮票时垃圾e-mail的经济情况变化。创建单个的数字邮票并不困难,需要可能几秒的计算时间。然而,对垃圾邮件者来说,由于可能要快速发送数千或几十万条消息,或者更多;如果他们需要对每一消息计算邮票,将使他们慢下来并且消耗CPU资源。用这种方式使兜售信息更加昂贵而被确定为阻止垃圾邮件制作者的操作,由于采用这种方案垃圾e-mail的发件人为了发送大量邮件必需花费相当重要的计算资源—实际花费—,而该花费对每一收件人来说是可忽略的。在e-mail上放置电子邮票的另一个优点是它也能作为过滤兜售信息的密钥使用。通过增加容易检测的和可校验的邮票,用户能够过滤没有这个邮票的e-mail。
在一些众所周知的数字邮票系统中,邮票采取密码难题和解答的形式。该难题是具有适度困难去解决的这样整体特性的数学问题(也就是说,他们要求大于额定的时间和计算能力),然而一旦掌握了解答就很容易去验证。几个研究者已经研究出了具有有用特性的数学函数,以及实现把密码难题的使用作为数字邮票的协议和系统。这些研究者包括Dwork和Naor,他们建议密码难题的使用作为对无用email的警戒(“通过处理或反对垃圾邮件定价,”在计算机科学740中的讲稿(CRYPTO’92论文集),1993,第137-147页;Adam Back,随后提议了在保护邮件清单中和在阻止拒绝服务攻击中使用Hash Cash(参见“Hashcash—拒绝服务计数器测量,2002年8月,可从http//cypherspace.org/~adam/hashcash/中获得);Abadi,等等,研究特别有用的数学函数(“适度难度,存储器界限函数”,第10期年度网络和分布式系统安全论文集,2003年2月);和Dwork等等,进行类似的研究(“关于挑战兜售信息的存储器界限函数”,第23期年度国际密码学术会议论文集(CRYPTO 2003),20038月)。不排除以上他们任一部分所教导的参考文献的全部内容合并于此以作参考。
数字邮票的一个问题是确保用作一个email消息的邮票的密码难题解答不能被重复用作第二个email消息的一个邮票。如果允许难题解答被重复使用,恶意的email发件人能复制一个难题解答用于多个消息,并且收件人没有办法知道这些消息是非法的。一些现有的数字邮票系统,例如前述的Dwork-Naor和HashCash的那些,通过支持难题作为消息本身的数学函数来解决这个问题。因而在这个系统中的该难题解答是唯一与该消息联系的。尽管这些系统阻止了难题解答被重复使用,他们必须要求该消息在难题解答建立之前已经构成。
其它公知的数字邮票系统通过使用“票证服务器”解决这个限制。该票证服务器是一个产生密码难题脱机的集中式服务器。一个email发件人通过,例如,解决密码难题获得票证。该票证附加在打算送给收件人的email消息上,收件人则通过检验集中式票证服务器验证票证的有效性。该票证服务器“取消”使用过的票证以确保相同的票证不能使用一次以上。尽管这些系统允许在消息组成之前创建数字邮票,他们要求email发件人和收件人使用和相信同一集中式服务器。这样的票证服务器系统由M.Abadi,A.Birrell,M.Burrows,F.Dabek,and T.Wobber,在2003年12 Mumbai,India的第8期亚洲计算机科学会议论文集中描述,该文集为用于网络业务的银行可承兑的邮票中,不排除他们任一部分所教导的全部内容合并于此以作参考。
发明简述本发明的实施例提供了为了阻止垃圾电子邮件消息的发送使用注销服务器以方便密码难题的检验的方法和系统。示例性的实施例是关于一个系统由此要求email的发件人附加一个以随机产生的密码难题的形式的“邮票”。由于它们的数学特性,要求重要的计算资源以产生每一难题。如果传输需要邮票则因此把email发送到大量收件人是计算昂贵的。为了实现该系统,本发明的实施例运用注销服务器以确保“邮票”被“取消”并不被再使用。该邮票在组成email消息之前产生,并且发件人不需要从注销服务器或任何其它集中式服务器获得票证或任何信息。
通常,在本发明的实施例中,从唯一的标识符和时间戳创建密码难题,并且附属于数字对象,例如电子邮件消息,与难题的解答一起。对象收件人验证解答是正确的,时间戳是当前的并且时间戳和标识符与难题对应。收件人进一步用难题标识符和时间戳查询注销服务器。如果标识符真的是唯一的,那么它不存在于数据库中,并且收件人知道接收的对象是合法的。如果标识符不是唯一的,那么它可能已经出现在数据库中,并且能从收件人的计算机中自动消除接收的对象。本发明因而提供了在现有技术之上的优点,正如它允许个人消息发件人独立地产生密码难题,从容地解决难题,并且随后把它们附属于电子邮件消息。与现有的系统不同,难题独立于附属的消息,并且通过委托的独立资源不需要产生。
此外,在一些实施例中,使用多个注销服务器。多个注销服务器独立起作用,互相查询,或者共享取消标识符的数据库。
在本发明的一个方面,提供注销服务器用于解决密码难题,该难题与标识符相关,用在包含数字对象的预定收件人的数字传输系统中,该数字对象预定收件人包括了密码难题,注销服务器与至少一个数据库连接,并且执行接收与收件人难题相关的标识符的步骤,查询至少一个具有标识符的数据库,并且如果查询失败取消收件人的难题,通过使记录存储在至少一个数据库中,其中记录包含标识符或从来自标识符中的信息。在一个实施例中,难题进一步与时间戳相关,服务器进一步执行接收与收件人难题相关的时间戳的步骤,并且其中如果查询失败存储在至少一个数据库中的记录进一步包含时间戳或从时间戳得出的信息。在另一个实施例中,注销服务器与第二注销服务器相连用于把在至少一个数据库中的数据提供给第二注销服务器。在一些实施例中,数字对象是电子邮件消息。
根据本发明的另一个方面,提供难题检验器用于验证对密码难题的解答,该难题与标识符和时间戳相关,用在包含数字对象的预定收件人的数字传输系统中,该收件人包括密码难题和解答,难题检验器与至少一个注销服务器相连,并执行把与难题相关的标识符发送到至少一个注销服务器的步骤,并且如果从至少一个注销服务器接收到REJECT响应就消除数字对象。在一个实施例中,难题检验器进一步执行验证该解答是否解决该难题的步骤,并且如果该解答不能解决该难题就消除数字对象。在另一个实施例中,难题检验器进一步执行证实时间戳是否在阈值范围内的步骤,并且如果时间戳在阈值范围之外就消除数字对象。在一个方案中,难题检验器驻留在预定收件人上。在另一个方案中,难题检验器驻留在中间服务器上。
根据本发明的另一个方面,提供难题生成器用于产生和解决在包含与至少一个注销服务器相连的难题检验器和包括密码难题和解答的数字对象的预定收件人的数字传输系统中使用的密码难题,难题生成器执行产生标识符,产生时间戳,产生使用该标识符和时间戳的密码难题,并计算对该密码难题的解答的步骤,因此难题,解答,时间戳和标识符附加在用于传输到预定收件人的数字对象上。
根据本发明的另一个方面,提供一种方法用于消除密码难题,该难题与标识符相关,用在包含至少一个与第一注销服务器相连的数据库和包括密码难题的数字对象的预定收件人的数字传输系统中,该方法包含接收与收件人难题相关的标识符的步骤,查询具有该标识符的至少一个数据库,并且如果查询失败取消预定收件人的难题,通过使记录存储在至少一个数据库中,其中记录包含标识符或来自标识符的信息。
根据本发明的另一个方面,提供包括计算机可执行指令的计算机可读介质用于方便密码难题的注销,该难题与标识符相关,用在包含与第一注销服务器连接的至少一个数据库和包括密码难题的数字对象的预定收件人的数字传输系统中,所述计算机可执行指令执行接收与收件人难题相关的标识符的步骤,查询具有该标识符的至少一个数据库,并且如果查询失败就消除预定收件人的难题,通过使记录存储在至少一个数据库中,其中记录包含标识符或来自标识符的信息。
附图简述当附加权利要求书陈述具有特殊性的本发明的特征时,从下面结合附图的详细描述中更好的理解本发明和它的优点,其中

图1是说明根据本发明的一个实施例用于执行密码难题的注销业务的计算机设备的示例性结构的简化示意图;图2是根据本发明的一个实施例包括注销业务的示例性网络通信装置;图3a和3b说明了根据本发明的一个实施例用在取消密码难题中的示例性部件结构;图4说明了根据本发明的一个实施例多个注销服务器的分布式系统;图5描述了根据本发明的一个实施例展示使用多个密码难题和多个注销服务器发送打算送给多个收件人的单个消息的实例的网络示意图;图6是说明根据本发明一个实施例用于检验密码难题的方法的流程图;图7是说明根据本发明一个实施例用于操作注销服务器的方法流程图。
发明详述现在将描述支持密码难题注销业务的该方法和系统的若干实施例;然而本发明的方法和系统不仅限于说明的实施例。而且,技术人员将容易地意识到在这里描述的方法和系统仅仅是示例性的并且所作的变化都不超出本发明的精神和范围。
通过结合附图应该能理解的下面的详细描述将能够更完全地理解本发明。在该描述中,在本发明的不同实施例中相同的标号指示相似的部件。在一个合适的计算环境中来说明实现本发明。尽管没有要求,在计算机可执行指令的整个上下文中描述本发明,例如由个人计算机执行的程序。通常,程序包括执行特定任务和实现抽象数据类型的程序模块,例行程序,函数,程序,对象,元件,数据结构等等。而且,本领域内的技术人员将会意识到本发明可能在其它计算机系统结构中实现,包括手持式装置,多处理器系统,基于微处理器或可编程的消费电子学,网络PC,小型计算机,大型计算机等。本发明也可以在分布式计算环境中实现,其中由通过通信网络链接的远程处理设备执行任务。在一个分布式计算环境中,程序模块可能位于本地和远程两者的记忆存储器设备中。参考例如在分布式计算环境中发现的计算机系统使用检索计算机系统。
图1说明了在其上实现本发明的一个合适计算机系统环境100的实例。计算机系统环境100仅仅是合适计算环境的一个实例并没有确定为对使用范围或本发明功能性的任何限制。计算环境100也不应该被解释为具有与在示例性操作环境100中说明的元件的任何一个或组合有关的任何相关性或要求。尽管本发明的一个实施例包括了在示例性操作环境100中说明的每一元件,本发明另一更典型的实施例除去了不重要的元件,例如除了网络通信要求的那些之外的输入/输出设备。
参考图1,用于实现本发明的示例性系统包括以计算机110形式的通用计算设备。计算机110的元件可能包括,但不应限制为,处理单元120,系统存储器130,和把包括系统存储器的不同系统元件连接到处理单元120的系统总线121。系统总线121可能是包括存储总线或存储控制器,外围总线,和使用多种总线结构任一种的局部总线的几种类型总线结构的任意一种。通过实例,并不限制,这样的结构包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强的ISA(EISA)总线,视频电子标准协会(VESA)局部总线,和外设部件互连(PCI)总线,通常也称为Mezzanine总线。
计算机110典型地包括多种计算机可读介质。计算机可读介质是能由计算机110访问的任一种可用介质并且包括易失性和非易失性介质以及可删除和不可删除介质。通过实例,并不限制,计算机可读介质可能包含计算机存储介质和通信介质。计算机存储介质包括在任一种方法或技术中执行的易失性和非易失性,可删除和不可删除介质用于信息例如计算机可读指令,数据结构,程序模块或其它数据的存储。计算机存储介质包括,但不被限制为,RAM,ROM,EEPROM,快闪存储器或其它存储器技术,CD-ROM,数字通用光盘(DVD)或其它光盘存储器,磁带盒,磁带,磁盘存储器或其它磁存储设备,或任何其它能使用来存储有用信息并可以由计算机110访问的介质。通信介质通常包括计算机可读指令,数据结构,程序模块或在调制数据信号例如载波或其它传送机械中的其它数据并且包括任何信息传输介质。术语“调制数据信号”意思是为了编码信号中的信息具有以这样的一种方法设置或改变一个或多个它的特性的信号。通过实例,并不限制,通信介质包括例如有线网络或直接有线连接的有线媒体,和例如声音,RF,红外及其它无线媒体的无线媒体。以上任何一种的组合也被包括在计算机可读介质的范围内。
系统存储器130包括例如只读存储器(ROM)131和随机存取存储器(RAM)132的以易失性和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统133(BIOS),包含在计算机110内的元件之间帮助传送信息的基本例行程序,例如在开机期间,通常被存储在ROM131。RAM132通常包含立即可接入的和/或马上由处理单元120对其起作用的数据和/或程序模块。通过实例,并不限制,图1说明了操作系统134,应用程序135,其它程序模块136和程序数据137。
计算机110也可能包括其它可移除/不可移除,易失性/非易失性计算机存储介质。仅通过实例,图1说明了读取或写到不可移除,非易失性磁盘152的硬盘驱动器141,读取或写到可移除,非易失性磁盘152的磁盘驱动器151,和读取或写到不可移除,非易失性光盘156例如CD ROM或其它光媒体的光盘驱动器155。其它能用在示例性操作环境中的可移除/不可移除,易失性/非易失性计算机存储介质包括,但不限制为,磁带盒,闪存卡,数字通用光盘,数字录像磁带,固态RAM,固态ROM,智能卡,保密数字卡,智能媒体卡,微型闪存卡等。该硬盘驱动器141通常通过例如接口140的不可移除存储器接口与系统总线121连接,并且磁盘驱动器151和光盘驱动器155通常通过例如接口150的可移除存储器接口与系统总线121连接。
上面讨论并在图1中说明的驱动器以及它们相关联的计算机存储介质,提供用于计算机110的计算机可读指令,数据结构,程序模块和其它数据的存储。在图1中,例如,硬盘驱动器141被图示为存储操作系统144,应用程序145,其它程序模块146和程序数据147。注意,这些元件与操作系统134,应用程序135,其它程序模块136,和程序数据137或者相同或者不同。在这里给出操作系统144,应用程序145,其它程序模块146,和程序数据147不同的标号以说明最低程度它们是不同的复制品。用户通过输入设备例如图形输入板,电子数字化器164,麦克风163,键盘162和指示器161,通常指的是鼠标,光标运动球或触摸板把命令和信息输入到计算机110。其它输入设备(未示出)可能包括操纵杆,游戏键盘,卫星反射器,扫描器,等。这些以及其它输入设备通常通过连接到系统总线的用户输入接口160连接到处理单元120,但可能通过其它接口和总线结构连接,例如并行端口,博弈端口或通用串行总线(USB)。监视器191或其它类型的显示设备通过例如视频接口190的接口连接到系统总线121。监视器191也可以与触屏面板等结合。注意到监视器和/或触屏面板可以物理连接到包含计算机设备110的房间,例如输入板类型个人计算机。此外,例如象计算机设备110的计算机也可能包括通过输出外围接口194等被连接的其它外围输出设备,例如扬声器197和打印机196。
计算机110可以在使用逻辑连接到一个或多个远程计算机例如远程计算机180的网络环境中运行。远程计算机180可以是个人计算机,服务器,路由器,网络PC,同级设备或其它通用网络节点,并且通常包括与计算机110相关的许多或所有上述元件,尽管在图1中仅说明了记忆存储器设备181。在图1中描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可能包括其它网络。这样的网络环境在办公室,企业计算机网,企业内部互联网和因特网中是平常的。例如,在本发明中,计算机110可以包含从其中转移数据的源机器,及远程计算机180可以包含目的地机器。然而注意到源和目的机器不需要通过网络或任何其它装置连接,但是代替的,数据可能通过能够由源平台写入并由目的平台或多个平台读取的任一媒体转移。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN171。可替换地,计算机110包括在例如802.11b协议上运行的无线LAN网络接口,该协议允许计算机110在没有物理连接时连接到LAN171。当在WAN网络环境中使用时,计算机110通常包括用于通过WAN173,例如因特网,建立通信的调制解调器172或其它装置。在内部或外部的调制解调器172可以经由用户输入接口160或其它合适机构连接到系统总线121。可替换地,计算机110包含在例如通用分组无线业务(GPRS)上运行的无线WAN网络接口,该业务允许计算机110在没有物理连接时连接到WAN173。在一个网络环境中,描述的与计算机110相关的程序模块,或它的部分,可以被存储在远程记忆存储器设备中。通过实例,并不限制,图1说明了驻留在存储器设备181上的远程应用程序185。将会意识到所示的网络连接是示例性的并且可能使用在计算机之间建立通信链路的其它装置。此外,计算机110的变形可以被包含在其它实现本发明的示例性系统中,例如蜂窝电话,个人数字助理,等等。
包含本发明的计算设备可能类似图1所示的计算设备,或者可能包含可替换装置。本发明可能地包含在多种网络环境中使用的计算设备/机器。返回图2,描述了其中采用本发明的网络环境的简单实例。在图示的环境中,使用邮件申请204例如,微软的outlook或者微软的Outlook express在第一台计算机202上创建电子邮件消息。在第一台计算机202上的难题生成器—解算器205使用时间戳和全球唯一标识符去生成和解算发送到电子邮件消息收件人的密码难题。该难题从要求适度计算能力去解算的一类难题中优选(要求时间,例如与在最快商业可用计算机上的几秒相似),然而它们的解答仅仅用微小的计算能力来验证。例如在前述的Dwork和Naor和HashCash中更加全面的描述了这样的密码难题。可替换地,难题生成器—解算器位于远端的例如,委托独立难题生成服务器,在这个可替换的装置中,以钱为交换,或例如作为用户诱因的交换委托的独立权限分配预先解答的难题。用于分配预先解答难题的示例性方案使用包含活板门,例如Dwork-Naor方案的一类难题。
电子邮件消息,难题和解答与时间戳和唯一的标识符结合以共同形成包,从计算机202发送到邮件服务器206,该服务器通常位于提供互联网接入到计算机202的因特网服务提供者(ISP)。邮件服务器206使用在邮件发送协议例如SMTP上运行的邮件传输代理(MTA)208以通过因特网210发送该包,最终到达位于提供因特网接入到收件人计算机214的ISP的邮件服务器212。邮件服务器212使用在邮件传输协议例如IMAP上运行的MTA216以传输该包到在收件人计算机214上的邮件应用218。邮件应用214打开该包并使用难题检验器220验证包括的解答确实解决包括的难题,并且时间戳在给定的范围之内以确保难题是最新产生的。由难题生成器-解算器使用的时间戳优选粗粒度,仅仅准确到小时或天的粒度。
收件人计算机214进一步通过使用注销服务器222检查密码难题没有结合其它邮件消息使用。注销服务器222在数据库224中存储密码难题的唯一标识符和时间戳,优选地通过存储散列(hash)值,或从唯一标识符和时间戳得出的其它信息以保存数据存储。可替换地,数据结构储存结合Bloom过滤器使用的难题的注销信息。收件人计算机214优选地建立到注销服务器222的已确认连接,并把来自接收包的唯一标识符和时间戳通过因特网210发送到注销服务器222。注销服务器222验证收件人唯一标识符不存在于数据库224中,并通知收件人的计算机214该难题是有效的。注销服务器222接着把唯一的标识符和时间戳加入到数据库224以阻止将来的消息使用特定的难题。通过以这种方式在注销服务器上使用密码难题,使电子邮件消息的收件人确信分别创建消息用于接收。如果注销服务器222很有效并且在它的数据库224中删除大量用户的大量难题,因而非法难题(也就是说,一个包含重复使用的难题)未经检测的可能性变的很小。
对于难题生成器-解算器205有很多种方法产生全球唯一的标识符,具有很高的可能性。例如,如果牢固的随机号码生成器是可用的,难题生成器-计算器205仅仅产生足够长度的随机号码。可替换地,使用计算机202不相关的但固有的特性以保证来自这个计算机的标识符的顺序不与任何其它的冲突。例如,在一个实施例中难题生成器-解算器205连接计算机202的48比特以太网MAC地址和80随机比特。使用足够的随机性以致攻击者猜到合法生成器可能生成的标识符是非常困难的。
现在把注意力转到图3a,展示本发明的一个实施例其中难题生成器-解算器和难题检验器位于消息发件人和消息收件人的各自计算机上。在这个实施例中,发件人的计算机执行彼此合作运行的邮件应用302和难题生成器-解算器304。在一个实施例中,用户使用邮件应用302产生邮件消息并通过,例如,单击在邮件应用302的用户接口上标记按键“发送”以执行“发送”命令。邮件应用302,实际上在发送消息之前,请求难题生成器-解算器304产生并解答密码难题。难题生成器-解算器304产生唯一的标识符和时间戳并使用它们生成密码难题,随后解答它。难题生成器-解算器304把难题,解答,时间戳和唯一的标识符传送回邮件应用302。邮件应用302把难题,解答,时间戳和唯一的标识符附加到该消息,并把具有附加信息的该消息发送到邮件传输代理(MTA)306,该代理通常位于发件人的ISP。在一个实施例中,难题生成器-解算器304在脱机过程中产生难题,以便预先产生的难题/解答立即可用并且邮件应用302发送消息到MTA306仅仅需要最小的延迟。
通过标准电子邮件处理操作,消息从发件人的MTA306路由到收件人的MTA308。随后由收件人操作下载该消息到邮件应用310。收件人的邮件应用310要求难题检验器312验证附加的难题是合法的。难题检验器312验证附加的解答解决难题和时间戳在给定的范围之内以确保它是最新产生的。然后难题检验器312与注销服务器314通信以确认该难题没有被其它电子邮件消息使用过。难题检验器312把消息的唯一标识符和时间戳发送到注销服务器314,该服务器在它的数据库316中查找该唯一标识符。如果该标识符已经在数据库中存在,随后注销服务器314告知难题检验器312该难题无效。难题检验器312反过来通知邮件应用310相关的消息无效,所以它可能是集群电子邮件并且应该被删除。以这种方式,邮件应用310在没有用户干预时自动删除非法集群电子邮件。然而,如果唯一标识符没有存在数据库316中,只要把唯一的标识符增加到数据库316以阻止该标识符的今后使用,随后注销服务器314告知难题检验器312难题有效。在本发明的这个实施例中,MTA306和308要求少量或不用特定修改就能使难题生成-解算-检验过程简化。
在图3b中所示的可替换实施例中,难题生成器-解算器350位于通常在发件人的ISP的发件人的邮件传输代理352上。在这个配置中,发件人的计算机执行邮件应用354。用户使用邮件应用354产生邮件消息并通过,例如单击在邮件应用354的用户接口上的标记按键“发送”,以执行“发送”命令。邮件应用354发送该消息到发件人的MTA352。该MTA请求难题生成器-计算器350生成和解答密码难题。难题生成器-计算器350产生唯一的标识符和时间戳并使用它们生成密码难题,随后解算它。难题生成器-计算器350把难题,解答,时间戳和唯一的标识符传送回MTA352,把难题,解答,时间戳和唯一的标识符附加到该消息,并根据邮件发送协议,例如SMTP,发送该消息。在一个实施例中,难题生成器-计算器350在一个脱机过程中产生难题,以便预先产生的难题/解答立即可用并且对于MTA352重传该消息仅仅需要最小的延迟。
通过标准电子邮件处理操作,把该消息从发件人的MTA352路由到收件人的MTA356。MTA356请求难题检验器358验证附加的难题是合法的。难题检验器358验证附加的解答解决该难题和时间戳在最近的范围之内。难题检验器358随后与注销服务器360通信以确认难题没有用于其它电子邮件消息。难题检验器358把消息的唯一标识符和时间戳发送到注销服务器360,该服务器在它的数据库362中查找该唯一的标识符。如果标识符已经存在于数据库中,那么注销服务器360告知难题检验器358该难题无效。该难题检验器358反过来告知MTA356相关的消息无效,所以它可能是集群电子邮件并且应该被删除。以这种方式,MTA356在收件人每次接收之前自动删除非法集群电子邮件。然而,如果该唯一的标识符不存在数据库362中,注销服务器360告知难题检验器358难题有效,同时把该唯一标识符增加到数据库362中以阻止该标识符今后的使用。MTA356,从难题检验器358接收难题有效的证实,发送该消息到收件人的邮件应用364。在本发明的这个实施例中,发件人和收件人的邮件应用354和364不需要特定的修改就能使难题的生成-解算-检验过程简化,并且在一个对用户透明的过程中阻止了非法集群电子邮件到达收件人。
然而,本发明并不限制为图3a和3b所示的实施例;其它的组合是可能的,例如,在一个可替换的实施例中,难题生成器-解算器位于发件人的MTA上而难题检验器位于收件人的邮件应用上。在另一个实施例中,难题生成器-解算器位于发件人的邮件应用上而难题检验器位于收件人的MTA上。还有在其它的实施例中,难题生成器-解算器位于发件人的邮件应用上而难题检验器位于在发件人的MTA和收件人的MTA之间的中间服务器上,并且如果难题检验器发现合法消息该消息仅仅转发到收件人的MTA。
在一个示例性配置中,注销业务在大ISP上运行,例如MSN,AOL,地下链路等等,并且预定在那些ISP上估算的邮件让它们的难题与相应的注销业务相符合。这个配置对ISP提供了益处,该ISP能够更好的保证它们的用户不接收非法集群电子邮件。例如,收信地址是在msn.com上的多个收件人的使用单一密码难题的非法email将仅被传送到第一预定收件人—一旦难题的唯一标识符进入到注销服务器上的数据库中,随后的查询将显示该难题是非法的,并且因此该消息非法。
在一些实施例中,为了提高检测非法email的可能性难题检验器与多个注销服务器通信。例如,假设使用同一密码难题发送email到两个不同的收件人,A和B。如果两个收件人使用不同的注销服务器,那么都不会检测到难题非法,并且该消息将会传送到两个收件人。然而,如果收件人A不仅用它自己的注销业务检验,而且使用B使用的注销业务的第二注销业务,那么A将检测第二注销业务难题的无效性(如果用户B,或者难题的另一个集群接收者先前已经在那里检验过,使难题的唯一标识符进入数据库)。
在其它实施例中,多个注销服务器彼此通信以分配和/或共享数据。在图4中展示了注销服务器分布式系统的一个实例。坐标注销服务器402起中心坐标点的作用以管理在多个注销服务器之间的数据分配。当难题检验器406用密码难题的唯一标识符查询注销服务器404之一时,该查询服务器404散列该标识符并与坐标服务器402联系。坐标服务器402检验以观察多个注销服务器404中的哪个对该特定的唯一标识符负责,例如基于散列值的三个最低有效位。坐标服务器402把合适注销服务器406的地址返回到呼叫注销服务器404,该呼叫注销服务器直接依次查询合适的注销服务器406。因而使用这个和相类似的方法通过多个注销服务器分配标识符的负载。
使用多个注销服务器的一个可替换配置提供服务器之间的信息共享。例如,在一个ISP上的注销服务器有规则地转送它的数据库内容到在第二ISP上的注销服务器。当难题检验器用唯一标识符查询第二注销服务器时,标识符用单一查询有效的搜索来自两个注销服务器的数据。因而这个配置减少了检验多个注销服务器所必需查询的次数。如果多方参与的注销服务器与通用ISP和邮件路由代理,例如Hotmail和AOL,相关这样一种配置是特别有用的。
一种使用多个注销服务器的相类似配置被构造为对等(P2P)网络。优选地注销服务器的P2P网络不包含中央组织管理局或系统,而是允许难题检验器在保持注销状态的合作节点的集合之间分配它的查询。在一个配置中,对等节点集合实现分布式查询业务,其中通过对等网络分配注销数据库。这样一种节点网络对键盘的大集合实现键盘值映射函数。在这种情况中,使用难题标识符作为键。如果对于给定的键映射存在,取消相应的难题。在Stoica等等所作的关于计算机通信的应用,技术,结构和协议的2001会议论文集149-160页,2001“chord对于因特网应用可升级对等查询业务”中描述了启用这样一种P2P网络的优选装置,不排除它的任何一部分其所教导的全部内容合并于此作为参考。
使用多个注销服务器有多个好处每一独立难题检验器不需要依靠注销服务器的同一集合;由收件人委托的注销服务器不需要发件人委托;并且,在注销服务器之间有足够的冗余度,由形成对等网络的相互可疑邻点主管注销系统。
根据本发明的一个实施例,在预定到多个收件人的消息中包括多个难题和解答。一个优选实施例包括邮件传输代理,例如SMTP服务器,它确定它发送的每一消息的每一副本有正确数量的难题—解答。由于SMTP传送装置通常不需要生成它们转发的消息的报头,很容易修改SMTP传送装置以确保唯一的难题—解答与预定到不同邮件传输代理的消息捆在一起。例如,如果消息预定到在5个不同邮件服务器上的10个收件人,并且该消息有10个唯一的难题—解答,那么SMTP服务器确保两个唯一的难题—解答与预定到第五邮件服务器的消息副本捆在一起。类似地,当对象邮件服务器传送对象消息时,每一收件人仅仅接收单个唯一的难题—解答(在那些实施例中在收件人的邮件应用上执行难题检验)。优选地每一收件人不接收由其它消息收件人接收的任一难题—解答。这阻止了收件人通过取消注销服务器的难题唯一标识符过早地无效预定到另一收件人的消息副本。此外,通过在邮件传输代理级别上执行难题—解答分配,收件人不需要决定多个难题—解答的哪一个预定到它—如果使用信件的复写副本功能则一些收件人被“隐藏”问题恶化。
在本发明的一个实施例中,分配清单的管理员同样地采用刚才描述的策略以确保对单个email消息的独立收件人的唯一难题—解答。消息发件人生成足够数量的难题—解答并与分配的它的消息一起把它们传送给分配清单管理员。分配清单管理员随后划分在转送到分配清单用户的消息副本之间的难题—解答。这样,发件人生成不被它已知的收件人的难题—解答,但是收件人是分配清单用户并且因而能够接收到它的消息。
图5图示了根据本发明的一个实施例用多个难题—解答发送消息到多个收件人的实例。发件人使用它的邮件应用502生成预定到6个收件人的消息,并且难题生成器—解算器504产生6个密码难题和解答,P/S1-6506。把该消息和难题—解答506发送到发件人的邮件服务器508,邮件服务器检查消息报头并且标记4个不同邮件服务器为这6个收件人服务。发件人的邮件服务器508发送该消息和两个难题—解答P/S1-2到第一邮件服务器510,一个P/S3到第二邮件服务器512,一个P/S4到第三邮件服务器514,并且两个P/S5-6到第四邮件服务器516。第一邮件服务器510件检查该消息报头并且把该消息和一个难题—解答P/S1传送到第一收件人的邮件应用518,同时把该消息和第二难题—解答P/S2传送到第二收件人的邮件应用520。第二邮件服务器512把该消息和难题—解答P/S3传送到第三收件人的邮件应用522,同时第三邮件服务器514把该消息和难题—解答P/S4传送到第四收件人的邮件应用524。这些收件人的邮件应用的每一个与难题检验器一起工作,该难题检验器检验在一个或两个注销服务器526和528中的它的各个难题—解算没有被删除。第四邮件服务器516与难题检验器530一起工作,该难题检验器与两个注销服务器526和528通信。如果难题检验器530验证P/S5没有被删除,那么第四邮件服务器516把该消息传送到第五收件人的邮件应用532。如果难题检验器530验证P/S6没有被删除,那么第四邮件服务器516把该消息传送到第六收件人的邮件应用534。
现在把注意力转到图6,现在描述根据本发明一个实施例的难题检验方法。由优选地位于收件人的邮件应用或邮件服务器上的难题检验器执行该方法。在步骤602该难题检验器接收与密码难题,解答,唯一难题标识符和时间戳一起的消息(或者其它数字对象)。在步骤604通过,例如,比较时间戳与关于某一范围阈值的当前时间,难题检验器检验时间戳有效。如果时间戳在该范围阈值之外(例如,它太久了,或者在遥远的将来由时钟脉冲相位差似真解释的),那么难题检验器在步骤606拒绝该消息。否则,在步骤608难题检验器检验该解答解决难题,并且该难题与标识符和时间戳对应。由于用在本发明中的密码难题的优选特性,检验步骤608需要相对小的计算能力和时间。如果解答不能解决该难题,那么在步骤606难题检验器拒绝该消息。否则,在步骤610,难题检验器发送唯一的标识符和时间戳到注销业务。此外,在步骤610难题检验器发送由随机或伪随机数据产生器产生的大量事务标识符,在长度上优选比128比特长。如果难题检验器在一些用户或难题检验器设置的时间间隔之内没有从注销服务器接收到应答,那么在610难题检验器重发事务标识符,唯一的标识和时间戳。难题检验器在步骤612从注销业务接收应答并在步骤614检查应答。如果注销服务器拒绝难题标识符,那么难题检验器在步骤606拒绝该消息。如果注销服务器没有拒绝该难题,在步骤616难题检验器决定是否要用另外的注销业务检验。如果是,难题检验器返回步骤610,在该步骤中发送难题的唯一标识符和时间戳到另外的注销业务,并且重复随后的步骤。否则,在步骤618难题检验器接收该消息。
关于步骤606,一些实施例对由注销服务器拒绝它的标识符的消息执行不同的操作。例如,在本发明的一个实施例中执行的操作是从该系统丢弃和删除拒绝的消息。一个可替换的操作是把拒绝的消息放入低优先级接收器中,允许收件人查看他或她或她想要的消息,或者把兜售信息过滤器运用到该消息。对于驻留在邮件转发代理上的难题检验器,拒绝该消息的一个操作是将导致它被删除及不能传输到预定的收件人。可替换地,难题检验器没有使该消息被删除,而是把它标记为具有拒绝标识符。优选地,MTA通过把新的指定头域增加到该消息来标记该消息,指示该消息标识符被注销服务器拒绝。MTA也删除可能预先存在于在该消息上的任何这样的指定头域。通过读取指定头域,下行码流MTA或邮件应用能过滤兜售消息,修改该消息的优先权设置,或基于注销服务器的拒绝执行其它操作。根据用户,MTA或ISP的优先选择使用该方法以用拒绝的标识符处理消息。
转到图7,现在描述根据本发明的一个实施例的取消难题的方法。优选地由与难题检验器通信的注销服务器执行该方法。在步骤702注销服务器接收密码难题的唯一标识符,时间戳和事务标识符。在步骤703,注销服务器检验事务标识符是否已经存在它的数据库中。如果是,那么注销请求是来自,例如,由于通信失败没有接收到最初请求响应的难题检验器的复制请求。在步骤704注销服务器接收该难题并发送接收通知到呼叫难题检验器。否则,该事务处理是新的并且在步骤705,注销服务器散列唯一的标识符并在散列表中查询它。在步骤706,注销服务器确定唯一的标识符是否存在散列表中。如果唯一的标识符已经存在散列表中,那么难题被重复使用,因此在步骤708注销服务器拒绝该难题,发送拒绝通知到呼叫难题检验器。否则,在步骤709注销服务器决定是否检验附属散列表。附属散列表位于,例如,与本注销服务器通信的远程注销服务器上。如果没有附属的散列表被检验,那么在步骤710时间戳和散列的唯一标识符被存储在注销服务器的散列表中,并且在步骤704注销服务器接收该难题,发送接收通知到呼叫难题检验器。此外,在步骤710如果接收通知失败则存储事务标识符,以允许难题检验器重新查询注销服务器。存储事务标识符有限的时间,优选地比难题标识符的使用期限短很多。否则,在步骤714在附属的散列表中查询唯一的标识符。在步骤716,注销服务器确定唯一的标识符是否输入到附属的散列表中。如果是,那么在步骤708注销服务器拒绝该难题。否则,服务器返回步骤709以决定是否将检验另一个附属的散列表。
散列表优选地在图7的方法中使用以考虑有效的数据存储,尽管可能使用的任何数据结构有助于数据库函数。而且,优选地通过删除那些时间戳超出给定阈值的记录,例如15天,定时净化散列表。通过减小散列表的尺寸这提高了注销服务器的性能。此外,充分删除以前的记录通常不影响用户,因为它们的难题检验器可能在呼叫注销服务器之前拒绝先前的消息,正如在附图6的方法中描述的。
也存在在注销服务器要求的难题标识符的唯一性和数据结构的尺寸之间的交替使用。较小的标识符要求较少的存储,但是会冒非唯一的较大可能性,由难题检验器导致“假确认”。假确认的花费依靠难题检验系统的特定设备(例如,一些难题检验器删除具有非唯一标识符的消息,然而一些难题检验器不删除该消息,而是把它们放入低优先级接收器中)。除了由注销服务器执行的难题终止时间,假确认的花费是考虑选择唯一标识符长度的因素。正如参考图2的以上所述,尽管128比特标识符带来了假确认的低冒险性,在实际中比较小的标识符是可能的。
本发明的实施例没有限制为email消息的传送。为了控制在分布式系统应用中传送的信息速率,本发明的实施例通常可适用在数字传输信息的分布式系统应用中。
本发明的实施例没有限制为密码难题的使用。作为一个替换,例如,使用非密码难题例如人机交互试验(HIP)难题。一个示例性HIP包含显示在计算机监视器上的一组失真特性,并要求用户鉴别该特征。在本发明的一个实施例中,第三方产生这样的难题并编码以便另一方检验人的解答。在由L.von Ahn,ManuelBlum,和John Langford所著的2004,2月出版的区分人和计算机,ACM的通信,Vol.47.No.2中给出了HIP难题的实例,不排除以上任一部分所教导的参考文献的全部内容合并于此以作参考。
鉴于许多可能的实施例可能应用本发明的原理,将会意识到参考附图在这里描述的实施例仅仅是说明并不应该当作本发明范围的限制。例如本领域内的技术人员将会意识到在排列和元件上修改图示的实施例不脱离本发明的精神。尽管根据软件模块或元件描述了本发明,本领域的技术人员将会意识到可能由硬件元件同样取代。因此在这里描述的本发明考虑了所有这些可能包含在下面的权利要求和它的等同物的范围之内的实施例。
权利要求
1.一种用于取消密码难题的注销服务器,该难题与标识符关联,在包含数字对象的预定收件人的数字传输系统中使用,该数字对象包括密码难题,注销服务器与至少一个数据库连接,并执行步骤接收与收件人难题关联的标识符;用标识符查询至少一个数据库;和如果查询失败,通过使一个记录项存储在至少一个数据库中来取消预定收件人难题,其中该记录项包含标识符或从标识符得出的信息。
2.权利要求1的注销服务器进一步执行如果查询失败,发送ACCEPT响应的步骤。
3.权利要求1的注销服务器进一步执行如果查询成功,发送REJECT响应的步骤。
4.权利要求1的注销服务器,其中难题进一步与时间戳关联,该服务器进一步执行接收与收件人的难题相关的时间戳的步骤,并且其中如果查询失败就在至少一个数据库中存储该记录项的步骤还进一步包含时间戳或从时间戳得出的信息。
5.权利要求4的注销服务器进一步执行如果它的时间戳在阈值范围之外,就从数据库中删除记录项的步骤。
6.权利要求1的注销服务器,其中查询至少一个数据库包含计算标识符散列。
7.权利要求6的注销服务器进一步与对等分布式查询业务的范围值对应,并且该标识符被散列为该范围内的值。
8.权利要求1的注销服务器,与第二注销服务器连接,用于把在至少一个数据库中的数据提供给第二注销服务器。
9.权利要求1的注销服务器,与第二注销服务器连接,用于查询与第二注销服务器关联的至少一个数据库。
10.权利要求9的注销服务器,其中该注销服务器和第二注销服务器通过对等网络通信。
11.权利要求1的注销服务器,其中数字对象是电子邮件消息。
12.一种用于检验密码难题解答的难题检验器,该难题与标识符和时间戳相关联,在包含数字对象预定收件人的数字传输系统中使用,数字对象包括密码难题和解答,该难题检验器与至少一个注销服务器连接,并执行步骤把与难题相关联的标识符发送到至少一个注销服务器;和如果从至少一个注销服务器接收到REJECT响应就处理数字对象。
13.权利要求12的难题检验器,其中处理数字目标包含删除数字对象。
14.权利要求12的难题检验器,其中处理数字目标包含标记数字对象用于随后的过滤。
15.权利要求12的难题检验器,其中处理数字对象包含修改数字对象的优选级。
16.权利要求12的难题检验器进一步执行步骤检验解答是否解决难题;和如果解答不能解决难题,处理数字对象。
17.权利要求12的难题检验器进一步执行步骤确认时间戳是否在阈值范围之内;和如果时间戳在阈值范围之外,则处理数字对象。
18.权利要求12的难题检验器进一步执行步骤计算标识符的散列;其中发送步骤进一步包含发送标识符到与标识符的散列对应的至少一个注销服务器。
19.权利要求12的难题检验器,其中难题检验器驻留在预定收件人上。
20.权利要求12的难题检验器,其中难题检验器驻留在中间服务器上。
21.权利要求20的难题检验器,其中仅当没有从至少一个注销服务器接收到REJECT响应时,则中间服务器发送该对象以传送到预定收件人。
22.一种在数字传输系统中使用的用于产生和解决密码难题的难题生成器,所述数字传输系统包含与至少一个注销服务器连接的难题检验器和包括密码难题和解答的数字对象的预定收件人,该难题生成器执行步骤产生标识符;产生时间戳;使用标识符和时间戳产生密码难题;和计算密码难题的解答;由此难题,解答,时间戳和标识符附属于数字对象用于传输到预定收件人。
23.权利要求22的难题生成器,其中该标识符包含一串随机比特。
24.权利要求22的难题生成器,其中该标识符包含一串至少128比特的字符串。
25.权利要求22的难题生成器,其中计算密码难题的解答要求多于大约7秒的计算时间。
26.权利要求22的难题生成器进一步执行步骤从数字对象的发件人接收请求;发送标识符,时间戳,难题和解答到发件人。
27.权利要求26的难题生成器进一步执行步骤从数字对象的发件人接收付款。
28.用于取消密码难题的一种方法,该难题与标识符相关联,在包含与第一注销服务器连接的至少一个数据库和包括密码难题的数字对象预定收件人的数字传输系统中使用,该方法包含步骤接收与收件人难题关联的标识符;用该标识符查询至少一个数据库;和如果查询失败,通过在至少一个数据库存储一个记录项来取消预定收件人难题,其中该记录项包含标识符或从标识符得出的信息。
29.权利要求28的方法,其中该难题进一步与时间戳相关联,该方法进一步包含接收与收件人难题关联的时间戳的步骤,和其中如果查询失败储存在至少一个数据库中的记录项的步骤进一步包含时间戳或从时间戳得出的信息。
30.权利要求29的方法,进一步包含如果它的时间戳超出阈值范围,就从数据库删除记录项的步骤。
31.权利要求28的方法,进一步包含把在至少一个数据库中的数据提供给第二注销服务器的步骤。
32.权利要求28的方法,进一步包含查询与第二注销服务器相关联的至少一个数据库的步骤。
33.权利要求32的方法,其中第一注销服务器和第二注销服务器通过对等网络通信。
34.权利要求28的方法,其中第一注销服务器与分布散列表的一个范围值对应,和该标识符被散列到该范围内的一个值。
35.权利要求28的方法,其中数字对象是电子邮件消息。
36.一种包括简化密码难题注销的计算机可执行指令的计算机可读介质,该难题与标识符相关联,在包含与第一注销服务器连接的至少一个数据库和包括密码难题的数字对象预定收件人的数字传输系统中使用,上述计算机可执行指令执行步骤接收与收件人难题关联的标识符;用标识符查询至少一个数据库;和如果查询失败,通过在至少一个数据库存储一个记录项来取消预定收件人难题,其中该记录项包含标识符或从标识符得出的信息。
全文摘要
为维护密码难题标识符数据库的注销服务器提供方法和系统。从唯一标识符和时间戳生成密码难题,并且附属于电子邮件消息,与难题解答一起。收件人验证该解答是正确的并且时间戳是当前的,并且进一步用难题标识符查询注销服务器。如果该标识符不存在在数据库中,那么收件人知道接收的消息是合法的。如果标识符已经出现在数据库中,从收件人计算机中自动删除接收的消息。
文档编号H04L12/58GK1694111SQ200510079219
公开日2005年11月9日 申请日期2005年3月22日 优先权日2004年3月22日
发明者A·D·比勒尔, E·P·沃伯, M·伯罗斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1