ssl - 安装了 SSL 证书,但仍然暴露于中间人攻击

标签 ssl nginx https ssl-certificate man-in-the-middle

我已经为我的域安装了 SSL 证书 (comodo PositiveSSL) 并强制 NGINX 仅使用 HTTPS。

我在 SSL 分析器上运行测试 https://sslanalyzer.comodoca.com/?url=domain.com

Validation Type Domain Validated (DV)
Trusted by Microsoft?   Yes 
Trusted by Mozilla? Yes

enter image description here

enter image description here

我们的 Android 和 IOS 移动应用程序从我们的 https://example.com/api 获取一些数据网页服务。 所以我在我的 android 上安装了 Packet Capture 移动应用程序来验证网络服务 api 和我们的移动应用程序之间传输的数据是否安全。

首先,我尝试在数据包捕获移动应用程序中启用以下功能:- enter image description here

enter image description here

我已经联系了 comodo ssl 支持,他们说

that the certificate is installed well and its working fine. There is nothing wrong with the certificate and installation process and the web-site https://example.com/ is also completely secured with Green Pad lock on it.

我在 instagram 应用程序上运行相同的测试,当打开 instagram 时,显示网络错误。就像 instagram 通过某种方式发现我正在 try catch 网络数据包,以便他们的应用程序网络将被禁用。 enter image description here 我想像 instagram 那样做。

请指教。

最佳答案

别担心,如果您的证书有效并且包含正确的域名,那么您已经完成了所需的一切。

“中间人攻击”是对客户端进行的攻击。<​​/p>

客户端通过破坏他的 DNS 认为攻击者是网站 然后攻击者将来自/到真实服务器的流量中继进出。

服务器是安全的,但客户端不是。

就像 RamKumar 所说的那样,客户端需要像你一样信任攻击者的证书

编辑:

您还可以将 TLS 与相互身份验证 (mTLS) 结合使用。 使用此协议(protocol),客户端和服务器交换证书公钥。 它的工作原理如下:

  1. 客户请求访问 protected 资源。
  2. 服务器向客户端出示其证书。
  3. 客户端验证服务器的证书。
  4. 如果成功,客户端将其证书发送到服务器。
  5. 服务器验证客户端的凭据。
  6. 如果成功,服务器将授予对客户端请求的 protected 资源的访问权限。

一些示例: https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/october/mutual-authentication-in-android-and-ios/

有了这个协议(protocol),中间人攻击仍然是可能的,但是攻击者的证书需要被客户端和服务器信任

另一种自定义方法是使用非对称密码添加另一层加密。

关于ssl - 安装了 SSL 证书,但仍然暴露于中间人攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48339230/

相关文章:

swift - 如何在 uiwebview (swift) 中调用 https url?

php - 使用 xmlhttprequest 加密发送的 url 参数

amazon-web-services - 无法为 AWS Data Migration Service 导入证书

http push - 使用 ssl 的 http 流媒体方法 - 代理会干扰 https 流量吗?

python - django+nginx部署无法正确加载静态文件

nginx - 使用 docker 在 nginx 后面运行 Odoo

android - webview loadUrl 在浏览器中打开url

nginx - Dockerizing nginx 和 Flask

ssl - 使用 https 时基于主机的 nginx 代理

c++ - 使用 HTTP 方法 POST 或 PUT 上传数据