Vibn 的工作原理
最近更新: 2026-08-28
这是一份技术说明,讲述 Vibn 如何处理你的照片、视频、消息和身份信息——写给那些想亲自核实说法、而不是仅凭信任接受的人。
它比我们的隐私政策更长、更具体,这是有意的。政策说明我们如何处理你的数据;本文说明系统是如何构建的,使我们无法另作他为。凡是由架构而非承诺保障的保护,我们会写明。凡是仅为承诺的,我们同样会写明。
1. 简短版本
Vibn 是一个私密的共享相册。你创建一个群组,邀请几个人,大家在同一场合拍的照片和视频就汇集到一处。这里没有会给你排序的信息流,没有公开主页,陌生人也无从找到你的群组。
- 群组仅限邀请加入。没有搜索、没有发现、没有浏览——唯一的入口是群内成员给的链接、口令或二维码。
- 加密群组中的照片和视频采用端到端加密。它们在你手机上加密后才上传,并在接收者的手机上解密。我们的服务器保存的是读不懂的密文。
- 解密群组的密钥从不以我们能使用的形式到达我们的服务器。它藏在邀请链接中浏览器永远不会发送的那一部分里;如果你保留了恢复备份,我们持有的那份副本也由一组我们从不接收的助记词封存。
- 人脸识别在你的设备上运行。只有匿名的数字向量会上传——绝不上传你的录入照片,也绝不回传给其他用户。
- 媒体文件永远无法通过公开地址访问。每一次查看都是按请求生成的、短时效的签名链接。
- 你可以删除自己的人脸数据、媒体、群组和整个账号,而且这些删除是真实的。
2. 凭邀请进入,由服务器强制执行
每一次对群组数据的请求,都会先核对你的成员身份,然后才返回任何内容。如果你不是成员,接口的回答是「未找到」,而不是「无权限」——这样外部的人连该群组是否存在都无法确认,更不用说里面有谁。
这项检查只存在于一个地方,也就是接口层,而不是散落在客户端代码里。应用无法通过换个问法给自己授权,因为做决定的不是应用。
有一个刻意的例外:已登录并持有邀请码的人,可以在加入之前读到该邀请的一小段预览——群名、简介和邀请人。否则你只能盲目接受邀请。邀请七天后失效。
自 2026 年起,除成员身份检查外还有第二重检查,且只朝一个方向起作用:它只能拒绝提供,绝不会授予访问权。如果你出现在别人发布的照片中,你可以将它对群组隐藏:此后 API 只会把它提供给照片中已被识别的人以及发布者。这不会删除任何内容,也无法收回已保存在他人手机上的副本;发布者会收到通知,并可以请求你重新显示它。
- 群内角色分为群主、管理员和成员。管理员可以管理和编辑;只有群主能删除群组或任命管理员。
- 群主不能悄悄退出自己的群组——只能删除它或转交出去。这避免出现无人负责其存储空间的无主群组。
- 移除成员会从此刻起切断其访问权限。它无法抹去对方已经看过的内容,我们也不会假装可以。
3. 端到端加密:我们的服务器做不到什么
在端到端加密上线之后创建的群组都是加密的。每个群组有一把 256 位密钥,在创建者的设备上生成。媒体在上传前于手机上用 AES-256-GCM 加密,查看时在手机上解密。我们存储的是一团无法解读的数据。
关键不在于我们承诺不看。关键在于其他应用提供的一系列功能对我们而言根本不可能,而我们接受了失去它们:
- 我们无法在服务器端为你的加密媒体生成缩略图或预览图,因为我们无法解码它们。
- 我们无法为节省存储而重新编码或压缩它们。
- 我们无法生成揭晓日之前使用的模糊占位图——因此在加密群组中,这项工作由应用在你的设备上完成。
- 我们无法为加密群组创建公开分享链接。该功能对这类群组是关闭的,而不只是不建议使用。
- 我们无法扫描加密媒体的内容,我们不能,别人也不能。敏感内容检测要么在你的设备上进行,要么根本不进行。
- 照片的真实内容只有一种方式会到达我们手中,而发送者是你:当你举报某个内容时,你的设备会上传该单个文件的解密副本——应用会在此之前明确告知。除此之外我们无法获得它,并且它会在举报处理完毕 90 天后被删除。
4. 密钥如何传递
群组密钥随邀请链接一起分发,位于 # 字符之后:https://vibn.space/i/CODE#k=… ——# 之后的所有内容都是 URL 片段,而浏览器从不把片段发送给服务器。二维码里编码的是同一个链接。打开它的人会在应用中取出密钥,并保存到设备由硬件支持的安全存储中:iOS 上的钥匙串,Android 上的 Keystore。
这带来一个我们宁愿直说也不愿掩饰的后果。任何拿到完整邀请链接的人,就拿到了该群组的密钥。请把邀请链接当作你家的钥匙:它不是一份等你批准的加入申请,它就是开门的东西。请通过你信任的渠道分享。
还有第二个后果,而恢复备份改变的是它的形态,而不是消除它。当一台设备第一次持有群组密钥时,Vibn 会给你一组十个词的恢复助记词。你的手机用这些词派生出一把密钥,并用它封存后上传你的群组密钥;我们保存这个封存包,以及派生时使用的公开盐值。我们从不会收到助记词——它不在请求里,不经由邮件,也不通过分享菜单——所以这个封存包对我们而言和媒体本身一样打不开。如果你觉得比纸更方便,也可以给这些词截屏;截屏通常会同步到云端相册服务,因此它的私密程度取决于那个账号。在新设备上输入助记词即可取回密钥;在 iOS 上,派生出的密钥会随 iCloud 钥匙串同步,因此大多数恢复根本不需要输入。你仍然可以从还有密钥的设备扫码迁移,或重新粘贴邀请链接来恢复一个群组。但你可以跳过备份,也可以删除它;若如此,且所有设备和所有链接都不在了,这些媒体将永远保持加密。这就是第 3 节那份保证的诚实代价。
- 群组密钥从不以任何人可用的形式出现在请求体中、包含在邀请码本身里,或出现在日志中。到达我们这里的唯一副本,是由你的助记词封存的恢复包。
- 当前限制:成员离开时没有密钥轮换,也没有针对个人的撤销。保留了链接的前成员,仍然持有密钥。
- 群组密钥在其设置中以只读方式显示,因此如果你愿意,可以有意识地做一次备份。
5. 你的媒体实际存放在哪里
文件存放在私有对象存储中,没有签名就无法读取。我们的数据库只保存对象路径——不是 URL。早期的一次迁移刻意删除了保存 URL 的字段,因此即便数据库某一行外泄,其中也没有任何可以直接取用的东西。
每当你打开一张照片,接口都会在核对你的成员身份之后,为这一个对象、这一次请求生成一个短时效的签名链接。链接会过期。上传的流程反过来也一样,文件类型在上传获得授权的那一刻就被固定。
- 没有公开存储桶,没有可猜测的路径,也没有可能外泄的永久 URL。
- 整个系统中唯一无需认证的入口,是成员可以为非加密群组创建的公开分享相册。它是链接中的一枚能力令牌,可以关闭,并且永远无法为加密群组创建。
- 如果你在设置中关闭再分享,你上传的内容会从其他成员创建的任何公开相册中移除——在你自己创建的分享中仍然保留。
6. 揭晓日
群组可以设置在选定日期揭晓,让大家同时看到照片,谁也不会提前看到。在那一刻之前,服务器不是简单地让应用把内容藏起来。它会给未上传者一个不同的文件——一张小尺寸的模糊派生图——并且从不为原件生成签名链接。通往全分辨率文件的钥匙根本不在响应里,无从找起。
你始终能看到自己上传的内容。关于你出现在其中的照片的提醒会被扣留到揭晓时刻,然后以一条汇总送达,这样推送通知不会泄露屏幕正在隐藏的内容。
有一种提前看到这些照片的方式,而且是我们有意保留的。群组的所有者可以开启一面直播墙:一个最多只存在一天、随时可以撤销的链接,让照片一到就在浏览器里显示出来——在派对上,在房间的某块屏幕上。直播期间,拿到这个链接的人看到的是完整照片而不是模糊的替代图,这正是它的用途。有两件事限定了它的代价。链接会自己结束,所有者也可以提前结束它。而且链接里不包含群组密钥:密钥是以加密形式送到浏览器的,只在那里、也只在直播进行期间被解开——所以结束一面直播墙不只是关掉页面,它把密钥一起带走了。
7. 人脸识别,以及它在这里为何与众不同
Vibn 可以找出你出现在其中的照片。这项功能几乎所有的实现都会把人脸上传到服务器。我们的不会,也不可能:媒体是加密的,服务器端的比对程序根本无从查看。
取而代之的是,人脸检测以及把人脸转换成数字向量,两步都在你的手机上完成。上传的只有一个 512 个数字组成的向量。它不是图像,也无法还原成图像。
比对随后在服务器上进行,向量对向量。返回的只有匹配到的用户标识——绝不返回任何人的向量。
- 你在人脸设置过程中拍摄的照片从不离开你的设备。
- 没有任何接口会向任何客户端返回已保存的人脸向量,包括你自己的。
- 你可以关闭可被发现,你的标识就会从展示给其他所有人的匹配结果中剔除——你自己仍然看得到。
- 你可以随时在设置中删除全部人脸数据。这会删除向量和录入标记,而不只是一个开关。
- 该功能需自行开启,免费版和付费版都可使用。我们不会把你的隐私放在付费墙之后。
- 你可以把自己出现的照片对群组其他人隐藏,但无法删除它。它对照片中的人以及发布者仍然可见;发布者会收到通知,并可以请求你重新显示它。
8. 身份、付款,以及我们刻意不自己经营的部分
登录由 Firebase Authentication 处理——邮箱、Google 或 Apple。我们从不查看也从不保存密码;我们的数据库里根本没有可供泄露的密码字段。
订阅由我们自己的服务器直接向 Apple 和 Google 验证。没有第三方计费中间商掌握你的购买记录。你的权益由我们这边根据商店确认的收据判定,因此被修改过的应用无法给自己发放付费方案。
方案限制——多少个群组、多少名成员、多少存储空间、何种分辨率——都在服务器上强制执行,而不是在应用里。应用中那份数字副本的存在,只是为了在你撞上上限之前给你一句友好的提示。
9. 什么会离开你的设备,又去往何处
这是大多数白皮书含糊其辞的一节。我们这一节是具体的,包括对我们不利的地方。
错误和崩溃报告发送给 Sentry。它会收到你的账号标识、姓名和邮箱,以便把报告与受影响的用户对应起来。它被配置为绝不接收请求体、认证令牌、签名的存储 URL、邀请码、分享令牌——以及群组密钥。最后这一项不是靠制度约束:输入有误的密钥本会随异常信息进入错误报告,因此负责清除它的处理有测试覆盖,一旦回退就会让构建失败。
产品分析发送给 PostHog:哪些页面被打开、哪些功能被使用,以及应用版本和平台。页面名称经过净化,使群组、媒体和邀请的标识绝不会出现在事件中。
推送通知通过 OneSignal 送达。实时聊天和在线状态不再运行在第三方的基础设施上:它们运行在我们自己的实时服务器上,消息保存在我们自己的数据库中——在加密群组中,是我们无法读取的文本。你的应用使用一个仅用于表明你身份的短期令牌连接,并用第二个专为该群组房间签发的令牌加入,每次都会核对你的成员资格。 一对一消息也是同样的方式,有一点值得说明:两个人的对话没有群组密钥,因此两台设备用各自的身份密钥自行推导出一把密钥,而我们只持有这些身份密钥的公开部分。我们保存结果,却无法打开它。
在免费版中,广告由 Google AdMob 提供。在 iOS 上,任何广告标识符被使用之前都会先征求你的同意;即使你拒绝,广告依然存在,只是不再定向。在当地法律要求同意表单的地区,该表单会在这一请求之前显示。AdMob 绝不会收到你的姓名、邮箱、照片或你群组中的任何内容。
如果你是通过我们的广告安装 Vibn 的,我们会上报这些广告带来了什么,好让我们判断哪些广告有效:应用被安装、账户被创建、你打开了套餐页面、你点击了订阅,以及订阅被购买。Google 和 Meta 从你的设备收到其中的第一项、第二项和最后一项——在 iPhone 上通过 Apple 的 SKAdNetwork,它只交给广告主一个聚合且延迟的数字,没有任何标识符,这也是本应用没有跟踪提示的原因;在 Android 上通过它们自己的 SDK,并且在当地法律要求同意表单的地方,会先显示该表单。OpenAI Ads 收到全部五项,来自我们的服务器而非你的设备,这也是唯一涉及标识符的地方:如果你已同意广告效果衡量,我们会附上你邮箱地址的一种不可逆的加扰形式,以便将一笔购买与你看过的广告对应起来。如果你拒绝了,或从未被询问过,则不会发送任何标识符。它们当中没有任何一方会知道你分享了什么、你在哪些群组里,或群组内的任何内容。
如果你举报一张照片或一段视频,该文件的解密副本会随举报一并发送,以便由人工判断——应用会在你提交举报的界面上直接说明这一点。它与群组分开存放,只通过几分钟后即失效的链接展示,并在举报处理完毕 90 天后删除。我们绝不会透露举报者是谁。举报某个人或某个群组不会发送任何媒体内容。
10. 删除
删除账户会移除账户本身、你创建的群组以及其中的内容,并解除你在其他群组的成员身份。30 天内它可以恢复,而我们保留它也仅仅是为此:账户被隔离,你的个人资料从其他人的应用中消失,你创建的群组变为只读并显示移除日期,重新登录后有一个按钮可以撤销这一切。30 天期满后,一个计划任务会执行与当初按钮即时执行的完全相同的抹除,一切随之消失——对我们和对你都一样。此后它绝不会作为我们保留的某一行上的隐藏标记存在。
你也可以不打开应用,直接从我们的网站发起删除,这在设备丢失时很有用。该页面有频率限制并防范自动化滥用,并且刻意做到:无论该邮箱是否存在账号,回答都完全相同——连耗时也相同——因此它无法被用来查探谁拥有 Vibn 账号。
- 删除你上传的媒体会删除存储的对象本身,而不只是列表中的条目。
- 删除人脸数据是即时且彻底的。
- 你的人脸数据不会等这 30 天:在你请求删除的那一刻就被抹除,恢复账户也不会让它回来。
- 备份和日志按各自的周期到期;删除并非在所有地方同时瞬间完成,我们也不作此声称。
11. 我们不做的事
存放你照片和视频的服务器,总得有人付钱。付钱的是订阅,在免费档位上广告也帮着分担。不用来付钱的是你:你群组里的任何东西都不会提供给任何人,下面这些也都不是我们留着以后再做的生意。
这份清单里有一条根本不是承诺。加密群组中的内容我们读不了,因此它无法被挖掘、被出售,也无法用来训练任何东西——我们做不到,日后掌管这些服务器的人也做不到;原因见第 3 节。其余的都是承诺,我们宁可告诉你哪条是哪条,也不愿让你自己去猜。
- 我们不出售你的个人数据。
- 我们不出售、出租或交换对你的账号、你的群组或你的内容的访问权——不给广告商,不给数据经纪商,也不给任何人。
- 我们不使用你照片、视频或消息的内容来定向广告。
- 我们不用你的内容训练任何模型。
- 我们不跨群组构建社交图谱,产品中任何地方都没有粉丝列表、公开主页或好友推荐。
- 我们不读你的消息。在加密群组中我们做不到;在旧群组中我们不去做。
12. 已知的局限
一份只罗列优点的隐私文档是营销材料。以下是如果我们站在你的位置上会想知道的事。
- 任何持有完整邀请链接的人都持有该群组的密钥(第 4 节)。
- 目前还没有密钥轮换,也没有按成员撤销;移除某人会中止其今后的访问,但不能抹去其已知晓的内容。
- 如果你丢失了所有设备和邀请链接,恢复助记词是唯一的回头路。若你跳过了备份,或连助记词也丢了,这些媒体将无人能够恢复,包括我们。
- 在关闭了分享的群组中,截屏拦截可以阻止操作系统的截屏。它无法阻止有人用另一部手机拍摄屏幕。
- 在加密功能上线之前创建的群组不是端到端加密的。它们的媒体受访问控制和签名 URL 保护,但服务器可以读取。
- 元数据没有加密:我们知道哪些账号在哪些群组里、内容何时上传、文件声称的拍摄时间、以及有多大。
- 对话的元数据同样没有加密:我们知道谁在什么时候与谁互发私信,即使一个字也读不到。
- 存储空间按群组所有者计费。如果所有者的订阅结束,并在收到警告 30 天后其群组仍超出免费额度,我们会删除这些群组中最早的媒体内容——包括其他成员上传的内容——直到符合额度。
- 举报照片或视频会把它的解密副本发送给我们。这是第 3 节所述内容的唯一例外;它只在成员主动举报时发生,且只针对被举报的那一个文件。被举报的内容在人工审核前也会从群组中隐藏,若七天内无人审核,它会自动恢复。
- 当你发送照片或视频时,你的手机会附上该文件的指纹,这样我们才能拒绝群组里已经有的完全相同的副本。在加密群组中,这个指纹是用该群组自己的密钥计算的,而我们从不持有该密钥:它只能告诉我们发到同一群组的两次上传是同一个文件,再无其他。我们无法拿手上已有的文件与它比对。
- 我们确实持有少数由我们自己创建的账户的群组密钥:用于质量检查和应用商店审核的测试账户。那些群组里放的是生成的占位图片,不属于任何人。属于你的群组的密钥,永远不会以我们能够使用的形式被保存。
13. 如何验证这一切
本文中的说法对应着你可以亲自观察的行为:外部的人请求某个群组会收到「未找到」;分享出去的照片链接在签名过期后即失效;加密群组无法创建公开分享;删除人脸数据后,人物筛选就会忘记你。
如果你发现这里有任何与应用实际表现不符之处,那么两者之中必有一个是缺陷,我们希望知道。
14. 联系我们
关于本文档或其中任何内容的疑问:[email protected]
关于我们收集什么、为何收集的正式说明,请参阅我们的隐私政策。两者如有出入,以隐私政策为准。