【发布时间】:2023-03-22 00:29:02
【问题描述】:
我正在考虑开发一种软件,用于在服务器上安全地存储文件。
假设我有一个秘密文件最初存储在我的客户端计算机上,我想上传到服务器。这里的要求是服务器上的文件应该始终加密,并且由于私钥在客户端上,任何直接访问服务器的人都无法读取它。也许我可以使用 javascript 来完成,或者我需要开发一个完整的应用程序来处理上传。无论哪种方式都可以,但我需要能够仅使用网络浏览器下载和解密文件。
这让我开始思考。我能否以可以预先计算从服务器到客户端的加密响应的方式配置 HTTPS (SSL)。在这种情况下,我可以在上传时执行此操作,并且在请求文档时,我可以返回将由客户端上的 SSL 堆栈解密的预加密数据。
我知道会有一个随机数交换来防止这种情况发生。但是有没有办法配置 SSL,以便从服务器到客户端的响应总是相同的。在这种情况下,从服务器到客户端的重放攻击是可以接受的,不是问题。
【问题讨论】:
-
我想知道为什么你不只是从服务器获取它后解密? IE。下载(http 或 https 都可以,因为 doc 使用客户端密钥加密),然后在下载后解密。否则,这似乎是一个过度设计的解决方案。当然,您的要求可能会有所不同。
-
这个想法是让网络浏览器进行解密,正如我所见,使用 SSL 进行解密是没有网络浏览器插件的唯一方法?我见过 javascript 实现,问题是客户端在哪里存储私有证书,因为 javascript 实现无权访问客户端上的证书存储。
-
如果可能问为什么浏览器扩展不出来?
-
主要是因为我需要它可以从任何浏览器访问。即使在无法安装插件的环境中。
标签: security encryption ssl https openssl