威脅模型
誰能看到什麼,以及什麼能阻止他們
威脅模型只有像說明能擊敗的對手那樣清楚地說明會輸給的對手,才有用處。下表每一列列出該攻擊者能看到什麼、無法觸及什麼、現有的防禦,以及仍然可能發生什麼。
PrivaMesh 的設計針對的是想要你資料的營運方、讀取一切公開內容的鏈上觀察者,以及試圖在新增聯絡人時攔截的冒充者。它在全域時序分析者面前最薄弱,對已被入侵的裝置則毫無防護。
| 攻擊者 | 能看到 | 無法做到 | 防禦 | 仍然可能 |
|---|---|---|---|---|
| 營運方 PrivaMesh | 某個帳號為一次傳送付了費,以及時間 | 讀取訊息、得知收件人、列出你的聯絡人或重建歷史紀錄 | 沒有帳號資料庫和訊息儲存;盲權杖將付費與傳送脫鉤 | 我們可能被迫證明某個帳號在某個時間傳送過內容 |
| RPC 供應商 | 你的 IP 位址、請求時間、你提交的交易 | 解密任何內容,或知道哪個一次性地址屬於誰 | 端點可替換,也可自行架設 | 記錄日誌的供應商可以在網路層面拼出你何時活躍 |
| 鏈上觀察者 | 填充後的密文、一次性地址、精確的交易時間 | 讀取內容,或將同一對話中的兩則訊息連結起來 | 隱身地址、固定填充級距、可選掩護流量 | 關閉掩護流量時,你隨時間變化的活動規律完全可見 |
| 全域時序分析者 | 同時看到整個網路中相互關聯的活動 | 解密,或以密碼學方式連結地址 | 開啟時,以 3-10 分鐘的隨機間隔傳送掩護流量 | 這是我們防禦最弱的攻擊者;能長期保存全部資料、觀察整個網路的觀察者,超出了任何以訊息為單位的設計所能解決的範圍 |
| 拿著你已解鎖手機的人 | 一切:明文、聯絡人、金鑰 | 復原 ratchet 已刪除的訊息 | 儲存在受 Face ID 或 Touch ID 保護的鑰匙圈中;前向保密限制了對過去的影響;脅迫密碼會清除帳號而不是打開它 | 裝置一旦被入侵,其上目前的一切都會暴露;脅迫密碼只在你被要求解鎖的那一刻有用——如果儲存空間已經被事先複製則無濟於事 |
| 拿到你復原詞組的人 | 你的身分,並可在今後冒充你 | 讀取過去對話的 ratchet 部分——那些金鑰是隨機的,只存在於裝置上 | 復原詞組從不離開你的裝置,也從不傳輸 | 身分金鑰、簽署預金鑰和 PQ 預金鑰都由復原詞組衍生,且不發布一次性預金鑰,因此每個對話的開場訊息都可以透過復原詞組加上鏈上永久保存的信封重新計算。也沒有撤銷機制 |
| 惡意聯絡人 | 你傳給對方的一切,並可截圖或轉傳 | 接觸你的其他聊天對象,或讀取其他對話 | 封鎖,以及每個對話獨立的金鑰 | 沒有任何密碼學能阻止你的聊天對象本身不可信 |
| 新增聯絡人時的冒充者 | 驗證成功時什麼也看不到 | 用自己的金鑰替換一個其金鑰包已在鏈上簽署的聯絡人 | 以錢包簽署並發布到鏈上的預金鑰包,使任何登錄表都無法替換某個帳號的金鑰 | 沒有可比對的安全碼或指紋,因此確認帳號屬於目標本人完全只能在 App 之外進行,且沒有任何輔助 |
| Apple | 你的 Apple ID 購買了訂閱 | 看到訊息、聯絡人,或將購買與你的傳送活動連結 | 盲權杖隔在購買與每一次傳送之間 | Apple 知道你是 PrivaMesh 的使用者,這在 iOS 上無法避免 |
| 網路層面的審查者 | 你連線過某個 Solana RPC 端點 | 讀取或有選擇地丟棄單則訊息 | RPC 端點可替換,包括換成你自己執行的 | 封鎖 Solana 或所有 RPC 會使傳遞完全中斷 |
常見問題
PrivaMesh 最難防禦的是什麼?
持續監視整個網路並保存一切的全域攻擊者。掩護流量提高了時序關聯的成本,但無法擊敗這種規模的觀察者,而鏈會為他們留下一份可供分析的永久紀錄。
如果我的裝置被扣押,什麼會暴露?
其上目前的一切:明文、聯絡人和金鑰,除非裝置已鎖定且攻擊者無法通過 Face ID。前向保密將損失限制在 ratchet 尚未刪除的內容——舊訊息已經無法復原。如果你被迫親自解鎖,脅迫密碼會清除帳號而不是打開它。
PrivaMesh 會被強制交出我的資料嗎?
可以被要求。可交出的只有某個帳號在某個時間為一次傳送付了費。沒有訊息內容、沒有收件人、沒有聯絡人清單、也沒有帳號紀錄,因為這些都不儲存。
VPN 有用嗎?
有用,可以防範 RPC 供應商和網路層面的觀察者,也就是能看到你 IP 的兩個攻擊者。它對寫入鏈上的內容沒有任何影響,而那些內容本來就無法讀取。