关于实现笔记本地加密的再思考

本贴最后更新于 576 天前,其中的信息可能已经时移世易

之前在“关于使用软链接特性实现思源笔记本加密的一些思考 - 链滴 (ld246.com)“里面对思源笔记本加密的实现方式进行了一些思考,但因为会由于一些配置文件而造成笔记的泄漏,所以被否决了。

日常中,加密笔记对我是个非常必要的需求,而且会频繁的来回在加密笔记和非加密笔记之间切换记录,并相互参照,于是就使用不同工作空间来分别记录加密笔记和非加密笔记,但来回频繁切换空间实在是一项折磨人的体验,而且不能相互对照,所以我就又对思源实现加密的方式进行了思考,期望 D 大能考虑考虑。

之前讲的方案中既然只加密笔记本,可能会由于一些配置文件造成而造成泄漏,那就将加密的范围扩大到整个工作空间,但这就有个弊端,需要来回切换空间,所以期望思源能够支持同时加载多个工作空间,并且能够像笔记本那样做到无感切换。

目前,我能想到的若是思源能支持同时加载多个工作空间的好处:

  1. 实现笔记本地加密。若是思源有精力弄自带加密功能的话,则可以在现在的新建笔记本的基础上再提高一级,加入一个新建工作空间的按扭,并且给出选择:“新建非加密空间”、“新建加密空间”。若是没精力,可先支持多空间同时加载,用户使用第三方加密软件进行加密。
  2. 实现差异同步,减轻云端压力。实现多空间支持后,就可以进一步实现对哪些工作空间进行同步,哪些不同步,这样在阅读扫描 PDF 时,就不用担心云端空间不够用了,可以将 PDF 直接丢在非同步空间进行阅读。
  3. 方便引入更多具有特色功能的工作空间。未来“协作”这一块不知 D 大是如何构思的,我想可以通过引入“新建协作空间”来限制协作笔记内容的乱放,以保护私人笔记的干净。
  4. 可以作为一个会员功能进行收费。免费版 1 个或 2 个工作空间,已足够未付费用户进行使用体验了,付费深度使用用户则可以体验更多的空间功能。
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    19810 引用 • 75845 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • LRJ

    思源笔记的锁屏加密功能,虽然加密了空间,但是只要人家能找到空间的 文件路径,就能复制出所有笔记本,新建文件夹,依然能无密码,全方位看所有笔记的内容,这种加密形同虚设,跟被裸奔了一样。

    我试验了一下加密。eg:

    1.我的工作空间 A,文件路径在 D 盘:A 文件夹,我对其加密后,确实,在一起启动思源笔需要密码。

    2.我在 D 盘:A 文件夹路径下,找到 data 文件夹,复制里面的笔记,然后存放到 C 盘:B 文件夹,用思源笔记设置“C 盘:B 文件夹”为工作空间 B,不用密码,就能读取工作空间 A 的所有笔记本。

    建议,设置一个可以独立加密整个笔记本,而非单个笔记的加密方式,并且支持 3 种加密方式:① 整个笔记本支持端到端加密;② 整个笔记本支持本地加密 ③ 导出真个笔记本,用 U 盘复制到别的电脑也需要密码。这能满足用户在办公室电脑的高加密需求。

  • 其他回帖
  • @LRJ 我正在收集大家的意向,你可以在下面这个帖子回帖并投票:

    是否提供文档级“加密”以保护隐私?(含投票)

  • LRJ 1 赞同

    思源笔记的锁屏加密功能,虽然加密了空间,但是只要人家能找到空间的 文件路径,就能复制出所有笔记本,新建文件夹,依然能无密码,全方位看所有笔记的内容,这种加密形同虚设,跟被裸奔了一样。

    我试验了一下加密。eg:

    1.我的工作空间 A,文件路径在 D 盘:A 文件夹,我对其加密后,确实,在一起启动思源笔需要密码。

    2.我在 D 盘:A 文件夹路径下,找到 data 文件夹,复制里面的笔记,然后存放到 C 盘:B 文件夹,用思源笔记设置“C 盘:B 文件夹”为工作空间 B,不用密码,就能读取工作空间 A 的所有笔记本。

    建议,设置一个可以独立加密整个笔记本,而非单个笔记的加密方式,并且支持 3 种加密方式:① 整个笔记本支持端到端加密;② 整个笔记本支持本地加密 ③ 导出整个笔记本,用 U 盘复制到别的电脑也需要原设定的密码才能访问笔记本内的内容。这能满足用户在办公室电脑的高加密需求。

    1 回复
  • 经过一系列改进 Issue #6336 · siyuan-note/siyuan Issue #6337 · siyuan-note/siyuan Issue #6343 · siyuan-note/siyuan Issue #4952 · siyuan-note/siyuan 目前已经基本具备多开工作空间的基础,还有一些细节问题需要解决:

    • 判断重复打开相同工作空间处理
    • siyuan:// 协议拉起时处理

    请关注 Issue #4567 · siyuan-note/siyuan

    2 回复
  • 查看全部回帖

推荐标签 标签

  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 456 关注
  • 笔记

    好记性不如烂笔头。

    306 引用 • 782 回帖
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖 • 1 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 234 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 96 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    175 引用 • 992 回帖 • 1 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 611 关注
  • 反馈

    Communication channel for makers and users.

    124 引用 • 907 回帖 • 210 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 582 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 20 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    229 引用 • 1450 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    140 引用 • 441 回帖
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 320 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    942 引用 • 1458 回帖 • 117 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 26 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 58 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 2 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 405 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    138 引用 • 268 回帖 • 147 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 350 关注
  • sts
    2 引用 • 2 回帖 • 162 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    207 引用 • 358 回帖
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖 • 2 关注