公钥基础设施之父的深度对话:从PKI起源到现代安全挑战

本文记录了与公钥基础设施(PKI)创始人Loren Kohnfelder的对话,探讨了PKI的诞生历程、数字证书的发展、HTTPS的演进,以及当前软件安全面临的人类因素和经济挑战,揭示了安全技术演进中的深刻洞察。

与公钥基础设施之父的对话

在今天的文章中,我将向您介绍我的老朋友Loren Kohnfelder。我在90年代末的微软认识了Loren,当时我们肩负着改善Internet Explorer安全性的艰巨任务。那是一个激动人心又充满挑战的时期,虽然想到我们已经取得了长足的进步令人惊叹,但令人惊讶的是,二十年前我们努力应对的许多安全挑战至今仍然存在。

我想采访Loren,因为他拥有全球最具启发性和重要的安全视角。在1978年的学士论文中,他发明了公钥基础设施(PKI),包括证书和证书撤销列表的概念,并为我们今天使用的互联网信任模型奠定了基础。我感觉自己是个老手,因为我思考安全问题已经超过二十年了。但Loren思考安全问题已经超过四十年了!

以下是我们就一系列安全相关话题进行的自由讨论。希望您能享受并觉得它和我一样有趣。

对话内容

Jason:
感谢您今天抽出时间与我交谈。我很兴奋能听到您的想法。我想从您在软件安全领域极其悠久和深厚的历史开始谈起。是什么启发了您的学士论文?您当时知道它会有多大的影响力吗?

Loren:
在MIT,我非常幸运能够待在计算机科学实验室附近,那里有RSA算法的三位发明者中的两位的办公室。这正好是他们的论文即将发表的时候,Len Adelman和Ron Rivest都非常慷慨地花时间带我了解数学细节。

RSA算法在签署加密消息时存在一个技术问题,因为两个不同的密钥对(签名者和接收者的)会有不同的模基,其中一个的结果可能比另一个大。(详情请参见他们的论文,第X节“避免‘重新分块’”。)我记得,当Ron解释这一点时,我指出通过反转顺序(因为它是可交换的,你总是可以这样做),问题就解决了;他立即叫来Len,看看他们是否可能错过了这一点,于是我引起了他们的注意。论文已经来不及修改了,所以我给《ACM杂志》写了一封信,得到了RSA作者的支持并得以发表。

Len成为了我的论文导师,以确定一个主题,我们很快决定探索RSA的实际应用。当时,在1970年代末,计算机又大又贵,所以我们能想到的RSA应用场景只有银行间交易安全或军事通信等。用于加速RSA计算的专用印刷电路板价值数千美元,而且速度仍然很慢,只能使用非常适中的密钥大小。此外,NSA actively discouraging cryptography researcher,软件实现有出口限制,要求我们像对待军火一样对待它们。

密钥分发是下一个明显要解决的大问题,所以我专注于这一点。公钥的想法改变了游戏规则。首先,我们假设可以发布一个“黄页”风格的密钥目录,但这当然不是一个很好的解决方案。首先,转录那些长数字是不可行的。当时,我认为数字证书是一个相当明显的解决方案:数字而不是纸质,由权威机构而不是电话公司颁发。尽管我们很清楚摩尔定律,但没有人预见到这项技术有一天会出现在每个人的口袋或钱包里。我专注于毕业,所以没有想到为这个想法申请专利,事后看来,我会说这样结果更好。

Jason:
这是一个迷人的故事。对我来说尤其令人兴奋,因为我相信您以前从未这样公开讲述过。我们在这里捕捉到了一小段但重要的计算历史!

关于您发明的想法在现实世界中的应用,有什么让您感到惊讶的吗?

Loren:
从数字证书的想法到HTTPS协议首次提出(RFC2818)花了超过二十年时间。今天——又过了将近二十年——我们终于有超过一半的网络流量通过HTTPS保护,并且刚刚开始看到DNS over HTTPS的推出。我可以说,保护数字通信的漫长时间线告诉我们世界对互联网信息安全的重视程度。

Jason:
感谢您指出这一点,因为想想真是不可思议。自证书概念提出以来,四十年过去了,我们仍然没有生活在一个所有敏感流量(更不用说所有网络流量)都被加密的世界中。不久前,我们还在争论是否到处使用HTTPS有意义。现在看起来有点傻。当然,我们应该优化安全性。

关键是,我们仍然经常让安全的工作变得比应有的更难,因为做错的成本在您成为攻击受害者之前是看不见的。如果您从未受到攻击,那么也许获得性能而不是安全性是有意义的——成本/效益倾向于那个方向。一旦您遭受攻击,成本/效益就会迅速向另一个方向倾斜。

