客户端加密和 server 端加密

54 天前
 whileFalse

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

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

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

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

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

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

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

991 次点击
所在节点    分享发现
3 条回复
caola
54 天前
像这种网盘也许他的硬盘是加密就已经顶天了,别指望给你每个文件单独加密。单独加密了可不利于他检索你的”敏感“内容文件
lairdnote
54 天前
铭感是一方面。 给一个 https 加密已经是对的起了。
whileFalse
54 天前
@caola 阿里云 oss 就是照着 s3 做的。至于阿里云盘是不是用阿里云 oss 我不清楚,你可以看下他的返回 header 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

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

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX