密钥管理技术摘要

密钥管理更多信息参见:

霍炜, 郭启全, 马原. 商用密码应用与安全性评估[M]. 北京: 电子工业出版社. 2020.

1. 密钥生命周期管理

使用频率越高的密钥,生命周期越短

生命周期:生成、存储、导入导出、分发、使用、备份恢复、归档、销毁。

1.1 生成

直接或间接地由随机数生成。

  1. 直接生成:随机数直接生成
  2. 间接生成:
    1. 从口令派生:熵小,不推荐。
    2. 密钥派生函数(Key Derivation Function,KDF):利用对称密码算法或者杂凑算法派生密钥。
      1. 密钥协商过程中从共享秘密派生密钥。如SM2、SM9的密钥协商和加解密算法中使用的基于SM3的KDF。
      2. 从主密钥派生,也叫密钥分散。主密钥 + 唯一标识 + 分散信息,派生密钥。见GM/T 0036-2014《采用非接触卡的门禁系统密码应用指南》。

1.2 存储

保证密钥的机密性和完整性。

  1. 存储在密码产品中:分层机制,逐层保护。
  2. 存储在外部介质中:机密性和完整性保护。

1.3 导入导出

一般情况下,密钥不能明文导出到密码产品外。

  1. 方式1:加密传输。简单有效。
    1. 对称加密和非对称加密皆可。
    2. 密钥的完整性保护和校验。
  2. 方式2:知识拆分。
    1. 基本要求:密钥拆分为多个独立的密钥分量,不能降低密钥安全性,不能将128比特密钥拆分为2个64比特密钥;合成:密钥分量分别单独导入,在密码产品内合成。
    2. 知识拆分方案1:密钥拆分为几个长度相等的分量,导入时采用分量异或恢复密钥。
    3. 知识拆分方案2:门限算法拆分,如Shamir密钥分享方案(参见附录A),拆分为n份,至少需要t(t<n)份就可恢复密钥。
    4. GM/T 0028三级和四级要求拆分后的密钥分量通过可信信道传输。

1.4 分发

  1. 人工(离线)分发:利用加密传输、知识拆分等手段通过人工将密钥分发到其它产品。
    1. 效率低,适合少量密钥分发,如根密钥。
  2. 自动(在线)分发:
    1. 对称密钥:数字信封、对称密钥加密等方式分发。
    2. 公钥加密密钥对:同上。
    3. 公钥签名密钥对:签名密钥对的私钥不应分发。

1.5 使用

  1. 不同类型的密钥不能混用,一个密钥不能用于不同用途(加密、MAC、签名等)。
    1. 加密密钥对的私钥归档以解密历史数据,
    2. 签名私钥在生命周期结束时销毁。
    3. 一个密钥对同时用于加密和签名会产生矛盾。
  2. 公钥在使用前,验证:
    1. 完整性
    2. 实体和公钥的关联关系。

1.6 备份恢复

  1. 备份密钥存储不激活状态(不能直接用于密码计算)
  2. 密钥备份需保证密钥的机密性、完整性、拥有者身份、其它相关信息
  3. 需要有安全机制保证仅密钥的拥有者才能恢复密钥。
  4. 备份和恢复的审计信息

1.7 归档

  1. 归档的目的:解密历史数据和验证历史数据,所以有的密钥不能直接彻底销毁。
  2. 签名私钥不归档
  3. 生成审计信息。

  1. 归档和备份的区别:
    1. 归档:密钥生命周期之对密钥进行保存。
    2. 备份:密钥生命周期之对密钥进行保护。

1.8 销毁

  1. 删除所有密钥副本,但不包括归档的密钥副本。

2. 对称密钥管理

对称密钥分发:

  1. 点到点的密钥分发
  2. 基于密钥中心的密钥分发

数据密钥DK,密钥加密密钥KEK

2.1 点到点的密钥分发

前提:通信双方共享一个通过人工分发KEK。因此KEK数量为n(n-1)/2对。

通信方生成新的DK,用KEK加密DK后分发给对方。

2.2 基于密钥中心的密钥分发

目的:解决点到点密钥分发的问题。

前提:每个通信方与密钥中心共享一个通过人工分发的KEK;通信方之间无共享的KEK。因此KEK数量为n对。

基于密钥转换中心KTC(通信方)

(3.a和3.b二选一)

步骤1:A生成DK,加密后(用A与KTC共享的KEK)发给KTC。

步骤2:KTC转加密DK(先解密,然后用B与KTC共享的KEK加密)

步骤3:以下两种方案二选一。

  • (方案1)KTC直接将转加密后的DK发给B。
  • (方案2)KTC让A将转加密后的DK转发给B。

基于密钥分发中心KDC

步骤1:A生成DK,加密后(用A与KTC共享的KEK)发给KTC。

步骤2:KTC转加密DK(先解密,然后用B与KTC共享的KEK加密)

步骤3:以下两种方案二选一。

3. PKI

我国PKI采用双证书体系:

  1. 签名证书和加密证书分开
  2. 解密私钥:监管和密钥恢复等需要解密用私钥进行备份。
  3. 签名私钥:不能再用户之外有备份。

以下是网上对双证书的介绍。

3.1 PKI双证书机制及其产生过程

3.1.1 何为单证书和双证书?

单证书:

用户使用唯一的证书及对应的私钥进行签名加密操作。

签名时,A用户使用自己的私钥加密信息的摘要(签名),B用户使用A的公钥进行解密,对比该摘要是否正确,若正确,则B就确定了A的身份,即验签成功。

加密时,A用户用B的公钥将信息加密传递给BB使用自己的私钥解密,进而获得信息。

双证书:

包括签名证书加密证书

签名证书在签名时使用,仅仅用来验证身份使用,其公钥和私钥均由A自己产生,并且由自己保管,CA不负责其保管任务。

加密证书在传递加密数据时使用,其私钥和公钥由CA产生,并由CA保管(存根)。

既然单证书可以搞定一切,为何要使用双证书?

逻辑上:

如果签名私钥遗失,大不了用户再产生一对,并无多大影响,因此签名密钥没必要交给CA

如果加密密钥遗失,别人发过来的信息我就没办法解密了,必须从CA那里获取存根。

单证书的话,如果私钥丢了,你如何恢复之前得到的信息呢?

因此从道理上来说两个密钥具有不同的属性,逻辑上应该分开处理。

安全性上:

单证书增加了用户签名被伪造的风险

国家意志:

国家要保证必要的时候有能力对某些通讯进行监控,如果采用单证书,除了自己谁也无法解密(理论上啦),不利于国家安全。因此很多国家法律规定使用双证书。

3.1.2 双证书签发流程

虽然是双密钥和双证书,从流程上来看,一遍流程即可搞定。

  1. 用户产生签名密钥对,发送证书请求RA/CA(请求中包含1个公钥
  2. RA/CAKMC请求加密密钥
  3. 签发两张证书,连同加密密钥一起发送给用户(采用签名证书加密
  4. 用户使用自己的签名私钥解密,获得两张证书+加密密钥

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值