SHARE THE PERSPECTIVE
不要只比较加密算法的名称,还要比较谁能接触明文、影响更新。

加密网页聊天工具并非天然不安全,原生 Android 应用也并非天然安全。两者都可以实现端到端加密,也都必须在用户设备上处理明文。真正有意义的比较是:谁能影响客户端、读取屏幕上显示的内容,或获得其密钥的访问权限。

使用名称相同的算法,并不能证明两个客户端的实现或安全性相同。对于 Livara,已公开的安全架构说明了预期提供的保护。本文比较的是平台的信任边界,并非对任一客户端进行独立审计的结果。

值得核查的差异

环节 网页客户端 Android 客户端
代码交付 网站代码、依赖项、浏览器缓存及更新行为 已安装的应用包及其更新渠道
额外软件 具有相关权限的扩展、注入网站的代码 无障碍服务、键盘及其他具有高权限的软件
存储 浏览器配置文件及按源隔离的存储 应用存储、操作系统控制措施及备份配置
物理访问 已解锁的浏览器会话及共用电脑 已解锁的手机及处于活动状态的应用会话
完整性检查 对网站交付过程及浏览器安全性的信任 应用包签名,以及在提供时可获取的可信发布版本哈希值

这些是不同的攻击面,而不是适用于所有情况的排名。维护良好、专门用于相关用途的浏览器,可能比装有恶意软件的过时手机更合适。

扩展能读取加密聊天消息吗?

具有适当网站访问权限的扩展可以使用内容脚本读取或修改页面内容。Chrome 的内容脚本文档说明,这些脚本可以与页面的 DOM 交互。如果消息在其中以可读文本的形式呈现,获得授权的脚本就可能无需破解消息加密便能访问它。

扩展通常拥有隔离的 JavaScript 环境,但这并不意味着页面可见的 DOM 也与扩展隔离。反过来,声称同一浏览器配置文件中的任意无关网站都能自动读取另一网站的聊天内容,同样不正确。浏览器的源边界依然重要;跨越这些边界需要获准的交互、漏洞或其他访问途径。

检查扩展的网站访问权限,并移除不必要的扩展。使用扩展尽可能少的独立配置文件可以减少暴露面,但无法修复已被入侵的操作系统或不安全的网站代码。

紫色灯光下浏览器工具栏的模糊特写。

WebCrypto 能提供什么,又不能提供什么

W3C Web Cryptography 规范向网页应用提供密码学操作。它不会为使用这些操作组装的协议提供认证,也不会让恶意脚本变得无害。

不可导出的密钥会限制通过 API 正常导出密钥材料。具有适当访问权限的代码仍可能使用该密钥执行获准的操作,或读取由此产生的明文。因此,密钥不可导出并不能完全抵御应用环境遭入侵所带来的风险。算法是否可用还取决于浏览器的具体实现;应实际检查支持情况,而非仅凭规范名称作出假设。

对用户来说,实际需要关注的是:浏览器和操作系统是否已更新,访问的源是否正确,哪些扩展能访问该网站,以及应用如何处理持久保存的密钥和退出登录。

新交付的网页代码一定包含最新修复吗?

不一定。通过网页交付代码可以加快更新,但缓存、服务工作线程以及长期打开的标签页都可能影响实际运行的代码。这也意味着需要信任网站的代码交付过程。安装式应用也有自身的风险:更新延迟、签名或分发环节遭入侵,以及操作系统版本已停止获得支持。

请通过官方渠道保持两类客户端更新。不要认为重新加载页面就证明安全补丁已经应用,也不要认为应用包有签名就证明应用没有漏洞。

如何检查下载的 Android 文件

Android 应用包签名与已公布的文件哈希值回答的是不同的问题。官方 apksigner 文档介绍了签名验证。比较 SHA-256 可以告诉你下载的文件是否与某个特定参考对象一致,但该参考对象本身必须可信。

如果攻击者同时控制 APK 和页面显示的校验和,两者匹配并不能确认真实性。对文件计算哈希也无法证明构建可复现、不含恶意行为或其密码学实现正确。Livara 的威胁模型承认了必须依赖可信参考对象这一限制。

不要仅仅因为某篇博客声称原生应用更安全,就通过侧载安装替代应用。请确认官方分发渠道,以及你打算安装的确切版本。

平台选择检查清单

  • 使用共用电脑? 避免让私人聊天会话一直保持打开;检查已保存的会话及退出登录的行为。
  • 扩展很多? 减少网站访问权限,或为敏感工作使用干净的配置文件。
  • 设备由组织管理? 使用个人账户前,先了解组织的管理和监控政策。
  • 存在不可信的 Android 服务? 检查无障碍、通知、键盘及远程支持的访问权限,但不要不加区分地停用自己需要的辅助工具。
  • 长期保留聊天记录? 删除任何内容之前,先了解清理浏览器存储或重新安装应用后,密钥和备份如何保留。
  • 对话风险较高? 通过独立且可信的途径核实联系人,并考虑双方设备的安全性。

如需作出更全面的判断,请参考安全聊天工具检查清单。无论选择哪个平台,都无法消除接收方复制内容、恶意设备访问或服务所保留的元数据。

常见问题

浏览器扩展需要破解加密吗?

如果它能访问页面上已经显示的明文,就不需要。相关权限和浏览器的保护措施决定了它是否具有这种访问能力。

Android 应用总是更安全的选择吗?

不是。设备状况、更新支持、安装来源以及具有高权限的软件都很重要。请比较你实际使用的环境。

校验和匹配能证明构建安全吗?

在哈希函数的相关假设成立时,它证明与参考哈希值一致。它不能确认参考对象是否真实可信,也不能确认代码是否安全。

资料来源

亲自验证 Livara APK
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