桂兵祥,何 健
(武汉工业学院计算机与信息工程系,湖北武汉430023)
匿名通讯的基本目标是在网络通讯中隐藏用户的身份以防止其他用户或窃听者识别其身份。很多文献介绍过点对点匿名通讯系统,其使用的匿名协议有两个重要特性:所提供的匿名程度或等级、抵抗恶意破坏其匿名特性的抗攻击能力。与很多“点对点”(peer-to-peer)应用一样[1],匿名通讯系统易受这样的攻击,即某些结点用户(peers)在使用系统的同时几乎或根本不给别人(other peers)提供服务,这里称这类结点用户为“顺风车乘客”(free-riders),而更为复杂的是,这类匿名通讯系统给任何结点用户提供了隐藏身份的匿名机制,这在实际应用中更是为“顺风车乘客”的利己行为大开方便之门。在匿名系统中,当“顺风车乘客”需要建立匿名通讯时,加入并作为系统的成员,获得系统提供的某些服务,但是一旦他们的现实需求得到满足就会马上离开系统。这种行为对匿名系统的损害至少有两个方面:首先,它可以降低系统的匿名程度或等级,因其与参与系统的结点总数成正比例,而在任何时刻,“顺风车乘客”的泛滥会严重减少其总数;其次,“顺风车乘客”的大量出现会引起系统成员频繁更换,使得系统维护开销大增,某些恶意的攻击将更容易发生。为了防范这类攻击,约束“顺风车乘客”的不道德行为,促进和鼓励更多的匿名结点用户参与协作,在匿名通讯系统中引进适当的防范机制是十分必要的。
最近许多研究表明在系统中建立激励机制可以打击上述不法行为,从而增强系统的健壮性。
目前该领域的研究工作主要集中在建立“信用机制”方面[2],即依靠系统中的结点用户(单独或以合作的方式)识别“顺风车乘客”,然后根据其“不良信用”历史记录,拒绝提供服务以示惩罚。虽然信用机制是一种很有前途的方法,但是他们明确需要结点用户知道彼此的身份。然而,在匿名通讯协议中,“顺风车乘客”的身份被该系统提供的匿名服务所隐藏。因而其主要实用于点对点的系统,而不适合于匿名通讯系统。虽然如此,人们在匿名系统中建立信用机制方面依然做出了很多努力,但效果都不理想。
通过虚拟经济利益驱动用户积极参与协作是一条有效的途径,在建立“付费机制”方面的研究也取得了一些进展,即在系统协作过程中,众多结点用户通过支付虚拟数字现金来获得系统提供的相应服务,反之系统把虚拟数字现金支付给提供了服务的结点用户,研究表明,这种激励机制能促进众多结点用户的协作。然而,一些现有的方案为确保支付的有效性,在具体实现中要求所有用户有特殊的硬件支持;另一些方案虽不需要特殊的硬件支持,但其对支付过程采用了集中管理,而且,有分析家认为,在分布式服务方式下,如何设定系统所提供的各类服务的价格是个难题。
在匿名通讯系统中建立“付费机制”后,虚拟数字现金的流通不能威胁到系统所具有的匿名特性,而且,交易过程中的集中记帐也不应该暴露用户的身份;此外,也不需要特殊硬件的支持,为更多结点用户积极参与协作提供方便[3]。
在讨论基于付费方式的激励机制设计之前,首先需要回顾异构网络的基本操作。
在一个简化的异构网络中,某一用户结点希望给目的地D发送一条匿名消息(称为“发起者”),其在系统里构成一系列参与合作的用户结点路径。在此路径上的最后的用户结点负责向最终目的地D传递消息。发起者随机选择路径上中间的结点,并用其各自的公钥递归地加密消息,如式(1)所示。
其中:Si是在路径上第i个用户结点的地址,l是路径的长度,{X}K+i表示消息X被公钥K+i递归加密,称之为“加密洋葱”。构造完“加密洋葱”后,发起者将其提交给路径上的第一个用户结点S1。每个路径上的中间结点用户i将用各自的私钥把消息解密以获得有效信息,包括下一跳的地址Si+1和传递给下一跳的加密消息。最后,消息到达路径的最后结点,消息R被提交给目的地D。然后,中间结点用户沿着相反的路径依次传递来自D的任何响应。
基于付费方式激励机制设计方案的本质是把小额的虚拟数字现金付费过程嵌入到匿名路径的每一跳中。发起者确定一个在加密消息中为第i跳定义的付费Ci。上述协议所提供的“源路由机制”(即由发起者确定匿名路径)特别适合于付费机制的集成,因为发起者能把付费操作安全地嵌入到路径中的每一跳中。为支持虚拟数字现金付费机制,这里将匿名协议以两种方式,即“在线付费”和“离线付费”方式加以描述。
在线支付协议中,每个中间节点必须与特定的虚拟银行联系,以确认支付的有效性。这决定所收到的虚拟数字现金付费是否以前被用过。为了防止虚拟数字现金的重用,每个结点用户在沿着相反的路径返回任何响应消息之前,应该验证其支付的有效性。
为了防止中间结点接收支付而不提供服务,采用了确认机制,只有在有效通讯量被完全地递交之后才能付费。给结点 i的付费由发起者产生的对称密钥加密,且只有结点i+1可以使用。当接收一个消息时,结点i在确认消息中给其前驱结点发送被加密的对称密钥,使得上一跳获得相应的支付。在接收到一个由其后继结点发来的确认消息时,结点 i将密钥及付费Ci解密,然后与虚拟银行联系以验证付费的有效性。
结点i收到的有效通讯量是:
其中:Ki-1是对称密钥,符号{X}K表示用对称密钥K来对消息X加密。
路径上最后的结点用户递交未加密的请求R给目的地D。由于假定D不参与匿名协议,故付费密钥被提供给最终的结点用户。因此,最终的有效通讯量为:
显然,在这个协议中,发起者必须信赖路径上最终的结点用户能正确地将消息递交给最终目的地。
离线支付协议与在线支付协议的不同主要在于结点用户与虚拟银行虚拟银行相互作用的方式。不像在线支付协议那样每次接收支付都需与虚拟银行发生作用,一个结点用户可以积累付费且能在以后成批地兑换。然而,使用离线虚拟数字现金时,检测虚拟数字现金是否被重用需要收款方向付费方发出“挑战信息”。由于付费方必须保持匿名,这里提供了相应的机制来用于递交“挑战信息”——从中间结点沿着相反的路径一直到发起者。挑战被适当地加密,因此只有发起者可以读取它们。
在给目的地D发送消息之后,最后的一跳产生一个消息,其包含一个加密的挑战{Q1}KL的消息,沿着逆向路径将其递交。用于加密挑战的是对称密钥,其由发起者产生,用来对该结点的付费进行加密。当这一消息被递交给发起者时,逆向路径的每个结点i附加其被加密的挑战{Qi}Ki,因此发起者接收消息,其包含来之所有中间结点且被加密的挑战:{Ql}Kl{Ql-1}Kl-1…{Q1}K1。接收到带有挑战信息的消息之后,发起者将为每一跳构造一个“加密洋葱”,其包含每一跳的响应Ri,当路径上的最后一跳接收到其响应R1时,它将能给发送方递交任何起源于目的地的响应。路径上的最后一跳将会立刻把这一消息传送给目的地,但是需要把任何响应放入缓冲区,直到从发起者收到R1。与在线支付协议一样,离线支付协议也使用被加密的密钥来加密所支付的虚拟数字现金,结点用户为得到付费必须发送请求。但其也有一些优点:能减少与虚拟银行过多的联系,同时降低虚拟银行打破系统匿名特性的可能性。
很明显,在匿名通讯系统中引入上述基于付费方式的激励机制将会增加系统的通讯和计算开销,对系统的性能和时延有一些影响。这些额外开销主要来源于系统在产生和传递所有消息过程所产生的额外通讯流量。在“在线付费”协议中,要求路径中的结点给予其前驱结点递交一个确认消息,解密付费、联络虚拟银行存入虚拟数字现金;然而在“离线付费”协议中,一个结点用户需产生一个挑战并加密,然后把它回送给发起者,接收并检验相应的响应消息,以后再联系虚拟银行。
假设系统计算资源是充足的,该转换过程将决定额外的时延。尤其是在上述协议中,结点与虚拟银行、结点与发起者之间的事务处理决定额外时延的程度。然而,这两种事务处理可以与等待来自目的地的“响应消息”并发执行,从而掩盖了其产生的实际延时,因此,用户所感知的时延是很小的。
为“发起者”颁发虚拟数字现金一定会与虚拟银行发生关系,而且发布匿名的虚拟数字现金付费要求处理和交换消息,故虚拟数字现金的使用也会增加一些系统开销。为了减轻这种时延,结点用户在建立他们自己的匿名通讯之前应该预先批量购买虚拟数字现金。
在匿名通讯系统中,用户必须给消息传递路径上的每一跳嵌入一个数量为Q的虚拟数字现金。为简单起见,假设系统中所有路径都有一个固定长度L,那么发送信息的总费用是LQ,让n表示系统的用户总数,假设用户i(1≤i≤n)以固定费率产生消息,必须通过系统匿名传输。为了匿名地发送该消息,结点用户必须在一个最小时间s内加入系统,其间假设该结点用户必须为其他人传递消息来进行协作。
每个用户i必须优化两个变量,即协作等级Ci和通过系统发送消息所付的外部资金量Qi,s表示系统发送匿名消息所需的时间,因此某一用户为满足自己的需要加入到系统的最小时间为s。s小于1/,假设 s更小,那么,作为用户加入到系统的最小时间的协作等级Ci则在[s,1 ]范围内取值。假设用户接收到服务后就开始协作,那么Ci必不等于零,且通过系统发送消息的总开销不超过LQ。
当用户加入匿名系统以传送其他结点产生的消息时,便积累虚拟数字现金总收入。假设用户有必要发送所有生成的匿名消息,那么由用户i注入到系统的虚拟数字现金是LQ。假设匿名系统中的结点均由发起者随机选定,那么某用户以传递消息的方式积累的虚拟数字现金数量等于所有用户注入系统的虚拟数字现金总量除以加入到系统的用户平均数。用表示加入到匿名系统的用户i所获取的虚拟数字现金,那么
因为当用户加入到系统时只会积累虚拟数字现金收入,因此其累积收入的长期费用是Ci。发送一条消息时,虚拟数字现金收入总值是LQ,用户 i将向系统提供来自外部的资金Pi,LQ-Pi的余额则必定被系统的其他为系统提供服务的用户所收集。如果用户还没有收集到此余额,则其不得不为其他用户提供服务,以积累必要的资金。因此在他自己的消息发送之前有一个等待时间,此等待时间的平均值用W(Pi,Ci)表示。如果某用户愿意全额支付用以发送其每条匿名消息的现金 (Pi=LQ),那么其等待时间是零;同样,某结点用户永久的加入到匿名系统中(Ci=1),那么他就有一个相对低的信息发送费率(很小)。即使你不愿意支付(Pi=0),其等待时间也接近零。为使每个用户加入匿名系统的加权费用总额最小,必须对其进行局部最优化处理。尤其考虑如下三种开销。
协作等级:假设用户因为参加系统协作而发生一些开销,包括为传递其他用户的消息所需的本地资源、承担长久加入的匿名系统所增长的安全风险等等。因为这些开销很难量化,我们将其简化为变量Ci的线性函数。
网络现金流量:用户通过系统发送匿名信息时,存在与其所付费相关的开销。因为用户既付费又收钱,每个用户都有一个网络虚拟资金流量,用Pi-Ci表示,我们把它作为费用处理。如果用户接收货币数量超过付费,网络资金流量则取负值。
平均等待时间:因为用户对延时也较敏感,故还存在一种与发送消息的等待时间W(Pi,Ci)相关的开销,平均等待时间的分析表达式由多方面决定,这里给出了一个记录系统中用户的行为排队模型。
用户发送自己的匿名消息前的等待时间可用漏桶模型描述,如图1所示,其能表示用户产生的匿名信息和积累的收入总量间的相互作用。该漏桶模型由两个独立的队列组成,他们分别用于存储消息和虚拟现金收入。当消息到达空的消息队列且现金收入队列中的现金可用时,消息立刻发送出去且消耗一个单位的现金信令。
图1 等待时间的漏桶模型
如果当消息到达时没有现金信令可用,他必须等待直到积累到足够的现金信令,然后把消息发送出去。消息和现金信令都按固定的比例产生,在此,匿名消息以比率生成,现金信令直接映射为用户所积累产生的收入,主要由其自己所支付现金量和所加入的系统产生。用户积累收入的总比率为其确定了发送一条匿名消息所要的开销额。研究表明,用户i发送一条匿名消息的等待时间为:
以上漏桶模型保持稳定的必要条件是现金信令的到达率要高于消息的到达率,否则就意味着用户不能发送他的所有消息。本方案期望不同用户关于上述开销有着不同的敏感性。例如,有的用户可能对发送匿名消息需付费非常敏感,而其它用户却对等待时间敏感。为了考虑到用户的差异性,可在开销中为不同的用户分配不同的权重 αi、βi和 γi等。那么,用户i局部最优化表达式为:
约束条件为:
为了使上述数学模型更易实施,把系统中所有用户进行分类(用M表示),具有相同行为特征的用户分为一类(注意以下的i表示一类用户而不是一个用户),假设每类有相同数量的用户,且每类中的用户的数量足够大,以至能粗约估计而不受某个别特殊用户的影响。这样,所有用户以相同比率λc从系统中积累总收入。通过使用数值分析法,可以依次解决每类中的局部最优化问题,从而决定了系统的均衡。
这里考虑两类用户,即M=2,第一类用户对付费很敏感而对等待时间很迟钝,意味着外部资金的支付比获得服务所需的等待或保持加入到系统中具有有更大价值。通过调节权重值来平衡不同的开销,以模拟其行为。权重值大的表明了强烈的敏感性。第二类用户相反,对等待时间敏感而对付费相对迟钝,更愿意为其获得的服务付费。在下面分析研究中,假定两类用户对加入到系统都同样敏感。利用这两组分类,通过优化选择为每条消息所支付的价格和协作等级,可以研究在不同的匿名消息需求下,系统均衡会有何不同。
对于第二类用户(对等待时间敏感而对付费不敏感),经常用全价(P=LQ=1)发送他们的消息,与其产生的需求无关。相反,对第一类用户,只有当其产生的消息达到某一值时才愿意付费。
与系统保持100%连接而与需求数无关的第一类用户相反,第二类用户用40% 的时间连接系统。第二类结点用户对为获得服务而必须付费有不可忽视的敏感性,用户用连接到系统为其他人提供服务来重新获得部分开销。
通过鼓励对价格敏感的结点用户(很有可能是“顺风车乘客”,其对付费很敏感)保持连接到系统中,使得其能免费获得服务并获得收益。当发送消息的需求很低时,两类都付全价,因为不是每类都可以从系统收集足够的收入来满足自己的需求。随着需求的增加,最终第一类用户利用第二类用户愿意为其提供服务而降低了付费。随着需求的进一步提高,第一、二类用户同时降低自己的付费,且增加了连接到系统的时间。两类用户均100% 连接到系统,为自己的消息发送积累收入。
以上的定性分析结果表明:引入付费式激励机制的匿名通讯系统比其它系统更能有效抑制“顺风车乘客”行为,具有更高的协作等级,进而改善系统用户的匿名身份特性。
为了有效地提高“点对点”匿名通讯协议系统中用户的协作等级,描述了一个基于付费方式的匿名通讯激励机制;给出了基于虚拟数字现金的“在线付费”和“离线支付”两种协议结构;在保证消息延迟适当和结构简洁的前提下,把这个技术合并到点对点的匿名协议中,并用公式表达了一个基于付费方式促进匿名协议协作的抽象模型。通过对该模型进行定性分析,结果表明:引入付费式激励机制的匿名通讯系统能有效抑制“顺风车乘客”行为,具有更高的协作等级,进而改善系统用户的匿名身份特性。
[1] Michael J Freedman,Robert Morris,Tarzan.A peer-to-peer anonymizing network layer[C]//In Proceeding of the 9th ACM Conference on Computer and Communications Security(CCS 2002).Cali:IEEE Computer Society,2002:24-31.
[2] Steve Kremer, Olivier Markowitch, Jianying Zhou.An intensive survey of non-repudiation protocols [J]. Computer Communications,2002,25(17),362-372.
[3] Daniel R Figueiredo,Jonathan K Shapiro,Don Towsley.Using Payments to Promote Cooperation in Anonymity Protocols[EB/OL].(2003-09-23).ftp://www-net.cs.umass.edu/pub/A-non_Incentive_03-31.p.