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]
關於我們收集什麼、為何收集的正式說明,請參閱我們的隱私政策。兩者如有出入,以隱私政策為準。