为何 Joplin 的作者们都这么固执

2021-05-17 11:20:54 +08:00
 raysonlu

最近为知会员提示即将到期,基于为知对 markdown 编辑器的落后以及使用一年中遇到不少问题(有反馈),想换个笔记。留意到了 joplin 感觉很不错,特别是多端使用,有本地化端到端加密功能,编辑器初步使用起来也没发现什么 bug 。可是它没有对笔记加锁的功能。

插个题外话,这个加锁功能,在现有的知名云笔记中其实也很少见,唯一见到有的是有道和为知,有道的实现方式是请求服务器密码校验,为知应该是通过证书密码校验并定期更新和同步证书,这两种实现方式各有利弊,且两款笔记的其他基础功能在深入使用后发觉也不尽人意,印象是全锁,这种与“单个笔记加锁”完全是两个需求场景。

抱着希望的心情想向 joplin 提交一下这个建议,毕竟好歹也是个开源项目。然后发现,这个需求在 2 年前就已经被提出! https://github.com/laurent22/joplin/issues/289 现在对新功能的建议提交都转到这个地方讨论了 https://discourse.joplinapp.org/t/is-it-possible-to-password-lock-the-application-upon-opening/122/13

看完后我哭笑不得,貌似作者们一直不愿意添加这个功能,他认为:

我感觉作者们对这个需求一直理解错误,或者不愿意去理解。对单个笔记加锁,是不少特殊使用场景都需要用到的功能,而且不少用户都说明了这样的场景,但他们就是不干,有点类似程序员有时候无脑反驳产品经理的需求那样。

18320 次点击
所在节点    程序员
131 条回复
no1xsyzy
2021-05-17 13:50:37 +08:00
@3dwelcome 加密需求应当用更正确的、更简单的方法实现
而不是像这样这样每个地方以各自微妙的差异实现一遍

你有信心比 ssh version 1 实现得更正确吗 ;P
你有信心实现得比各种全盘加密更简单吗?(尤其你可以单独加密一个分区,并且推迟到使用该分区时才需要解密。)
raysonlu
2021-05-17 13:51:31 +08:00
@encro 具体实现代码还没扒,我感觉可以参照 joplin 自己的端到端加密流程:PC 设置了加密,或更新了加密,其他端也会自动知道要怎样加密解密。
zlbruce
2021-05-17 13:55:36 +08:00
楼主提到的需求,其实更一般的应该是对笔记有不同的安全级别,这种需求应该还是存在的。
wee911
2021-05-17 14:00:46 +08:00
作者说的在理啊
3dwelcome
2021-05-17 14:05:28 +08:00
@no1xsyzy case by case, 不同加密你不要混为一谈。

纯文本加密,你只要能防止黑客用彩虹表之类的暴力破解,就已经足够了。

如果防不住,那你用别的加密方案,同样也防不住。
3dwelcome
2021-05-17 14:12:13 +08:00
@no1xsyzy “加密需求应当用更正确的、更简单的方法实现”

你是指用系统加密 API 或者用标准开源库吗?不好意思,黑客最喜欢这种加密方法了。直接 API HOOK 一下,下个断点,就能找到密钥所在。

安全性也要顾及一点黑盒概念,不是常规加密方案,让黑客猜不透黑盒运行原理,无从下手,这才是提升安全系数最好的方法。
Greenm
2021-05-17 14:20:13 +08:00
帖子里大部分都是反对楼主意见的(当然也包括我),这个时候更明智的选择是使用 veracrypt 或者 1password 这样的工具对重要的东西加密。

如楼上所说,一旦决定加了这个需求,那么必须要考虑到这部分的逻辑严密和后续的需求,加密做得不够好不如不做,这样就不用骗人骗己。

要么放弃选择其他路线,要么给钱。
Greenm
2021-05-17 14:23:19 +08:00
其他的讨论我还能忍,# 66 楼这样的认知简直刷新了我的认知下限。

“安全性也要顾及一点黑盒概念,不是常规加密方案,让黑客猜不透黑盒运行原理”

原来信息安全和密码学也有民科,还好大部分人不这样认为。
raysonlu
2021-05-17 14:24:49 +08:00
@3dwelcome 其实我觉得,如果大家能把`加密`,和`加锁` 区别理解起来,就好很多了。
raysonlu
2021-05-17 14:27:32 +08:00
@Greenm 区别一下"加密"和"加锁",加密的话,joplin 已经做得很好了,veracrypt 或者 1password,都不符合"对单个笔记加锁”的需求,宛如#48 说的,只能 Joplin 自己能做了~
3dwelcome
2021-05-17 14:33:29 +08:00
@Greenm 你知道现在软件加密加壳,都是用虚拟机来防破解吗?这和黑盒加密一个道理。

直接调用系统加密 API,对黑客来说就相当于看开源代码,也不知道这点有什么值得你们去骄傲的。

我压根也没想造瑞士银行,就想把家里的保险柜,自己软件弄弄结实。有那么难理解吗?
no1xsyzy
2021-05-17 14:38:12 +08:00
@3dwelcome “加密需求应当用更正确的、更简单的方法实现” 当然是用内核态提供的加密,用户态下拿不到 Hook 的。
倒不如说你都能 Hook 了,直接扫目标软件的内存不就行了?
VeraCrypt 操作看上去比开笔记输入密码简单多了。
黑盒玩法不适用密文体系,这都已经被淘汰了,向落后进化。
3dwelcome
2021-05-17 14:41:30 +08:00
@raysonlu "其实我觉得,如果大家能把`加密`,和`加锁` 区别理解起来,就好很多了。"

这些人都是为怼而怼,都没有软件安全分层的概念。

我源代码部分文本都加密,要连测试服务器,安全性没那么非常重要,但也肯定不希望密码以明文形式展示出来。

也许 Joplin 也可以考虑这种部分文本嵌入式加密。终端密码也只有访问的时候,用户前端输入后才有。无暴力破解,无密钥保存。
ParfoisMeng
2021-05-17 15:05:36 +08:00
啊这……
exonuclease
2021-05-17 15:12:40 +08:00
bitlocker/windows hello 还不足以保护你的笔记吗 你笔记里面有核弹发射密码?
nikan999
2021-05-17 15:30:04 +08:00
第一 这个需求对 90%的场景不适用。
第二 我们确实需要考虑 10%的场景,楼主的这个需求满足少部分场景,合情合理
第三 开源项目为爱发电,是不是应该考虑赞助作者实现这个功能
itgoyo
2021-05-17 15:54:58 +08:00
之前听了一个 ggtalk padcast 关于微信的,现在想想嘉宾当时说得好有道理,每个人都觉得自己提出来的需求很重要,但是并没有想过到底有多少人会用,更没想过会有多少人会愿意付费。想太多,有本事自己搞不就行了
ragnaroks
2021-05-17 16:01:13 +08:00
你 fork 原项目自己改,如果有更多人用你的发布,那么说明你是对的,反之~
hui314
2021-05-17 16:03:50 +08:00
有道加锁的笔记在 document 能找到明文。不知现在是否还是一样。
raysonlu
2021-05-17 16:08:31 +08:00
@hui314 试试为知的那个加锁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/777378

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX