Nick Szabo:可信第三方为安全漏洞


作者:Nick Szabo

Originally published in 2001

引题

在解决商业关系中实际问题(如隐私, integrity ,财产保护,或侦查违约行为)时,商业安全非常重要。安全漏洞是指任何这样的缺陷——提高“侵犯这些目标”的风险( increases the risk of violating these goals )。在现实世界的安全观中,问题不会因为设计者假定它不存在而消失。在安全协议设计中,祈祷或假定存在一个“可信第三方”( trusted third party,TTP),或由一个第三方控制的一个“可信计算基础”(trusted computing base,TCB ),即是将一个安全漏洞引入该设计这个安全漏洞之后将需要其他方式修补( plugged )。

在协议设计中,如果没有考虑到 TTP 机构替代方案的风险和成本,在大多数情况下,最终协议将过于成本高昂或风险太大,而不具有实际意义。如果该协议考虑到这些问题,并被证明切实可行,其将只有在付出大量 effort 来修补 TTP 安全漏洞之后才能成功。 TTP assumptions 导致安全协议中的大部分成本和风险,修补 TTP 安全漏洞则产生最大收益和利润。

因此,我们提出一种安全协议设计方法,其中,安全协议最具风险和成本最高昂的部分即可信第三方,与使用这些第三方的安全协议,并行设计成本和风险最小化的目标聚焦在 TTPs ,而不是安全协议本身,这些安全协议应该设计成与成本及风险最小化 TTPs 相配

我们还简要讨论和参考安全机制中的研究和实现,这些机制通过将自动 TTPs 分布于几方,从根本上降低可信第三方的成本和风险,只有部分需要行为可靠或值得信赖,就可以让整个协议可靠或值得信赖。

新可信第三方既成本高昂又具风险

