1.密钥管理简介

整个密码体制安全性取决于密钥的保密性,核心问题是密钥管理问题。

密钥生命周期指的是密钥从生成到销毁的时间跨度。

不同的密钥有不同的生命周期:如签名密钥可能有数年的生命周期;而临时密钥的生命周期为单次会话,使用完毕后立即销毁。

使用频率越高的密钥要求其生命周期尽量短。单个密钥的生命周期也不固定,如密钥泄露,其生命周期应立即终止并销毁密钥。

密钥的生命周期包括:生成、存储、导入和导出、分发、使用、备份和恢复、归档、销毁等环节。

密钥管理的原则:

1)区分密钥管理的策略和机制——策略是密钥管理的高级指导,机制是实现和执行策略的技术机构和方法。

2)完全安全原则——必须在密钥的生成、存储、导入和导出、分发、使用、备份和恢复、归档、销毁等的全过程中对密钥采取妥善的安全管理。

3)最小权利原则——应当只分发给用户进行某一事物处理所需的最小的密钥集合。

4)责任分离原则——一个密钥应当专职一种功能,不要让一个密钥兼任几种功能。加密、签名、杂凑三种分开。

5)密钥分级原则——三层或两层密钥结构。可减少受保护的密钥的数量,又可简化密钥的管理工作。一般可将密钥划分为三级:主密钥,二级密钥,初级密钥。

6)密钥更换原则——密钥必须按时更新。否则,即使是采用很强的密码算法,使用时间越长,攻击者截获的密文越多,破译密码的可能性就越大。使用越是频繁的,生命周期 应该越短,定期更换。

7)密钥应当有足够的长度——密钥空间足够大,密码安全的一个必要条件是密钥有足够的的长度。

8)密码体制不同,密钥管理也不相同——对称密码体制的密钥管理复杂,公钥密码体制 的

2.密钥管理的层次结构

根据加密内容的不同,密钥可以分为用于一般数据加密的密钥和用于密钥加密的密钥等。

根据不同种类密钥所起作用和重要性的不同,现有的密码系统设计采用层次化的密钥结构——三级的密钥管理的结构。

如图,按照密钥的生存周期、功能和保密级别,可以将密钥分为3类:会话密钥、密钥加密密钥和主密钥。

主密钥通过某种密码算法保护密钥加密密钥,再使用密钥加密密钥通过某种密码算法保护会话密钥,

不过密钥加密密钥可能不止一个层次,最后会话密钥基于某种密码算法来保护明文数据。在整个密钥层次体系中,各层密钥的使用又相应层次的密钥协议来控制。

(1)会话密钥(初级密钥、数据密钥)

两个通信终端用户交换数据时使用的密钥称为会话秘钥。

会话秘钥的生存周期非常短,通常在会话建立初生成,在会话结束后销毁,主要用来对传输的数据进行保护。

即使会话密钥泄露,造成的直接损失也不会太大。攻击者只能获取用会话密钥加密的数据。会话密钥可由通信双方协商得到,也可由密钥分配中心分配——自动分发。

(2)密钥加密密钥(二级密钥、次主密钥)

密钥加密密钥主要用于对传输的会话密钥进行加密。

通信网中每个节点都分配有密钥加密密钥。密钥加密密钥的生存周期相对较长,由于它主要用来协商或传送会话密钥,所以一旦泄露则可能导致在其使用周期内的所有会话密钥泄露。

密钥加密密钥的保护级别较高,在主机和一些密码设备中,存储这种密钥的装置应有断电保护、认证和防窜扰、防欺诈等控制功能。

分发方式——人工分发或自动分发

(3)主密钥

层次化密钥结构中的最高层次,由用户选定或系统分配给用户的、可在较长时间内由用户所专有的私密密钥。

主密钥主要用于对密钥加密密钥或会话密钥的保护,使得这些密钥可以实现在线分发。

它的生存周期最长,而且泄露主密钥所带来的的危害无法估量,因此一般保存在网络中心、主节点、主处理机或专用设备中,受到严格的保护。

分配传送往往采用人工的方式。

工作密钥和会话密钥的区别?

密码分析因素:时间、存储空间、攻击者所能获得的资源。

——》密钥加密的数据量应该少一点。

会话密钥——应用最多,使用最频繁,生命周期最短,更新最快,一次一密。

密钥加密密钥——只在加密密钥时才用到,更新频率稍微慢

主密钥——运用次数最少,更新速率慢。

密钥的分级系统的优点:

1)高了密钥的安全性。分级结构中,越低级的密钥更换速度越快,最底层的密钥可以做到一次一换。低级密钥具有相对独立性;它们被破译不会影响到上级密钥的安全;另一方面,它们的生成方式、结构、内容可以根据某种协议不断变换。

2)密钥的分级系统意味着分析者攻击的是一个动态系统。低级密钥是在不断变化中的,一份报文的破译造成的影响有限。主密钥的保护也是相当严格的,采用了各种物理手段,而且主密钥的使用次数很少。

