安全

安全架構

Rust/Tauri 技術堆疊、.rkvey v5 格式、隔間、延遲解密與威脅模型。

QubKey 的安全以 分層架構縱深防禦(Defense in Depth) 為原則:檔案系統、.rkvey v5 格式、密碼學與 Rust 應用程式核心在每一步——從儲存到解鎖——保護您的機密。

每一層提供互補保障。即使缺少系統層級保護(例如未啟用磁碟加密),應用層與密碼學層仍會保護您的保險庫。在 v5 格式下,項目的機密 僅在您檢視或複製時解密 —— 開啟保險庫或瀏覽清單時不會解密。

UI

介面(React + Tauri)

  • 避難所
  • 資料夾
  • 搜尋
  • 發電機
  • 免洗程式碼
  • 儀表板
  • 同步
  • 分享
  • 瀏覽器擴充
Core

Rust 核心(QubKey 核心)

  • .rkvey v5 格式
  • Argon2id 推導
  • 認證加密
  • 搜尋索引
  • 安全提交
  • 記憶體清除
  • 崩潰恢復
Storage

文件系統上的 .rkvey v5 文件

  • 前言
  • 加密標頭
  • 加密索引
  • 秘密隔間
  • 附件
  • 提交歷史

安全層級

解鎖流程

解鎖遵循嚴格管線:主密碼進入 Rust 核心,Argon2id 衍生主金鑰,子金鑰解密標頭與 B-Tree 索引。項目的 隔間(機密、附件)保持加密,僅在需要時 讀取。鎖定時從記憶體清除所有金鑰與機密資料。

主密碼+鹽

.rkvey 前言(明文)

  • 進入 Rust 核心(Tauri IPC)—從未暴露於 WebView
  • 隨機鹽儲存在前導碼中(16 位元組)
韓國發展基金

氬氣2id

  • 64 MB RAM · 3 iter · p=4(預設為“KdfParams”)
  • GPU/ASIC 抗性
  • 校準約 250–500 毫秒,取決於平台

萬能鑰匙

256 位元 · `KeyManager::derive_master_key`

子金鑰派生

HKDF-SHA256(主控,鹽=文件∥條目,資訊=種類)

標頭鍵

安全標頭

索引鍵

B 樹索引

隔間鑰匙

隔間

AEAD解密

  • AES-256-GCM 或 XChaCha20-Poly1305
  • 標題·索引·隔間(按需)

解鎖後內存

  • 清單/檢視:僅元數據
  • 僅根據需要解密機密和附件

  • `KeyManager::clear_keys()` + 歸零
  • 秘密被抹去,剪貼簿被清除

威脅模型

QubKey 針對本機密碼管理器最常見的威脅情境設計。下表說明攻擊向量與內建對策(.rkvey v5 格式)。

威脅向量QubKey 應對
未授權檔案存取竊取或複製 .rkveyAEAD 加密 + Argon2id 衍生
網路外洩雲端攔截 / MITMLocal-first:QubKey 不上傳您的機密
資料損壞寫入時當機已驗證僅追加提交 + 啟動時復原
保險庫竄改手動修改檔案依隔間 AEAD 認證 + 校驗和
記憶體快照(瀏覽中)保險庫已解鎖,清單/檢視機密保持加密直至您檢視
弱主密碼離線暴力破解校準 Argon2id(約 500 ms)+ 熵偵測
密碼重複使用其他網站外洩安全儀表板(本機偵測)
剪貼簿外洩複製機密剪貼簿逾時(30 秒)+ 鎖定時清除
側通道攻擊密碼操作時序恆定時間實作(RustCrypto)

最佳實務

本模型涵蓋 QubKey 透過架構直接應對的威脅。為獲得最佳保護,請結合系統最佳實務:啟用磁碟加密、保持系統更新、使用強主密碼。

內建保護

領域QubKey 如何保護您的資料
靜態資料AEAD(AES-256-GCM / XChaCha20)、Argon2id 金鑰、依隔間獨立金鑰
保險庫完整性已驗證僅追加提交、校驗和與原子寫入
機密性Zero-Knowledge:機密在裝置上保持加密
延遲解密清單與檢視不含機密;檢視/複製依需求進行
金鑰衍生校準 Argon2id(約 500 ms,64 MB)保護主密碼
應用程式隔離 Rust 核心、Tauri IPC UI、鎖定時 Zeroization
瀏覽器擴充本機 Native Messaging —— 擴充功能從不取得主密碼
同步選用加密多裝置同步(雲端或自託管),或加密 .rkvey 檔案(雲端、USB、NAS)

信任架構

Zero-knowledge

QubKey 在多個互補層級組織信任:

  1. 您控制存取 —— 主密碼及選用的 復原金鑰 控制保險庫存取。QubKey 無法讀取或重設它們。

  2. 系統整合 —— QubKey 利用作業系統安全:檔案權限、磁碟加密(FileVault、BitLocker、LUKS)、安全儲存(Keychain、Credential Manager)與程序隔離。

  3. Rust / UI 分離 —— 全部密碼學在 Rust 核心 中執行,具備編譯期記憶體安全。React UI 透過 Tauri IPC 通訊;WebView 無法直接存取主密碼。

  4. 謹慎的記憶體處理(v5) —— 解鎖時僅解密標頭與索引。機密與附件保持加密,直至明確操作(檢視、複製、下載)。鎖定時:Zeroization 並清空剪貼簿。

  5. 瀏覽器擴充 —— 本機 Native Messaging;擴充功能從不取得主密碼。

保護功能

自動鎖定

可設定無操作時間後鎖定保險庫(預設:5 分鐘)。觸發 Zeroization 與剪貼簿清除。

延遲解密

項目機密僅在檢視或複製時解密。清單與檢視不顯示受保護欄位。

Zeroization

鎖定時從 RAM 清除機密(Rust zeroize crate);清空快取,僅在需要時暫時解密。

剪貼簿逾時

30 秒後自動清空剪貼簿。可在保險庫設定中調整。