在实现一个 TTP 方面(其由公钥加密学的早期倡导者所假定),本文作者具有专业经验。这个 TTP 已被称为一种“证书授权中心”( CA ),它被赋予保证参与者“身份”的责任。(这里,我主要关注由 TTP 带来的成本;替代方案如 PGP's Web of Trust and SPKI 已在其他地方进行了充分讨论)。

目前为止,CA 已被证明是这种中心化公钥基础设施( public key infrastructure,PKI )中成本最高的组件。当协议设计者认为的 TTP 在 PKI 标准(如 SSL 和 S/MIME )中的必要性,被转化为对 TTP 的需要时,这种情况就恶化了。一个 TTP (其必须受一个协议所有用户的信任),成为“谁可,谁不可使用协议”的仲裁者。因此,比如,要运行一个安全的 SSL web 服务器,或要参与 S/MIME ,必须从一个相互受信的 CA 获得一个证书。其中,最早和最受欢迎的是 Verisign 。它已经能够因终端用户证书收取几百美元费用——远远超过因安全协议代码本身收取的那几美元( 隐为终端用户软件成本 )。申请和更新证书的官僚过程,花费的时间,比配置 SSL options ,要多得多,CA 的鉴定过程遭受的暴露,比 SSL 协议本身也要大得多。 Verisign 的股票市值为数百亿美元 ( even before it went into another TTP business, the Internet Domain Name System [ DNS ] by acquiring Network Solutions ),它如何办到?通过提出一个解决方案(几乎是任意方案),因为相比 PKI 加密组件,相比公钥协议设计者为电子邮件和 the Web 所做的看似无害的“可信第三方”假设,Verisign 的安全极其粗糙 ( crude )且成本高昂。

有关 CAs 的一些更多问题,在解决。

互联网 DNS 是 TTP 带来高成本和高风险的另一个例子。TCP/IP 协议堆栈的这个极小部分,在涉及该协议的争端中占了多数。为什么?因为它是 TCP/IP 堆栈中依赖一个 TTPs 中心化等级制,而不是依赖个体互联网节点之间协议协商的少数几个领域之一。DNS 也是互联网上最有可能失败的单一组件,即使它的名称( names )没有争议或没有被哄骗( spoofed )。

TTP 的高实现成本,主要是因为传统的安全解决方案(必须在协议本身未涉及的地方进行调用)涉及高人员成本。更多信息(关于在实现 TTP 组织时,这些传统安全解决方案 [ 尤其是人员控制 ] 的必要性和安全益处 ),请参阅本文作者的 group controls 相关文章 。由协议用户承担的风险和成本,也被 TTP 的不可靠性所主导——DNS 和 CAs 分别是互联网和 PKIs 不可靠性和令人失望的两个常见来源。

现有可信第三方是有价值的

Visa, Dun and Bradstreet, Underwriter's Laboratories 等公司将互不信任的陌生人连入一个共信网络,我们的经济依赖于它们。许多发展中国家缺乏这些信任 hubs ,如果能与这样的发达世界 hubs 进行整合,它们将受益匪浅。虽然这些组织经常有许多缺陷和弱点,比如信用卡公司,伴随欺诈,身份盗窃和不准确报告,问题越来越多,最近巴林银行倒闭了,因为他们的控制系统没有正确地适应数字证券交易,但总的来说,这些机构将和我们在一起很长一段时间。

但这并不能帮助我们获得为新协议而生的 TTPs 。这些机构有一种特殊的,高度进化和专业化的经营方式。他们通常无法“爬坡”到一个完全不同的经营方式。电子商务和数字安全等新领域的可观创新必须来自其它地方。任何新协议设计,特别是在范式上的不同领域,如性能或加密计算(capabilities or cryptographic computations ),都将与现有机构不匹配。由于从头开始构建新 TTP ,成本如此高昂,因此,引入这些拥有制度新颖的安全技术的协议( introducing protocols from these institutionally novel security technologies ),最小化它们对 TTPs 的依赖,成本要远低得多。

新可信第三方可能很诱人

为什么组织可能倾向昂贵的基于 TTP 的安全,而非倾向更有效率,更有效,及最小化对 TTPs 使用的安全措施?有许多原因:

  • 协议设计者在想象力,effort,知识或时间上的局限——设计依赖于 TTPs 的安全协议,比设计不依赖于 TTPs 的安全协议,容易得多(即避开问题而不是解决问题)。自然,在安全协议中,限制最小化 TTPs 进展,一个重要因素是设计成本。一个更大因素是,许多安全 architects ,特别是起草互联网和无线安全标准的 corporate architects ,对这个问题的重要性缺乏认识
  • 将“high ground"声称为一个 TTP of choice ( claim the "high ground" as a TTP of choice),这个诱惑巨大。成为下一个 Visa 或 Verisign ,这个野心是一场难以拒绝的权力之旅。然而,真正建立一个成功的 TTP 业务,障碍通常巨大——启动成本巨大,持续成本仍然很高,负债风险巨大,除非有一个巨大的“先行者”优势门槛,使几乎没有竞争者进入。如果没有人解决协议中的 TTP 问题,这仍然可能是一项有利可图的业务,以及,羡慕像 Verisign 这样的大赢家,而不是去记住那些尝试过但如今淹没了的失败公司,是容易的。把自己想象成成功的 TTP ,并开始提倡需要 TTP 的安全协议,而不是更努力地真正解决安全问题,这也是容易的。
  • 根深蒂固的利益。许多能言善辩的专业人士使用 TTP 组织所必需的技能谋生。比如,大量审计师和律师创建并操作传统控制结构和法律保护。这些专业人士自然倾向这样的安全模型——此模型假定专业人士必须介入并实现真正安全。在电子商务等新领域,他们倾向基于 TTP 的新商业模式(如 Application Service Providers ),而不是花时间去学习可能威胁他们原有技能的新实践。
  • 精神交易成本( Mental transaction costs )。信任,如品味,是一种主观判断,作这样的判断需要脑力劳动。第三方拥有实际上值得信赖的良好声誉,可以节省客户的成本,让客户不必须去做这么多研究,或承担与做这些判断相关的其他成本。然而,那些声称可信却结果不值得信任的实体,当他们违背信任,就增加了直接成本;还增加了“在可靠和可疑第三方之间进行选择”的这种普遍成本。

个人财产目前没有,也不应依赖 TTPs

在人类历史大部分时间里,财产的主要形式一直是个人财产。在正常情况下,个人财产的实用性( functionality ),不依赖可信第三方 。简单财货的安全属性,可在销售或首次使用时进行验证,不需与制造商或其他第三方进行持续交互( 除非在特殊使用后,并在自愿和临时的基础上,偶尔需要修理人员)。许多动产( chattel [ portable property] )的产权,对第三方依存度很低——唯一需要 TTP 之处,在于抵御其他第三方掠夺。个人动产的主要安全属性,往往不在于其他作为保护者的 TTPs ,而在其便携性( portability )和亲密性( intimacy )。

以下是一些无处不在的个人财产的例子,在其中,存在一个事实,或至少存在一个强烈愿望——为了实用性或安全,财产拥有者强烈希望摆脱对 TTPs 的依赖

  • 珠宝( 在传统文化中,珠宝远比硬币更常用作货币,如在 Northern Europe up to 1000 AD ,佩戴珠宝在身上,除装饰外,还为了更好的保护财产 )
  • 由 personal keys 操作汽车,打开房门。
  • 个人电脑——在许多个人电脑先驱的原始愿景里(如 Homebrew Computer Club 的许多成员),PC 被视为个人财产——拥有者拥有运行于 PC 上的所有软件的完全控制和了解权,包括能够随意拷贝 PC 上的 bits 。软件复杂性,互联网连通性,以及未解决的软件发布者和用户( PC 拥有者 )之间的激励不匹配,已经在很大程度上侵蚀“个人电脑作为个人财产”这个现实。

这种愿望是天生的,今天还存在。当消费者在使用的设备中,发现对第三方的意外依赖以及第三方易遭攻击性,他们就会产生抵触。这些提议——个人财产的实用性依赖于第三方,甚至,与某方如债权人在严格条件下达成共识,直到动产借款还清( 智能留置权 )(ethe functionality of personal property be dependent on third parties, even agreed to ones under strict conditions such as creditors until a chattel loan is paid off [ a smart lien ])——都遭到强烈抵触。在大多数情况下,将个人财产的实用性依赖于可信第三方( 即第三方得到协议信任,而非被协议强制而在条款[涉及管理安全协议和财产的条款]中得到保留 ),这非常不可接受。

最小化 TTP 的方法 ( TTP Minimizing Methodology )

我们现在提出一种安全协议设计方法,通过这种方法,协议被设计为,最小化 TTPs 的这些成本和风险。最小化安全协议本身的成本和风险,是一个重要但次要的优先事项。

目前,安全设计者通常调用或假定 TTPs ,与最优雅,最安全或至少计算成本最低的安全协议相配。这些 naive TTPs 随后被用于整个协议架构的概念证明。但这并没有发现需要被发现的重要事情。一旦一个安全协议被实现,代码本身的成本就非常低,并且像摩尔定律这样的指数成本函数持续降低计算,带宽和许多其他技术成本。安全协议本身的成本( 除了受光速限制的消息传递成本和受精神交易成本限制的用户界面成本)接近于零。目前为止,该系统的最大长期成本(如我们在 PKI 中所了解)是 TTPs 的实现成本

为最小化 TTPs 成本,从一开始就估算 TTPs 成本,要远远富有成效得多,而不是试图设计安全协议( It's far more fruitful to estimate from the beginning what the TTPs will cost, rather than try to design the security protocols to minimize the costs of the TTPs )。这可能会给设计者带来一个完全不同的信任假设和安全协议,完全不同于他在某些地方,为简化安全协议,所假设的纯粹的未经分析的 TTPs 。一种自然推论( corrolary )是,如果存在一种安全协议,其可消除或大大降低 TTP 成本,那么,实现它,要比实现一个假设( assumes )昂贵 TTP 的协议,付出更大代价( if that there exists a security protocol that can eliminate or greatly reduce the costs of a TTP, then it pays greatly to implement it rather than one which assumes a costly TTP )。即使后一种安全协议更简单,计算效率更高。

“可信第三方是安全漏洞”的一个推论是,“所有安全协议都有安全漏洞”,因为没有协议完全无此假设( assumptions )。评估 TTP 成本和风险的关键步骤是:(1) 彻底检查某个协议的假设,以揭示所有 TTP 假设,并具体描述每个 TTP 是什么和不应该做什么,(2) 注意每个这样的具体漏洞和任务都有相关成本和风险。

还有其他一些重要考虑,包括:

  • 设计成本。最小化 TTPs 通常涉及学习和应用非直观,复杂的加密和容错技术,如下面所提的一些。对于小型智能合约项目而言,这可能是一个主要负担或不切实际。另一方面,一个新 TTP 机构,其设计成本通常比新协议的设计成本要高得多,尽管后者可能成本很高。确定新机构是否具有长期健壮性,此确定成本仍然更加高昂,同时,协议可进行正式化分析,针对此分析,可对实现进行审计,从而在一个典型的产品开发时间框架内,获得非常高水平的信赖( confidence )。
  • 用户精神交易成本( User mental transaction costs )——多重 TTPs ,即使是那些用途相当有限的 TTP ,也可迅速对终端用户的此能力进行征税——跟踪不同可信品牌的声誉和质量。当 TTPs 是分布式的( 如下所述技术中),声誉跟踪必须被自动化,当 TTPs 冗余地执行相同功能,自动化声誉跟踪就容易得多。

如果对于新环境如电子商务,我们可找到这样一种安全协议,其用数学(数学至少本身就很清楚,且可证明)来取代 TTP 组织(在新环境中,TTP 组织是一个复杂,未经证明的传统集合),如果这样做,这将通常是一场非常大的胜利。更常见情况是,我们将用一个或多个简单得多的 TTP 加上数学,来代替一个复杂及成本高昂的 TTP 。这也是一个巨大胜利。我们只能通过专注于 TTPs 的信任假设和由此产生的成本,而不是专注于安全协议的效率,来判断它是否成功及其成功程度。关键是要,关注 TTPs 的成本并设计安全协议来最小化 TTPs,而不是为了简化或优化安全协议的效率而假设 TTPs

一个好的数字安全协议设计者,不仅是计算机科学和加密学方面的专家,还十分了解涉及物理安全,审计,法律和要保护的业务关系的传统昂贵技术。这些知识不是用来用这些昂贵的安全方法替代更经济有效的数字安全( substitute these costly security methods for more cost effective digital security ),而是为了真正的安全,最小化对昂贵方式的隐藏依赖。一个好的协议设计者也会设计能够最小化使用昂贵技术的 TTP ,而不是仅仅假设此。

TTP 最小化协议 ( TTP Minimizing Protocols )

通过上述内容,我们看到,最小化 TTPs 的关键是识别它们,描绘它们的特征,估计它们的成本和风险,然后,围绕拥有最小成本和风险的 TTPs 设计协议如果通过使用本 session 中的类似技术,缓和了风险,则可以大大降低风险。

有三个研究和实现领域,在增进信任方面,显示出特别前景。其中两个涉及隐私领域,在这一领域,违反信任,往往不可逆转——一旦数据泄露,就不可能再重新放回去。

第一个信任可在其中被分布以保护隐私的协议族是 Chaum mixes 。在其中,Mixes 允许通信免疫于第三方跟踪。只有一个代理链中的 any one out of N proxies,都需要是可靠的,才能保护隐私。不幸的是,所有 N of the proxies 都必须是可靠的,否则消息将丢失,必须重新发送。数字混合协议的权衡方案是,增加消息传递延迟(重发),以最小化此风险——不可逆转的隐私丢失。

另一个信任可在其中被分布以保护隐私的协议族是多方私有计算( multiparty private computations )。这里,一个虚拟计算机跨 N 方分布,这些参与方相互提供经特殊加密的输入,而非提供给一个可信第三方。该分布式计算机取来自 each of the N parties 的输入,计算一个共识算法,然后输出答案。每一方只学习答案,而不学习任何其他方的输入。必须共谋侵犯隐私或威胁可靠性的当事方的阈值( The threshold of parties )可进行权衡,并且,就此当事方阙值,已在有关这一主题的大量文献中进行了详细研究。多方私有计算可用于机密审计,机密偏好收集和数据挖掘,拍卖,以及与机密投标的交换等。

复制数据,并分布对数据的操作,同时保持该数据的 integrity ,这种协议家族就是 Byzantine resilient replicated databases 。 Byzantine resilient replicated databases 的实现包括 Fleet 和 Phalanx。 Fleet 实现通用对象( general purpose objects )的复制持久性。一些开源实现,包括 Mojo Nation 和 Freenet ,它们接近但没有达到 Byzantine resilience ,通用或完全去中心化。应用包括 secure name registries ,property titles ,以及在 Mojo Nation 和 Freenet 中安全发布的内容。在这一领域,最先进工作涉及 Byzantine fault tolerant quorum systems 和在分布式安全方面的其它最新进展。

需要注意的是,这些阈值技术( threshold techniques )仅用于增强单个步骤或协议运行的 integrity 。实际系统,如 Mojo Nation ,将特定运行之中的多数或超级多数,与故障检测和服务器客户端在运行之间的选择相结合。因此,我们可将所有声誉系统,审计等重新添加进来,从而在长期内为分布式系统增加健壮性。调用中的大多数或超级多数,创建了一个非常好的短期健壮性,这是当前系统如 Freenet 和 Mojo Nation 所缺少的( Mojo 只缺一方,其拥有 4-of-8 投票机制,但这并没有展示出 Byzantine resilient up to 4-of-8 )。

服务器代码的远程认证

有人提议使用远程认证来验证运行在客户端的软件的状态,以此保护知识产权。远程认证更有价值的一个用途是,验证服务器行为。这也被称为透明服务器方法( transparent server approach )。通过远程认证,客户端可验证,特定想要的代码运行于一个服务器上。结合审计开源代码的能力,服务器的远程认证可极大降低客户端和用户面对服务器时的脆弱性。鉴于我们在此讨论过的可信第三方问题的重要性,此方法具有巨大潜力,将可信第三方协议转换为安全协议,并使迄今不可能实现的各种安全协议成为可能。如 Hal Finney 已经实现 bit gold 的一个版本,称为 reusable proofs of work ,其基于一个安全的 coprrocessor board ,其允许用户远程认证运行于卡上的代码。虽然仍然需要去信任卡制造商,但这个制造商与服务器代码的安装和服务器在卡上的操作是分离的。

让小漏洞 Unplugged

协议设计者通常无法弄清楚如何修补一个易遭攻击点。如果需要一个 TTP 保护以防攻击,那么,在设计者试图保护的应用环境中,这个攻击就不是一个严重的现实威胁,那么,最好是让这个小漏洞 unplugged,而不是将任务分配给一个 TTP 。例如,在公钥加密这种情况下,协议设计者还没有弄清楚如何在 initial key exchange 期间防止“中间人”( man-in-the-middle,MITM )攻击。SSL 试图通过要求 CAs 作为可信第三方来防止这种情况发生,这种解决方案让 web 社区付出了数十亿美元的证书费用,失去了安全通信的机会。另一方面, SSH 决定干脆让这个小漏洞 unplugged 。据我所知,MITM 漏洞从未被利用来损害 SSH 用户的隐私,相比 SSL, SSH 被更广泛地用于保护隐私,且成本很小。Ian Grigg 对这种经济的安全方式进行了更深入研究。

术语译解

Alan Karp,Mark Miller 等人观察到,安全社区中,对“信任”( trust )和“可信”( trusted )等词的混淆,并建议将动词“信任”替换为“易遭受攻击”( is vulnerable to )。这种替代是一种从根本上澄清安全协议设计的好方法。本文中使用的“可信第三方”变为“易遭受第三方攻击”,本文的重点——“这是一个安全漏洞”,变得明显。

在协议设计语境中,不说,协议设计者信任一些鲜为人知的,拥有一个给定授权的( 这可能只是意味着协议设计师无法弄清楚如何堵住一个安全漏洞 ),参与方普通类组( generic class of parties )(指“一个可信第三方”),一个诚实的协议设计者将承认,这里存在一个易遭攻击点-这取决于 "out of band"机制来堵住或最小化那个漏洞,或取决于用户很有见识地忽略那个漏洞。参与方组鲜为人知,因为安全协议设计者通常不太了解使这样一方变得可靠所需的,传统的,非数字的,安全,法律和制度解决方案。在协议设计层面,在诚实交流协议安全性方面,将“可信”替换为“易受攻击”,运行很好。

不过,调用“可信第三方”、“可信计算”之类的安全系统的安全设计者和销售商真的会站出来承认他们的协议是“易受攻击的”吗?当他们使用委婉语“信任”时,安全设计听起来如此安全得多。

在现实世界,除了安全协议设计这个技术语境外,“信任”还有多种含义。对“信任”的一个不同使用是,确知的信任( well-informe trust ),例如,“我信任这个盔甲来保护我免受一般子弹,因为它经过很好测试”,“我信任这个拥有证书的网站,因为当我准许这个证书,我就正在使用一个强大的安全协议来保护我”,或“我信任我的妻子和孩子们”,在这情况下,把“信任”翻译成“易遭受攻击”,很容易彻底转变它的含义。根据语境不同,“信任”实际上可有相反含义,这是在描述安全协议的脆弱性或缺点时,避免使用该词的另一个有力论据。一个设计者是否认为他确实信任或必须信任一些参与方普通类组( some generic class of parties ),这是一回事。当协议实际运行时,一个特定用户是否将真正信任该类组中的一个特定实体,完全是另一回事。用户的信任/设计师的信任是否是确知的(well informed ),仍然是另一回事。

结论

传统的安全措施既成本高昂又具风险。数字安全如果设计得好,随着时间推移,成本会大幅降低。当一个协议设计者调用或假设一个 TTP 时,他就在创建对一个新组织的需求,来尝试通过传统安全和控制方法来解决一个未解决的安全问题。特别是在数字环境中,这些方法需要持续高支出( 其由 TTP 引来),TTP 会造成瓶颈,给终端用户带来持续高成本和风险。

一个更好方法是,始于这样的 TTPs ——其要么众所周知,要么其特征易于描绘,且成本最小化。最好的“TTP”不存在,但通过协议设计,其必要性已被消除,或其在协议各方之间已经实现自动化和分布式。后一种策略带来了最有前途的安全协议研究领域,包括 digital mixes, multiparty private computations,以及 Byzantine resiliant databases 。这些以及类似实现,将被用于从根本上降低现有 TTPs 的成本,解决隐私,integrity ,产权和合约强制执行方面的许多突出问题,同时最小化新 TTP 机构的非常高的创建和运营成本。

References

Links in the text.

Acknowledgements

My thanks to Mark Miller who encouraged me to write down these thoughts and provided many good comments. My thanks also to Hal Finney, Marc Stiegler, David Wager, and Ian Grigg for their comments.

Please send your comments to nszabo (at) law (dot) gwu (dot) edu

Copyright © 2001, 2004, 2005 by Nick Szabo
Permission to redistribute without alteration hereby granted

原文:https://nakamotoinstitute.org/trusted-third-parties/
作者:Nick Szabo
编译 & 校对:Chiu & 东林 @ 币未来 biweilai.com