V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
clip
V2EX  ›  问与答

用什么方式来保证用户数据的私密性?

  •  
  •   clip · 2018-12-16 22:48:42 +08:00 · 2412 次点击
    这是一个创建于 2173 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如有一个笔记型的应用,用户可以创建笔记。

    那么怎么尽量保证用户笔记的私密性呢,包括但不限于:开发者不能直接看到用户的数据,网站遭遇攻击后用户的笔记内容不被泄露……

    语雀有提到双重密钥加密,但总觉得密钥应该也是存在服务器上的,同时拿到内容和密钥还是能解开。

    8 条回复    2018-12-17 13:28:13 +08:00
    dot2017
        1
    dot2017  
       2018-12-16 23:20:15 +08:00
    那为什么用户不直接上传加密后的笔记文件呢
    mason961125
        2
    mason961125  
       2018-12-16 23:21:15 +08:00
    这是道德 /法律问题,不是技术问题。
    iConnect
        3
    iConnect  
       2018-12-16 23:22:54 +08:00 via Android
    如果用户使用 yuque 进行黄赌毒的联系呢,你觉得资料也不可能看的到吗?个人隐私的资料还是本地多备份,企业核心机密自建最靠谱。
    t6attack
        4
    t6attack  
       2018-12-16 23:28:44 +08:00
    理论上不可行,除非把私钥交给用户自己保存。
    客户端可以把密钥放在用户设备上。web 端只能每次访问时让用户自己提供密钥。

    另外:如果用云主机,那么云主机厂商也可以轻松拿到你所有的数据。
    不管怎么加密,用户的明文数据一定在云主机的 内存 中出现过。云主机的内存对宿主机是完全透明的。拿你的数据,不是能不能的问题,只是想不想的问题。

    刻意强调连自己都拿不到数据。这就相等于在说:我们对 XX 云比对自己还信任。
    takato
        5
    takato  
       2018-12-16 23:37:30 +08:00
    已经有了类似的。
    https://www.graphitedocs.com/

    要做到这一点,密钥一定只能交给用户保存。
    但是要这么做,和某些监管条例是违背的,比如现在的澳洲就不行。
    clip
        6
    clip  
    OP
       2018-12-17 10:50:59 +08:00
    1. 最简单的是直接把用户数据明文存,但这样开发者可以直接通过数据库看到用户的内容。

    2. 然后前面只考虑了隐私没考虑法律监管。( cc @mason961125 @takato @iConnect )再就是数据库存一个加密后的内容,密钥也存在服务器上但分隔开,有一层加解密的操作。开发者**不能直接**看到数据库中内容。但执行一下解密程序还是能看到。可以一定程度上提高解密程序的权限,剩下的估计就是道德和法律问题了。

    3. 还有就是类似 1Password 那种的用户自己设置一个密钥,直接在客户端加解密,网络上传输给交给服务器的都是加密后的数据( cc @t6attack 这样就不用担心云主机了吧),坏处是不能找回密码,丢了的话数据就全丢了。( cc @dot2017
    不上传加密后的一方面是为了便捷性之类的吧)

    4. 云存储方案是把笔记存储放到类似 iCloud 的存储上,直接客户端和云存储通信,相当于把锅甩给了 iCloud。这样应用的开发者看不到数据。

    综合考虑可能选择 2 或 4 比较合适。

    我回头再研究下 graphitedocs,多谢 @takato
    agagega
        7
    agagega  
       2018-12-17 12:37:47 +08:00 via iPhone
    @clip 2 主要是防泄露,3 应该是端到端加密的做法了
    peihanw
        8
    peihanw  
       2018-12-17 13:28:13 +08:00
    https://tutanota.com/ 据说是全程加密且开源的,供参考
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3193 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:36 · PVG 08:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.