V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
est
V2EX  ›  奇思妙想

如何设计一个 B/S 架构的在线社区,保证服务器被物理拿下也无法得到有价值数据?

  •  
  •   est · 2016-03-18 20:17:15 +08:00 · 3748 次点击
    这是一个创建于 3175 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器数据太集中,机房被 raid 就全完蛋。 html5 客户端花样这么多,可否设计一个服务器数据可损失的“分布式” 社区?

    比如欧洲一台服,美国一台服,双服数据加密互补,物理拿下任何一台服并不能拿出什么有效数据。

    我又来开脑洞了。
    第 1 条附言  ·  2016-03-18 23:16:15 +08:00
    几个附加条件吧。

    1. 需要频繁读写更新。类似 db 的用途。
    2. 抗数据丢失。丢失一个 slice 数据可自动恢复?
    29 条回复    2016-03-31 23:37:40 +08:00
    matsuijurina
        1
    matsuijurina  
       2016-03-18 20:25:13 +08:00   ❤️ 2
    Ethereum 已经可以很容易地让开发者去创建这样的应用了。比如这个,去中心化的微博客:
    https://github.com/yep/eth-tweet
    clino
        2
    clino  
       2016-03-18 20:29:41 +08:00
    哪部分定义为"有价值数据"?
    stabc
        3
    stabc  
       2016-03-18 21:10:32 +08:00
    aws->rds->a-z
    est
        4
    est  
    OP
       2016-03-18 21:13:17 +08:00
    @clino 比如,最简单的例子, 拿到的是没法解密的乱码。
    ifkite
        5
    ifkite  
       2016-03-18 22:17:21 +08:00
    可以。文件系统的话, chubby 已经可以实现 po 主的需求了。

    解决 po 主问题的模式, master/slave
    lhbc
        6
    lhbc  
       2016-03-18 22:19:40 +08:00
    TPM 就行了
    welsmann
        7
    welsmann  
       2016-03-18 23:11:57 +08:00 via iPad
    @lhbc TPM 得硬件支持吧
    est
        8
    est  
    OP
       2016-03-18 23:15:30 +08:00
    @ifkite 这个。。。云文件系统不行呀。不适合数据高速读写,类似 DB 那种场景。
    phoenixlzx
        9
    phoenixlzx  
       2016-03-18 23:20:35 +08:00
    能想到的只有服务器本地数据 PGP 加密,启动后 gpg-agent 从运维的本机密钥解密数据扔内存里。

    如果服务器被 raid 那么拿下来也是加密的数据,内存断电之后解密的数据就没了。速度还快。

    缺陷是每次启动都得运维去解密下数据... 以及需要很大的内存。貌似 telegram 是这样的,只是没放在内存里,而且密钥保存在服务器本地(等于没用
    lhbc
        10
    lhbc  
       2016-03-18 23:57:41 +08:00
    要么启动时手动输入私钥解密, PGP 或者 TrueCrypt 及其 fork 都行
    要么 TPM 技术,支持 TPM 的物理机,虚拟机的话, Hyper-V 支持 Virtual TPM, VMware 好像也支持
    binux
        11
    binux  
       2016-03-19 00:10:55 +08:00
    服务器被物理拿下。。我就不会换上一个不加密版本吗。。
    shiji
        12
    shiji  
       2016-03-19 00:16:07 +08:00
    请问对于内置 TPM 的服务器来说, TPM 能做什么?我目前知道的只有能锁定启动设备顺序和编号,至于 Debian/Ubuntu 下全盘加密比如说 LUKS ,目前并没有找到成熟的工具/方法来使用 TPM 完成。是这样的么?求指导
    xbb7766
        13
    xbb7766  
       2016-03-19 00:20:31 +08:00 via Android
    数据用公钥私钥加密。
    操作系统 /数据库密码错误超过 5 次进入自毁程序这类的(可以在机箱里预置比如红星炸弹)。
    😱
    xbb7766
        14
    xbb7766  
       2016-03-19 00:24:52 +08:00 via Android
    对了, windows 服务器全盘 bitlocker 加密貌似不错。之前一次升级 bios 没关掉 bitlocker 结果把我自己锁在外面了 。😩
    strwei
        16
    strwei  
       2016-03-19 00:40:59 +08:00
    使用文本数据库,然后用 md6 加密,我的网站就是, php+文本数据库
    http://strwei.com
    strwei
        17
    strwei  
       2016-03-19 00:42:56 +08:00
    49
        19
    49  
       2016-03-19 08:34:08 +08:00
    既然物理服务器都被拿下了,管理员有没有可能被橡胶管密码分析呢?
    est
        20
    est  
    OP
       2016-03-19 09:37:47 +08:00
    @49 不至于吧。比如买美国 vps 这种。服务器被拿了就拿了呗。
    clino
        21
    clino  
       2016-03-19 11:02:42 +08:00
    @est 要不就像你前面说的两台服务器,服务器 A 有加密过的数据没密钥,服务器 B 有密钥没数据,每次请求都经过 B 加解密以后和客户端交互
    不过这是后端的不是前端的 而且 B 被拿下 A 不知道的时候还是可以被遍历出所有数据
    est
        22
    est  
    OP
       2016-03-19 17:57:39 +08:00
    @clino 嗯。是这个思路。我在想如何用 html5 实现呢。
    qwlhappy
        23
    qwlhappy  
       2016-03-19 23:52:15 +08:00
    类似于 shamir 门限密码那种?
    3dwelcome
        24
    3dwelcome  
       2016-03-20 02:07:05 +08:00
    @strwei md6 是 hash 啊,不是加密算法吧,你文本变成 hash 后,就没办法恢复过来了吧。
    est
        25
    est  
    OP
       2016-03-20 08:42:51 +08:00
    erevus
        26
    erevus  
       2016-03-23 15:08:16 +08:00
    数据存内存里 redis 咯...断电什么都没了
    louirobert
        27
    louirobert  
       2016-03-31 19:39:15 +08:00
    从 HTML5 客户端是做不到的,这事儿只能从数据库端来做,而且已经做得很成熟了:基本上所有商用数据库都有 Replication 的功能,多部署几个数据库服务器节点,拿掉一个/几个其他的都继续工作。至于数据加密存储,也不是问题。
    est
        28
    est  
    OP
       2016-03-31 22:16:21 +08:00
    @louirobert 那你解释下 新版 mega 网盘。
    louirobert
        29
    louirobert  
       2016-03-31 23:37:40 +08:00
    @est 那是什么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5968 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:33 · PVG 10:33 · LAX 18:33 · JFK 21:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.