第六部分:杂项问题
适当构造的、并具有足够长度、严格保护的强密钥的密码,目前来说实际上是不可攻破的。然而,弱点依然存在,并且在非对称密码术的情况下,知道公钥的真实性十分重要。数字证书可以确认这一点,虽然这不是绝对的,而是依赖于某种级别的信任。此外,有些情况下需要特殊形式的签名,可能允许不查看内容而进行签名;或者某人需要不暴露内容而向另外一个人确认:他知道某些秘密的事情。可能需要验证数字签名的确切时间,这可以通过时间戳记进行处理。
简介
密码术的数学基础和用来构建有用系统的技术本身非常有趣。但是,密码系统通常是作为整个安全性策略的一部分,如同 Counterpane Security 的 Bruce Schneier 所评论的:“安全性是一个过程而不是一个产品”。而且,安全性是管理风险而不是消除风险,而且总是需要平衡成本与效益。可能从经济上考虑花上 10,000 美元来保护价值 1,000 美元的东西没有多大意义,然而也有许多不那么切实考虑成本与效益的情况。考虑人们实际如何使用系统是必需的;从技术的观点看好象合适的解决方案实际上可能是有缺陷的,因为人们可能会找到方法绕过其不方便的元素。而且,可能还会有法律责任,例如需要确保有关个人的数据严格禁止未经授权的第三方访问,加密可以方便地实现这一需求。
虽然其中的许多问题超出了本系列文章的范围,但是本系列最后的这篇文章会涉及其中的某些问题。特别地,本文将考虑通过密码分析学或其它方法,使系统可能会受到攻击的某些领域,还将讨论有关密钥管理、数字证书及数字时间戳记的问题。
攻击与弱点
密码分析
密码通常基于按现在的知识很难解决的数学问题。这一告诫十分重要。例如,分解大质数极其困难,这一困难的实际结果是:即便使用数量巨大的计算能力,平均也要花费成百或上千年来确定公钥中相关的质数从而计算相应的私钥。因此,目前可以认为,比如说,使用具有足够长度密钥的 RSA 进行加密的明文对于所有实用目的而言是绝对安全的。虽然绝对安全是不可能的,但这可能已经足够发生了,因此继续使用经过良好评估、良好测试并被认为是安全的密码是有意义的。
一个更重要的问题是:某个特定的算法是否有缺陷;是否存在某种形式的密钥组,相对容易破解,或者什么时候用于特定的环境;又或者有时,如前所示一些辅助性方法(如伪随机数发生器(PRNG))具有引入弱点的缺陷。这就是为什么同级评审是必需的,以及为什么应该采用各种密码分析以试图破解加密的原因。那些长期以来经受了极其详细的检验,并且在范围很广的环境中保持安全的算法和实现,越来越可能成为可靠的算法和实现。
BugTraq 报告的一个近期事件给出了可能发生的事情的一个示例,它涉及以前由 Mattel 拥有现在属于 SurfControl 的审查程序 CyberPatrol。为什么无论谁都曾经想注册该程序,真是生活中的一个难解的谜,但任何寻求这么做的人都不安地了解到:如同 BugTraq 所指出的,CyberPatrol 的站点并不使用 SSL,而是以明文发送除信用卡号码之外的所有详细信息 ― 包括失效日期。该站点确实对信用卡号码进行了加密,虽然站点使用的是一种替代密码,这种密码如同警告所评论的那样是“等同于那种 ... 可以在报纸的游戏版面上找到的密码”,任何使用便笺簿和铅笔的人几乎肯定能破解。这不是一件孤立的事情。遗憾的是,许多软件供应商如此缺乏能力,如此专注于短期财政收益,如此轻视其客户,如此痴迷于不需努力就能发大财的美事,以致于他们开发的以次充好的产品对私有数据的保护简直令人发笑,并且对那些揭露他们疏忽的人以提起诉讼来威胁。
穷举搜索是一种尝试所有可能的密钥组合直到找到一个合适的组合的技术,它在许多情形下,尤其是如果搜索的可能性的范围可以被缩小,不失为一种切实可行的解决方案。SIM 卡和 PDA,如各种 Pocket PC 或 Palm 设备,通常可以通过使用一种要求恰好输入四位数字的四位通行码来保证安全。虽然这好象等同于一个提供 232(4,294,967,296)种可能性的 32 位密钥,因此好象相当安全,但实际上,所提供的可能性数目只和四个 0-9 数字轮组合锁提供的 10,000 种可能性相同,或者只比 213 多一点。虽然就 PDA 或电话本身来说,这并不十分要紧,但当 PDA 用于连接到其它安全网络时,真正的问题就出现了;对 10,000 种可能的密钥进行蛮力攻击,平均需要尝试其中一半的可能,会在极短的几秒钟内获得成功。
对于对称块密码,可能的攻击机制包括微分与线性的密码分析、代数攻击以及利用弱密钥。后两种机制依赖于识别特殊的对称性。DES 有四个弱密钥,当使用这样一种密钥加密的明文在再次加密时,原始的明文就暴露了。就象以前提过的,IDEA 有更加多的弱密钥,在每种情况下,都要确保排除这些已知的密钥,这是很重要的。攻击散列函数的主要形式是以前所描述的生日攻击 ― 一种特殊的蛮力攻击。注:正如所讲过的那样,对散列函数成功的生日攻击并没有泄露密钥。
更一般地,如果可以分析密文以显示其规律性,或者如果能将明文样本与由其派生的密文进行比较 ― 并且,尤其是在流密码的情形下,如果可以进行动态分析以比较通过微分加密密钥流的小部分所获得的结果,并将其与使用密码获得的实际结果进行比较 ― 那么找到密钥的可能性会大大提高。
窃听与其它攻击
攻破具有良好密钥的标准密码通常极其困难。因此,一条更富有成效的攻击路线是用某种方式查看明文或者绕过密码的安全性。前面,我曾提到过在许多电子邮件是完全公开的地方,任何人利用适当的工具就可阅读。特洛伊木马程序以及诸如 Back Orifice 的程序允许远程用户轻易地从特殊的系统获取信息。系统中存在错误并且可以加以利用。Ralph Senderek 最近的文章声称:添加到 PGP 更新版本中的附加解密密钥(Additional Decryption Key,ADK)在其实现中含有缺陷,这使得在某些情况下获取明文十分容易。
就象传真以明文的形式出现一样,电子邮件和其它文档也需要明文形式以便在监视器上阅读。监视器发射电磁辐射,据称在有些情况下,可以截获该辐射并将其复制到另一个显示器上。美国政府已经开发了某些用代码 TEMPEST(但现在称为 EMSEC ― 发射安全性 (Emission Security))标识的屏蔽标准,据称可以提供保护。剑桥大学的 Ross Anderson 最近宣布了一个防止截获此类辐射的软件。
可以将嗅探器(sniffer)应用于局域网或广域网上,并且通常任何可以实际访问网络的人都可以调察另一个系统或者截获正在传送的数据。被删除的文件通常在一段时间内并不被覆盖,“删除”只是通过在目录表中适当地标记相关项来释放磁盘块。Windows 使用虚拟内存,意味着 RAM 中的瞬态数据,包括供阅读的明文,将被定期复制到磁盘上的交换文件并且可以被任何有权访问该驱动器的人查看。使用 Word、Lotus Notes、Excel 及类似软件创建的文件可能受内置的密码系统保护,但这些密码系统是如此脆弱,以致于通常可以使用廉价并可广泛获得的程序在几秒钟之内攻破其保护。
密钥管理及相关问题
秘密共享
本地共享密钥有时非常有用。密钥可能非常有价值,因为如果丢失了它,大量的文件就不能使用。当然可以通过存储密钥的多个备份副本来解决这一问题,但考虑到这会增加非法使用的风险,因此最好使这些备份的数量减到最小。在其它情况下,如对于传统的银行保险库情形,在安排一些事情时要很小心谨慎,以便于在钥匙生效之前,只有最少数目的授权用户需要同意使用钥匙。
注:秘密共享机制涉及的不仅仅是将给定的密钥划分成几部分并简单分发给不同的持有者。在这种情况下,缺一个人就意味着不能使用密钥。相反,当维护安全性时,秘密共享方案设计成允许选定数目的共享份额以及选定数目的必需用户。例如,密钥可能分给五个持有人,以便任意三个人在一起就能破解密码。两个广泛使用的方案是 Shamir 方案和 Blakley 方案,前者基于多项式内插法,后者本质上是几何学。也有可视的形式,由 Naor 和 Shamir 开发,其中单个元素呈现为幻灯片形式并可在持有者间适当共享。这些幻灯片可以采取看上去完全是很平常的图片的形式。
零知识证明与特殊签名方案
当某人见证签名时,通常很容易隐藏文档内容。类似地,对于电子文档,有时可能需要让某人签名而不让其了解内容。有时候,让某人证明他知道某事而不泄露任何信息也是必需的。
第二个方面(让某人知道某事而不泄露信息)通常可以通过某种形式的提问-应答活动来处理。一人被要求做某件事件 ― 只有知道可以被验证的相关秘密的人才能完成这件事情。经常举的一个小例子是阿里巴巴的山洞。它呈矩形,三面环绕走廊,第四面是一块公共的空地,挑战者可以站在那儿。正对着这个地方的矩形边上有一道只有念魔咒才能打开的门,它在那里封闭了走廊。验证者检查门确实存在并且很安全,然后他要求另外一个人按照他希望的次数出现在他指定的一个走廊出口,直到他确信那人确实知道魔咒。注:验证者收到了确认另一个人知道魔咒的证明,但验证者却不能向任何其他人证明这一点。
标准数字签名有这样的特性:任何拥有相关公钥的人都可以验证用来签署文档的相应的私钥,而无需签名者在场。这种签名方案称为自认证(self-authenticating)。然而,通常所说的不可抵赖的签名方案的签名方案要求签名者证明签名的有效性。为了避免签名者谎称未进行过签名,不可抵赖签名方案涉及添加通常所说的抵赖组件。然后可以使用提问-应答机制进行验证。如果使用了合理长度的密钥,比如 768 位,那么签名者否认文档的可能性微乎其微。
盲签名方案(blind signature scheme)是一种允许一个人让另一个人签署文档,而第一个人不向签名者泄露任何关于文档内容的方案。这一点通过引入隐藏所交换信息的随机值来完成。盲签名方案与许多领域都有关联,包括时间戳记方面及匿名相关时的情形,例如关系到数字现金时。当前它是一个广泛研究的