关于数据同步提供内置密钥的讨论

本贴最后更新于 561 天前,其中的信息可能已经物是人非

提供内置密钥不是取代自定义密钥,而是两种密钥生成方式用户自己选择。

  • 内置密钥:通过不可变的用户账号信息(比如用户 ID 等)在云端自动生成并保存密钥
  • 自定义密钥:现有的密钥生成方式,在本地生成并保存密钥

内置密钥的优点:对于新用户友好,用户无需记住密钥,只要登录账号就可以使用内置密钥加解密数据快照

内置密钥的缺点:安全性没有自定义密钥高,技术上开发者是可以解密云端数据的

总得来说,内置密钥是降低一些安全性而提升便利性。

你是否赞同提供内置密钥?

单选 公开 已于 2023-05-18 17:45:00 结束 135 票
赞同
33% 45 票
反对
66% 90 票

如果你投了反对票,方便的话请在评论区描述一下反对的理由,也欢迎在评论区补充其他观点,谢谢。

  • 思源笔记

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

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

    22353 引用 • 89451 回帖
5 操作
88250 管理员在 2023-05-18 09:08:01 取消置顶了该帖
88250 管理员在 2023-05-11 22:29:16 置顶了该帖
88250 在 2023-05-11 19:09:06 更新了该帖
88250 在 2023-05-11 18:54:39 更新了该帖 88250 在 2023-05-11 17:57:25 置顶了该帖

相关帖子

