安全與隱私白皮書(概述)第4章
第 4 章 認證、授權與存取控制
本章定義了 FileBolt 的身份模型、令牌層和存取控制邊界。 上傳和下載使用短期存取權杖(伺服器端會話、基於查找、過期、範圍)來控制密文和清單存取。 寄件者管理作業使用儲存在客戶端上的長期登入令牌。系統必須支援撤銷,且審核資料必須僅對發送者可見。
4.0 總結
- 短期訪問令牌: 門密文/清單存取;伺服器端會話(查找);必須綁定到transferId;必須確定範圍;必須過期。
- 長期登入令牌: 用於寄件者管理(刪除/撤銷/審核);儲存在客戶端;收件者不得使用它來存取密文。
- 密鑰和授權分離: 令牌僅控制密文存取;解密能力來自 URL 片段中的 CEK(請參閱第 5 章)。
4.1 身份模型
- 該系統支援用於寄件者管理的付費使用者身分模型。
- 寄件者登入可以使用一次性魔術連結;身份驗證成功後,用戶端會儲存長期登入令牌。
- 收件者不需要擁有預設下載的帳戶(請參閱 UX 文件);存取是由連結/令牌控制的。
4.2 授權模型和令牌層
使用兩種令牌類型並嚴格區分責任:
- 短期訪問令牌(會話/查找): 用於上傳/下載密文和讀取清單;必須綁定到transferId;必須過期;必須按操作確定範圍。
- 長期登入令牌: 用於寄件者管理作業;不得授予解密能力。
4.2.2 範圍範例
upload_chunk:上傳特定transferId的密文區塊。read_manifest:讀取特定transferId的清單。download_chunk:下載特定transferId的密文區塊。
4.3 上傳授權
- 上傳 API 必須在接受密文之前驗證令牌範圍和 TransferId 綁定。
- 區塊上傳應該是冪等的 (transferId, fileId, chunkIndex)。
- 如果令牌無效或不匹配,系統必須失敗關閉。
4.4 下載授權
- 清單和密文存取必須需要有效的、有範圍的代幣;代幣必須是有時間限制的。
- 接收者不能列舉其他傳輸或存取綁定的transferId以外的區塊。
- 速率限制可以應用於防止濫用(請參閱第 7 章)而不破壞可恢復性。
4.5 撤銷和提前失效
- 寄件者必須能夠撤銷轉帳;撤銷必須使令牌無法用於後續存取。
- 在可行的情況下,撤銷應該觸發密文的清理/TTL 加速。
- 收件者使用者體驗必須清楚地表明已撤銷/過期狀態和下一步(聯絡寄件者)。
4.6 審核與權限隔離
- 預設情況下,交付證據(下載、計數)必須僅對寄件者可見。
- 審核 API 必須要求傳送者身份驗證,並且必須與接收者存取權杖隔離。
4.7 日誌記錄和敏感資料最小化
- 日誌不得包含 URL 片段、CEK 或可衍生的金鑰材料。
- 日誌應盡量減少個人資料並關注與安全相關的事件(令牌失敗、撤銷、速率限制)。
- 錯誤訊息必須是可操作的,但不得洩漏秘密。
4.8 相關聲明 ID
- See 附錄:索賠 ID 為權威測繪。