我有一位客户想要使用拦截代理来解密所有外出流量。 他们不想使用透明代理,因为安全策略规定必须解密/拦截所有外出流量。 但我的问题是我的客户端验证服务器和服务器验证客户端是谁。 我们不想将客户 CA 添加到服务器。 那么去特定服务器的代理是否可以使用客户端 key ?我的意思是将客户端 key 复制到代理,以便在拦截发生后,代理使用客户端 key 对服务器进行加密,这样服务器根本不知道它正在与代理对话。
如果您将客户端私钥提供给拦截代理服务器,那么使用 SSL 拦截代理是否可以在拦截后重新加密流量,以便连接服务器仍然认为流量来自源客户端证书?
A是客户 B是做拦截的代理 C是服务器 A -> B -> C
1) 客户端与代理对话 A -> B
2) B -> B Proxy拦截并解密,然后用自己的证书重新加密,然后与服务器对话
问题 这种重新加密是否可以使用客户端的私钥完成,以便服务器 C 与客户端而不是拦截代理对话?
最佳答案
是的,这是可能的。 客户端和服务器都不需要显式地与代理对话,分别将数据包发送到代理的 IP 地址。
您只需将代理放置在服务器和客户端“之间”的网络级别。
在那种情况下,拦截代理作为“透明代理”运行(参见示例 mitmproxy )。在这种模式下,您只需通过代理重定向流量,例如通过 iptables 规则。
当然,客户端必须信任拦截代理使用的证书(或者像一些易受攻击的客户端那样只接受任何服务器证书)。
关于SSL 拦截代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59687125/