安全研究与未来

  • 布鲁斯·施奈188滚球网站尔
  • 博士。多博期刊
  • 2000年12月

安全威胁将继续逼近

很长一段时间,密码学是寻找问题的解决方案。除了军队和一些偏执的人,没什么问题。然后互联网出现了,随着互联网的出现,电子商务公司内部网和外部网,IP语音B2B,诸如此类。突然间大家都在谈论密码术。突然间大家都在谈论计算机安全。有更多的公司和产品,还有更多的研究。还有更多的兴趣。

但同时,安全状况正在恶化。在操作系统中发现了更多的漏洞,不仅仅是微软的,但每个人都比以前任何时候都好。有更多的病毒(或蠕虫)被释放,他们造成了更多的伤害。还有更糟糕的拒绝服务工具,以及更有效的根套件。有必要做什么研究来扭转这种趋势?我们怎样才能保证安全?

安全产品与安全研究

与几乎所有其他设计标准不同,安全性与功能无关。如果你在编码文字处理器,你想测试打印功能,你可以挂上一台打印机看它是否打印。如果你聪明,您可以连接多种打印机并打印不同类型的文档。这很容易;如果软件按规定运行,那你就知道它起作用了。

安全性是不同的。假设您正在同一个字处理器中构建一个加密函数。测试方法相同:加密一系列文档,然后你再解密它们。解密恢复明文;密文看起来像胡言乱语。一切都很好。不幸的是,测试没有显示加密的安全性。产品对于他们的工作是有用的;安全产品之所以有用,是因为它们阻止了什么。

其结果是大多数安全产品都不是很好。使用正确的技术是不够的;你必须正确使用它。你必须确保系统的每个方面设计,算法,协议,实施,安装,等等-很强大。安全性的失败往往不是因为产品背后的科学中的一些基本问题,但因为一些愚蠢的错误。或者,更有可能,几十个愚蠢的错误。

安全研究的数量,以及安全会议的数量,在过去的十年里爆炸了。文件流似乎没有尽头,论文,专著,研究计算机和网络安全。大部分工作都很平庸,但其中有些很好。我担心的是这一切都不重要,因为真正的问题比安全研究要大得多。

我不会花太多时间去担心100位或120位是否足够强大,这类签名方案是否优于其他类型的签名方案,或者这种防火墙是否比其他类型的防火墙工作得更好。这与技术无关,与实现有关。它是关于使用的。这是关于用户如何理解他们所做的。

要监视的技术

