V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
whileFalse
V2EX  ›  分享发现

客户端加密和 server 端加密

  •  
  •   whileFalse · 100 天前 via Android · 1038 次点击
    这是一个创建于 100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://www.v2ex.com/t/1073207

    帖子里说“原来阿里云盘在服务端是不加密的”然后一堆人附和,说加密就不能秒传。看来大家对加密的概念还很生疏。

    对阿里云不熟,就拿 aws 的 s3 来说吧。s3 默认对于每个文件都是服务端加密的,而且是每个文件一个密码。但即使是这样,也不影响设计秒传,不影响一个用户看到他人的文件。

    所谓 server 端加密,是指[文件不会明文写到磁盘上]。在上传时用随机密钥加密文件,随机密钥再用预先配置的非对称密钥加密,然后将随机密钥加密后的文件、非对称加密后的随机密钥分别存储在 aws 中。在下载时,aws 会先解析成明文,然后使用 https 传输到用户/业务服务器。所以无论谁去下载你的文件,aws 都会给他解密后的版本。

    至于秒传,是第一次上传时保存整体的哈希,以及每一个文件块的哈希,类似 bt 种子。再次上传时,用户本地生成一个新的哈希,服务端一看,在我的 redis 里面已经有这个种子了你就秒传了,跟文件存储一点关系都没有。

    如果你希望服务器不能看你的文件,那要做的是客户端加密,也就是文件已经加密好上传到服务器,服务器根本不知道如何解密当然也就没法生成缩略图或者秒传了。

    所谓服务端加密指的是静态加密,写盘时加密。再严格一点给你加个内网传输加密,也就是在内网的 http 和数据库连接什么的给用 tls 保护一下。数据在内存里可都是明文。

    3 条回复
    caola
        1
    caola  
       100 天前
    像这种网盘也许他的硬盘是加密就已经顶天了,别指望给你每个文件单独加密。单独加密了可不利于他检索你的”敏感“内容文件
    lairdnote
        2
    lairdnote  
       100 天前
    铭感是一方面。 给一个 https 加密已经是对的起了。
    whileFalse
        3
    whileFalse  
    OP
       100 天前 via Android
    @caola 阿里云 oss 就是照着 s3 做的。至于阿里云盘是不是用阿里云 oss 我不清楚,你可以看下他的返回 header 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3075 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 13:24 · PVG 21:24 · LAX 05:24 · JFK 08:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.