密钥管理

密钥管理是数据加密包括视频加密技术中的重要一环,密钥管理的目的是确保密钥的安全性 (真实性和有效性)。 一个好的密钥管理系统应该做到:
(1)密钥难以被窃取;
(2)在一定条件下窃取了密钥也没有用,密钥有使用范围和时间的限制;
(3)密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。

1 密钥的管理方式

可以采用层次化的密钥管理方式,用于数据加密如手机视频加密的工作密钥动态产生,工作密钥由上层的加密密钥进行保护,最上层的密钥称为主密钥,是整个密钥管理系统的核心;多层密钥体制大大加强了密码系统的可靠性。由于用的最多的工作密钥经常更换,而高层密钥用得较少,使得破译者的破译难度增大。在这种多层密钥系统中,主密钥保护了工作密钥,工作密钥保护敏感信息,因而整个系统的安全依赖于主密钥的安全。在数据库加密课题中,主密钥的更换是一个比较棘手的问题,主密钥更换以后会造成工作密钥的全部更换。数据库中存储着海量数据,已经加密的数据需要用原来的密钥系统脱密,而且脱密时间将会很长。为安全起见,密钥更换前,需对数据库系统进行全库备份,然后利用系统所提供的工具完成对数据库中密文数据向明文数据的转换;更换主密钥后,再根据数据库加密要求进行明文数据向密文数据的转换。

2 密钥的传递和保存方法

密钥的传递分集中传送和分散传送两类。集中传送是指将密钥整体传送,这时需要使用主密钥来保护会话密钥的传递,并通过安全渠道传递主密钥。分散传送是指将密钥分解成多个部分,用秘密分享的方法传递,只要有部分到达就可以恢复,这种方法适用于在不安全的信道中传输。

密钥既可以作为一个整体保存,也可以分散保存。整体保存的方法有人工记忆、外部记忆装置、密钥恢复、系统内部保存;分散保存的目的是尽量降低由于某个保管人或保管装置的问题而导致密钥的泄漏。

3 密钥的备份和销毁
密钥的备份可以采用和密钥分散保存一样的方式,以免知道密钥的人太多;密钥的销毁要有管理和仲裁机制,否则密钥会被有意无意的丢失,从而造成对使用行为的否认。

4 密钥的管理分发中心(kdc)
假设在某机构中有 100个人,如果他们任意两人之间可以进行秘密对话,那么共需要多少密钥呢?每个人需要知道多少密钥呢?也许很容易得出答案,如果任何两个人之间要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是 1000、10000人或更多,这种办法就显然过于愚蠢,管理密钥将是一件可怕的事情。

一种较好的解决方案是建立一个安全的、可信任的密钥分发中心(Key Distribution Center,kdc),每个用户只要知道一个和KDC进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。

假设用户甲想要和用户乙进行秘密通信,则用户 甲先和KDC通信,用只有用户甲和KDC知道的密钥进行加密,用户甲告诉KDC他想和用户乙进行通信,KDC会为用户 甲和用户乙之间的会话随机选择一个对话密钥,并生成一个标签,这个标签由KDC和用户乙之间的密钥进行加密,并在用户甲启动和用户乙对话时,用户甲会把这个标签交给用户乙。这个标签的作用是让用户甲确信和他交谈是用户乙,而不是冒充者。因为这个标签是由只有用户乙和KDC知道的密钥进行加密的,所以即使冒充者得到用户甲发出的标签也不可能进行解密,只有用户乙收到后才能进行解密,从而确定了与用户甲对话的人就是用户乙。

当KDC生成标签和随机会话密码,就会把它们用只有用户甲和KDC知道的密钥进行加密,然后把标签和会话钥传给用户甲,加密的结果可以确保只有用户甲能得到这个消息,只有用户甲能利用这个会话密钥和用户乙进行通话。同理,KDC会把会话密码用只有KDC和用户乙知道的密钥加密,并把会话密钥给用户乙。

用户甲会启动一个和用户乙的会话,并用得到的会话密钥加密 自己和用户乙的会话,还要把KDC传给它的标签传给用户乙以确定用户乙的身份,然后用户 甲和用户乙之间就可以用会话密钥进行安全的会话了,而且为了保证安全,这个会话密钥是一次性的,这样黑客就更难进行破解了。同时,由于密钥是一次性 由系统 自动产生的,用户不必记那么多密钥了,方便了人们的通信。

5 公开密钥的全局管理机制
公开密钥体制主要针对开放型的大型互联网络的应用环境而设计的,这种网络环境中需要有一个协调的公开密钥管理机制,以保证公开密钥的可靠性。

公开密钥的管理一般基于公证机制,即需要一个通信的A、B双方都信任的第三方N来证明A和B的公开密钥的可靠性,这需要N分别对A和B的公开密钥进行数字签名,形成一个证明这个公开密钥可靠性的证书。在一个大型网络中,这样的公证中心可以有多个,另外这些公证中心若存在信任关系,则用户可以通过一个签名链去设法验证一个公证中心签发的证书。

公开密钥管理的另外一个重要方面是如何撤消过去签发,但是现在已经失效的密钥证书。