我正在考虑开发一种用于在服务器上安全存储文件的软件。
假设我有一个秘密文档,最初存储在我想要上传到服务器的客户端计算机上。这里的要求是服务器上的文件应该始终加密,并且由于私钥在客户端上,因此对于直接访问服务器的任何人来说都是不可读的。也许我可以使用javascript或者我需要开发一个完整的应用程序来处理上传。无论哪种方式都可以,但我需要能够仅使用网络浏览器下载和解密文件。
这让我思考。我是否可以通过预先计算从服务器到客户端的加密响应的方式配置HTTPS(SSL)。在这种情况下,我可以在上传时执行此操作,当请求文档时,我可以返回预加密的数据,这些数据将由客户端上的SSL堆栈解密。
我知道会有一个随机数字交换阻止这一点。但有没有办法配置SSL,以便从服务器到客户端的响应始终相同。在这种情况下,从服务器到客户端的重放攻击是可以接受的,而不是问题。
答案 0 :(得分:2)
在SSL握手中,客户端生成将用于派生会话密钥的预主密钥。由于您似乎只能通过服务器进行控制,因此无法阻止客户端以特定(加密)方向引导会话。