密钥常用于保护特定的数据,因此,数据的安全依赖于密钥的安全。您可以通过密钥版本化和定期轮转来加强密钥使用的安全性,实现数据保护的安全策略和最佳实践。

实现安全目标

您可以通过周期性轮转密钥,达成以下安全目标:
  • 减少每个密钥加密的数据量

    一个密钥的安全性与被它加密的数据量呈反相关。数据量通常是指同一个密钥加密的数据总字节数或总消息数。例如,NIST将GCM模式下一个密钥的安全生命周期定义为基于其加密的总消息数。通过定期轮转密钥而改变加密密钥的方式,可以使得每个密钥具有更高的安全阈值和更小的密码分析攻击面。

  • 提前具备响应安全事件的能力

    在系统设计的早期,引入密钥轮转的功能并将其作为日常运维手段。这样可以使系统在特定安全事件发生时具备实际执行能力,符合软件工程中Fail Early、Fail Often的原则。如果第一次执行(突发性)密钥轮转是在响应具体事件的情形下,并且发生在运行中的系统上,则发生故障的概率会被无限放大。

  • 对数据形成逻辑上的隔离

    轮转加密密钥使得轮转前后产生的密文数据形成事实上的隔离效果。特定密钥的安全事件可以被快速定义影响范围,从而采取进一步措施。

  • 减小破解密钥的时间窗口

    如果在定期轮转加密密钥的基础上,将旧的加密密钥产生的密文数据用新的加密密钥轮转加密,则轮转周期即为一个密钥的破解时间窗口。这意味着恶意者只有在两次轮转事件之间完成破解,才能拿到数据。这对于保护数据不受密码分析(Cryptanalysis)攻击具有很强的实践意义。

满足合规规范

密钥的周期性轮转功能可以方便企业符合各种合规规范。与密钥轮转相关的合规规范包含(但不限于):
  • 支付卡行业数据安全标准(PCI DSS)
  • 中国国家密码管理局发布的密码行业相关标准,例如GM/T 0051-2016
  • 美国国家标准技术委员会(NIST)发布的密码使用相关标准,例如NIST Publication 800-38D