我正在考虑开发一种在服务器上安全存储文件的软件。
假设我有一份最初存储在我的客户端计算机上的 secret 文件,我想将其上传到服务器。这里的要求是服务器上的文件要时刻加密,而且私钥在客户端,任何直接访问服务器的人都无法读取。也许我可以用 javascript 来做,或者我需要开发一个完整的应用程序来处理上传。两种方式都可以,但我需要能够仅使用网络浏览器下载和解密文件。
这让我开始思考。我可以以一种可以预先计算从服务器到客户端的加密响应的方式配置 HTTPS (SSL) 吗?在那种情况下,我可以在上传和请求文档时执行此操作,我可以只返回预加密的数据,这些数据将由客户端的 SSL 堆栈解密。
我知道会有随机数交换来防止这种情况发生。但是有没有一种方法可以配置 SSL,以便从服务器到客户端的响应始终相同。在这种情况下,从服务器到客户端的重放攻击是可以接受的,不是问题。
最佳答案
在 SSL 握手中,客户端生成预主 key ,用于派生 session key 。由于您似乎只能控制服务器,因此您无法阻止客户端将对话引向特定(加密)方向。
关于security - 使用 HTTPS 传输解密存储的 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16623932/