news 2026/9/3 11:59:23

SiYuan 加密笔记本深度解析:本地数据加密、密钥管理与隐私保护完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SiYuan 加密笔记本深度解析:本地数据加密、密钥管理与隐私保护完全指南

SiYuan 加密笔记本深度解析:本地数据加密、密钥管理与隐私保护完全指南

【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan

SiYuan(思源笔记)是一款开源、隐私优先的自托管知识工作空间,其加密笔记本功能可将本地数据全盘加密:.sy文档、资源文件、数据库文件和 SQLite 索引在磁盘上全部以密文存储,通过主密码和密钥包络机制管理,即使设备丢失或磁盘数据被恢复,没有主密码也只能看到乱码密文。本文将从加密原理、密钥管理、隐私边界到日常使用习惯,带你完整看懂这项隐私保护能力。

🔐 什么是加密笔记本:你的"本地数据保险箱"

在 SiYuan 中,加密笔记本是一种特殊笔记本:创建时输入主密码,之后该笔记本下的所有内容都加密落盘。它与普通笔记本的关键区别如下:

维度普通笔记本加密笔记本
.sy文档明文 JSON 落盘AES-256-GCM 密文落盘,读时透明解密
assets 资源文件明文二进制 + 原始文件名密文存储,文件名脱敏(原始名加密保存)
SQLite 索引库写入全局siyuan.db每个加密笔记本独立 SQLCipher 加密库
全局搜索 / 关系图参与完全不参与(数据物理隔离)
打开方式直接打开需输主密码解锁(约 1 秒密钥派生)

一句话理解:加密笔记本是一个"孤岛"——数据物理隔离、操作走专用入口、普通笔记本零影响。完整的设计规格见官方文档 docs/ENCRYPTED-NOTEBOOK.zh-CN.md。

🗝️ 本地数据加密原理:KEK + DEK 双层密钥架构

SiYuan 加密笔记本采用业界标准的**包络加密(Envelope Encryption)**架构,这也是"密钥管理"的核心:

用户主密码 │ Argon2id(64MB 内存硬度,抗暴力破解) ▼ KEK(密钥加密密钥,仅存内存,用完即弃) │ AES-256-GCM 包络 ├─→ 解开 DEK₁ → 加密笔记本 1 的全部数据 └─→ 解开 DEK₂ → 加密笔记本 2 的全部数据
  • KEK:由主密码经 Argon2id 派生(OWASP 推荐算法),只用于解开各笔记本的 DEK,从不触碰数据本身;
  • DEK:每个加密笔记本独立生成一把 32 字节随机密钥,真正用于加密.sy、assets、数据库文件;
  • 改密码极快:修改主密码只需重新"包络"各 DEK,无需重新加密任何文档,秒级完成;
  • KEK 用完即弃:每次解锁都重新派生,解锁笔记本 A 绝不影响笔记本 B 的锁定状态,隔离性极强。

全局密钥参数(MasterSalt、KEK 校验器、Argon2 参数)由 kernel/conf/notebook_crypto.go 中的NotebookCrypto结构体维护并随conf.json持久化;数据文件层面的透明加解密由 kernel/filesys/crypto_hook.go 的DEKProvider回调注入实现——读盘后解密、写盘前加密,对上层完全透明;密码派生与密钥生命周期管理在 kernel/model/crypto.go 中实现,对外 API 入口见 kernel/api/notebook.go。

📦 加密范围全表:什么被加密,什么不会被

类别是否加密保护
.sy文档正文(含自定义属性)
assets 二进制内容 + 原始文件名
数据库(数据库)文件(列/行/视图配置)
content 与 blocktree 两个 SQLite 索引库✅(SQLCipher)
历史目录中的.sy与数据库快照✅(密文原样存储)
conf.json中的 MasterSalt / 校验器❌(设计上 salt 不保密,verifier 是密文)
元数据(文件数量、目录结构、文件大小、修改时间、资源扩展名)❌(加密不掩盖元数据)

值得注意的细节:加密笔记本的 SQLite 索引物理独立于全局库(siyuan-encrypted-<boxID>.db),因此它天然不参与全局全文搜索、语义搜索、嵌入向量化和关系图——这是"数据不进出孤岛"的底层保障:

🛡️ 隐私保护细节:隔离设计与安全边界

SiYuan 为加密笔记本设计了多层隐私边界(详见 docs/ENCRYPTED-NOTEBOOK.zh-CN.md §9-§12、§16):

  1. 跨边界引用被禁止:普通 ↔ 加密、加密 A ↔ 加密 B 之间的块引、文档移动、数据库镜像全部被拒绝(落库前还会做兜底校验,跨边界引用自动降级为纯文本);
  2. 原始文件 API 全拦截/api/file/getFile等通用接口拒绝读写加密笔记本下的任何文件,防止密文泄漏或明文破坏;
  3. AI/LLM 可见性由解锁状态决定:锁定后 AI、MCP、智能体均无法读取;解锁后与普通笔记本一致——官方建议的安全习惯就一条:敏感内容用完即锁
  4. 重启即锁定:DEK 只存在于进程内存,应用重启后所有加密笔记本强制关闭,需重新输主密码;
  5. 锁定即清理:关闭笔记本会撤销受管 DEK 句柄、删除加密 SQLite 库,并尽力清理内核管理的明文缓存与临时文件。

需要清醒认识到的安全边界:加密保护的是静态数据机密性锁定后的不可达性。解锁期间已授权的应用内调用方(API、插件、AI)可读明文;操作系统交换区、崩溃转储等瞬时副本不在承诺范围内。因此官方建议:日常笔记放普通笔记本,只把真正敏感的内容(隐私日记、财务记录、工作机密、医疗信息)放进加密笔记本

