如何设计一个 B/S 架构的在线社区,保证服务器被物理拿下也无法得到有价值数据? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

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

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

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

  •  
  •   est 2016-03-18 20:17:15 +08:00 4146 次点击
    这是一个创建于 3500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    服务器数据太集中,机房被 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     Solana     2626 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:20 PVG 22:20 LAX 07:20 JFK 10:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86