正向代理、反向代理以及透明代理与隐私保护

在这里插入图片描述
最近无意间和同事聊到,连接公司 WiFi,到底会不会被监控?如果该热点已经是透明代理了,那么到底会不会泄露已经加密的隐私数据?

1 代理

对于大多数安全研究者来说,接触代理这一概念可能都是通过 Burpsuite 抓包完成的,通过在本地设置代理为 Brup 所在 IP 地址,并将证书导入相应设备,实现抓包。其实这一过程就是模拟了正向代理的设置过程。常见的代理类型包括正向代理、反向代理以及透明代理。

如果代理想查看 HTTPS 流量,一般而言,在代理结构中使用 HTTPS 取决于服务拦截连接并提供自己的证书,客户端必须接受该证书才能继续通信。除非设备已导入证书,否则此过程将被视为不安全的连接,并生成⚠警告信息。

  • 对于具有域控制器的环境,可以批量部署证书,这不是问题;但在较小的结构中,手动执行此操作会产生相当大的工作需求。
  • 并非每个应用程序都基于 HTTP 协议。这意味着数以千计的其他端口可以绕过代理。

1.1 正向代理

正向代理(Forward Proxy)也成为普通代理,是一种代理服务器,通过拦截流量将其转发到目标服务器。正向代理隐藏了客户端真实 IP 地址和位置信息,目标服务器只能看到代理服务器的相关信息。
在这里插入图片描述

  • 抓包 - 最常见的 Burpsuite 抓包就是将你的电脑作为正向代理。
  • VPN - 正常情况下,我们是访问不了 Google 的,但是通过 VPN 是可以的。在访问 Google 时,先连上 VPN 服务器将我们的 IP 地址变成美国的 IP 地址,然后就可以顺利的访问了。
  • 防火墙 - 监管部门或者公司,指定员工电脑必须设置代理才能访问网络,此时正向代理服务器可以查看员工电脑上的所有流量。

1.2 反向代理

反向代理(Reverse Proxy)位于接受客户端请求的服务器前面。它类似于转发代理,但主要区别在于它确保没有客户端可以直接向服务器发出请求。所以服务器的 IP 地址对客户端是隐藏的,可以防止 DDoS 攻击。正向代理代理客户端,反向代理代理服务器。
在这里插入图片描述

  • 负载平衡 - 此站点不是管理单个服务器的所有网络流量,而是将网络流量平均分布在服务器池中以处理对同一站点的请求。这将防止任何单个服务器因客户端请求而过载。
  • 缓存 - 反向代理可以缓存请求的内容以减少服务器上的负载。
  • 压缩 - 反向代理可以压缩内容以进行优化。
  • SSL 加密 - 可以配置反向代理来加密和解密 SSL 通信以保护请求和响应。

1.3 透明代理

透明代理(Transparent Proxy)和非透明代理最显著的区别是,正向代理会修改客户端发送的请求,并让客户端(例如 Web 浏览器)知道请求已更改。也就是说透明代理,对于客户端和服务端都是一个透明的存在,用户并没有感知。正向代理需要在客户端进行配置,透明代理是不需要的。基于上述特征,通常,我们建议对托管设备使用正向代理,对非托管设备使用透明代理。

例如,在咖啡店连接公共 WiFi,弹出登录页面(Portal),此时公共热点就充当了透明代理,即使后续登录热点,关闭该登录页面之后,此时你所有的流量仍然可能经过透明代理。但是透明代理只能监测 TCP 层流量,至于能否监测到应用层实际的明文信息,取决于是否进行了加密。

在这里插入图片描述

1.4 案例分析

再回到最初的问题,中间人即代理到底能不能看到我们所有上网的流量数据,我们来举几个实际案例来分析。在如下几种情况下,流量还能被监控吗?

公司内部网络,员工需要在电脑上设置代理,才能够访问外部网络。

