【问题标题】:Defending Against Man-in-the-Middle Attacks [closed]防御中间人攻击[关闭]
【发布时间】:2018-11-01 21:35:53
【问题描述】:

我正在编写一个与客户端和服务器一起工作的程序,有趣的是如何提供数据保护。中间人攻击防护策略有哪些?

【问题讨论】:

  • 使用公钥加密签名。
  • 这里的关闭原因有点误导。这里没有真正的多个问题。我们曾经有一个“过于宽泛”的理由,包括“缺乏努力或任何研究的证明”,但现在正确的密切理由实际上是“需要细节或清晰”。无论如何,请查看help center,尤其是How to ask;,也许您仍然可以将其编辑成 Stack Overflow 上可接受的形式。

标签: security tcp client-server


【解决方案1】:

只是想添加到最后一个答案。如果您使用 HTTP 作为连接协议:

  1. 在 TLS1.2 中使用 HTTPS
  2. 使用密钥固定检查服务器的证书是否有效
  3. 使用 HSTS 来防止未来的其他中间人攻击(防止 HTTPS->HTTP 降级攻击)
  4. 不提供 HTTP(或自动升级到 HTTPS)
  5. 如果可能,使用客户端 ssl 证书验证来验证客户端的身份
  6. 允许完美前向保密 (PFS)

如果您使用的是自定义协议(不是 HTTPS),那么:

  1. 实现 TLSv1.2
  2. 使用证书固定(至少在服务器端,如果可能在客户端)
  3. 确保实施完美的前向保密

【讨论】:

    【解决方案2】:
    1. 实施 HTTPS 并验证 CA。
    2. 使用Strict-Transport-Security Header 防止 SSL 剥离 MITM 攻击。
    3. 使用Public Key Cryptography加密数据
    4. 您可以为响应时间设置一个阈值(MITM 攻击会延迟响应时间),但这适用于您几乎可以确定有效响应将低于阈值的环境。

    【讨论】:

      猜你喜欢
      • 2011-10-22
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 2021-08-09
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      相关资源
      最近更新 更多