【问题标题】:Creating a secure connection between a desktop app and remote server? [closed]在桌面应用程序和远程服务器之间创建安全连接? [关闭]
【发布时间】:2014-04-13 23:22:17
【问题描述】:

我有一个桌面应用程序需要与远程服务器安全通信。

  1. 所有数据都必须加密。
    • 这也意味着数据不能被第三方更改。
  2. 没有人应该能够两次重新发送相同的数据(重放攻击)
  3. 列表项

服务器设置有 RESTful API,因此桌面客户端将进行 https(获取、发布、推送和删除)调用。

我知道 SSL 证书是不够的。有像mitmProxy 这样的工具会注销证书并显示攻击者纯文本。

我的问题与一般加密的interworking 无关。我想知道在现实世界中提供最常用的完美前向保密的常见做法是什么?!

如果服务器是用python写的,客户端是用java写的,有没有教程或者库可以看一下?

【问题讨论】:

  • 我希望你能找到你要找的东西,但请记住Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow

标签: java python security ssl encryption


【解决方案1】:

SSL 听起来正是这种场景的解决方案。您关于中间人攻击的声明忽略了一个关键点-您提到的工具等工具要求其连接被拦截的客户端先前已设置为信任该工具的 CA 证书(它用于身份验证为被拦截的服务器)。如果您正确地验证服务器(和可选的客户端)证书,那么中间人攻击应该没有问题。 SSL 同样可以防止第三方的重放攻击。

完美前向保密是一个有点独立的话题,但 SSL 中也有可用的 PFS 机制(例如,使用 Diffie-Hellman Ephemeral 密钥交换)。

正如其他人所提到的,关于教程/库的建议与 StackOverflow 无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2013-05-15
    • 2019-04-16
    相关资源
    最近更新 更多