acm-header
登录

ACM通信

隐私和安全

计算机安全问题:更好的硬件能帮助解决吗?


计算机安全已被打破,插图

图片来源:Alicia Kubista / Andrij Borys Associates

1967年,银桥在交通高峰期倒塌在俄亥俄河中。这座桥用高强度钢代替了冗余。单目镜的故障是灾难性的。一个今天的计算设备类似于银桥,但要复杂得多。它们有数十亿行代码、逻辑门和其他必须完美工作的元素。否则,对手就会破坏系统。这些组件中的许多单独的失败率很小,但聚集的复杂性使脆弱性在统计上是确定的。

这是一个比例问题。我们计算平台的安全关键方面的复杂性呈指数级增长,迅速压倒了防御改进。这种徒劳无益的情况导致了结构工程师永远不会接受的不合逻辑的推理,例如,仅仅因为我们不知道哪些特定的元素会失效,就声称明显薄弱的系统是“强大的”。

回到顶部

安全的构建块

要建立强大的安全系统,我们需要可靠的构件。密码算法可以说是当今最重要的构建模块。设计良好的算法可以提供对抗某些攻击的非凡力量。例如,20世纪70年代以来的Diffie-Hellman、RSA和triple DESknown,如果使用足够大的密钥,它们今天仍然可以提供实际的安全性。


为了建立强大的安全系统,我们需要更好的积木。


通过消除对通信通道的依赖,协议可以极大地简化安全性,但在实践中,它们已被证明是欺骗性的棘手。1996年,我为Netscape共同编写了SSL v3.0协议,它成为TLS标准的基础。尽管经过近20年的广泛分析,研究人员发现了与SSL/TLS相关的新问题和死角案例,甚至是相对较近的时间。尽管如此,我相信我们已经达到了拥有可靠的加密协议的地步。尽管在量子计算或其他攻击方面的突破是可能的,但我对TLS标准的当前版本(当选择保守的密钥大小和配置时)将在几十年内抵抗密码分析持谨慎乐观的态度。

不幸的是,我的乐观并没有扩展到实际的实现。大多数运行SSL/TLS的计算设备都充满漏洞,允许对手绕过加密技术进行终端运行。例如,设备驱动程序中的错误指针或CPU内存管理单元中的错误可以破坏设备上所有软件的安全性。为了取得进展,我们需要另一个构建块:用于安全计算的简单、高保证的硬件。

回到顶部

硬件安全计算

考虑在保护私钥的同时对消息进行数字签名的问题。由于依赖复杂且不可靠的组件,包括硬件、操作系统等,在典型的PC或智能手机上实现的软件不可能获得有意义的安全保证。或者,如果计算移动到独立的硬件上,私钥的安全性只依赖于一个相对简单的硬件块的逻辑(参见图1).安全关键逻辑的数量减少了许多数量级,将无法解决的安全问题变成了合理的有界问题。

在20世纪90年代,我开始研究安全硬件,认为像加密和数字签名这样简单的数学操作很容易安全。我遇到的问题比我想象的要有趣得多,也没有那么直观。

我注意到,在设备加密操作的计时测量中,数据相关的相关性很小。密码算法极其脆弱;通过分析二进制输入和输出消息很难破坏它们,但是如果攻击者获得任何其他信息就会失败。时间的变化违反了算法的安全模型,在实践中允许我分解RSA密钥并破坏其他算法。b

我从弗莱电子公司买了最便宜的模拟示波器,并在做密码操作的芯片的地面输入端放置了一个电阻。该范围显示了功耗随设备处理器接收的分支模式的变化而变化。我可以很容易地识别出这些分支的条件——密钥的比特。升级到数字存储示波器使更先进的分析方法成为可能。与我的同事Joshua Jaffe和Benjamin Jun一起,我开发了统计技术(差分功率分析,或DPA),通过利用噪声功耗或射频测量中的微小相关性来解决密钥问题。c

支线渠道并不是唯一的问题。例如,扫描链和其他测试模式可能被攻击者滥用。研究人员和付费电视盗版者各自发现,小故障和其他计算错误可能对安全造成毁灭性影响。d

幸运的是,这些问题已经找到了切实有效的解决方案并得到了实施。例如,每年用DPA对抗技术生产的芯片有近100亿个。尽管有可能会发现意想不到的新类型的攻击,但根据我们所知,一个设计良好的芯片可以强大地对抗非侵入性攻击。处理侵入性攻击的策略也有了很大的改进,尽管通过模糊性仍然通常假定一定程度的安全性。

回到顶部

向遗留体系结构添加安全计算

今天的计算架构太根深蒂固而不能放弃,但又太复杂而不能安全。然而,在可以隔离关键操作的地方添加额外的硬件是可行的。在实践中,在成本、编程模型、特性和安全保证级别方面,为此付出的实际努力差异很大。

早期的尝试使用独立的安全芯片,如移动设备中的SIM卡、个人电脑中的tpm和付费电视系统中的条件接入卡。这些仅限于单一用途的应用,可以承担通常为一美元或更多的成本。安全芯片的电气接口也存在安全风险,例如允许付费电视盗版者窃取视频解密密钥再分发。


更好的硬件基础可以开启一个对科技行业的未来至关重要的新进化过程。