3)使密钥管理自动化成为可能。分级系统中,只有主密钥需要人工装入,其他各级密钥均可以由密钥管理系统按照某些协议进行自动地分配、更换、撤销等。既提高了效率也提高了安全性。管理人员掌握核心密码,他们不直接接触普通用户使用的密钥与明文数据,普通用户也无法接触到核心密钥,使得核心密钥的扩散面减到最小。

常见的是三层结构和两层结构,金融机构中多用两层密钥。

两层:工作密钥(即会话密钥/数据密钥)、根密钥。工作密钥加密数据,跟密钥加密工作密钥。根密钥不能明文存储在配置文件中,也不能通过命令行添加(不能排除内部人员泄露)。良好涉及的根密钥一般不是一个密钥,而是由分别存储在多个地方的多段密钥材料生成的。

金融系统中就是两层密钥

3.密钥生命周期

密钥的生命周期是指密钥从产生到最终销毁的整个过程。在生命周期中,密钥处于4种不同的状态中:

使用前状态:密码不能用于正常的密码操作;

使用中状态:可用,并处于正常使用中;

使用后状态:密钥不再正常使用,但可以进行离线访问。

过期状态:密钥不再使用,所有的密钥记录已被删除。

密钥生命周期包括9个要阶段:密钥生成、密钥存储、密钥导入和导出、密钥分发、密钥使用、密钥备份和恢复、密钥存档、密钥销毁。

密钥生命周期阶段图:主要对应于对称密码体制的共享密钥。非对称密码体制的密钥生命周期有所不同。

(1)密钥生成

问题:密钥的大小、如何产生好的密钥是很关键的。

一般通过密钥生成器产生具有较好统计分析特性的序列,以保证生成密钥的随机性和不可预测性。

不同的密码体制,密钥的具体生成方法不相同,(对称、非对称体制)。

用户可以自己生成所需的密钥,也可以从可信中心或密钥管理中心申请,密钥长度要适中。

• 密钥都应在密码产品中生成

密钥生成的方式:利用随机数直接生成、通过KDF(密钥派生函数)生成(随机数间接生成)、用户口令派生密钥

随机数直接生成,使用核准的随机数发生器进行密钥生成。

使用KDF生成密钥主要有两类情形:

• 密钥协商过程中从共享秘密派生密钥:在密钥协商过程中首先利用D-H,MQV等算法获得一个共享秘密。该共享秘密不直接作为密钥,而是将该共享秘密作为密钥材料利用KDF生成密钥,如:SM2/SM9的密钥协商和公钥加密算法中使用的基于SM3的KDF);

• 从主密钥派生密钥:也称密钥分散,从主密钥派生出每个实体单独的密钥。适用于生成大量对称密钥的场景。如非接触式的门禁卡,通过对称密码SMM4进行密钥分散。发卡方保存主密钥,根据实体唯一标识和其他相关信息,从主密钥派生出每个实体单独的密钥,使用时,发卡方可以根据主密钥、实体唯一标识重新生成该秘钥,然后进行身份鉴别或加密通信等后续操作。

用户口令生成密钥:密钥空间依赖于口令的复杂度,但相对于密钥的预期复杂度(比如SM4密钥空间为2^128),口令仅提供小得多的熵(8位数字口令提供

2^27),极大降低了穷举搜索攻击的难度 。危险!

(2)密钥存储

将密钥材料安装在一个实体的软件或硬件中,以便使用。其实就是密钥的静态存储,密钥的安全存储实际上是针对静态密钥的保护。

常采用的技术:基于口令的软保护:文件形式或利用确定算法来生成密钥

基于硬件的物理保护:存入专门密码装置中(存储型、智能型)

(手工输入口令或PIN、磁盘交换、只读存储设备、芯片卡等)

将密钥存储在密码产品中、利用密码算法对密钥进行加密和完整性保护后存储在通用存储设备中(如数据库)中。其实就是密钥的静态存储,密钥的安全存储实际上是针对静态密钥的保护,保证机密性、真实性和完整性。

安全存储的条件:物质条件:安全可靠的存储介质;

管理条件:安全严密的访问控制。

密钥安全存储的原则是不允许密钥以明文形式出现在密钥管理设备之外。

主密钥的存储:主密钥是最高级的密钥,它只能以明文形态存储,否则便不能工作。要求存储器必须是高度安全的,物理上是安全的,而且逻辑上也是安全的。通常是将其存储在专用密码装置中。

二级密钥的存储:二级密钥可以以明文形态存储,也可以以密文形态存储。

如果以明文形态存储,则要求存储器必须是高度安全的。

如果是以密文形态存储,则对存储器的要求可适当降低。

初级密钥的存储:由于初级文件密钥和初级会话密钥是两种性质不同的初级密钥,因此存储方式也不同。

