4.14 密钥托管

    下面这段话摘自Silvio Micali的专题介绍[1084]:

    当前,法院授权许可的搭线窃听是防止犯罪并将罪犯绳之以法的有效方法。更重要的是,照我们的观点,通过阻止对正常网络通信的非法使用也防止了犯罪的进一步扩散。因此,法律上比较关心的是,公开密码学的广泛应用可能对犯罪和恐怖组织有很大帮助。实际上,很多议案提议:一个适当的政府机关,在法律允许的情况下,应当可以获得任何通过公共网络进行通讯的明文。目前,这个要求可能意味着强迫市民(1)要么使用弱的密码系统,即有关当局(当然也可以是任何其他的人)经过一定的努力可以破开的密码体制;或(2)要么事先把他们的秘密密钥交给当局。如果这种替代方法会从法律上提醒许多有关的市民,让他们觉得国家安全和法律强制应在隐私之上的话,这并不令人惊奇。

    密钥托管是美国政府的Clipper计划和它的托管加密标准的核心。这里面临的挑战是开发一个密码系统,要保护个人隐私但同时又要允许法院授权的搭线窃听。

    托管加密标准通过防窜改的硬件来实现安全性。每个加密芯片有一个唯一的ID号和秘密密钥,密钥被分为两部分,并与ID号一起由两个不同的托管机构存储。芯片每次加密数据文件,它首先用唯一的秘密密钥加密会话密钥,然后通过通信通道发送加密的会话密钥和它的ID号。当一些法律执行机构想用这些芯片中的一个解密加密的信息流时,它监听ID号,从托管机关收集适当的密钥,把它们异或起来,解密会话密钥,然后使用会话密钥解密信息流。面对欺诈者,为了使这个方案可行,它可能更复杂;细节见24.16节。同样的事情能够用软件实现,也可用公开密钥密码实现[77,1579,1580,1581]。

    Micali称他的思想为公平密码系统[1084,1085]。(据传美国政府在它们的托管加密标准中为了使用他的专利花了1百万美元[1086,1087];然后,Banker’s Trust购买了Micali的专利。)在这些密码系统中,私钥被分成许多部分,发给不同的机构。类似秘密共享方案,这些机构可集中到一起并重新构造私钥。但是,这些密钥碎片具有一种附加的性质:无需重新构造私钥,便能分别验证这些密钥碎片是否正确。

    Alice可以产生她自己的私钥并给几个托管人每人一部分密钥。这些托管人中没有人能恢复出Alice的私钥。然而,所有这些托管人都能验证他们的那一部分是私钥的有效部分,Alice不可能送给一个托管人随机比特串,并希望他带着逃跑了。如果法院授权搭线窃听,有关法律执行机构可以遵照法庭的命令让n个托管人交出他们的那一部分密钥。用所有这n部分,执行机构重新构造出私钥,并能够对Alice的通讯线路进行搭线窃听。另一方面,Mallory为了能重新构造出Alice的密钥并侵犯她的隐私,将不得不破坏所有n个托管人。

    协议执行的情况如下:

        (1)Alice产生出她的私钥/公钥密钥对,她把私钥分成几个公开和秘密部分。

        (2)Alice送给每个托管人一个公开的部分及对应的秘密部分。这些消息必须加密。她也把公开密钥送给KDC(密钥分配中心)。

        (3)每个托管人独立地完成计算以确认所得到的公开部分和秘密部分都是正确的。每个托管人将秘密部分存放在安全的地方并把公开部分发送给KDC。

        (4)KDC对公开部分和公开密钥执行另一种计算。假设每一件事都是正确的,KDC在公开密钥上签名,然后把它送回给Alice或把它邮寄给某处的数据库。

    如果法庭要求进行搭线窃听,那么每个托管人就把他或她的那部分交给KDC,KDC能重新构造出私钥。在交出密钥前,无论是KDC还是任何一个托管人都不能重新构造出私钥,所有托管人一起才能重新构造出这个密钥。

    用这种方式能把任何公开密钥密码算法都做成是公正的。在23.10节中讨论了一些特殊算法。Micali的文章[1084,1085]讨论了把门限方案与这个协议结合起来的办法,使得只需要托管人的一个子集(例如,五个中的三个)便能重新构造出私钥。他又讲述了怎样将不在意传输(见5.5节)与这个协议结合起来,使得托管人不知道是谁的私钥正在被重新构造。

    公平密码系统不是完美的,罪犯能够利用这个系统,他能够使用阈下信道(见4.2节)把另一个秘密密钥嵌入到他的那部分中。采用这种方法,使用阈下密钥,不用担心法院授权的搭线窃听,他就能够安全地与其他人通信。另一个叫做防故障密钥托管解决了这个问题[946,833]。23.10节描述了算法和协议。

    密钥托管的政治

    除了政府的密钥托管计划外,几个商业密钥托管正在付诸实施。这导致了明显的问题:对用户来说,密钥托管的好处是什么?

    实际上没有任何好处,用户不能从密钥托管得到任何东西。如果他愿意,他可以备份他的密钥(见8.8节)。密钥托管保证:即使使用了加密,警察也能够窃听他的谈话或阅读他的数据文件。它保证:即使使用加密,NSA不经批准也能够窃听他的国际电话。也许,他将被允许在现在反对密钥托管的国家使用密码,这似乎好象是唯一的好处。

    密钥托管有相当大的缺陷。用户不得不相信托管机构的安全性程序,以及参与人的诚实。他不得不相信托管机构没有改变他们的策略,政府没有改变他的法律,那些得到密钥的执法机构和托管机构会合法地和负责地做事。设想一个大恐怖分子袭击纽约时,对警察来说,还有什么样的限制不能抛到一边呢?

    难于想象托管加密方案工作会象他们的发起人设想的那样没有一些法律的压力。很明显的下一步是禁止使用非托管加密,这可能是使商业系统付费的唯一办法,并且它肯定是使技术上富有经验的罪犯和恐怖分子使用它的唯一方法。不清楚要使非托管密码成为非法将会遇到什么阻力,或它怎么影响作为研究学科的密码学。就我而言,没有软件非托管加密设备,我能研究面向软件的加密算法吗?我还需要特别的许可吗?

    还有法律上的问题,如果有加密数据被破开,托管密钥怎么影响用户的责任?如果美国政府试图保护托管结构,是不是有隐含的假设,在用户或托管机构都会危及到秘密的安全时,泄密的一定是用户?

    对于政府或商业性的密钥托管服务而言,它的整个托管密钥数据库被偷盗了会怎么样?如果美国政府试图对它保持一段时间的沉默又会怎么样呢?很清楚,这会对使用密钥托管的用户愿望产生影响,如果不是自愿的,这样的一些丑闻又将增加政治压力,迫使政府要么让其成为自愿,要么对该产生增加复杂的新规定。

    更为危险的是现政府的政治对手、对某些情报或警察机构坦率直言的批评家已经被监视多年的丑闻会公诸于世。这可能引起公众强烈地反对托管加密的情绪。

    如果签名密钥和加密密钥一样被托管,存在更多的问题。当局使用签名密钥执行操作反对可疑罪犯能否被接受?基于托管密钥签名的真实性在法庭上会被接受吗?如果当局签一些不宜的合同,以帮助国家扶持的工业,或只是为了偷窃金钱,而使用他们的签名密钥,用户会有什么样的追索权呢?

    密码的全球化导致了另外一些问题,密钥托管的政策在其它国家将会一致吗?跨国公司为了保持与各种地方法律一致,他们必须在每个国家保持单独的托管密钥吗?如果没有某种一致性,密钥托管方案的好处之一(强加密的国际化使用)必将崩溃。

    如果有些国家根本不接受托管机构的安全性会怎么样呢?用户在那里怎么做生意呢?他们的数字化合同能得到当地法院的支持吗?或者他们的签名密钥托管在美国的事实会允许他们在瑞士声称别的人也可能签署他的电子合同吗?在这些国家做生意的人是否有特殊的弃权呢?

    工业间谍又会怎么样呢?没有理由相信那些目前正在为其重要的或政府性质的公司从事间谍活动的国家会放弃在密钥托管加密系统上做手脚。的确,由于事实上没有哪个国家会允许其他国家监视自己的情报工作,所以,托管加密的广泛使用必将可能增加搭线窃听的盛行。

    即使具有良好公民权记录的国家,其使用密钥托管只是为了合法追踪罪犯和恐怖分子,但它肯定也用于别的地方以跟踪异已分子、有敲诈勒索倾向的政敌等等。数字通信在监视公民的行动、意见、购买和集会等一整套工作上提供的机会比模拟世界可能提供的机会大得多。

    人们不清楚20年以后这种情况对商用密钥托管将有怎样的影响,向土耳其或中国出售现成的密钥托管系统,就类似于70年代向南非出售电棍和80年代为伊拉克建立化工厂。更糟糕的是,由于这种对通信的窃听十分易行且不可能被跟踪,因而可能诱使许多政府对其大多数公民的通信进行跟踪,甚至连以前不打算这样做的政府也会如此。因而不能保证自由民主社会就能抵御这种诱惑。