加密数据的授权共享编辑问题
-
为了便于多个被授权cid共同操作一组加密数据,比如一个文件的多个历史版本。考虑一个数据的系列版本共享同一个【对称密钥】。这样:
当A先授权了B知库权限,编辑了文章x,加密存入freedrive,形成版本x1。
然后A又授权了C知库权限,但C没有x1的对称密钥,无法编辑x。
为了让C能够编辑x,需要B更新x,形成x2,内容可以完全没改动,但增加了给C的加密密钥。
如果加密x2的对称密钥为新生成的,那么C只能解密x2,无法解密x1。
因此,要求同一个文件的多个版本共享一个对称密钥,C获得x2的密钥,也可以用来解密之前的历史版本了。(注:某个数据的上一个版本可以通过metadata的pre_vision字段追溯。)
能不能一个cid的所有某类数据(如所有知库条目)采取一个对称密钥加密呢?
这样做会比较便利,但风险比较大,一个应用端泄露了某个文档的对称密钥,则该cid的全部此类文档都暴露了。如果只影响该文档的前后版本的话,损失要小很多。