8.8 备份密钥
Alice是保密有限公司的首席财政官员——“我们不能告诉你我们的秘密。”像任何好的公司官员一样,她遵守公司的保密规则,把她的所有数据都加密。不幸地是,她没注意到公司旁边的过街警告线而被一辆卡车撞倒了。公司的董事长,Bob该怎么办呢?
除非Alice留下了她的密钥的副本,否则Bob麻烦就大了。加密的意义就是使文件在没有密钥时不能恢复。除非Alice是弱智,并用糟糕透顶的加密软件,否则她的文件便永远地丢失了。
Bob有几种方法可避免这种事情发生。最简单的方法,有时称密钥托管方案(见4.14节):他要求所有雇员将自己的密钥写下来交给公司的安全官,由安全官将文件锁在某个地方的保险柜里(或用主密钥对它们进行加密)。现在,当Alice在州际公路上被撞倒后,Bob可向他的安全官索取她的密钥。Bob保证自己也可以打开保险箱,否则,如果安全官被另一辆卡车撞倒了,Bob只得再次倒霉。
与密钥管理相关的问题是Bob必须相信他的安全官不会滥用任何人的密钥。更重要地是,所有雇员都必须相信安全官不会滥用他们的密钥。一个更好的方法是采用一种秘密共享协议(见3.7节)。
当Alice产生密钥时,她将密钥分成若干片,然后,她把每片——当然加密——发给不同的公司官员,单独的任何一片都不是密钥,但是某人可以搜集所有的密钥片,并重新把密钥恢复出来。于是,Alice 对任何恶意者做了防备,Bob也对Alice被撞引起的数据丢失做了预防。或者,她可以用每一位官员不同的公钥把不同的片段加密,然后存入自己的硬盘之中。这样在需要进行密钥管理之前,没有人卷入到密钥管理中。
另一个备份方案是[188]用智能卡(参见24.13节)作为临时密钥托管。Alice把加密她硬盘的密钥存入智能卡,当她不在时就把它交给Bob。Bob可以利用该卡进入Alice的硬盘,但是由于密钥被存在卡中,所以Bob不知道密钥是什么。并且,系统具有双向审计功能:Bob可以验证智能卡能否进入Alice的硬盘;当Alice回来后可以检查Bob是否用过该密钥,并用了多少次。
这样的方案对数据传输来说是毫无意义的。对于保密电话,密钥在通话的时间有效,以后就无效了。象刚描述的那样,对数据储存来说密钥托管方案可能是个好主意。虽然我的记忆力比大多数人都好,但大约每隔五年我就丢失一把钥匙。如果两亿人都用密码,那么按这个概率每年约有4千万个密钥丢失。我把房门钥匙复制下来放到邻居那里以防止把它弄丢。如果房门钥匙就象密钥一样让我给丢了,那我永远也不能进入房子,并挽回财产了。就象我把数据换个地方备份一样,对数据加密密钥进行备份是非常有意义的。