第5章密钥分配与管理
1.密钥管理基本概念
现代密码学把数据加密保护的全部系于密钥之上,所以密钥的安全管理是保证密码系统安全性的关键因素。
密钥管理是指处理密钥自产生到最终销毁的有关问题的全过程,大体上讲,密钥管理包括密钥的生成、存储、分配、启用与停用、控制、更新、撤销与销毁等诸多方面,其中密钥的分配与存储可能最棘手。
密钥管理的目地是维持系统中各实体之间的密钥关系,以抗击各种可能的威胁。
密钥管理要借助加密、认证、签名、协议、公正等技术。
(1)密钥的种类
密钥种类很多,但主要有以下几种
①基本密钥或初始密钥
基本密钥是由用户选或由系统分配给用户的可在较长时间(相对于会话密钥)内由一对用户所专用的秘密密钥,又称用户密钥。
基本密钥和会话密钥一起启动和控制某种算法所构造的密钥产生器,以此,产生用于加密数据的密钥流。
②会话密钥
会话密钥是两个通信终端用户在一次交换数据时所采用的密钥,当用其保护传输数据时称为数据加密密钥,当用其保护文件时称为文件密钥。
会话密钥可由通信双方预先约定,也可由系统动态地产生并赋予通信双方,它为通信双方专用,故又称为专用密码。
③密钥加密密钥
密钥加密密钥是对传送的会话或文件密钥进行加密时采用的密钥,也称次主密钥,通信网中每个节点都分配有一个这类密钥。
④主机主密钥
主机主密钥是对密钥加密密钥进行加密的密钥,存于主机处理器中。
此外还有用户密钥、族密钥和算法更换密钥等。
(2)密钥生成
主机主密钥通常用要用诸如掷硬币、骰子,从随机数表中选数等随机方式产生。
密钥加密密钥可由安全算法、二级管噪声产生器、伪随机数产生器等生成,也可以由密钥操作员选定。
会话密钥可在密钥加密密钥作用下通过某种加密算法动态生成,如用密钥加密密钥控制DES算法生成。
基本密钥可用生成密钥加密密钥或主机主密钥的方法生成。
(3)密钥存储
将密钥保存到一个合适的载体上,如磁卡,存储IC卡、智能IC卡、U盘等上面,用时通过专用读取器输入终端设备。
(4)密钥分配
密钥分配是指密码系统中密钥的安全分发和传送过程,它要解决的问题就是将密钥安全地分配给保密通信的各方。
依据分配手段,密钥分配可分为人工分发(物理分发)与密钥交换协议动态分发两种。
从密钥属性上看,又分为秘密密钥分配与公开密钥分配两种。
从密钥分配技术来说,有基于对称密码体制的密钥分配与基于公钥密码体制的密钥分配等。
目前有关密钥分配方案多种多样。
(5)密钥替换与更新
当密钥已泄漏,或被破坏或将要过期时,就要产生新的密钥来替换或更新旧的密钥。
(6)密钥撤销
如果密钥丢失或其他原因在密钥为过期之前,需要将它从正常运行使用的集合中除去,称为密钥的撤销。
(7)密钥销毁
不用的就密钥必须销毁。
如采用高质量的碎纸机处理记录密钥的纸张。
对于硬盘、EEPROM中的存数,要进行多次冲写。
(8)密钥有效期
密钥有效期就是密钥的生命期,不同性质的密钥应根据其不同的使用目的有不同的有效期。
一个密码应用系统,必须有一个策略能够检验密钥的有效期。
2.单钥加密体制的密钥分配
(1)密钥分配基本方法
两个用户A和B在单钥密码体制下进行保密通信时,必须有一个共享的秘密密钥,获得共享密钥的方法一般有以下几种
①密钥由A选取并通过物理手段发送给B
②密钥由第3方选取并通过物理手段发送给A和B
③若A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。
④若A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。
方法①,②和③分配密钥的代价可能很大,一般采用方法④。
④中的第三方通常是一个负责为用户分配密钥的密钥分配中心KDC ,每一个用户必须与KDC 有一个共享密钥,称为主密钥。
通过主密钥分配给一对用户的密钥叫做会话密钥,会话密钥用于这一对用户之间的保密通信,通信完成后,会话密钥即被销毁。
(2)一个密钥分配方案
假定两个用户A 和B 分别有一个只有自己和密钥分配中心KDC 知道的共享主密钥K A 和K B ,A 希望与B 建立一个逻辑连接,需要用一个一次性的会话密钥来保护经过这个连接传输的数据。
密钥分配过程如下:
①A 向KDC 发出会话密钥请求。
请求消息由两个数据项组成,第一项是A 和B 的身份标识ID A 和ID B ,第二项是这次业务的唯一识别符N 1,N 1可以是时戳或随机数什么的,只要每次请求所用的N 1应有所不同就可以了。
“||”表示连接,“A||B ”表示将串A 与串B 连接起来。
请求“消息”可形式表示为:“ID A ||ID B ||N 1”或“请求||N 1”。
这里“请求||N 1”可以表述为“N 1”附在“请求”之后或“请求”与“N 1”连接。
相关信息见教材第3章分组密码Feistel 解密结构说明段。
时戳:用来证明某一事件发生时间的方法。
例如,规定密钥有效期可以阻止重放攻击。
②KDC 为A 的请求作出应答。
应答是由K A 加密的消息,只有A 才能成功地对这一消息解密,并且A 可以相信这一消息的确是由KDC 发出的。
消息中包含A 希望得到的一次性会话密钥K s 和A 在①中发出的请求,包括一次性随机数N 1(目的是让A 将收到的应答与发出的请求相比较,检查是否匹配)。
A 据此能验证自己发出的请求在被KDC 收到之前,未被他人篡改,并且相信自己收到的应答不是重放过去的应答。
消息中还包含B 希望得到的一次性会话密钥K s 以及A 的身份ID A ,这两项信息经K B
加密,通过A 转发给B ,以建立A ,B 之间的连接并用于向B 证明A 的身份。
应答消息亦可形式表示为:[]
),(||||||1A s K s K ID K E N K E B A 请求
③A 存储会话密钥K s ,并向B 转发)||(A s K ID K E B 。
B 收到后,获取K s ,并根据ID A 确信另一方是A ,还从B K E 知道K s 的确来自KDC 。
至此,会话密钥就分配给了A 和B 。
④B 用会话密钥K s 加密另一个一次性随机数N 2,并将加密结果发送给A 。
⑤A 以f(N 2)作为对B 的应答,将应答用会话密钥加密后发送给B 。
(3)无中心密钥控制
用KDC 为用户分配密钥时,要求用户都信任KDC ,同时还要求对KDC 进行保护。
若密钥分配是无中心的,则不必考虑这两个要求。
无中心密钥分配相关信息见教材。
3.公钥加密体制密钥管理
公钥密码的主要作用之一就是解决密钥分配问题,密钥分配实践中,公钥密码可以应用于两个不同方面:公钥分配和单钥密码体制的密钥分配 (1)公钥的分配 ①公开发布
公开发布是指用户将自己的公钥发给每一其他用户,或向某一团体广播。
优点:简单。
缺点:任何人都可以伪造这种公开发布。
②公用目录
公用目录表是指建立一个公用的公钥动态目录表,公用目录的建立、维护及公钥的分发由某个可信的实体或组织承担。
优点:比公开发布的安全性更高。
缺点:公钥目录表仍可能被伪造,也易受到对手窜扰。
③公钥授权
类似公用目录表,假定有一个公钥管理机构负责建立、维护通信各方公钥的动态目录表,此外,每个用户都可靠的知道管理机构公开钥,并且只有管理机构知道相应的秘密钥。
公钥管理机构分配公钥如图(根据教材自行解读):
公钥管理机构分配公钥
优点:比前两种方法具有更高安全性。
缺点:由于用户想要与他人联系都要求助公钥管理机构分配公开钥,这样公钥管理机构可能成为系统的瓶颈,另外有维护的公钥目录表也可能被对手窜扰。
④公钥证书
公钥证书方式是指用户通过公钥证书交换自己的公钥而无须与公钥管理机构联系,公钥证书由证书管理机构CA 为用户建立。
用户可将自己的公开钥通过公钥证书发给另一用户,接收方可用CA 的公钥对证书加以验证。
优点:克服了公钥管理机构模式的不足。
上述扩展信息参见教材。
(2)单钥密码体制的密钥分配 简单分配
如果发起者A 希望与响应者B 通信,可按如下步骤建立会话密钥
①A 产生自己的一对密钥{PK A ,SK A },并向B 发送PK A ||ID A ,其中ID A 是A 的身份。
②B 产生会话密钥K s ,并用A 的公开密钥PK A 对K s 加密后发往A 。
如图
③A 由]][[S PK SK K E D A A 恢复会话密钥K s 。
④A 销毁{PK A ,SK A },B 销毁PK A 。
至此,A,B 可用单密钥加密算法,以K s 作为会话密钥进行保密通信了,通信完成后都将K s 销毁。
具保密性和认证性的密钥分配 见教材,从略。