安全

安全架构

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 秒后自动清空剪贴板。可在保险库设置中配置。