Reolink 桌面应用程序(版本 8.18.12)使用 AES-CFB 算法加密配置文件和其他敏感数据。
然而,该过程中使用的初始化向量 (IV) 处理不当,导致存在一个漏洞,攻击者可以轻松解密加密的配置数据。
以下代码显示 IV 是在运行时动态生成的:
{
key: "fetchAesIv",
value: function () {
return window.napiDecrypt.getAesIv();
},
}
然而,返回的值始终是同一个字符串:bcswebapp1234567。
这意味着,虽然 IV 在技术上是在运行时生成的,但实际上等同于硬编码,无法提供额外的安全性。
在应用程序运行期间,可以通过 DevTools JavaScript 控制台动态获取 IV 值。
window.napiDecrypt.getAesIv() 函数返回一个 Promise,该 Promise 解析为一个常量字符串 bcswebapp1234567。

这表明 IV 在所有加密操作中被重复使用,违反了加密最佳实践。
在 CFB、CBC 和 OFB 等分组密码模式中,重复使用 IV 可能使攻击者能够预测密文模式,最终危及数据机密性。为了发挥 IV 的作用,必须动态生成一个新的、不可预测的值。