安全架構
Rust/Tauri 技術堆疊、.rkvey v5 格式、隔間、延遲解密與威脅模型。
QubKey 的安全以 分層架構 與 縱深防禦(Defense in Depth) 為原則:檔案系統、.rkvey v5 格式、密碼學與 Rust 應用程式核心在每一步——從儲存到解鎖——保護您的機密。
每一層提供互補保障。即使缺少系統層級保護(例如未啟用磁碟加密),應用層與密碼學層仍會保護您的保險庫。在 v5 格式下,項目的機密 僅在您檢視或複製時解密 —— 開啟保險庫或瀏覽清單時不會解密。
介面(React + Tauri)
- 避難所
- 資料夾
- 搜尋
- 發電機
- 免洗程式碼
- 儀表板
- 同步
- 分享
- 瀏覽器擴充
Rust 核心(QubKey 核心)
- .rkvey v5 格式
- Argon2id 推導
- 認證加密
- 搜尋索引
- 安全提交
- 記憶體清除
- 崩潰恢復
文件系統上的 .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 應對 |
|---|---|---|
| 未授權檔案存取 | 竊取或複製 .rkvey | AEAD 加密 + Argon2id 衍生 |
| 網路外洩 | 雲端攔截 / MITM | Local-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 在多個互補層級組織信任:
-
您控制存取 —— 主密碼及選用的 復原金鑰 控制保險庫存取。QubKey 無法讀取或重設它們。
-
系統整合 —— QubKey 利用作業系統安全:檔案權限、磁碟加密(FileVault、BitLocker、LUKS)、安全儲存(Keychain、Credential Manager)與程序隔離。
-
Rust / UI 分離 —— 全部密碼學在 Rust 核心 中執行,具備編譯期記憶體安全。React UI 透過 Tauri IPC 通訊;WebView 無法直接存取主密碼。
-
謹慎的記憶體處理(v5) —— 解鎖時僅解密標頭與索引。機密與附件保持加密,直至明確操作(檢視、複製、下載)。鎖定時:Zeroization 並清空剪貼簿。
-
瀏覽器擴充 —— 本機 Native Messaging;擴充功能從不取得主密碼。
保護功能
自動鎖定
可設定無操作時間後鎖定保險庫(預設:5 分鐘)。觸發 Zeroization 與剪貼簿清除。
延遲解密
項目機密僅在檢視或複製時解密。清單與檢視不顯示受保護欄位。
Zeroization
鎖定時從 RAM 清除機密(Rust zeroize crate);清空快取,僅在需要時暫時解密。
剪貼簿逾時
30 秒後自動清空剪貼簿。可在保險庫設定中調整。