这是一个专门讨论 idea 的地方。

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

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

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

  •  
  •   est · Mar 18, 2016 · 4874 views
    This topic created in 3885 days ago, the information mentioned may be changed or developed.
    服务器数据太集中,机房被 raid 就全完蛋。 html5 客户端花样这么多,可否设计一个服务器数据可损失的“分布式” 社区?

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

    我又来开脑洞了。
    Supplement 1  ·  Mar 18, 2016
    几个附加条件吧。

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

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

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

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