WebCrypto.

收件人无需应用的原因:浏览器已经包含了这套加密。

// definition

WebCrypto(Web Cryptography API)是通往浏览器原生加密引擎的标准 JavaScript 接口。BurnPony 的查看器用它来完成一切——HKDF、PBKDF2 和 AES-256-GCM——不打包任何库。

这是什么

使用平台自带的加密,从两方面让查看器保持诚实。它足够小,可用“查看源代码”审计,因为没有一个 500 千字节的库需要费力翻越。而真正的密码运算,跑在浏览器自身经过审计、有硬件加速的实现里,而非某人打包进来的 JavaScript。

为何重要

它也保证了覆盖面:任何设备上的任何现代浏览器都能打开一张纸条。“收件人无需应用”之所以成立,只是因为他们所需的加密早已安装就位。

// in BurnPony 查看器的 WebCrypto 路径与应用的 Swift 路径,会对照独立生成的测试向量做交叉验证——一张由 CryptoKit 封存的纸条,必须能在 WebCrypto 中逐字节打开,而事实正是如此。

相关术语

常见问题。

哪些浏览器可用?

任何现代浏览器——BurnPony 所用的 WebCrypto 操作,在 Safari、Chrome、Firefox 和 Edge 上已标准多年。没有 WebCrypto 的非常老旧的浏览器无法解密,而这正是应有的失败。

使用浏览器加密,是否意味着由服务器来运行这些代码?

服务器只交付一次查看器页面;此后一切加密运算都在你的浏览器里本地执行。该页面的 Content-Security-Policy 禁止它从任何地方加载代码。

获取 BurnPony

面向 iPhone 和 Android 的免费自毁加密纸条。收件人只需一个浏览器。无账户、无追踪。