优质回帖
  • 内置方案有悖思源隐私性的特点,主打的安全性将被破坏。托管客户的密钥也将置官方于不利境地,相当于是沦落为跟 Notion、FlowUs、Wolai 同流了。客户无法相信审查是不是就是下一步。

    思源作为一家非常注重云端数据隐私性的笔记厂商,建议借鉴 1Password 在密钥管理方面的经验。在生成密钥时生成“急救包”,告诫用户做好保存。

    SASHUZ63WOFBKF.png

  • bug320 5 赞同

    内置密钥会让人“敏感”起来。而且,忘记密码这种事情,本地都是明文加密,重置密钥上传即可。这个功能,我觉得还是不要加为好。如果要加,第一,不能设置成“默认”的密钥选项;第二,请务必保留自定义密钥功能。

    如果是对小白,可以考虑把这块的帮助说明写的详细点。

    像我这种把个人账号、日记啥的写到笔记软件的人,还是比较在意这块的。从“某来”软件迁出的原因,就是因为知乎上帖子,虽然无法对帖子真假性判断,但还是本着“万一是真的呢”的想法,开始比对市面主要的几款软件,最后选了 siyuan。我当时选择 siyuan,最开始还是冲着“完全本地 ”、“端到端加密”、“国内的软件”去的。

  • yawei 1 4 赞同

    我投了反对票。

    原因:对于我这样的普通用户,不要给我介绍太多技术细节,我需要的只是一个简单粗暴的结论。你就告诉我,如果使用自定义密钥,除了你自己谁也看不到你写的东西。哪怕你写了一些不正确的,不能见光的,ZZ 敏感的东西,只要你保管好自己的电脑,就不用担心这些文字被别人截获。如果是这样,哪怕我同时还在用 workflowy, remnote 等一堆云端笔记,我也不会抛弃思源。

    但如果你告诉我,你的云端数据是会被解谜的哦。哪怕可能性只有 0.00000001%,我打字的时候心里也会有些膈应...我从来没看过 WX,WB 这些 app 的隐私政策,但是有些话我绝对不会在上面说...

    与其说是个技术问题,不如说是个心理问题,或者刻板影响。

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • zuoez02 1 2 赞同 2 评论

    网络安全课程里第一堂课讲的内容:“安全性最重要的不是算法,而是密钥的管理”。啥算法再高级,只要你密钥泄露出去了,基本就是玩完。密钥不做保护,太白搭。甚至可以被内部利用。

    本地客户端,密钥直接就在全局变量里,window.siyuan.config.repo.key。所有插件都可以直接访问的到,S3 配置,window.siyuan.config.sync.s3。拿到这两样,一个思源用 S3 存储的客户的数据就已经可以被插件读走了。假设我做个好用的插件,直接编译压缩混淆,代码审核起来也费劲,完全是有可能的。

    1 回复
    大佬,你这个评论让我一身冷汗啊。我装了一大堆插件
    dd798922110
    完了……对安全性产生怀疑了
    dd798922110
  • 其他回帖
  • 88250

    这个投票的意义我前面简短写过一点,怎么能说没有意义呢……

    不同需求的用户实际上已经通过产品选择过滤了,比如不需要本地数据的用户会选择云端产品,安全性和便利性本身是对立的,我们讨论的意义在于探寻是否存在一个折中方案进行兼顾。

    对于“真正的问题”前面已经讨论过,即内置密钥(甚至是不加密)的需求是客观存在的,但是思源是不是一定要去实现这个需求?思源的受众定位如果不考虑这部分用户的需求是否合理?

    我认为一个产品不可能满足所有人的需求的,放弃一部分需求是合理的。在内置密钥这个具体的需求上,放弃的代价可能就是无法获得更多“小白用户”的青睐,但真正的小白用户会选择本地优先的产品吗?这也是个需要不断思考和讨论的问题。

    我们期望的不是毫无根据的信任,而是能够用技术证明的信任。开发者抛开代码实现谈信任是一种不负责任的做法,用户将希望寄托于开发者人品上也是不明智的,因为人品不能保证安全,但是代码能。

    对于内置密钥就像前面 @zxhd86 提到的那样:“安全不绝对,等于绝对不安全”,一旦我们为思源提供了不足够安全的加密方案,云端数据实际上有很多泄漏的可能性,不只是开发者可以解密,云服务提供商也可以。所以前面 @zuoez02 提出了实现内置密钥后进一步的安全方案,但是这个方案非常难实现,或者说对于我们来说代价过高,已经偏离了现在的目标。

    如果把提供内置密钥看作功能性需求的话,多提供一种选择给用户确实更好;但如果把它看作是非功能性需求的话,提供了内置密钥会导致产品整体安全性降低很多。

    3 回复
  • zxhd86 2 赞同 1 评论

    我投了反对票,是因为在我看来这个是安全不绝对,等于绝对不安全。

    首先,我认为安全性不是下降一点,而是下降到稍微努力就能攻破的地步。

    思源是开源软件,加密算法是公开的。从这个角度来说,开发者和攻击者所站的高度是一致的,假如得到了不可变的账号信息,那么攻破云端数据加密不在话下。也就是说,思源的安全等级从之前的目前技术无法攻破变为了上限是攻破密码即可。如果对于不可变的账号信息的选择不慎,那可能连破解密码都不需要。

    而哪怕是上限,密码所能提供的保护能力是极其低下的,目前 QQ、微信之流都增加了验证步骤,就足以见得。

    其次,思源作为一个实体存在的公司运营的产品,就必须考虑政策的影响。很多时候,不是开发者自己不愿意侵入用户隐私就能如愿的,当你有能力的时候,用户的安全只取决于政策的变动。如果政策需要登记用户的笔记内容(这可能听起来有点扯,但是你必须考虑有这种可能),你作为有能力的开发者,你就必须照做。对于这种问题,最好的做法就是不要打开潘多拉的魔盒,不要触及这种风险。

    最后,说一点题外话,就算有了内置密钥,而且新的用户基本选择了内置密钥,难道就说明他们愿意放弃真正的安全性?他们可能只是不理解这么麻烦的意义,所以从方便起见,选择了只方便一点的方案。对于这些用户,我们更应该教育他们,替他们作出决断,而不是把选择直接交给他们,这在我看来无疑就是一个免责声明而已。

    1 回复
    首先,针对开源软件,加密的原理是破解的代价非常大(耗时是天文数字),理论上就是安全的。同时后端关于审查的内容支持,D 大也要考虑一下如果思源用户再多起来以后,审查的事情要好好考虑一下。
    dd798922110
  • Ocean0117 1 赞同 1 评论

    我投了赞成,是建议提供这个功能,但不改变原有的密钥设置。

    我认为许多低技术用户几乎是不可能区分账户密码与密钥的,在他们看来,一道密码就已经足够保险,他们既不理解再设一遍「密码」的意义,也不会试图去弄清这些云服务上的逻辑。所以,我认为针对这些用户(我个人观点,这部分用户绝不在少数,至少一半以上),启用一个内置密钥是有必要的。

    我认为如果推出这个功能,最好是在安装后第一次打开时和工作空间相同的方式提示,比方,提供三个安全等级选项:

    • 低安全级:内置密钥,保存在服务器上,与账号绑定,配上相关声明,不会主动泄露密钥;
    • 中安全级:由字符串生成密钥,基本不会泄露,但某些特定密码或许有泄露风险;
    • 高安全级:随机生成,安全性高,但最好自己保存;

    把选择权优先交给用户,如果点进去则是各个选项的详细说明,这样或许更能满足普通用户的需要。

    1 回复
    哈,你这个也是一个很好的选择。支持
    dd798922110
  • 查看全部回帖

推荐标签 标签

  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1792 回帖 • 1 关注
  • 创造

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

    179 引用 • 995 回帖
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 614 关注
  • Git

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

    209 引用 • 358 回帖 • 1 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 99 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    77 引用 • 390 回帖
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    26 引用 • 84 回帖 • 2 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖
  • 反馈

    Communication channel for makers and users.

    123 引用 • 911 回帖 • 245 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 629 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖 • 1 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 431 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 2 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 629 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 625 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 629 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖
  • CAP

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

    11 引用 • 5 回帖 • 608 关注
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 211 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖
  • MyBatis

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

    170 引用 • 414 回帖 • 386 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 137 关注