【问题标题】:Decrypt stored secret using HTTPS transport使用 HTTPS 传输解密存储的秘密
【发布时间】:2023-03-22 00:29:02
【问题描述】:

我正在考虑开发一种软​​件,用于在服务器上安全地存储文件。

假设我有一个秘密文件最初存储在我的客户端计算机上,我想上传到服务器。这里的要求是服务器上的文件应该始终加密,并且由于私钥在客户端上,任何直接访问服务器的人都无法读取它。也许我可以使用 javascript 来完成,或者我需要开发一个完整的应用程序来处理上传。无论哪种方式都可以,但我需要能够仅使用网络浏览器下载和解密文件。

这让我开始思考。我能否以可以预先计算从服务器到客户端的加密响应的方式配置 HTTPS (SSL)。在这种情况下,我可以在上传时执行此操作,并且在请求文档时,我可以返回将由客户端上的 SSL 堆栈解密的预加密数据。

我知道会有一个随机数交换来防止这种情况发生。但是有没有办法配置 SSL,以便从服务器到客户端的响应总是相同的。在这种情况下,从服务器到客户端的重放攻击是可以接受的,不是问题。

【问题讨论】:

  • 我想知道为什么你不只是从服务器获取它后解密? IE。下载(http 或 https 都可以,因为 doc 使用客户端密钥加密),然后在下载后解密。否则,这似乎是一个过度设计的解决方案。当然,您的要求可能会有所不同。
  • 这个想法是让网络浏览器进行解密,正如我所见,使用 SSL 进行解密是没有网络浏览器插件的唯一方法?我见过 javascript 实现,问题是客户端在哪里存储私有证书,因为 javascript 实现无权访问客户端上的证书存储。
  • 如果可能问为什么浏览器扩展不出来?
  • 主要是因为我需要它可以从任何浏览器访问。即使在无法安装插件的环境中。

标签: security encryption ssl https openssl


【解决方案1】:

在 SSL 握手中,客户端生成将用于派生会话密钥的预主密钥。由于您似乎只能控制服务器,因此您无法阻止客户端将对话转向特定(加密)方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多