我很想从您的角度听听,安全领域还有哪些事情没有像您预期的那样改变?例如,我在早先的一篇文章中指出,令我惊讶的是,内存相关漏洞仍然在CWE最危险的25个漏洞列表中名列前茅。

当您回顾您在这个领域所学到和经历的一切时,还有什么让您感到惊讶?

Loren:
关于混合HTTPS作为进步如何演变的例子,这是一个极好的观察,这与科学如何取得进步类似。人们很容易依附于现状,所以当新想法被提出时,人们分成阵营,起初会有激烈的挑战。这些严厉的批评可以帮助完善新想法,除非反对意见变得 overwhelming。老守卫通常过度捍卫他们的旧方式太久,直到最终抵抗崩溃,新想法迅速获得广泛接受。

针对您的具体问题:我可以毫不夸张地说,一切都让我感到惊讶。我最大的收获是逐渐认识到软件是一项非常人性化的事业,那些主观因素几乎完全包含了工作的技术方面。别误会:技术也至关重要,但我们只能通过自己的经验和优先级来创建或评估技术。这是一个重大而困难的话题,我还没有找到好的方式来谈论它,但这就是我在被问及为什么在实践中实施网络连接安全需要这么长时间时所暗示的。

几年前,我通过Dan Ariely的工作了解了行为经济学,这让我大开眼界。经济学总是假设市场上的人是理性的行为者,他们在最大化自身利益——但如果你做实验,结果发现这几乎从来不是真的。结果发现,广告和许多商业策略长期以来一直在利用人类思维的怪癖。

最具挑战性的方面是,我们很难看到自己身上的这些缺点,尽管科学告诉我们没有人能免疫。我会说,软件人员,在可以想象的最逻辑的工作类别中,特别无法看到他们不那么客观的决定和行动。所以,虽然让安全成为高度优先级似乎完全合理,但现实非常不同不应该让我们感到惊讶。

我推测,人们进化到非常精确地要求他们能够逃脱的最低安全程度(显然风险厌恶程度因人而异),而这正是我们今天所拥有的。作为安全专业人士,我们高度重视更好的安全性,不可避免地与那些不这么看的人发生冲突。这类似于禀赋效应,我们对自己拥有的物品赋予高价值, compared to 如果别人拥有同样的物品。我还没有想出如何应用这一点来改善情况,但当我看到令人困惑的事情时,这是我首先考虑解释的事情之一。

为了让这种狂野的推测落地,考虑一些遗留计算机和软件的年龄极端情况。根据美国政府问责办公室(2016年),许多关键系统已经超过五十年历史,其中一些没有具体的更新计划。这种“如果没坏就不要修”的心态非常强烈。例如,如果一个系统已经55年了,再撑到56年似乎几乎是合理的。如果有的话,似乎系统功能越关键,替换它就越令人望而生畏。这意味着通常最难处理最需要现代化的最重要系统。

安全可能也被类似地看待:如果我们拥有的代码已经存活了这么久,为什么要折腾它?鉴于我们无法找到所有安全漏洞,我们永远不知道我们实际承担了多少风险,所以现状一天天延续, ad infinitum。

虽然有些人可能认为这个想法很疯狂,但我惊讶的是没有人(据我所知)曾经尝试销售提供任何质量保证的软件。否认适销性是为产品设置的最低可能标准:我必须相信至少有可能做得更好。你会认为有人会尝试以某种保证销售安全性——但没有。我只能假设这意味着市场为零。也许,就像防野熊一样,人们满足于 simply run faster than the other potential victims。

Jason:
我见过要求漏洞响应时间的合同,所以我知道这是可以做到的。在安全保证方面,我不确定如何做到。你可以保证正常运行时间,但如何确保没有安全问题?或者你可以保证数据的隐私性(这已经在隐私声明中部分完成),但公司已经面临丢失数据的责任。在几乎不可避免的违规情况下,他们是否想增加更多成本?

如果我们从经济角度谈论,我认为问题可以很容易地总结为敏感数据对窃贼的价值比保护它的公司更高。想一想。除了网络安全,我们生活的任何其他领域这种动态是真的吗?

我最近参加了Motorola Mobility的CISO Richard Rush的演讲,他解释说你的数据在暗网上的价值 anywhere between $22(信用卡号)到$1,000(医疗记录)。与此同时,Facebook将您的个人数据估值在$0.20到$0.40之间。这是一个巨大的价值 disparity,影响了公司可以花多少钱保护您的数据 compared to 攻击者愿意花多少钱窃取它。

