3

所有 JWE 都使用经过身份验证的加密与关联数据 (AEAD) 算法进行加密。您是否有任何理由不想在附加认证数据 (AAD)中包含 IV 和加密内容加密密钥(CEK ) ?它会以某种方式使 JWE 变得脆弱吗?

编辑:我继续研究这个并根据RFC 5116 第 2.1 节找到

随机数在算法内部经过身份验证,不需要将其包含在 AD 输入中。如果对应用程序方便,nonce 可以包含在 P 或 A 中。

密钥 K 不得包含在任何其他输入(N、P 和 A)中。(此限制并不意味着必须检查这些输入的值以确保它们不包含与键匹配的子字符串;相反,它意味着不得将键显式复制到这些输入中。)

所以我剩下的唯一问题是考虑加密的内容密钥相当于一个随机值是否可以将它也包含在 aad 中?再次完全是为了方便。或者这会导致可能的信息泄露吗?

4

1 回答 1

2

不需要对 IV 或加密内容加密密钥 (CEK) 进行完整性保护。修改任何一个都将导致解密失败,无论它们是否包含在 AAD 中。但是,为了避免定时预言机攻击,实施必须完成整个解密过程,包括解密 CEK、验证 MAC(对于 AES-CBC + HMAC-SHA2 算法)和内容解密。

好的,所以不需要通过包含 AAD 来完整性保护 IV 或 CEK,但是将它们包含在那里有什么害处吗?正如您在问题中指出的那样,RFC 5116 表明可以将 IV 包含在 AAD 中,但 CEK不得包含在包括 AAD 在内的其他算法输入中。但是,假设加密算法是安全的,加密的CEK 在计算上与随机数据无法区分,因此将其包含在 AAD 中应该是可以的。

于 2015-04-08T13:06:38.877 回答