两部手机各自生成一对一次性 X25519 密钥。QR 携带公钥那一半。每一端把对方的公钥和自己的私钥组合 (ECDH),在本地推导出相同的共享密钥。任何服务器都不会看到。
哪些运行在服务器上。哪些永远不会。
Hongi 几乎完全在你的设备上运行。配对、生成码字和验证都在本地完成,使用无需联网的密码学原语。仅因为三个特定功能离开它无法工作,我们才保留了一层薄薄的服务器代码。下面列出了所有会触及服务器的内容、原因,以及我们不会保留的东西。
- 1
远程配对(邀请链接)
当你与不在身边的人配对时,应用会生成一个简短的一次性令牌。另一部手机取走该令牌,在本地解密,我们在它送达的那一刻就将其删除。载荷在两台设备之间端到端加密。我们转发一段我们无法阅读的密文;我们不知道任何一方是谁。
- 2
静默验证推送(推送通知)
为了将静默推送送达联系人的手机,应用会根据操作系统使用 APNs 或 FCM。我们只保存每台设备的不透明推送令牌,而不是其背后的真人。当你点击"静默推送"时,我们请求 Apple 或 Google 投递一条加密通知。我们永远看不见你是谁,也看不见你说了什么。
- 3
打赏(可选,通过 Stripe)
如果你选择打赏,Stripe 会处理你的卡片信息。Hongi 只能看到一笔打赏被支付,以及金额。我们不会把打赏与你的联系人列表、码字或应用中的其他内容关联。你不是在订阅任何东西;这只是一次性付款。
我们永不存储的内容
- 没有身份。没有姓名,没有电话号码,没有邮箱(除非你写信给我们)。没有登录。没有账户。
- 没有社交图谱。没有关于你与谁、何时、多频繁配对的记录。不会上传通讯录。
- 没有内容。没有码字历史,没有通话记录,没有转写,没有音频。
- 没有数据分析。网站和应用中没有第三方追踪器。没有广告 ID。没有追踪像素。
- 没有位置。应用从不请求位置信息。
为什么这么少?因为威胁模型就是那些已经冒充你的银行或你家人的骗子。我们在服务器上留下的越少,任何人就越难宣称"掌握你的 Hongi 数据"。你和母亲之间的码字活在你们两台设备上,从只有你们两个共享的密钥中实时派生。这就是整个产品。
它如何运作,用图说明。
四张简短示意图,展示配对、暗号和静默推送的真实运作方式。和你在安全白板上会看到的画一样,每一步配上所用的加密原语。
Hongi 的中继把端到端加密的邀请从一部手机转发到另一部。中继无法解密内容。送达之后两部手机通过 X25519 在设备本地推导出相同的共享密钥,与现场配对完全一样。
每 30 秒,两部手机基于共享密钥和当前时间槽运行 HMAC-SHA512,推导出两条不同的暗号。一条是你说出口的,一条是你听到的。没有共享密钥,冒充者两条都生成不出来。
发送静默确认时,你的手机请求 Apple Push Notification 服务或 Firebase Cloud Messaging 把一条加密通知送到你联系人的设备。我们只转发一枚不透明的推送令牌。我们永远看不到你是谁,也看不到你问了什么。
-
配对是如何进行的?
当面:打开 Hongi,点击 Pair,扫描对方手机上的二维码。远程:点击 Pair > 邀请链接,通过任意渠道发送一次性链接。两台设备使用 X25519 在本地派生出共享密钥。没有服务器看到密钥,也不会记录任何内容。
-
如果我丢了手机怎么办?
按照设计,没有设备就无法恢复你的码字。要与某个联系人恢复保护,你们两个都需要在新设备上重新配对。丢失手机上的旧配对在解锁手机之前没有任何用处,因为码字是按会话派生的。
-
Hongi 真的离线吗?
是的。配对在两台设备之间通过二维码或加密邀请链接直接发生。配对之后,码字根据共享密钥和当前时间在本地计算。验证联系人时应用不需要互联网。
-
静默验证推送是做什么的?
如果一个来电听起来不对劲,而你又不能冒险大声询问码字,那就点击"静默推送"。你真正的联系人会收到推送通知:"X 在询问,你真的在线上吗?"。他在应用里点击确认或拒绝。来电者听不到任何动静。
-
如何添加联系人?
点击 Pair 开始新的配对。扫描或发送邀请链接。配对完成后,联系人会出现在你的主屏幕上,并显示当前时段的码字。
-
如何删除我的数据?
在应用中,设置 > 删除所有联系人会从设备上移除每一个配对和密钥。你也可以从任何浏览器访问 hongi.io/delete 达到相同效果(以防你不再能访问该设备)。
-
Hongi 支持哪些语言?
应用目前支持荷兰语、英语、法语、德语、土耳其语、西班牙语、意大利语、葡萄牙语、波兰语、阿拉伯语、印地语、印尼语、日语、韩语和中文。网站语言与之一致。
-
加密算法有多安全?
配对使用 X25519 椭圆曲线密钥交换(RFC 7748)。码字通过 HMAC-SHA512(RFC 4231)从共享密钥和当前 30 秒时段派生。密钥存储在 iOS Keychain / Android Keystore 中,可用时由硬件支持。没有任何服务器保存你的秘密。
-
为什么叫 Hongi?
Hongi 是传统的 Māori 问候,两个人将鼻子和额头贴在一起,分享同一口气,即 ha。它标志着两个人不再是陌生人的那一刻。我们选用这个名字,因为应用以另一种方式做了同样的事:两个人,一次配对,从此互信。
仍然卡住了?
请发邮件至 info@hongi.io。请注明操作系统(iOS 或 Android)、应用版本(设置 > 关于)以及你想做什么。我们越快复现问题,就越快能修复它。