📱 密钥管理:备份、跨设备恢复与修改密码

忘记密码 = 数据永久不可恢复(没有后门),所以密钥备份是密钥管理的第一要务:

  • 自动备份:启用加密或修改密码时,整套密钥材料(MasterSalt / 校验器 / KDF 参数)会刷新到<DataDir>/.siyuan/notebook-crypto-backup.json,并随数据同步进入云端
  • 跨设备恢复零操作:新设备完成同步后,密钥备份自动拉取、内核自动恢复"已启用"状态,直接输主密码即可解锁,无需手动"启用";
  • 手动导出/导入:在设置 → 访问授权 → 加密笔记本可手动导出/导入密钥备份文件,作为同步之外的独立恢复途径(跨账号迁移、离线转存);
  • 备份完整性校验:备份文件带 SHA-256 校验和与 KEK HMAC,损坏或被篡改会被安全拒绝,不会静默放行;
  • 修改主密码:即时完成(仅重新包络 DEK),备份自动刷新。注意官方明确提示:改密不能吊销旧主密码的解密能力,若怀疑旧密码泄露,应把内容迁移到新建加密笔记本(新 DEK)。

🚀 上手步骤:三步启用加密笔记本

  1. 启用:进入设置 → 访问授权 → 加密笔记本,打开开关并设置主密码(双输入确认 + 风险确认)。建议 12 位以上,混合大小写、数字与符号,并用密码管理器保存;
  2. 创建:在文件面板"更多"菜单中选择"新建加密笔记本",输入名字 + 主密码,自动解锁并打开;
  3. 日常使用:点击锁定的笔记本 → 输主密码 → 等待约 1 秒(Argon2id 派生)→ 打开;关闭笔记本即锁定。用完即锁是最重要的安全习惯。

导入.sy.zip/ Markdown 会自动加密落盘;导出需先解锁、导出的是明文,锁定状态下拒绝导出。功能上需注意的边界:加密笔记本不支持闪卡、书签、标签和资源文件重命名(详见设计文档 §14 功能限制)。

✅ 总结:一张表看懂 SiYuan 加密笔记本

关注点结论
加密算法AES-256-GCM(数据)+ Argon2id(密钥派生)+ SQLCipher(索引库)
密钥架构主密码 → KEK(内存)→ 每笔记本独立 DEK,改密秒级
隐私边界孤岛式隔离,不进全局搜索/关系图/AI 嵌入,跨边界操作全部拒绝
恢复能力密钥备份随同步自动分发,跨设备零操作恢复;主密码丢失不可恢复
适合场景隐私日记、财务/医疗记录、工作机密
不适合场景需要全局搜索、跨笔记本引用的日常知识网络

SiYuan 的加密笔记本用"包络加密 + 物理隔离 + 尽力清理"三件套,在完全本地的前提下提供了接近企业级的数据保护——这也是其"隐私优先、自托管"定位的核心体现。更多项目介绍可参阅 README.zh-CN.md,密钥与同步相关实现见 kernel/model/conf.go 与 kernel/conf/box.go。

【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 11:58:52

Windows下AI开发为何首选WSL2:从架构到GPU与Docker全解析

如果你现在还在 Windows 原生环境下跑 AI 开发&#xff0c;大概率是这类体验&#xff1a;装 Python 依赖时总有包编译不过去&#xff0c;明明 ChatGPT / Claude / 各种 Client 用得很顺&#xff0c;一到本地跑模型就各种报错。很多人以为这是电脑配置不够&#xff0c;或者提示词…

作者头像 李华
网站建设 2026/9/3 11:55:32

Windows 部署 Hermes Agent 步骤繁琐?一键整合包快速完成本地搭建

Windows 本地部署 Hermes 太麻烦&#xff1f;这个一键包 5 分钟就能跑起来 很多人想体验 Hermes Agent&#xff0c;但真正开始部署时&#xff0c;往往会卡在环境配置上。 要装依赖、配运行环境、处理路径问题&#xff0c;还可能遇到命令行报错、系统拦截、文件缺失等情况。对…

作者头像 李华
网站建设 2026/9/3 11:51:39

北京全域建筑物矢量数据:带高度属性的三维城市分析实战指南

简介&#xff1a;本资源为2023年北京全域建筑物矢量数据集&#xff0c;面向城市规划、GIS分析、智慧城市研究及灾害模拟等领域的科研人员、工程师与高校师生&#xff0c;解决高精度三维城市建模、空间密度评估与天际线分析等实际问题。数据覆盖北京市全部行政区&#xff0c;包含…

作者头像 李华
网站建设 2026/9/3 11:51:19

Rufus 4.0 不再支持 Windows 7:最低要求 Win8,回退方案 3.22

Rufus 4.0 不再支持 Windows 7&#xff1a;最低要求 Win8&#xff0c;回退方案 3.22 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 如果你的机器还停在 Windows 7&#xff0c;Rufus 4.0 已经打不…

作者头像 李华
网站建设 2026/9/3 11:51:06

基于MediaPipe的舞蹈视频自动拆分与姿态评估流水线

从视频切分到姿态序列标注&#xff0c;我把「split dance」做成了一条自动化流水线。很多编舞作品在后期流传时会被二创拆成“卡点片段”&#xff0c;比如『ch/维粹』这类组合标题里的 split&#xff0c;往往指的是舞蹈中的“劈叉/大跳”动作&#xff0c;也指后期将完整编舞按音…

作者头像 李华