有人这么说,目前有一些技术会对安全产品产生影响,一些好的和一些坏的。很值得注意。

  • 密码突破。几乎没有密码术是基于数学证明的;我们能说的最好的是我们不能打破它,所有其他聪明人也不能打破它。总有一天,我们可能会学到新的技术,让我们打破今天无法打破的东西。(国家安全局内部有一句话:“袭击总是会好转的;他们从来没有变得更糟。”)我们过去见过这种情况,一旦安全算法落入新技术,我们很可能在未来看到它。有些人甚至认为国家安全局已经了解了许多新的数学知识,它正在悄悄地、有利可图地破坏我们最强大的加密算法。我只是不这么认为;他们可能有一些秘密技术,但也不多。
  • 因子分解突破。一个令人担忧的问题是,所有不同的公钥算法都从根本上基于相同的数学问题:分解大数的问题或离散对数问题。因子分解越来越容易,比任何人想象的都要快。这些问题在数学上并不难证明,在我们的有生之年有人会想出有效解决这些问题的方法。如果发生这种情况,我们可能处在一个公开密钥加密不起作用的世界,这将是一个古怪的历史怪事。这并不可怕;基于对称加密的身份验证基础设施方案可以完成许多相同的工作。即便如此,我认为不太可能。
  • 量子计算机。总有一天,量子力学可能从根本上改变计算机的工作方式。现在人们几乎不知道如何让量子计算机加上两个1位数字,但谁知道会发生什么。量子计算机将使大多数公钥算法过时(见前一项)。但只会迫使我们把对称密码的密钥长度加倍,哈希函数,和MACS。
  • 防篡改硬件。如果您假设使用防篡改硬件并将其放入其中,那么许多安全问题就会神奇地变得容易得多。抗篡改技术的突破,尤其是在不同抗篡改措施的成本方面取得突破,可以使许多安全问题变得更容易。
  • 人工智能。许多计算机——安全系数——可以将问题简化为一个简单的问题:让好东西进来,同时把坏东西放在外面。这就是防病毒软件,防火墙入侵检测系统,虚拟专用网信用卡减摩系统,数字手机认证,还有很多其他的事情都起作用。有两种方法可以做到这一点。你可能对此很傻-如果你在文件中看到这些10000位模式中的任何一个,这意味着文件中有病毒或者很聪明:如果程序开始对计算机做可疑的事情,这可能是一种病毒,应该进一步研究。后者听起来很像艾尔。不幸的是,在防病毒软件中尝试过这种方法,结果却不如愚蠢的模式检查程序有效。入侵检测系统也在使用同样的东西,目前还不清楚它们是否比那些只寻找表明攻击的位模式的哑入侵检测产品做得更好。仍然,总有一天这会是一件大事;如果铝领域出现了根本性进展,它有可能彻底改变计算机安全。
  • 自动程序检查程序。很多安全漏洞,例如缓冲区溢出,是草率编程的结果。好的自动工具,可以扫描计算机代码潜在的安全相关的错误将有很长的路要使软件更安全。优秀的语言编译器,良好的语言语法,一开始就可以防止程序员犯与安全相关的错误。我们必须说服程序员使用它们,这可能完全是另一回事。(外面有一堆好工具,而且似乎还没有人使用它们。)而且它们永远不会抓住所有的问题。
  • 安全的网络基础设施。互联网不安全,因为系统从未设计过安全性。在InternetII上工作的人(以及接下来的任何人)应该从一开始就考虑安全问题。这些新网络应该假设人们会窃听通信,他们将试图劫持连接,而且包头可以被伪造。他们应该假设,相互不信任的一方会将它们用于各种业务和个人应用程序。有很多问题不能用更好的网络协议来解决,但很多都可以。
  • 交通分析。交通分析是对通信模式的研究。有时谁在和谁交流,频率如何,和他们说的一样重要。互联网使得一些形式的流量分析变得容易,关于防御的研究也很少。在某些方面,交通分析的研究与20世纪80年代初的密码学研究处于相同的状态。预计在未来十年内研究会爆炸式增长。
  • 保证。保证意味着一个系统做它应该做的,什么都不做。安全保证与安全保证非常相似:安全系统是一个执行它应该做的事情的系统,即使存在随机故障。安全更加困难;它必须提供保证,即使在一个聪明和恶意的对手面前。一种能够在软件中提供强有力保证的技术,将为计算机安全做令人惊奇的事情。

这些技术中的大部分都在今天进行研究。其中一些方面的实际进展还很遥远,他们中的一些人处于精神错乱的地平线上。我不会放弃这些技术,不过。如果二十世纪有什么教训的话,用“不可能”这个词是节俭的。

我们会学习吗?

考虑缓冲区溢出攻击。早在20世纪60年代,分时系统就受到了这一问题的困扰,安全学者们可能早就知道了这一点。20世纪70年代早期的网络计算机出现了问题,它经常被用作对系统的攻击点。莫里斯蠕虫,1988,利用了unix finger命令中的缓冲区溢出-这是此类攻击的公共用途。现在,莫里斯之后的十多年和他们被首次发现后的35年,您可能认为安全社区已经解决了基于缓冲区溢出的安全漏洞问题。再想一想。1998,超过三分之二的CERT通知是针对缓冲区溢出导致的漏洞。在1999年特别糟糕的两周里,18个单独的安全缺陷,全部由缓冲区溢出引起,在基于Windows NT的应用程序中报告。在三月的第一周,在其中我写了这篇文章的一部分,报告了三个缓冲区溢出。缓冲区溢出只是低垂的果实。如果我们能设法根除这个问题,其他同样糟糕的人会取代他们。

考虑加密算法。专有的秘密算法经常暴露出来,然后被破坏。一次又一次,市场知道专有的秘密算法是个坏主意。但公司和行业继续选择专有算法而非公开算法,免费的替代品。

