存储层用分布式存储系统作为存储盘,保证了一传多备。但对存储安全性有要求,就是上传时,需要对文件进行加密,该选择一个什么样的加密方案,实现对(大)文件的加密的同时,确保时间效率相对较优。
目前我的疑问:
1
ferock 2019-12-28 17:00:56 +08:00
1. 文件分数据块
2. 每块数据,单独加密 3. 加密应合理分散分布,不应使用单一秘钥。 4. 要考虑由于加密分散分布,导致的性能问题。 |
3
msg7086 2019-12-29 07:58:23 +08:00
大文件加密为什么要传完了再加?
|
4
wanguorui123 2019-12-29 10:51:23 +08:00 via iPhone
可以上传时候加密,有些文件系统底层提供了加密,不需要应用层面加密。
|
5
also24 2020-02-23 21:02:14 +08:00
可以参考 seafile 的相关设计,seafile 是开源的。
源码见: https://github.com/haiwen/ 它提供了对单个资料库进行加密的功能,相应的介绍如下: https://cloud.seafile.com/published/seafile-manual-cn/security/security_features.md 当你创建一个加密资料库,你将为其提供一个密码。所有资料库中的数据在上传到服务器之前都将用密码进行加密。 加密流程: 1.生成一个 32 字节长的加密的强随机数。它将被用作文件加密秘钥(“文件秘钥”)。 2.用用户提供的密码对文件秘钥进行加密 (使用 PBKDF2 算法)。加密后的文件秘钥将会被发送到服务器并保存下来。 3.在文件同步的时候,先用用户输入的密码解密出文件秘钥,然后使用文件秘钥加密文件(使用 AES 256/CBC 算法),加密完后再上传文件。下载的时候,先用用户输入的密码解密出文件秘钥,然后使用文件秘钥解密文件。在上述过程中,你的密码将不会被传输到服务器上。 |