另一种策略是在现有设计中添加安全模式。因为现有的处理器和其他逻辑是重用的,这些方法几乎不增加模具区域。不幸的是,由于共享逻辑和分离机制中的错误,这种重用带来了重大的安全风险。英特尔软件保护扩展(SGX)e留下几乎所有的(非常复杂f)的处理器,甚至似乎没有减轻侧通道或故障攻击。可信执行环境(TEE)通常使用ARM的TrustZone CPU模式试图隔离一个独立的“可信”操作系统,但安全依赖关系包括CPU、芯片的测试/调试模式、内存子系统/RAM、TEE操作系统和其他高权限软件。

我发现最引人注目的方法是将安全块集成到大型多功能芯片上。这些核心可以创建一个不信任RAM、遗留处理器、操作系统或其他逻辑的芯片内部安全边界。除了提供比单独芯片更好的安全集成外,模上核的成本降低了12个数量级。片上安全硬件的例子包括苹果的Secure Enclave、AMD的安全处理器和Rambus的CryptoManager核心。根据应用程序的不同,安全核心可以卸载特定的功能,如身份验证,也可以被编程。随着时间的推移,这些安全域可以改进和发展,以承担越来越多的安全敏感操作。

回到顶部

人类理解的极限

安全构建块必须足够简单,以便人们理解其预期的安全属性。通常情况下,致力于数据安全的团队会大大高估可以安全实现的内容。在设计SSL v3.0时,我设定了一个要求,即技术熟练的人可以在一天内阅读和理解该协议。尽管如此,我和许多审稿人还是忽略了一些重要但微妙的设计问题,其中一些直到多年后才被发现。

漏洞风险随着系统中元素之间潜在交互的数量而增加。如果相互作用不受限制,则风险按元素数量的平方(参见图2).

尽管安全硬件块可能看起来很简单,但验证它们仍然具有挑战性。形式化方法、安全性证明和静态分析工具可以通过增强我们的大脑在一定程度上提供帮助。然而,这些方法与现实世界的混乱之间还是有差距的。因此,这些方法需要与谨慎的努力相结合,以控制复杂性。例如,将一个系统从8个元素扩展到11个元素大约会使潜在交互的数量翻倍。一个能够消除50%缺陷的工具将是非凡的,然而这种复杂性的适度增加可能耗尽它的好处。然而,这些方法可以帮助我们扩展我们的能力,当我们努力创造新的积木。

回到顶部

安全和技术产业的未来

对现有产品进行功能增强的好处正在递减。首先实现最重要的功能。字处理器中双倍的代码行并不会使程序的用处增加一倍。有两个cpu的智能手机只比有一个cpu的手机好一点。

从安全的角度来看,额外的特性可能会产生比复杂性增加更快的风险图3).因此,技术行业面临着一条令人不安的曲线:随着复杂性的增加,新增功能带来的好处被削弱,最终被风险压倒。当更先进的产品变得不那么有价值时,创新就会停滞。

许多应用程序已经接近或已经超过了价值开始下降的点,而没有新的安全性方法。目前使用传统硬件和操作系统构建“物联网”或“智慧城市”的努力将产生充满隐藏漏洞的互联系统。应对这些弱点的成本,以及无论如何都会发生的严重失败,很容易超过好处。

安全计算构建块不会消除复杂性和风险之间的联系,但可以从根本上改变风险计算。关键功能可以彼此独立伸缩,也可以独立伸缩到系统的其他部分。每个与安全相关的用例面临的总体复杂性要小得多,并且可以在值/复杂性曲线上分别进行优化。

尽管摩尔定律正在放缓,晶体管的成本将继续下降。如果用于安全的硬件预算保持不变,那么可以添加到每个芯片上的安全块的数量将呈指数增长。这些块可以针对不同的用例进行定制。它们还可以通过冗余来组织,以避免像银桥那样的单点故障。

更好的硬件基础可以开启一个对科技行业的未来至关重要的新进化过程。由于无约束的互联性,今天无法解决的问题可以被孤立。随着时间的推移,安全域可以改进和发展,满足越来越多的安全敏感需求。最终,安全性的主张甚至可能建立在对人类能够成功实现的东西的现实理解的基础上。

回到顶部

作者

保罗Kocherpaul@paulkocher.com)是加利福尼亚州森尼维尔市Rambus公司密码学研究部的总裁兼首席科学家。

回到顶部

脚注

一个。“银桥的倒塌:国家统计局确定原因”,2009年;https://1.usa.gov/21cRgUV

b. P. Kocher,“对Diffie-Hellman、RSA、DSS和其他系统实现的定时攻击”,1996;https://bit.ly/25S86vt

c. P. Kocher, J. Jaffe, B. Jun,“差分功率分析”,1999;https://bit.ly/1XLZhSZ

d. d. Boneh, R. DeMillo和R. Lipton,“关于检查密码协议故障的重要性”,1997;https://stanford.io/1PPPFnj

e. M.胡克斯特拉,“傻瓜英特尔SGX”,2013;https://intel.ly/1eQpY4P

f. J. Rutkowska,“Intel x86被认为是有害的”,2015;https://bit.ly/1ObbBaA

回到顶部

数据

F1图1。一个简单的固定功能安全计算块。

F2图2。漏洞风险随着系统要素之间潜在交互的数量而增加。

F3图3。复杂性的增加增加了风险。

回到顶部


版权归作者所有。

数字图书馆是由计算机协会出版的。版权所有©2016 ACM, Inc.


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map