网络犯罪的成本是每分钟700万美元,并且以指数速率增加,而网络安全预算继续以线性速率增加。我交谈过的每一位CISO都感觉他们落后了,并且继续失去阵地。

在这种环境下,好人很难获胜。攻击是大规模发起的,任何自动化攻击只需要非常低的命中率就能为攻击者带来正ROI。结果,违规变得越来越普遍,成功违规的比率正在增加。

大问题是,下一步是什么?竞争环境 uneven 并且越来越如此。我们每年在安全上花费更多,但仍然落后。我们可以从哪里寻找解决方案?

Loren:
让我明确一点,我从未见过这种安全增强的产品合同或保证产品,但我确实发现它在主流市场中的缺失令人 striking。我非常相信主动安全(“左移”)的价值,而从OS制造商否认责任开始的模型与为前期投资安全提供激励相反。从客户的角度来看,如果我们认真对待构建更安全的系统,那么我们应该期望为此付费才是公平的。

如果你要求一家大型OS制造商为更安全版本的产品付费,我猜他们不会认真对待你。然而,政府确实有巨大的 weight,显然他们没有尝试问过:所以要么他们没有非常努力,要么我的想法 completely bonkers。即使这是一个疯狂的想法,我不明白为什么至少不值得探索。有很多关于偏远军事研发的报告——为什么不是更安全的软件?我希望清楚我根本不是谈论“完美安全”:那将是疯狂的。

我可以设想的那种方法是供应商和客户之间的增量谈判,我建议基于威胁模型分析来定价高级安全功能。考虑使用可衡量安全属性的 bid/ask 定价模型:各种保护措施的成本是多少,客户愿意支付多少?就像我们今天有一个蓬勃发展的漏洞赏金市场一样,似乎我们也可以创建具有特定可证明安全属性的软件组件市场。技术提供商可以与保险公司合作,在 unlikely 失败事件中提供赔偿支付作为额外保证。与其在这里 purport 设计未来的安全产品,我的观点是探索新的可能性有真正的价值——即使许多中有一个结出果实,那也是一个大胜利。

下一步是什么,我不知道。保护信息系统对好人来说 loaded with disadvantages,正如你提到的。对这一事实的一个回应是继续问:我们是否尽一切可能提高门槛?这包括基本和高级缓解措施、更好的指标和分析、更多教育、更多审计。小的改进可能比我们意识到的更有效,因为很难检测到被主动预防的失败攻击。

Jason:
我想涵盖以人为中心的安全设计理念。这是我最近更常听到的一个术语。我觉得它令人鼓舞,因为我认为它反映了人们对人类是所有安全漏洞根本原因的事实日益增长的理解。无论是由于直接行动(例如响应钓鱼邮件)还是间接行动(例如在数据库应用程序中编码SQL注入漏洞)。似乎重点必须放在如何让人类更容易避免犯错?因为如果我们的策略是简单地指望人们做正确的事,我们将继续失望。即使有完美的培训,即使一个人已经被明确教导在每个情况下做正确的事,他们仍然会犯错。在一个单一错误可能导致价值数亿美元的违规的世界中,这种状况是站不住脚的。

Loren:
我喜欢基本意图,当然是作为对过度强调技术的反应。在人类方面有太多事情要做,而我们对人类因素了解甚少。为了洞察“真实用户”,我鼓励非技术倾向的朋友向我寻求技术帮助,瞥见他们如何思考总是令人大开眼界。首先,重要的是要记住,你不知道用户的技能 set,更不用说优先级了。

培训还有很长的路要走,无论是信息内容还是传递方式。例如,我搜索了[基本在线安全提示](超过二十亿结果!),发现顶级结果在他们所说的内容上 quite a mixed bag,在我看来,没有一个特别好。作为一个行业,我们似乎应该提出基于共识的用户指导,然后团结 behind that。目前,用户从政府、各种在线服务、PC和OS制造商、反病毒供应商等获得单独的建议,并且早已放弃认真对待它。

我还要补充一点,作为一个行业,我们需要继续努力践行我们所宣扬的。就在上个月,我的金融机构通过电子邮件从第三方联系我, directed me to a different website,在那里我被要求输入我的银行凭证才能继续。我实际上检查了他们自己的在线帮助,找到了除了在线银行网站之外从不提供密码的指导,并向他们指出了这一点。客户支持向我保证这是合法外包的,并且完全没有看到与做法的冲突。