初级文件密钥一般采用密文形态存储,通常采用以二级文件密钥加密的形式存储初级文件密钥。初级文件密钥的生命周期与受保护文件的生命周期一样长。因此初级文件密钥需要妥善的存储。

初级会话密钥按“一次一密“的方式工作,使用时动态产生,使用完毕后即销毁,生命周期很短。因此,初级会话密钥的存储空间是工作存储器,应当确保工作存储器的安全。

![](https://img2023.cnblogs.com/blog/1474849/202302/1474849-20230209161738472-584228627.png)

(3)密钥的导入和导出:

主要指密钥在密码产品中的进出,既可以在同一密码产品中进行密钥的导入和导出(用于密钥的外部存储、备份和归档),也可以将密钥从一个密码产品导出后再导入到另一个密码产品(用于密钥的分发)。方式包含:加密传输、知识拆分

加密传输:利用加密算法进行密钥的导入和导出。对称加密和非对称加密技术都可以完成密钥的导入和导出,双方需要预先共享一个密钥加密密钥或获取被导入方的公钥。

为了保证完整性,在导入和导出过程中,加入完整性保护和校验机制。

利用非对称机密技术——数字信封;SM2加密和解密算法自身具有完整性校验的功能,可以直接用于密钥加密传输。

知识拆分:将密钥拆分为几个独立的密钥分量,导入到密码产品外部;导入时,每个密钥分量单独导入,最终在密码产品内部进行合成。

常见的知识拆分方法有:

2.利用门限算法进行差分:例如利用Shamir秘密分享方案,将秘密K差分成n个密钥分量交给n个人保管,只有大于等于t(t

注意:知识拆分不应当降低密的安全性。如,密钥简单截取为若干段(X)。

禁止密钥的明文进出

(4)密钥分发:用于不同密码产品间的密钥共享。

主要分为:人工(离线)分发、自动(在线)分发

人工(离线)分发:人工参与,线下完成密钥的安全分发。效率低,适用于少量密钥的分发。主密钥的分发。

自动(在线)分发:对称密钥和公钥加密密钥对的私钥可以通过数字信封、对称密钥加密等方式进行自动加密分发。安全性主要通过密码技术本身来保证。

(5)密钥使用:不同类型的密钥不能混用,一个密钥不能用于不同用途(加密、签名、MAC等),主要有以下几个原因:

将一个密钥用于不同的用途可能会降低密钥的安全性。

不同用途的密钥对密钥的要求互不相同。如,加密密钥对可能将其私钥归档以解密历史数据,而签名密钥对的私钥在其生命周期结束时应当立即销毁;如果用一个密钥对同时用作加密和签名,将会产生矛盾。

限制密钥的用途可以降低密钥泄露时可能造成的损失

虽然不需要保护公钥的保密性,但在使用前(如签名验证或密钥协商过程)需要验证公钥的完整性,以及实体与公钥的关联关系,以确保公钥来源的真实性。

(6)密钥备份和恢复:密钥处于使用状态时的短期存储,为密钥的恢复提供密钥源,要求安全存储密钥,防止密钥泄露。

主要目的:保护密钥的可用性

密钥备份和密钥存储非常类似,只不过备份密钥处于不激活状态(不能直接用于密码计算),只有完成恢复后才能激活

密钥备份需要保护:备份密钥的保密性、完整性及其拥有者身份和其他信息的关联关系。密钥备份时一般将备份的密钥存储在外部存储介质中,需要有安全机制保证仅有密钥拥有者才能恢复出明文。密钥备份生成审计信息。

密钥恢复:从备份或存档中检索密钥材料,将其恢复。如果密钥材料遗失同时没有被泄露的风险(如设备损坏或口令遗忘),则可以从原有的安全备份中恢复密钥。生成审计信息。

(7)密钥存档:当密钥在生命周期结束时,需要对其进行存档,以便在某种情况下(如解决争议)能够对其进行检索并在需要时恢复密钥。存档是指对过了有效期的密钥进行长期的离线保存,处于密钥的使用后状态。签名密钥对的私钥不归档。

密钥归档时,也应当对这些密钥提供安全性保护,以保证历史加密数据的安全性。

密钥归档和密钥备份的主要区别:密钥归档是在密钥的生命周期外(销毁之后)对密钥进行保存,在现有系统中该密钥已经不再使用;而密钥备份则针对仍在生命周期内的密钥。

(8)密钥销毁:密钥生命周期的终点。密钥生命周期结束后,要对原始密钥进行销毁,并根据情况重新生成密钥,完成密钥更换。密钥销毁时,应当删除密钥副本(但不包括归档的密钥副本)。

密钥销毁主要有两种情况:正常销毁;应急销毁

正常销毁:有效期截止时间到达时自动进行销毁,比如临时密钥在使用完毕时应当立即销毁。

应急销毁:密钥在已经泄露或存在泄露风险时进行的密钥销毁。