这是一种典型正向代理行为,如果只是在客户端设置代理,代理服务器理论上只能看到 HTTP 报文,看不到 HTTPS。但是如果不仅使用公司网络,而且使用公司信息安全软件,那么该软件很有可能已经被部署了代理服务器的证书,此时代理服务器不仅仅会简单修改客户端的 IP,而且会欺骗客户端,将自己的证书替换服务端证书,发送给客户端。从而完成伪造服务端,解密 HTTPS 报文。

公司内部网络,员工没有设置代理,正常访问外部网络。

这是一种典型透明代理行为,对于员工是无感的,如果员工使用自己的电脑,并且没有安装公司信息安全软件,在这种情况下,是和我们连接普通 WiFi 热点一样,透明代理服务器能够拦截常规的 HTTP 报文,但是无法解密 HTTPS 报文。同样道理,如果电脑安装了公司内部软件,那么很有可能电脑也被部署了代理服务器的证书,原本不会修改而只是透传的透明代理服务器,可能同样会修改服务器返回的证书,替换为自己的证书,返回给客户端。这种情况下,所有应用层报文理论上都是可以被代理服务器解析为明文的。

公司内部网络,员工没有设置代理,也没有安装公司软件。

根据上述分析,这种情况乍看一下,即使公司网络存在透明代理服务器,也只能监控到 HTTP 的流量,一旦启用 SSL/TLS,那么应用层数据对于中间人不可见。但是,如果你访问的域名是公司拥有的域名,那么理论上仍然可以监控到你访问公司域名的明文信息。比如尤其是 Google、微软这种大厂,拥有的域名相当多。

这里还存在一种情况,某些客户端软件会忽略证书校验错误,这时,这些客户端访问相关站点的流量可能就会被透明代理服务器解密为明文。

简单总结一下

  • 能够监控流量不代表能够看到所有应用层明文信息
  • 透明代理只是客户端无感知,如果想监控所有 SSL 流量,仍然需要在客户端进行一定的操作,例如导入证书
  • 客户端如果在代码层面选择忽略证书,极有可能会导致敏感信息泄露

在这里插入图片描述

以上只是在技术层面分析代理监测流量和用户上网行为的可行性,然而实际情况却有所不同。

2 加密网络流量分析

根据《Cisco Encrypted Traffic Analytics White Paper 》的描述,出于性能和资源原因,采用批量解密、分析和重新加密的传统威胁检查并不总是实用或可行的。此外,它还会损害隐私和数据完整性。

在这里插入图片描述

因此大家不用过于担心在企业工作时,泄露个人隐私。如果企业解密所有流量,用户会感觉不安。要想在不牺牲隐私的前提下保护网络环境安全,企业只能引入另一层,从策略层面上确定要解密什么流量。

对一些机构而言,电子邮件可能是一种威胁向量,因此企业选择解密邮件流量。但这类答案对于每家企业而言都会有所不同,因为它们还必须从文化的角度来思考这一问题。

在任何一天,没有人知道他们的数字业务中有多少是透明的,有多少是加密的。如果流量被加密,则通常进行加密以满足强制执行特定安全策略的合规性要求。对于企业的信息安全部门来说,如何确定 SSL 流量的解密比例,是一项具有挑战性的工作,当然也有很多安全公司提供完整的解决方案。 任何 IT 部门的主管都不会想要在每个点上解密这类流量,因为它将会导致大量性能损失。

3 总结

总体而言,万物互联的时代,企业有能力监控员工访问互联网留下的每一处痕迹,但是在比以往任何时候都注重个人隐私的今天,再加上代理解密 SSL 会消耗巨大资源,实际很多公司只会根据风控策略选择解密部分敏感数据。除了加强内部合规风险审查之外,另一方面,政府、企业更多的是需要考虑如何保护个人数据不被滥用,不被泄露,增强他们在民众间的公信力。

4 推荐文献

猜你喜欢

转载自blog.csdn.net/song_lee/article/details/129959162