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

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

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

众筹一个安全可靠的云存储服务

  •  1
     
  •   Actrace · 2014-07-26 11:38:28 +08:00 · 3594 次点击
    这是一个创建于 3776 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先,要继续看下去,你需要认可以下观点.
    #1,我们无法完全相信所有的服务商能永存,即使是Dropbox,也总会有破产的一天.
    #2,自己没有实力去建设云服务,必须使用别人的服务,无论是免费还是付费.
    #3,只要在服务商那里保存了你的账号数据,就不存在绝对安全性.

    基于以上两点,我认为我们需要的是一个"众筹"的云存储服务.
    因此,这个云存储服务必须具备以下特点.
    1,绝对安全性,单方账号系统.类似于比特币网络,由客户端管理元数据,并将需要保存的用户文件数据加密发送到存储服务节点,存储服务节点不存在审查数据的可能性,也无法获得客户端用户相关任何数据.
    2,多个存储服务提供者,不管提供者是免费还是付费,当然,基于我们之前认可的观点#1,我们还需要获得存储节点之间进行数据迁移的功能,因为任何服务提供者都可能在明天暂停服务.

    因此,总结了一下,其实就是把现在所有云存储服务的账号系统和文件系统搬到本地,任何人都是一个服务端,而存储服务提供者则专门负责提供存储服务节点.
    因为无法信任任何存储服务提供者(无论是Dropbox,还是iCloud),我们需要准备多个存储服务提供者,你可以选择大型提供商提供的服务节点,也可以选择邻居家的PC机提供的存储服务节点.
    14 条回复    2014-09-29 08:44:57 +08:00
    TwoBall
        1
    TwoBall  
       2014-07-26 12:06:09 +08:00   ❤️ 1
    我不会说我还把我跟我妹子的X照放在360云盘上。。。
    mongodb
        2
    mongodb  
       2014-07-26 12:08:22 +08:00
    加密数据+P2P网络+tracker嘛。。。

    现有技术有了。

    怕存储方跑路多设置几个备份就行,有DHT也没中心信息存储节点什么事了。

    尽管不完备,但楼主还是可以看下aerofs和btsync的资料,在这个基础上来就行了。

    上次看到这样的帖子是在一个游戏论坛里,差不多的观点。甚至有人立即开工去做了。后来这个论坛倒闭了,我们都在用开源私有云了。毕竟数据只要在“别人有权限接触”的机器里,就没有什么绝对安全的。至于说担心算法的安全问题,这个就和担心自己的数据被FBI研究一样……
    Actrace
        3
    Actrace  
    OP
       2014-07-26 12:26:11 +08:00
    @mongodb 为啥会提到那个论坛倒闭了 - -
    qq529633582
        4
    qq529633582  
       2014-07-26 12:52:20 +08:00
    #1. 破产这种事情通常不会瞬间发生,破产前会有征兆出现,可以赶紧回收数据,即便破产一般也不会卖硬盘还债,因此Dropbox这种规模的服务即便破产了相信也会有拿回数据的方式的
    #3. 即便通过一个P2P网络,数据也总是存在某些设备上的,只不过被加密了或是分段了。因此数据的安全性和存在哪里好像没什么关系。服务商和下面的“大型提供商的节点”本质上应该是一致的,为什么前者“不存在绝对安全性”而后者“绝对安全”呢?

    问题
    #0. 如果很多人把大量的数据扔进这个网络里,然后数据越来越多自家的硬盘被撑爆了咋办呢?
    #1. 目前国内这些网盘提供如此之大的空间是因为许多大文件(如盗版电影)只要存储一份即可。如果大家都加密了,这些相同的盗版电影经过不同key的加密成为了不同的文件,服务器的存储压力就变得相当大了,价格也会噌噌往上涨。

    目前我的大部分数据用自己改的AES加密后扔在国内某些(多个)网盘上,电脑上存储一份密钥表,外置硬盘上维护两份镜像和密钥表;重要数据(少量)加密后存在Dropbox、Mega等服务上,另外打印若干份密钥表藏在不同地方。

    另外“众筹”不是这个意思吧
    mongodb
        5
    mongodb  
       2014-07-26 13:57:46 +08:00
    @Actrace = = 随便感慨下。。。
    Actrace
        6
    Actrace  
    OP
       2014-07-26 14:09:55 +08:00
    @qq529633582
    其实可以这样理解,我们大家用一套统一的标准去建立了一个线上的云存储服务.
    用户使用这套标准的客户端存储数据.
    提供者使用这套标准的服务端为用户提供存储服务.

    #关于安全问题
    现在的服务商会保存用户的私人数据,包括整个云端文件系统的方方面面.这显然是不具备绝对安全性的.不管服务商用了何种技术来保护我们的数据,都可能迫于某些因素导致我们的数据遭到未授权的访问,因为服务商也具有对我方数据的操作能力.

    举一个简单的例子,劫匪可以逼你说出你自己的银行卡密码,但是无法逼你说出其他人的银行卡密码.
    当把用户数据的所有关键部分都存储到用户方的时候,就可以从根本杜绝这个问题的产生.

    #关于存储利用率和服务容灾能力
    其实这是一个很矛盾的地方,如果我们要提升存储利用率,就肯定要降低重复数据的频率.
    想要提升服务容灾能力,防止服务商跑路带来的损失,就需要建立冗余.
    所以,在这套架构中,你只能建立自己的理想平衡,无法建立公共的理想平衡.
    如果想要建立以存储利用率为主要目标的架构,那么将会是另外一套方案(其实传统的DHT网络就是为了解决这个问题).

    #为什么是"众筹"
    其实,是为了解决你在最后提出的成本问题.
    这个架构设计的目的,是为了提升数据存放在不可控制位置的安全性和可用性为主要目标的,大型服务商估计不愿意那么干(指的是那些使用文件特征来提高存储利用率的存储系统的服务商).所以,当这部分商业服务无法使用的时候,就需要我们自己来建立这套服务.
    基于现在的网络性能已经得到了相当程度的提升,相信在未来也能继续得到提升,因此这个构想才有可能得到实现.
    也就是人人都能成为存储节点服务的提供者(无论是免费还是付费).
    现在TB级的硬盘已经越来越普遍了,大部分人其实用不到那么多的空间,如果可以将这部分空间共享出来,甚至还能获得收益,何乐而不为呢?
    jybox
        7
    jybox  
       2014-07-26 15:14:44 +08:00
    我对这个想法还是很感兴趣的,可以参考 btsync, 在 btsync 的基础上加上端到端加密,然后加上一个用于评估用户贡献的系统。
    qq529633582
        8
    qq529633582  
       2014-07-26 15:23:58 +08:00
    @Actrace

    mega这种就是客户端加密上传的,服务器接触不到明文

    硬盘的确是越来越普遍便宜了,但是我想厂家也会考虑到这一点,在一般家用机型上不会浪费太多空间(虽然现在浪费得挺多的^_^)。
    我提到的存储压力其实主要来自攻击者(死命往网络里扔数据)、烂尾数据(扔进网络然后上传者消失了,没有人来删除数据(也许可以timeout?))和过多备份。
    看上去只有收费能解决这一问题,可是既然产生了货币流通,就很难逃出国家的监管了(如果你用匿名货币国家就取缔该货币)。
    另外如果我号称有巨大硬盘帮大家存储数据,但卷钱跑了咋办呢?

    话说这种方案和把数据本地加密后上传到多个普通云存储服务在数据安全上的本质区别在哪里呢?
    Actrace
        9
    Actrace  
    OP
       2014-07-26 19:07:26 +08:00
    @qq529633582

    好吧,我目前购入的存储设备总容量已经差不多5TB了...实际上加起来用不到500GB....每次买存储设备的时候,总会不自觉买那个最大的 - -...虽然没买几次...

    货币问题不在讨论范围之内...没说做成比特币之类的玩意啊...我是说参考比特币的运作模式- -

    这个架构,目的是很明确的.而且信誉这种东西,不是靠架构能够解决的问题.话说我们把钱存到银行,银行就能绝对保证不跑路么?
    Herac1es
        10
    Herac1es  
       2014-07-26 20:42:59 +08:00
    第一,倒闭前公司一定会提前通知用户做好迁移准备的。
    第二,存储电影这类共享资源可以,个人文件怎么存?个人节点比公司服务器更不靠谱。

    想安全还是找外国公司吧,在大陆别想隐私这回事。还可以用spideroak嘛,斯诺登推荐哦
    qq529633582
        11
    qq529633582  
       2014-07-26 20:50:06 +08:00
    @Actrace

    咦,也许是我没说清楚。

    空间问题嘛,目前我是两块HDD共3TB,一块SSD 256GB,实用约650GB,有一份镜像共约1300GB。但是经过观察,身边的人硬盘里几乎没有啥东西。(尼玛为什么我的照片就有80GB+而身边大多数人文件总量(不计操作系统和软件)不足100GB)因此,他们只有一块硬盘,而且是嵌在电脑里的。重要数据被分在U盘、网盘里,最重要的数据打印放在保险柜里。大量的读写会不会弄坏这块宝贵的盘盘呢?

    提出货币问题是因为如果不收费容易产生浪费P2P网络中空间的现象,因此要收费。用传统货币国家可以直接控制,用虚拟货币国家可以打击兑换渠道。于是免费容易被攻击和滥用,收费容易遭到国家打击。

    数据安全包括防止数据丢失和防止数据泄密。
    0. 防止数据丢失
    这个协议如何防止云存储提供者跑路呢?方法是首先将“云存储提供商”改名叫“存储节点”^_^,然后一份文件存在多个相关度较低的节点上。如果一个节点跑路,那么我们还有好几个节点,而且可以再启用一个新节点代替跑路节点。也就是说其实就是多用几家存储商?
    银行的例子个人觉得不大贴切,一家银行跑路了,那存在这个银行里头的钱都没了(不考虑保险啥子的)在其他银行里也存有钱并不能弥补在这家银行丢了钱的损失。但是数据可以轻易地复制,在其他节点存储的数据备份完全可以使我们无视这个节点的消失。
    1. 防止数据泄密
    嗯,加密,少喝酒(小心被灌醉了供出密钥)然后数据存在哪里应该都差不多吧?
    L42y
        12
    L42y  
       2014-07-27 07:59:03 +08:00
    你需要这个: Camlistore http://camlistore.org/
    c742435
        13
    c742435  
       2014-07-27 08:22:37 +08:00
    benjiam
        14
    benjiam  
       2014-09-29 08:44:57 +08:00 via Android
    成本,专业人员告诉你有多贵

    首先服务器 必须有大量的服务器存储数据。如果你想存储100p 数据 我们用了1800台服务器 大概单机12块硬盘
    带宽 1g 中国大概是3万每月。你大概得准备好多才行
    最关键的核心,云存储的核心 元数据存储的可扩展性一直是问题,当然这问题也许永远不会被解救。否则联想就是世界云计算的老大。你得找一帮有技术的人不断开发 改进这个系统 这帮人很贵

    运维 机器会坏,还得有有人会修理
    安全 不怕一个疯子上了删除所有数据?

    最后更替,硬盘3年以后损坏纪律就会高了,别和我说你家硬盘好多年不坏,你家硬盘是连续开3年不关机,还老有人读写的吗?

    所以准备多少钱 才够?自己算
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1132 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:50 · PVG 06:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.