如何保护远程存储的用户数据?从云存储到客户端的端到端加密?

时间:2016-12-24 08:06:08

标签: amazon-web-services encryption amazon-s3 cloud

假设我有一个应用程序将用户资源存储在amazon s3中。假设这些数据很敏感。我在数据库中有一个表,其中包含资源行,每个表包含资源的url和拥有它的user_id。

  

如果我将网址直接返回给用户,我该如何保证   只有该用户才能从该会话中访问它?

A similar question有一个使用过期网址的答案,尽管如果其他人在到期时间内也有链接,他们也可以访问它。

  

有没有办法可以促进直接加密交换   客户端和云存储提供商之间的资源   存在?我希望能够通过客户端链接到云   资源并且只有 他们能够在当时 的浏览器中解密它。

1 个答案:

答案 0 :(得分:0)

为什么不呢?

如果您可以安全地将私人加密密钥传递给您的客户端,或者您知道他的私钥的公钥,您可以随时加密文件,然后用户的浏览器将在其末尾解密该文件。

看看几个现成的JavaScript库:

  1. https://code.google.com/archive/p/crypto-js/
  2. http://www.fourmilab.ch/javascrypt/
  3. 此外,这里有一个巨大的列表:https://gist.github.com/jo/8619441
  4. 如果您必须提供对不同人员的访问权限(例如,今天提供给User1,明天提供给User2和User3),最好的方法不是每次加密文件本身,而是加密一次,然后加密私钥到使用这些用户的密钥解密文件。