或者看看可解决的问题。2000年初,黑客利用微软互联网信息服务器上的一个特殊安全漏洞,从各种电子商务网站上窃取了数千个信用卡号码。微软于1998年7月发布了修复漏洞的补丁,并在1999年7月重新发布了一个警告,很明显许多用户从未安装过补丁。

没人注意吗?

不是真的。或者,至少,关注的人远远少于应该关注的人。对数字安全产品的巨大需求需要专家进行设计,发展,并实施它们。因此,专家的缺乏意味着人们关注的比例将变得更小。

我经常对破坏安全产品的东西感到惊讶。我看到过一个带有用户界面的文件加密产品,它意外地将密钥保存在“清除”中。我看到过vpn,在这里,电话配置文件意外地允许受委托的人向服务器进行身份验证,或者一个VPN客户端可以看到所有其他VPN客户端的文件。有无数种方法使产品不安全,制造商们一次又一次地发现了很多这样的方法。

他们不必学习,因为他们不必学习。安全研究并不能使它成为产品,即使是这样,它不能安全地制成产品。

计算机安全产品,就像一般的软件一样,有一个奇怪的产品质量模型。它不像汽车,摩天大楼,或者一盒炸鸡。如果你买了产品,因为制造商的缺陷而受到伤害,你可以起诉……你会赢的。汽车制造商无法摆脱制造在撞击中爆炸的汽车;午餐柜台卖的草莓馅饼里掺了一只奇怪的老鼠,实在是受不了。建筑承包商说“哇哦”这样的话是行不通的。还有一个。但等着摩天大楼1.1;这将是百分之百的崩溃——免费的。”这些公司对他们的行为负责。

软件是不同的。出售时不承担任何责任。例如,Windows 98许可协议中的语言如下:“在任何情况下,制造商或其供应商都不对因使用或无法使用本产品而造成的任何损害负责,即使制造商已被告知此类损坏的可能性。”

你的应收账款数据库可能崩溃,让你的公司破产,你对软件公司没有任何索赔。你的文字处理器可能会损坏你的整个书稿(我在写作时花了太多时间担心的东西)。浪费多年的工作,你没有追索权。你的防火墙可能会完全失效——几乎比什么都没有要好——这是你的错。微软可以通过一个bug来填充hotmail,这个bug允许任何人读取大约4000万用户的帐户,密码或没有密码,甚至连道歉都不费吹灰之力。

软件制造商不必生产高质量的产品,因为如果他们不生产,他们就不会面临任何后果。(实际上,存在产品责任,但仅限于更换有物理缺陷的磁盘或CD-ROM),这对安全产品的影响是制造商不必生产实际安全的产品,因为没有人可以起诉他们,如果他们做了一堆虚假的安全声明。

其结果是,市场并不奖励真正的安全。真正的安全更难,更慢的,而且设计和实现成本更高。买房的公众没有办法区分真正的安全和糟糕的安全。在这个市场上取胜的方法是设计出一种不安全的软件,尽可能让你摆脱它。

智能软件公司知道可靠的软件是不划算的。根据研究,90%到95%的细菌是无害的;用户从未发现它们,它们不会影响性能。对于一家公司来说,在人们抱怨之后发布bug软件并修复5%到10%的bug要便宜得多。

他们还知道,真正的安全是不划算的。他们每周都会遭受几次新的安全漏洞的打击。他们能修好的,写一些不可能的虚假新闻稿;然后他们等待媒体的热情消退(这总是如此)。然后,他们发布了一个新版本的软件,其新功能增加了各种新的安全问题,因为用户更喜欢酷的功能而不是安全性。用户总是会这样。在公司获得生产安全产品的法律激励之前,他们不会麻烦的。任何研究都不会改变这一点。

结论

如果这篇文章有什么值得总结的地方,今天的基本安全问题不在于技术,他们是在使用技术。安全研究还在继续,而且永远都是重要的。但更重要的是说服供应商和用户正确考虑安全问题,为了正确实施安全措施,以及正确使用安全性。安全不是产品。没有技术,现在或地平线上的任何地方,你可以撒在你的网络上,神奇地使它安全。安全是一个过程。正是安全过程带来了安全。

类别:计算机和信息安全

布鲁斯·施耐尔的照片。188滚球网站

188滚球网站施耐尔的安全是一个个人网站。表达的意见不一定是IBM弹性.