Logo

安全與隱私白皮書(概述)第4章

第 4 章 認證、授權與存取控制

本章定義了 FileBolt 的身份模型、令牌層和存取控制邊界。 上傳和下載使用短期存取權杖(伺服器端會話、基於查找、過期、範圍)來控制密文和清單存取。 寄件者管理作業使用儲存在客戶端上的長期登入令牌。系統必須支援撤銷,且審核資料必須僅對發送者可見。

4.0 總結

  • 短期訪問令牌: 門密文/清單存取;伺服器端會話(查找);必須綁定到transferId;必須確定範圍;必須過期。
  • 長期登入令牌: 用於寄件者管理(刪除/撤銷/審核);儲存在客戶端;收件者不得使用它來存取密文。
  • 密鑰和授權分離: 令牌僅控制密文存取;解密能力來自 URL 片段中的 CEK(請參閱第 5 章)。

4.1 身份模型

  • 該系統支援用於寄件者管理的付費使用者身分模型。
  • 寄件者登入可以使用一次性魔術連結;身份驗證成功後,用戶端會儲存長期登入令牌。
  • 收件者不需要擁有預設下載的帳戶(請參閱 UX 文件);存取是由連結/令牌控制的。

4.2 授權模型和令牌層

使用兩種令牌類型並嚴格區分責任:

  1. 短期訪問令牌(會話/查找): 用於上傳/下載密文和讀取清單;必須綁定到transferId;必須過期;必須按操作確定範圍。
  2. 長期登入令牌: 用於寄件者管理作業;不得授予解密能力。

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