首页 > 解决方案 > 需要提示:共享内容的加密。如何组织?

问题描述

我不太确定我应该如何处理这个问题。

情况如下:
我正在计划一项可以与其他人共享内容的服务。

当然 Bob 和 Carol 也可以是共享者,Alice 也可以是观察者。

假设 Bob 和 Carol 可能不是 IT 专家,所以他们不知道如何处理公钥/私钥对。Alice 作为共享者是系统的活跃订阅者,Bob 和 Carol 被邀请加入系统,所以他们不会知道太多。因此加密/解密应该在后台自动管理。这意味着私钥将存储在服务器的某个位置,或者不是吗?

你看,在这些场景中有很多用例,我不确定组织这个的好方法。

技术栈似乎不是最重要的,但它是 MEAN(MongoDB、Express、Angular2、NodeJS)。它还使用 NgRx 存储。

我不需要的是一个成熟的程序,但只是朝着正确的方向轻推。如果你碰巧有一个,我不会拒绝它:)

编辑:总结

以下是该场景的简短摘要:

Alice 应该能够与 Bob 共享文档。文档应该被加密,以便只有 Alice 和 Bob 可以阅读它们。共享是通过浏览器中的网络应用程序进行的。

编辑2:

哦,顺便说一句,Alice 和 Bob 或 Alice 和 Carol 不需要在同一时刻在线,或者在 Alice 共享文档的时刻在线。事实上,它们是共享的,以供几年后使用。

标签: encryptionamazon-s3mean-stack

解决方案


你应该:

  • 加密静态数据
  • 确保您的应用程序仅向授权用户授予文件访问权限

Amazon S3 等系统通常会创建每个对象的加密密钥来加密文件。然后,使用主密钥对该密钥进行加密。主密钥保存在密钥管理系统中,永远无法导出。

这样,如果获得其中一个加密密钥,则只能用于解密一个文件。或者,如果政府要求访问文件并因此需要加密密钥,他们只能读取该文件。

Amazon S3 可以使用服务器端加密和 AWS Key Management Service 自动为您管理上述所有内容。


推荐阅读