释义:密钥生命周期指的是密钥从生成到销毁的时间跨度。不同的密钥有不同的生命周期:签名密钥对可能有数年的生命周期;而一些临时密钥(如IPSec 协议中的会话密钥)的生命周期为单次会话,使用完毕后立即销毁。一般而言,使用频率越高的密钥要求其生命周期尽量短。单个密钥的生命周期也不是固定的,如果密钥泄露,其生命周期应立即终止并销毁密钥。此外,有些与安全相关的敏感参数也应该视同密钥进行安全防护,包括但不限于用户口令、密钥生成和密码计算过程中使用的随机数或中间结果(如 SM2签名算法中使用的随机数和密钥协商过程中生成的共享秘密)。
(1) 在密钥协商过程中从共享秘密派生密钥。这种情形主要发生在密钥协商过程中通信双方在密钥协商过程中,首先利用 Diíie-Hellman>MQV 等算法获得一个共享秘密。该共享秘密一般不直接作为密钥,而是将该共享秘密作为密钥材料利用 KDF 生成密钥。这种密钥派生方式的主要示例包括 SM2/SM9 的密钥协商和公钥加密算法中使用的基于 SM3 的KDF。
(2)从主密钥派生密钥。这种密钥派生的方法也称为密钥分散。对于一些需要生成大量对称密钥的场景,比如大规模分发智能 IC 卡时,发卡方无法保存每个实体的密钥。一种常见做法就是发卡方保存主密钥,根据实体唯一标识和其他相关信息,从主密钥中派生出每个实体单独的密钥。使用时,发卡方可以根据主密钥、实体唯一标识重新生成该密钥,然后进行身份鉴别或者加密通信等后续操作。
2. 密钥存储
为了保证密钥存储安全,可以将密钥存储在核准的密码产品中,或者在对密钥进行保密性和完整性保护后,存储在通用存储设备或系统(如数据库)中。需要指出的是,并非所有密钥都需要存储,一些临时密钥或一次一密的密钥在使用完就要立即进行销毁。
1)存储在密码产品中
密码产品的密钥防护机制,可以用于保护密钥在存储过程中的保密性和完整性。密码产品中的密钥一般采取分层次的方式,逐层进行保护:下层的密钥利用上层的密钥加密密钥进行保护;对于顶层的密钥加密密钥,则需要采取严格的安全防护措施(如微电保护)在密码产品中明文存储,以防止密钥被非授权地获取和篡改。
2) 加密保存在通用存储设备中
对于某些应用场景,由于密钥数量较大,密码产品本身只负责密码计算,而将密钥存储在通用存储设备或系统(如数据库)中。这种情况下,需要利用密码算法对密钥进行必要的保密性和完整性保护。需要指出的是,不能简单地只采用密码杂凑算法进行完整性保护,因为它无法阻止恶意的篡改。
3. 密钥导入和导出
密钥的导入和导出主要指密钥在密码产品中的进出,既可以在同一个密码产品中进行密钥的导入和导出(用于密钥的外部存储、备份和归档),也可以将密钥从一个密码产品导出后再导入到另一个密码产品中(用于密钥的分发)。为了保证密钥的安全性,密钥一般不能明文导出到密码产品外部。安全的密钥导入和导出方式包括加密传输和知识拆分。
1) 加密传输
利用加密算法进行密钥的导入和导出是最简单和高效的方法。对称加密技术和非对称加密技术都可以完成密钥的导入和导出,但前提是通信双方需要预先共享一个密钥加密密钥或获取被导入方的公钥。同时,为了保证密钥的完整性,在密钥的导入和导出过程中,需要加入完整性保护和校验机制。利用非对称加密技术完成的密钥加密一般称为数字信封。SM2 加密和解密算法自身具有完整性校验的功能,可以直接用于密钥加密传输。
2)知识拆分
知识拆分是指将密钥拆分为几个独立的密钥分量,导出到密码产品外部;导入时,每个密钥分量单独导入,最终在密码产品内部进行合成。常见的知识拆分方法有以下两类。
①将密钥K 拆分成若干个与其长度一致的分量K】,…,K,.,导入时利用异或计算恢复出原有密钥,即 "K&K”。
②利用门限算法进行拆分:例如,利用 Shamir 秘密分享方案,将 K 拆分为"个密钥分量,只有大于等于f(/<«)个密钥分量才能恢复出K,
需要注意的是,知识拆分不应当降低密钥的安全性,简单地将密钥截取为若干段的方式是不允许的,如将一个 128 比特的 SM4 密钥拆成两个 64 比特的密钥分量。因为对于任何一个密钥分量的持有者而言,该密钥的密钥空间从2盘降低到 2%极大降低了穷举搜索攻击的难甘。
除了禁止密钥的明文进出,高安全等级的密码产品(如符合 GM/T0028-2014 安全三/四级的密码模块)还要求,进行知识拆分后的密钥分量要通过可信信道传输。可信信道在密码模块和发送者或接收者之间建立安全可信的通信链接,用以安全传输未受保护的关键安全参数密钥分量和鉴别数据。可信信道能够在模块定义的输入或输出端之间及模块到目的终端的通信链路上,防止窃听以及来自恶意实体、恶意进程或其他装置的物理篡改或逻辑篡改。
4.密钥分发
密钥分发主要用于不同密码产品间的密钥共享。根据分发方法,密钥分发主要分为人工(离线)分发和自动(在线)分发。这两者的主要区别在于人工分发方式需要人工参与,在线下通过面对面等方式完成密钥的安全分发;而自动的分发方式一般借助密码技术在线自动完成密钥分发。
1)人工分发
人工分发密钥指的是利用加密传输、知识拆分等手段通过人工将密钥从一个密码产品(如密钥管理系统、密钥分发系统等)分发到其他产品中,实现密钥共享。人工分发的效率较低,只适用于少量密钥的分发,一般用于根密钥(密钥加密密钥)的分发。人工分发过程必须保证以下几点:
①密钥由授权的分发者分发,并由授权的接收者接收
②进行人工分发的实体是可信的。
③有足够的机制(如加密、紧急销毁机制等)保证密铜的安全性,提供对截取、假冒篡改、重放等攻击手段的对抗能力。
2)自动分发
对称密钥和公钥加密密钥对的私钥可以通过数字信封、对称密钥加密等方式进行自动加密分发。自动分发的安全性主要通过密码技术本身来保证。
5.密钥使用
密钥一般只能在核准的密码产品内部使用。用于核准的密码算法的密钥,不能再被非核准的密码算法使用,因为这些算法可能导致密钥泄露。特别是,不同类型的密钥不能混用,一个密钥不能用于不同用途(加密、签名、MAC等),这主要有以下几个原因。
①将一个密钥用于不同的用途,可能会降低密钥的安全性。
②不同用途的密钥对密钥的要求互不相同。比如,加密密钥对可能会将其私钥归档以解密历史数据,而签名密钥对的私钥在其生命周期结束时应当立即销毁;如果一个密钥对同时用作加密和签名,将会产生矛盾。
③限制密钥的用途可以降低密钥泄露时可能造成的损害。
此外,虽然不需要保护公钥的保密性,但在使用前(如签名验证或者密钥协商过程)需要验证公钥的完整性,以及实体与公钥的关联关系,以确保公钥来源的真实性。
6.密钥备份和恢复
密钥备份的主要目的是保护密钥的可用性,作为密钥存储的补充以防止密钥的意外损坏。密钥备份与密钥存储非常类似,只不过备份的密钥处于不激活状态(不能直接用于密码计算),只有完成恢复后才可以激活。密钥备份需要保护备份密钥的保密性、完整性及其与拥有者身份和其他信息的关联关系。密钥备份时一般将备份的密钥存储在外部存储介质中,需要有安全机制保证仅有密钥拥有者才能恢复出密钥明文。密钥备份或恢复时应进行记录,并生成审计信息审计信息应包括备份或恢复的主体、备份或恢复的时间等。
7.密钥归档
密钥在其生命周期结束时,应当进行销毁。但是出于解密历史数据和验证历史签名的需要,有些不在生命周期内的密钥可能需要持续保存,需要注意的是签名密钥对的私钥不位进行归档。
密钥归档与密钥备份在形式上类似,主要区别在于密钥归档是在密钥的生命周期之外(销毁之后)对密钥进行保存,在现有系统中该密钥已经不再使用;而密钥备份则针对仍在生命周期内的密钥。密钥归档时,也应当继续对这些密钥提供安全保护,以保证历史加密数据的安全性。密钥归档时应进行记录,并生成审计信息,审计信息应包括归档的密钥和归档时间等。
8. 密钥销毁
密钥的销毁是密钥生命周期的终点。密钥生命周期结束后,要对原始密钥进行销毁,并根据情况重新生成密钥,完成密钥更换。密钥进行销毁时,应当删除所有密钥副本(但不包括归档的密钥副本)。密钥销毁主要有两种情况。
①正常销毁。密钥在设计的使用截止时间到达时自动进行销毁,比如,临时密钥在使用完毕时应当立即销毁。
②应急销毁。密钥在已经泄露或存在泄露风险时进行的密钥销毁。对于存储在密码产品中的密钥,一般配备了紧急情况下自动销毁密钥的机制;当密钥所有者发现密钥存在泄露风险时,可能需要手动提前终止密钥的生命周期,进行密钥销毁。
联系我们(添加时请备注名称)
欢迎关注《网络安全和等保测评》微信公众号⬇️
关注我们
原文始发于微信公众号(网络安全和等保测评):密钥生命周期八大环节
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论