一个确定的事情是,人类总是会犯错,所以我们需要进化软件以变得更有弹性,这样不可避免的错误就不会那么灾难性。

减少脆弱性非常重要,这通常意味着减少复杂性。撤销的能力是人类错误的一个伟大缓解剂,在文本编辑中,它已成为编辑撤销和红线版本控制中必不可少的。想象一个没有那些可怕的对话框问“你确定吗?”的世界,而是提供“让我们试试看”,并保证以后可以退出。这种能力本身对任何用户来说都是极具教育意义的。我谈论的是超越一个应用程序中一个操作范围的撤销:想象一个可以撤销更新、撤销实体之间事务或修复恶意账户接管后造成的损害的数据库。

这并不容易,但可以做到,我认为这将是一个重大的福音。我们需要超越软件脆弱的现状,在那里一个错误举动就可能瞬间失去一切。相反,我们应该能够让数字环境比现实世界更安全, complete with 安全网,这样我们可以少担心失误,而专注于工作。

Jason:
我喜欢以减少脆弱性为名减少复杂性的想法。令人 striking 的是,大多数企业环境是多么复杂。保护一个暴露在互联网上并处理敏感数据的单一应用程序已经够难了。现在想象一下乘以1000倍,并加上没有人对已部署的所有软件有 visibility 的事实。仅仅获得准确的库存对大多数大公司来说就是一个巨大的挑战。

如此多的软件是在没有真正理解威胁环境的情况下开发的,不幸的是,每天都有新软件在没有足够关注安全的情况下开发。冷酷的事实是,构建一个真正 hardened 的企业可能 prohibitively expensive。成本根本没有计入商业模式,因为总体威胁和安全需求在 executive 和 board 级别 so poorly understood。

Loren:
这是对软件安全面临的许多固有挑战的很好总结,有如此多的未知数, topped off by 巨大的复杂性。我认为现实往往是,构建软件的时间和资源 notoriously difficult to estimate。超支很常见,安全通常是在 shrinking constraints 内完成的。很容易 fault 这种对安全的 underinvestment——尽管这可能是真的——但我认为问题的根源更深。

理解威胁环境是关键,但它是如此困难,以至于我们通常未能设定一个明确的目标,即需要多少安全。没有目标,安全工作计划 quickly trend toward “其他人做什么” as good enough。这种方法被强烈的“做我们上次做的事”倾向 reinforced,因为重新审视现有系统的安全是一项如此 daunting 的挑战,很少有人愿意 even contemplate it。虽然“多少”的问题确实困难,但我建议即使部分答案也非常值得努力,因为它们告知如何最好地 approach 安全工作,也许最重要的是,如何知道我们何时完成。

Jason:
谢谢您,Loren,进行这次重要的讨论,我真的很感谢您的时间。我还有最后一组问题要问您。

在安全领域,您对什么感到感激?换句话说,您认为人们在哪里做得很好?

如果您能许一个愿望,希望改变什么来改善安全 landscape,那会是什么?

Loren:
极好的总结问题,因为承认正在取得的良好进展很重要,这太容易被视为理所当然。无疑,我只 aware of 所有我们应该感激的伟大工作的一小部分,但为了这次讨论,我将提供一个主观观察,即广泛增长的对理解威胁 landscape 以指导安全战略的重要性的接受。这是一件大事,因为这意味着,用一句 well-known adage 来说,我们将超越“在街灯下寻找钥匙”,并开始在最 impactful 的地方 apply effort(而不是最容易的地方)。

我希望的改变是看到软件行业提高透明度水平,以便我们能够建立可靠的社区指标。我知道有许多 hurdles 使安全披露困难,但我认为这根本不是 Pollyannaish aspiration。与其 routinely 提供关于安全更新的绝对最少信息,我 challenge 软件制造商告诉我们更多,只要它不帮助坏人。即使是关于 attempted attacks 或内部流程的透明度也是有价值的。基层努力 toward fuller disclosure 会随着时间的推移对落后者施加压力。一点一点地,我们可以对软件安全的实际状态有更好的全球 view。

我想以感谢您有机会进行这次聊天结束,并祝您新年快乐!


请订阅我们的新闻通讯。每个月我们都会发送一份新闻通讯,包含新闻摘要和我们最近几篇文章的链接。不要错过!

另请参阅

  • Getting to Yes
  • Defcon - There Has Never Been a Better Time to Get Into Security
  • Can Security Training Change Lives?

分享与讨论

  • 在HackerNews上讨论
  • 在Twitter上分享

归档于

Careers


Joe Basirico & Jason Taylor © 2023

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计