// glossary / webcrypto
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 的免费自毁加密纸条。收件人只需一个浏览器。无账户、无追踪。