【问题标题】:What are JWE Key Management Modes?什么是 JWE 密钥管理模式?
【发布时间】:2022-10-31 13:52:11
【问题描述】:

JWE 标准定义了一个名为密钥管理模式.根据RFC,有五种:Direct Encryption、Key Encryption、Direct Key Agreement、Key Wrapping、Key Agreement with Key Wrapping。

它们之间有什么区别,拥有这么多的意义何在?

【问题讨论】:

    标签: jwe


    【解决方案1】:

    杰威始终使用称为CEK(内容加密密钥)的对称加密密钥加密明文。发送者和接收者并不总是拥有可以用作CEK 的预共享密钥,因此他们必须使用某种形式的公钥密码术才能安全地共享或同意使用CEK密钥管理模式指定如何确定CEK

    杰威总是提供保密(确保只有接收方可以解密数据),以及正直(确保数据在传输过程中未被第三方更改)。取决于密钥管理模式,它还可以提供验证(确保数据来自它声称的发件人)。

    杰威还支持用于多个接收器的令牌,其中每个接收器可能使用不同的密钥管理模式.在这种情况下,杰威不能使用compact serialization,必须使用JSON serialization。此外,无论接收器的数量如何,杰威使用单个CKE 来加密明文。因此,不需要为每个预期的接收者包含不同的密文副本。

    以下是支持密钥管理模式经过杰威

    1.直接加密:

    • 在以下情况下使用:
      • 发送者和接收者有一个预先共享的对称密钥。
    • 这个怎么运作:
      • 让预共享对称密钥为CEK
      • 发件人使用CEK 加密明文。
      • 接收方使用CEK 解密密文。
    • 特性:
      • 保密。
      • 诚信。
      • 身份验证(假设只有发送者和接收者知道CEK)。
    • 由多接收机 JWE 支持:不。
    • 示例 JOSE 标头:{ "alg": "dir", "enc": "A256GCM" }

    2. 密钥加密:

    • 在以下情况下使用:
      • 情景一:
        • 发送方和接收方没有预先共享的对称密钥。
        • 发送者知道接收者的公共RSA 密钥。
      • 场景 B:
        • 发件人想发单杰威到多个接收器。
        • 发送者和至少一个接收者没有预先共享的对称密钥。相反,发送者知道该接收者的公共RSA 密钥。
    • 这个怎么运作:
      • 发件人随机生成一个CEK
      • 发件人使用CEK 加密明文。
      • 对于每个预期的接收器:
        • 发送者使用接收者的公钥加密CEK
        • 发件人包含加密的CEK + 密文杰威.
        • 接收方使用其私钥解密加密的CEK
        • 接收方使用CEK 解密密文。
    • 特性:
      • 保密。
      • 诚信。
    • 由多接收机 JWE 支持:是的。
    • 示例 JOSE 标头:{ "alg": "RSA-OAEP", "enc": "A256GCM" }

    3. 直接密钥协议

    • 在以下情况下使用:
      • 发送方和接收方没有预先共享的对称密钥。
      • 发送者知道接收者的公共EC 密钥(EC 密钥对不能直接用于加密/解密数据)。
    • 这个怎么运作:
      • 发件人随机生成一个临时的EC 公钥/私钥对。
      • 发送方使用临时私钥和接收方公钥派生CEK
      • 发件人使用CEK 加密明文。
      • 发件人在其中包含临时公钥 + 密文杰威.
      • 接收方使用临时公钥及其私钥派生CEK
      • 接收方使用CEK 解密密文。
    • 特性:
      • 保密。
      • 诚信。
    • 由多接收机 JWE 支持:不。
    • 示例 JOSE 标头:{ "alg": "ECDH-ES", "enc": "A256GCM", "epk": { ephemeral public key }, "apu": "(sender)", "apv": "(receiver)" }

    4. 密钥包装

    • 在以下情况下使用:
      • 发件人要发单杰威到多个接收器。
      • 发送者和至少一个接收者有一个预先共享的秘密。
    • 这个怎么运作:
      • 发件人随机生成CEK
      • 发件人使用CEK 加密明文。
      • 对于每个预期的接收器:
        • 让预共享密钥成为包装密钥或用于派生包装密钥的密码。
        • 发件人使用封装密钥加密CEK
        • 发件人包含加密的CEK + 密文杰威.
        • 接收方找到其对应的加密CEK 并使用包装密钥对其进行解密。
        • 接收方使用CEK 解密密文。
    • 特性:
      • 保密。
      • 诚信。
      • 身份验证(假设只有发送者和接收者知道共享机密)。
    • 由多接收机 JWE 支持:是的。
    • 示例 JOSE 标头:{ "alg": "A256KW", "enc": "A256GCM" }

    5. 密钥封装的密钥协议

    • 在以下情况下使用:
      • 发件人要发单杰威到多个接收器。
      • 发送者和至少一个接收者没有预先共享的对称密钥。相反,发送者知道该接收者的公共EC 密钥(EC 密钥对不能直接用于加密/解密数据)。
    • 这个怎么运作:
      • 发件人随机生成CEK
      • 发件人使用CEK 加密明文。
      • 对于每个预期的接收器:
        • 发件人随机生成一个临时的EC 公钥/私钥对。
        • 发送者使用临时私钥和接收者的公钥派生一个包装密钥。
        • 发件人使用包装密钥加密CEK
        • 发件人包含加密的CEK + 临时公钥 + 密文杰威.
        • 接收方找到其对应的临时公钥并使用它及其私钥派生包装密钥。
        • 接收方找到其对应的加密CEK 并使用派生的包装密钥对其进行解密。
        • 接收方使用CEK 解密密文。
    • 特性:
      • 保密。
      • 诚信。
    • 由多接收机 JWE 支持:是的。
    • 示例 JOSE 标头:{ "alg": "ECDH-ES+A256KW", "enc": "A256GCM", "epk": { ephemeral public key }, "apu": "(sender)", "apv": "(receiver)" }

    【讨论】:

      猜你喜欢
      • 2017-04-20
      • 2013-01-19
      • 2021-08-27
      • 2018-02-16
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多