我有一个运行 OpenVPN 的 VPN 服务器。我想记录我的所有 VPN 流量。我可以在 tun0 接口上捕获服务器上的数据包。
我想知道是否可以以纯文本形式查看 SSL 流量?
答案1
如果您捕获 OpenVPN 服务器的 tun0 接口上的所有数据包,就加密(例如 SSL/TLS)流量而言,您只会看到加密数据包。
让我们以客户端和 https 网络服务器之间的通信为例:当客户端的流量通过 VPN 时,它会从客户端的浏览器到网络服务器进行端到端加密:
客户端->openvpn加密链接->vpn服务器->https web服务器
客户端-><------- ssl/tls 加密链接 ---------->https 网络服务器
由于 SSL/TLS 连接从 Web 服务器到客户端都是加密的,因此监视 VPN 服务器上流量的人只能看到加密流量。(有关 TLS/SSL 如何工作的更多信息,您可以查看维基百科关于 TLS 的文章)
查看流量的唯一方法是执行“中间人攻击”(MITM),假装是客户端试图访问的受 SSL 保护的服务器,为该客户端提供假的 SSL 证书,以便能够以纯文本形式窥探其流量;充当客户端和服务器之间的代理。
为了防止这种攻击,证书颁发机构 (CA) 确实存在。如果客户端获得了对其浏览器而言有效的证书(来自恶意 CA),他可以相信该链接已加密到 Web 服务器,而他的流量则通过 MITM。无效证书将触发警报。
答案2
VPN 无法解密用户与通过 VPN 访问的网站之间的 SSL 流量。但由于 VPN 可以访问 SSL 加密内容,因此它可以执行中间人攻击。大多数中间人攻击都可以通过仔细检查网站的证书来检测。
时不时就会出现一种新的攻击,即使是最警惕的用户也无法检测到。例如,证书颁发机构 Trustwave 至少曾经向一家公司颁发过证书,允许该公司对通过该公司的任何 SSL 通信进行不可检测的中间人攻击
您可以使用一些企业产品来解密 SSL 流量,例如 Ixia 的 SecureStack https://www.ixiacom.com/products/securestack