对等计算的实际使用:对等网络中的信任与安全
Todd
Sundsted(todd-p2p@etcee.com)
首席设计师,PointFire
Inc.
2001 年 7 月
一旦 P2P 应用发展到一个引人关注的程度,信任和安全问题就出现了。在用户间互相了解的小型应用中,信任和安全很少会成为问题。可是,有用的 P2P 应用很少会保持这么小的规模。本月,Java 设计师 Todd Sundsted 将探讨在 P2P 应用中的信任和安全问题,为您介绍使分布式应用中的信任成为可能的工具。加入讨论论坛,与作者和其他读者分享您对本文和本系列中其他文章的看法。
信任在每个具有一定规模的分布式应用(包括对等应用)中都是一个问题。在一个分布式应用中,信任的等级就是衡量我们确信程度的尺度,即我们正与之通信的人是否是我们以为的那个人,以及我们正访问的资源是否是我们以为的那些。
在实体间都互相了解的小型网络中,要建立信任是很容易的。在小型网络中,实体是建立在互相熟悉的基础上的,信任就可以由在真实世界中运作的同样的社会力量来维持。当一个网络应用扩展到常规的社会力量不再满足要求时,建立信任的难度就会变得大起来。网络的确切大小显然依赖于应用,但当网络中的任何实体不再只期望和认识的实体进行相互作用的时候,上述的扩展过程中的问题就出现了。
这里我们马上遇到了两个问题:对等的认证和授权。首先,实体不能再假定其他实体就是它们自己所声称的实体。这是认证问题。第二,实体不能再简单地允许其他实体不加选择地访问它们提供的功能和它们管理的资源。这是授权问题。
甚至在信任成为一个问题之前,我们就碰上了保密的问题。无论一个相互作用是在两个以前从没遇见过的实体间的,还是在两个老相识的实体间的,相关实体都必须保证他们间的相互作用是安全的。
关于信任,在许多 P2P 应用中,还有一个决定性的方面没有得到应有的重视。对等认证无疑是重要的,但通常同样重要的是对共享资源的认证 — 特别是内容。没有对共享内容的完整性和同一性的保证,一个 P2P 应用就会冒引入许多安全漏洞的风险,以至于 Microsoft Outlook — 从来不是一个安全的好示例 — 相比之下就会像 Fort Knox 一样。
信任要紧吗?
信任在 P2P
应用中真的重要吗?虽然许多现存的 P2P 应用都是看起来运行如飞而却不严格地对待信任问题,我还是坚持认为在任何分布式应用中信任都是必须的 — 包括 P2P
应用。许多 P2P 应用所拥有的开放性并没有排斥信任,甚至都没有减弱它的重要性。
“在因特网上,没人知道你是一条狗”(Peter Steiner,The New Yorker 杂志),我肯定你们中的许多人对这个标题的那幅漫画很熟悉。这个说法所反映的事实准确地强调了把建立信任作为实体间的相互作用的第一步的重要性。要促进某种类型的 P2P 应用(电子交易应用是一个极好的示例)在一个自然匿名的媒介(例如因特网)上的使用,涉及的实体必须能够互相信任。匿名的面纱必须被揭开,从而让另一方暴露自己是一条狗(或至少是一条没有有效信用卡的狗)。
在涉及内容的管理和发布时 — 这是许多 P2P 应用的主要活动,信任也一样重要。只要是由相对不重要的音频和视频文件(它们的交换无需授权,也不花费代价)组成的内容,信任就不重要 — 您会得到您付钱所要的任何东西。可是,在一个付费的媒体或应用内容的发布系统中就不是这样。如果您付了钱,您就一定想得到货物 — “让顾客谨慎”可不够好。
对于那些把处理工作分发到分布式计算节点上,然后收集结果的 P2P 应用,信任可以成为一个严重的问题。证据是最近在 Seti@Home 分布式应用中一个组里的成员的欺骗行为(参阅参考资料)。
要确保信任,一个网络应用和它的基础结构必须作出一些保证。首先,实体间的连接必须是安全的。基础结构还必须可以使以下条件成为可能:能够准确地识别其他实体,或至少能够肯定地断言这种识别是不可能的。最后,通过应用来管理或交换的资源也必须满足同样的要求。![]()
