mcampetta/ObsidianQ
GitHub: mcampetta/ObsidianQ
一款基于 Rust 开发的本地优先加密工具,融合后量子密码学与现代加密原语,提供文件加密、安全交付和加密 Vault 等功能。
Stars: 0 | Forks: 0
# ObsidianQ
本地优先、高性能的加密工具,用于文件、文本、Vault、检查以及安全交付工作流。
ObsidianQ 结合了实用的桌面用户体验与现代密码学技术,包括基于密码的保护和用于可信共享的 Secure Contacts 密钥交换。
## 亮点
- 使用密码或 Secure Contacts 密钥模式进行文件加密/解密
- 自解压包工作流,支持便携式 ZIP 和单文件 EXE 输出
- Secure Contacts 身份和可信联系人管理
- 公开身份导入/导出 (`.obsqpub`) 及元数据
- 加密 Vault 工作流(创建、加载、添加/提取/移除、重置密钥)
- 针对 `.obsq`、vault、ZIP 包和单文件 EXE 包格式的容器元数据检查
- 主要文件/Vault 传输操作的流式进度显示
- Windows Shell 集成、包创建快捷方式和文件关联
## 安全模型(概览)
ObsidianQ 围绕本地优先信任设计:
- 加密/解密操作在您的机器上进行
- 私钥保留在用户控制之下
- 公开身份在用户之间直接交换
- 核心工作流无需云密钥服务器
项目使用的核心密码学构建块包括:
- ML-KEM-768 (Kyber) 用于后量子密钥交换
- XChaCha20-Poly1305 用于认证加密
- Argon2id 用于密码加固
- BLAKE3 用于哈希/指纹
## 项目结构
- `crates/obsidianq-cli` - CLI 入口和命令
- `crates/obsidianq-core` - 核心密码学/容器逻辑
- `crates/obsidianq-vault` - Vault 格式和 Vault 操作
- `crates/obsidianq-fs` - 文件系统/VFS 支持
- `tools/windows-gui` - Windows 启动器 (WinForms)
- `docs/` - 规范和设计文档
- `docs/site/` - GitHub Pages 站点模板
## 快速入门
1. 从 `tools/windows-gui` 构建或打开启动器。
2. 启动 `ObsidianQ.Launcher.exe`。
3. 首次运行时,根据提示设置或恢复本地密钥对(推荐)。
4. 使用:
- `File` 用于文件加密/解密
- `Text` 用于短文本加密/解密
- `Vault` 用于加密 Vault 操作
- `Inspect` 用于元数据和完整性审查
- `Self-Extracting Package` 用于便携式密码保护交付
- `Secure Contacts` 用于基于身份/联系人的交换
重要提示:
- `ObsidianQ.Launcher.exe` 和 `obsidianq.exe` 必须保留在同一文件夹中。
- 启动器调用 `obsidianq.exe` 进行运行时操作。
## 快速入门 (CLI)
在仓库根目录下:
```
cargo build --release -p obsidianq-cli
```
示例命令模式:
```
# 加密/解密文件(密码模式)
obsidianq.exe encrypt --in "input.txt" --out "input.obsq" --password-stdin
obsidianq.exe decrypt --in "input.obsq" --out "input.txt" --password-stdin
# 生成密钥对
obsidianq.exe keygen --pubkey "pub.bin" --privkey "priv.bin"
# 导出/导入 Public Identity
obsidianq.exe key export-public --output "identity.obsqpub"
obsidianq.exe contacts import "identity.obsqpub"
```
## 构建
### Rust workspace
```
cargo build
```
### Windows 启动器
```
dotnet build tools/windows-gui/ObsidianQ.Launcher.csproj -c Debug
```
## 跨平台 CLI 构建
- GitHub Actions 矩阵构建:`.github/workflows/cli-matrix.yml`
- 目标平台:Linux, macOS, Windows
- 在版本标签 (`v*`) 上,CLI 二进制文件会附加到 GitHub Release 中
- 本地 Linux/macOS 验证清单:`docs/CLI_LINUX_MAC_TESTING.md`
## 截图 / 演示
站点使用的仓库媒体资源:
- `docs/assets/filetab.png`
- `docs/assets/securecontacts.png`
- `docs/assets/vault.png`
- `docs/assets/demo.mp4`
GitHub Pages 模板:
- `docs/index.html`
有关发布说明,请参阅 `docs/site/README.md`。
## 版本发布与完整性
- 最新版本:`https://github.com/mcampetta/ObsidianQ/releases/latest`
- 版本资产包括:
- `ObsidianQBundle.zip`
- `ObsidianQBundle.sha256`
- 使用前验证包完整性:
```
Get-FileHash .\ObsidianQBundle.zip -Algorithm SHA256
```
将生成的哈希值与发布的 `.sha256` 文件进行比较。
## 备份与恢复
- 密钥备份/恢复指南:`docs/KEY_RECOVERY_AND_BACKUP.md`
- 在启动器中使用设置:
- `BACKUP LOCAL KEYPAIR`
- `RESTORE LOCAL KEYPAIR`
## 当前说明
- 启动器是单实例的,并将文件关联打开操作转发到正在运行的实例。
- Vault 传输工作流现在在可用的情况下使用流式进度解析。
- Secure Contacts 是 UI 中默认的基于密钥的模式标签。
- Explorer Shell 操作支持直接创建包和文件夹包工作流。
## 安全免责声明
ObsidianQ 采用强原语和实用默认值构建,但没有任何软件是无风险的。
请验证您的威胁模型,维护备份,保护私钥,并保持依赖项/版本为最新。标签:Argon2id, BLAKE3, ChaCha20-Poly1305, DNS 反向解析, HTTP工具, ML-KEM, Rust, Windows集成, 二进制发布, 加密保险库, 可视化界面, 后量子密码学, 多人体追踪, 安全传输, 安全容器, 开源工具, 抗量子计算, 数字身份, 数据防泄露, 文件加密, 本地优先, 桌面应用, 端到端加密, 网络安全, 网络安全, 网络流量审计, 自解压包, 通知系统, 隐私保护, 隐私保护