【问题标题】:Web server that encrypts uploaded files, can withstand compromised server & decrypt to multiple users加密上传文件的网络服务器,可以承受服务器受损并解密给多个用户
【发布时间】:2014-06-24 19:45:24
【问题描述】:

一般有两种主要的加密用户上传文件的方法。

客户端可以加密文件,将其发送给服务器存储,并根据请求服务器检索加密文件,客户端进行解密。在这种情况下,服务器永远无法访问密钥。这样做有缺点; Web 应用程序源中的任何人都可以查看加密方案,这是客户端和其他人的额外处理

当然,第二种情况是客户端以明文形式(可能通过 SSL)发送文件,服务器管理密钥和加密/解密。

在我看来,最常见的实现形式是后者,服务器管理客户端的加密/解密。这对我来说似乎无效。如果 Web 服务器受到攻击,即使攻击者只有 Web 应用级别的权限,加密一开始也是没有意义的,因为他将像 Web 应用一样访问所有密钥,从而访问解密的文件。有没有办法防止这种情况?为什么人们甚至会从那时开始加密文件,除非他们进行客户端加密并且从不存储密钥?

此外,作为该问题的第二部分,如果您使用前一个选项(客户端加密),是否允许多人访问加密文件(例如公司内的一个部门)?我认为用户必须在彼此之间共享他们的密钥,这会带来另一个安全风险。

【问题讨论】:

  • SSL 加密方面的目的只是为了防止任何人能够读取客户端和服务器之间的通信,而不是防止您将内容上传到恶意服务器(这将更多地陷入标识服务器的标识方面是它声称的身份)。它不仅仅是关于“文件”,而是关于 HTTP 请求和响应。
  • 绝对。不是我要问的。我对处理恶意文件也不感兴趣(将自行处理,是一项完全不同的任务)。我只对安全地存储文件感兴趣,如果 Web 应用程序受到攻击,不会将密钥暴露给攻击。
  • 这个问题似乎是题外话,因为它属于 security.stackexchange.com
  • 好的,我会在那里发布。谢谢

标签: security encryption web cryptography


【解决方案1】:

SSL 仅保护连接。如果你想防止服务器偷看你的文件,文件必须用服务器不知道的密钥加密。 (场景一)

对于第二部分,有很多papers 讨论如何基于公钥密码构建这样的系统。或者您可以查看其他最近的加密研究,例如 broadcast encryptionattribute-based encryption.

【讨论】:

  • 使用公钥加密是不可行的,因为对于普通用户来说实施起来太复杂了。我会失去用户资格。我假设在保护密钥免受攻击的同时,无法在服务器端进行加密
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 2016-09-07
相关资源
最近更新 更多