近距離工作階段不是對等連線
排程中閱讀時間 5 分鐘 作者 NT²
站在對方面前連上線,只是短命的工作階段。把對方認可為保管箱聯絡人——以及把共用接受進保管箱——仍是分開的動作。
近距離工作階段不是對等連線
主張:就近連線是通道,不是聯絡人
兩人並肩而站,雙方都已解鎖 NT² Vault。一方點就近會面、出示 QR,另一方掃描。裝置協商、約定金鑰,就能交換結構化承載——不必靠 email、聊天貼上,也不必雲端中繼。
這段流程感覺像「我們連上了」。就密碼學與產品語意而言,它比聽起來更薄。
近距離工作階段是一條短暫的加密通道:短壽命的工作階段識別碼、每次會面一組 X25519 金鑰協定、確認後的單向流量金鑰,以及成功、取消或逾時後立刻清零。握手本身不會讓任一方學到對方的保管箱金鑰 DID。綁定身份的信任是通道裡的可選貨物——不是通道的屬性。
對等連線是聯絡人裡的持久列:保管箱金鑰 DID 管「是誰」,Peer DID 材料管「Mode A 怎麼加密」。那段關係活過這次會面,是隱私敏感的保管箱狀態。我們已在對等連線不是手機通訊錄聯絡人劃過那道界。
主張只有一句:就近會面加速傳遞;它不取代對等連線、Mode A 加密,或收件匣同意。
限制:「已連線」會誘出自動信任
做近距離交換的工程師,常把三個時刻塌成一個:
- 裝置能私密對話。
- 人們把彼此認可為保管箱。
- 一筆共用以「已擁有資料」的形態落地保管箱。
把它們塌在一起很方便,也是錯的。
若工作階段加密就等於已驗證聯絡人,同意就變成扮家家酒。 傳輸機密性不等於「我接受這個保管箱金鑰 DID 進入聯絡人」。預覽、指紋與明確接受仍屬於聯絡人邀請路徑——即使邀請騎在近距離工作階段上。
若近距離傳輸成功就直接寫入資產列,收件匣就變成可有可無的戲碼。 保管箱對保管箱共用仍是 Mode A 封包:由寄件者的保管箱金鑰 DID 簽章、封給收件人的 Peer DID,並以待處理收件匣訊息暫存。傳遞成功代表訊息已收到,不是已匯入。
若近距離發明新的共用模式,你會得到平行的密碼學故事。 Mode A 已回答保管箱對保管箱加密。Mode B/C 回答沒有 NT² 的人的密碼交接。近距離是 Mode A(以及聯絡人邀請)的載體——不是 Mode F。
若握手「為了少一回合」就洩露保管箱金鑰 DID,工作階段就不再對身份無關。 被截到的引導碼與好奇的中介者會學到比路由識別碼更多的東西。NT² 讓工作階段對身份無關,直到應用層承載刻意引入邀請。
限制是:不要意外把通道升級成關係。
設計:連線 → 信任 → 傳遞 → 接受
產品階段與協定階段相關,但不相等。
| 產品階段 | 發生什麼 | 離開條件 |
|---|---|---|
| 連線 | 引導 + 傳輸建立 + 金鑰協定 | 工作階段就緒 |
| 信任 | 工作階段內可選的聯絡人邀請/互惠邀請 | 對等連線完成、拒絕,或略過 |
| 傳遞 | Mode A 封包(inline 或大量)進入收件人的收件匣 | 收件匣列已暫存 |
| 完成 | 就近會面面板關閉 | 不等於「接受」 |
flowchart LR
Connect[連線工作階段] --> Trust{需要信任?}
Trust -->|是| Invite[工作階段內聯絡人邀請]
Trust -->|已是對等| Deliver
Invite --> Deliver[傳遞 Mode A 封包]
Deliver --> Inbox[收件匣待處理]
Inbox --> Accept[接受至保管箱]
工作階段密碼學只服務傳輸。 短暫 ECDH 導出工作階段流量金鑰。那些金鑰包裝這次會面的應用層 frame。它們永遠不會變成 Mode A 內容金鑰。開啟保管箱對保管箱封包,仍需要收件人已解鎖的保管箱與 Peer DID 材料——為何 Mode A 拒絕用拋棄式密碼,見共用密碼 ≠ 主密碼。
信任是貨物。 當對方還不是完整的 Mode A 聯絡人,同一次會面可以在加密的工作階段資料裡承載聯絡人邀請(以及互惠邀請)。接受 UI、簽章檢查與 peer 列持久化仍由聯絡人擁有——不由工作階段層擁有。單向接受仍不會默默開啟雙向傳送;對等連線那篇文章的規則仍然成立。
傳遞暫存收件匣。 近距離送達的共用,使用與中繼或檔案載體相同的收件匣轉接:待處理共用訊息、檢視介面,以及明確的接受至保管箱。中繼索引密文;收件匣留在本機在載體是同一個房間、而不是邊緣中繼時仍然為真。
完成 ≠ 匯入。 乾淨傳輸後關閉就近會面,是編排衛生。匯入仍是分開、刻意的動作。
取捨:引導式摩擦,而不是一鍵魔法
就近會面要付出編排成本。
使用者會看到連線、也許信任、再傳遞,之後才接受。未完成的對等連線仍會擋下出站 Mode A。工程師不能「直接把工作階段金鑰上收到的東西解密進保管箱」。支援用語必須精確:工作階段對聯絡人,已收到對已接受。
我們接受摩擦,因為爆炸半徑保持誠實。一支完成近距離工作階段的失竊手機,不會自動匯入機密。成功的通道不會在沒有預覽時鑄造已驗證聯絡人。過期後被截到的 QR,不會把已用過的工作階段復活成持久關係。
預覽成熟度也誠實:就近會面是仍在硬化的當面引導路徑。架構主張不依賴把它行銷成「數據機故事已完成」。本系列停在工作階段邊界與應用平面——不是 parent-frame 物理。
我們拒絕什麼
我們拒絕把就緒的近距離工作階段當成已完成的對等連線。 通道不寫入聯絡人。
我們拒絕為「近距離」發明新的共用模式。 保管箱對保管箱的就近傳遞仍是 Mode A。
我們拒絕用工作階段加密取代 Peer DID 的 Mode A 封裝。 傳輸包裝 ≠ 內容密碼學。
我們拒絕傳輸成功就自動匯入。 收件匣的接受仍是必要的。
我們拒絕讓握手順便洩露保管箱金鑰 DID。 身份只透過刻意的應用層承載進入。
收束:加速你已經信任的路徑
跨保管箱共用早已有困難的部分:對等連線、Mode A 封包、本機收件匣、明確接受。就近會面是當面加速器——掃一次開啟短命通道,同一次會面可選地交換信任,再傳遞進同一套收件匣模型。
本系列下一篇:為什麼引導驗證碼必須不上網。再下一篇:小型控制平面訊息與 WebRTC 大量平面,如何在不發明第二套共用格式的前提下傳遞附件。
若你希望就算站在同一個房間,保管箱對保管箱交接仍保持 Mode A,歡迎探索 NT² Vault。
最後更新 2026-12-17
相關故事
- 對等連線不是手機通訊錄聯絡人
閱讀時間 6 分鐘
- 就近控制平面,WebRTC 大量平面
閱讀時間 4 分鐘
- 引導 QR 不上網
閱讀時間 4 分鐘