隱私政策
0. 一句話
你發出的訊息正文在你的裝置上被加密,只有收訊人能讀。我們讀不了,租給我們伺服器的 Google 也讀不了。
我們能看到的是:一場對話發生過——裡面有哪些帳號,什麼時候活躍。把這部分也去掉比加密內容難得多,我們還沒做完。這份政策會說清楚,界線目前劃在哪裡。
1. 哪些內容是端對端加密的
在你的裝置上加密,我們和 Google 都讀不了:
- 你的訊息正文。
- 你傳送的檔案、照片、音訊、影片的內容。
- 連結預覽。
- 語音和視訊通話,兩台裝置之間使用 WebRTC 強制的 DTLS-SRTP。
大多數一對一和群組訊息還額外使用了棘輪(ratchet):每則訊息有自己的金鑰,所以即使你的裝置被攻破,也讀不出更早的訊息。如果對方的用戶端還沒有發布較新的金鑰材料,這個對話會回落到一把長期金鑰,那種情況下沒有上面這個性質。訊息下方的標記會告訴你這一則實際走的是哪一種。
只有一件事會越過這條線,而且只在你主動要求時:在維基百科查一個名字,送出去的是那一個名字,而不是它所在的訊息。送給誰寫在第 6 節;查詢只在你點的那一下發生,除此之外不發生,所以沒有什麼需要關掉。摘要、翻譯和轉寫同樣會越過這條線——它們在本次發行中是關閉的,應用程式裡沒有任何開關可以打開它們。
2. 哪些沒有加密,以及我們能看到什麼
加密保護的是內容,不是「有過一場對話」這件事本身。下面這些在我們的伺服器上是明文:
- 每場對話裡有誰,以及它何時建立、何時最後活躍。
- 每則訊息的時間戳記,以及你有多少則沒讀。
- 附件的檔名、類型和大小。位元組是加密的,對它的描述不是;密文的長度也框定了原文的長度。
- 你的好友和好友邀請。
- 通話信令——有過一次通話、打給誰、什麼時候。不包括音訊和視訊內容。
「輸入中」和已讀回條預設關閉,除非你自己開啟;關閉期間不會寫入任何東西。
已經不在這裡的:你的電子郵件地址和你的名字。自 2026 年 9 月起,帳號記錄裡只剩一個帳號識別碼——而且從那時起,任何地方都不再有電子郵件可留。註冊不會問你任何關於你的事:你的帳號就是 24 個助記詞,Firebase Authentication 驗證的憑證由它推導而來;它保存的只是一個隨機標籤,網域根本收不到郵件。
另外要單獨說一句:因為這個應用程式跑在 Google Firebase 上,Google 能看到你的裝置每一次連線的 IP 位址和時間。這是託管方式帶來的,不是應用程式本身的問題,我們沒法用加密把它消掉。
3. 別人怎麼找到你
他們搜不到你。這裡沒有目錄——不能按電子郵件、電話號碼或名字查找——伺服器會拒絕任何這樣的查詢。
你要聯絡一個人,是透過其他管道把一條邀請連結傳給他,用你本來就在用的任何方式都行。一條連結只能用一次,24 小時後過期,你隨時可以撤銷。你怎麼稱呼一個人,是你自己給他的標籤,只留給你;如果對方做過自我介紹,那個名字是加密送到你這裡的。
4. 我們收集什麼
- 帳號資料:一個帳號識別碼,以及從你的助記詞推導出的憑證,保存在 Firebase Authentication 裡。沒有電子郵件地址,沒有電話號碼,沒有名字——註冊時一樣都不問。
- 訊息和附件的密文,以及第 2 節裡的中繼資料。
這就是全部。沒有分析統計,也沒有當機回報。這個應用程式過去會把畫面瀏覽送給 Firebase Analytics、把當機報告送給 Firebase Crashlytics,兩者都帶著你的帳號識別碼,所以都不是匿名的;現在它們都被刪掉了,連同送出它們的那兩個函式庫。錯誤只在開發階段印在開發者自己的機器上,不去任何別的地方。
5. 資料存在哪裡
存在 Google Firebase 上——Firestore、Storage 和 Authentication——由安全規則決定誰可以讀寫每一份文件。
在你的裝置上,快取的訊息、設定和應用程式鎖 PIN 用一把「每台裝置一把」的金鑰加密,這把金鑰保存在系統金鑰庫裡(iOS 的 Keychain、Android 的 Keystore),不是放在普通的應用程式儲存空間裡。
解密你訊息的私鑰永遠不會離開你的裝置,除非以助記詞的形式、由你自己選擇抄下來。我們不持有它,也無法替你復原。一旦遺失,傳給那台裝置的訊息就再也讀不出來了——任何人都讀不出來,包括我們。
1.2.0 及更早的版本還會在每次登入時,把助記詞的一份副本存入 Android 系統內建的備份 Google Block Store。如果你的手機設定了螢幕鎖定,這份副本會以端對端加密的形式同步到你的 Google 帳號。從 1.2.1 版起,應用程式不再這樣做,並會在每次啟動時刪除這份副本。
6. 還有誰會拿到資料
我們不出售、不交易、不出租你的個人資訊。資料會到達:
- Google Firebase——我們的託管服務商,如上所述。
- Cloudflare Realtime——當你的裝置和對方的裝置無法直接互聯時,用於中繼通話的音訊和視訊。
- 維基媒體基金會——當你點擊某個名字去維基百科查它時,那一個名字。
- Google Cloud Speech-to-Text——當你要求轉寫時,一則語音訊息的音訊。
- Google Cloud Translation——當你要求翻譯時,一則訊息的文字。
- Cloudflare Workers AI——當你要求摘要或就一段對話提問時,該對話最近至多 50 則訊息。
後三者在本次發行中是關閉的。應用程式裡沒有任何開關可以打開轉寫、翻譯或摘要,所以沒有任何內容會到達這三個服務。之所以列出而不是刪掉,是因為程式碼還在、這些功能還打算回來——它們回來的時候,會連同這段揭露和首次使用前的詢問一起回來。到那時送出去的東西,是為了產出你要的結果,不用於訓練任何模型;轉寫和翻譯都不會留在我們的伺服器上。
維基百科查詢沒有開關,因為沒有什麼常駐的東西可關:它只在你點的那一下運作,此外不運作。維基百科收到的是那一個名字和你的 IP 位址,跟你自己在它的搜尋框裡輸入一樣——沒有帳號,沒有訊息,沒有對話。回傳的內容只是顯示出來,不保存,也不會寫進對話裡。
Cloudflare Realtime 同樣沒有開關。大多數通話不需要它:兩台能夠直接互聯的裝置——同一網路下的大多數通話——不經過它就能連上,不會被中繼。當無法直連時——常見於雙方處於不同的行動網路——已經加密的通話會被中繼,而不是直接連不上。Cloudflare 能看到的是雙方的 IP 位址、通話的時間,以及大致的資料量;音訊和視訊內容仍然受第2節所述的同一套 DTLS-SRTP 加密保護,中繼並不會解密它們。
如果法律要求,我們可能揭露我們持有的內容。我們持有的就是第 2 節那份清單。我們拿不出訊息內容,因為我們讀不了。
7. 推播通知
通知由 Firebase Cloud Messaging 送達。你的裝置權杖存放在帳號中一塊只有你能讀的私有區域裡。
通知裡不帶訊息正文。是你的裝置在本機解密訊息、組裝出你看到的那句話;Google 送的是信封,不是裡面的內容。
8. 你可以做什麼
- 在「我的」頁面刪除帳號。屬於一場對話共同部分的內容——例如一筆通話記錄——會留給另一位參與者,因為那也是他的記錄。
- 在「我的」頁面匯出你的資料。
- 按對話設定訊息過期:1 小時、24 小時、7 天或 30 天。
- 開啟或關閉「輸入中」和已讀回條。兩者預設都是關閉的。
- 用 PIN 或生物辨識鎖定應用程式。
- 撤銷一條你已經發出去的邀請連結。
如果你希望我們手動刪除某些東西,寫信給我們。
9. 保留期限
你的帳號存在期間,我們保留你的資料。刪除帳號就會刪除這些資料,上面提到的共同持有的內容除外。按對話設定的過期時間會按你定的節奏刪除訊息。
10. 你應該知道的限制
這些我們寧可主動告訴你,也不願你自己發現。
- 公鑰在第一次見到時就被信任。如果有人在你們交換第一則訊息之前就替換了公鑰,這場對話會被加密給錯誤的人,而且看起來完全正常。之後公鑰再變化時應用程式會警告你,也會顯示一個可以線下核對的安全碼——但沒有任何機制強制你去核對。
- 同一時間只能用一台裝置。你的助記詞能還原開啟歷史訊息的金鑰,所以在新裝置上登入不會失去你已經收到的內容。但前向保密的對話用的是第二把金鑰,它從不離開產生它的那台裝置:最後登入的那台才是這類訊息送達的地方,期間封給另一台的內容無法搬過去。
- 加密功能出現之前傳的訊息保持原樣,沒有做過追溯轉換。
- 這個應用程式沒有經過獨立的第三方安全稽核。
11. 兒童
Chatterbox 不面向 13 歲以下兒童,我們也不會在知情的情況下收集他們的資訊。如果你認為有兒童向我們提供了個人資訊,請聯絡我們,我們會刪除。
12. 變更
我們可能會更新這份政策。重大變更會在應用程式內公告,頂部的日期就是它最後一次修改的時間。
13. 聯絡我們
關於這份政策的問題,請聯絡:[email protected]
14. 檢查較新的應用程式版本
Google Play 並不是這個應用程式到達你 Android 手機的途徑,它是從 chatterbox.fans 下載的——而一個不在循環中的商店沒辦法替你檢查更新,所以只要你要求,這個應用程式可以自己檢查。
點一下「立即檢查」會向 chatterbox.fans 發送一次請求,詢問目前的版本。這次請求只帶有你的 IP 位址,沒有其他東西——沒有帳號、沒有裝置識別碼、沒有訊息。回傳的是一個版本號,會在你的手機上與目前執行的版本比對;不會自動下載任何東西,這次檢查的任何內容也不會寫入對話中。
這個功能沒有開關,因為沒有什麼可以關閉的:它只在你點按時執行,除此之外不會執行。
如果你安裝更新,它會使用相同的簽署金鑰原地取代應用程式,就跟 Google Play 推送的更新一樣。