SHARE THE PERSPECTIVE
有用的安全问题不是加密听起来有多强,而是它保护什么、谁持有密钥,以及有什么证据支持其声明。

仅凭“军用级加密”不足以评估一款通讯应用。这个说法没有告诉你谁持有密钥、哪些会话受到保护、备份是否暴露明文,或设备遭到入侵后会发生什么。

有用的做法不是否定加密,而是用可以核查的具体声明取代听起来厉害的标签。

AES-256 是算法选择,不是完整的安全模型

AES 是公开标准,不是秘密军事技术。NIST 的 FIPS 197规定了 AES-128、AES-192 和 AES-256;后缀表示密钥长度。该标准于 2023 年进行了编辑性更新,算法并未改变。

强大的密码算法仍然可能被用在允许服务方访问明文的系统中。不要只问密钥有多长,还要问谁能够解密。同时应询问密钥如何生成和存储、身份如何认证,以及应用在什么故障条件下会停止运行,而不是以不安全的方式继续。

厂商提到 AES-GCM,比只提 AES 更具体:GCM 将加密与认证结合起来。但正确处理 nonce、验证认证标签以及其他实现要求仍然很重要。NIST 的 GCM 规范才是技术参考;一个标志不能证明应用正确实现了它。

营销中经常混为一谈的四种声明

声明 它解决的问题 它不能证明什么
传输加密 保护一条连接上的数据,例如从应用到服务器 服务器无法读取内容
静态数据加密 在特定密钥与访问模型下保护存储的数据 运营方没有解密密钥
端到端加密 保护指定端点之间的内容 遭到入侵的端点是安全的,或收件人是诚实的
后量子密钥建立 在建立密钥时抵御特定量子威胁 应用经过完整审计、具备匿名性,或未来安全得到保证

传输加密并不意味着每个服务商的数据库都存储原始明文。服务也可能对存储的数据加密。关键区别在于,服务商是否控制密钥,或者是否能以其他方式访问可读内容。应当准确表述,而不是用一个口号替换另一个口号。

如需更全面的介绍,可参阅关于端到端加密保护范围的文章。

“使用 NIST 标准”不等于“通过 FIPS 验证”

FIPS 203 定义了 ML-KEM,这是一种密钥封装机制。通讯应用可以声明使用该算法,但这并不表示整个应用已获得认证或接受独立审查。标准、算法测试、密码模块验证和产品安全审计,是不同类型的证据。

NIST 的密码模块验证计划明确说明,实现获批准的功能并不足以证明通过 FIPS 140 模块验证。如果产品宣传已通过验证,请索取证书、准确的模块与版本、运行环境以及获批准的配置。然后确定该证书实际上覆盖产品的哪一部分。

这也是不应将“256 位安全性”用作整个通讯应用综合评分的原因。协议组合、密钥管理和实现可能分别带来不同限制。

密码认证不是消息加密

登录机制解决用户能否访问账户的问题。端到端加密解决谁能够读取受保护消息内容的问题。两者都不会自动具备对方的属性。

例如,SRP 的设计目标是在不传输密码本身的情况下进行认证。但这不意味着认证数据库被盗就无害。RFC 5054 中关于 SRP 安全性的讨论解释了,被盗的验证值会允许密码猜测攻击,并带来其他风险。不要得出“没有密码可偷,因此服务器被攻破也无关紧要”的结论。

对读者而言,实际应继续询问账户恢复、活动会话,以及账户访问权限与加密密钥之间的关系。仅仅重复“零知识”的回答,并没有解决重要问题。

评估通讯应用安全页面的五个问题

  1. 涵盖哪些功能? 私聊、群组、文件、通话、公开帖子和备份,可能有不同的保护边界。
  2. 谁持有可用密钥? 应包括恢复密钥、关联设备和服务器端处理模式。
  3. 另一个端点如何认证? 查看是否有密钥验证、有实际意义的变更警告,以及有文档说明的信任模型。
  4. 存在哪些证据? 规范、可复现构建、测试向量和独立审计回答的是不同问题。应询问每项证据的版本和范围。
  5. 还有什么仍然可见或容易受到攻击? 元数据、遭到入侵的设备、被复制的消息以及公开内容,不应在说明中被忽略。

也应对 Livara 使用同样的检验方法。其安全文档列出了 LVR1 和 LGS1,并公开了运行边界。应将其视为需要评估的产品声明,而不是独立认证。Proof Lab提供的是有限的演示和构建产物检查,不能证明每个功能或版本都安全。

如何阅读独立审计报告

检查日期、审计方、代码修订版本、包含的平台和排除的组件。阅读发现的问题及修复状态,而不只是看摘要徽章。对密码库的审计,并不会自动涵盖账户恢复、网页应用、通知或运营安全。

缺少审计意味着安全保证方面存在空白,而不是证明存在某个具体漏洞。反过来,审计也不是终身保证。有用的比较应记录证据及其局限,而不是宣布一个普遍适用的“最安全”赢家。

常见问题

“军用级”总是 AES-256 的另一种叫法吗?

不是。不要根据这个说法推断具体算法或认证。应要求厂商准确说明它指的是什么。

更强的加密能阻止截图或恶意软件吗?

它不能阻止收件人复制内容,也不能阻止遭到入侵的设备泄露其可访问的数据。这些是不同的威胁。

什么比安全口号更能说明问题?

清晰的范围、明确命名的协议、显式说明的局限,以及针对实际交付实现的可审查证据。这些说明应帮助你决定信任什么,以及还有什么需要核查。

在 Proof Lab 中验证你的应用
CONTINUE THE THREADPrivate messaging ↗
YOU’VE REACHED THE ENDBack to the reading room ↗