zScaler cookie 认证如何工作?

zScaler cookie 认证如何工作?

我正在为我的组织实施 Web 过滤器,并且正在考虑使用 zScaler。我不想使用代理 PAC 文件。我刚刚与 zScaler 的销售人员通完电话,他们声称他们可以使用 cookie 区分 NAT 后的用户。他们没有解释它是如何工作的,但向我展示了一个演示。我的拓扑如下:

RFC 1918 空间 -> FW -> 1.1.1.1 --- 1.1.1.2 -> 路由器 --> 互联网

基本上,在上面的路由器上,我将通过 GRE 隧道连接到他们的 ZEN 节点。ZEN 只会看到我的公共 IP,1.1.1.1。

首次访问互联网时,我必须进行身份验证。此后,将使用 cookie 跟踪用户会话。这对我来说毫无意义,因为:

  • 例如,两个网站 cnn.com 和 reddit.com 将由我的浏览器设置完全不同的 cookie。zScaler 将看到类似以下内容:
    • 1.1.1.1:23883 --> cnn.com:80 + HTTP 标头和浏览器发送的潜在 cookie,它们是 cnn.com 所独有的,并不一定将我标识为 joeDomainUser。
    • 1.1.1.1:26364 --> reddit.com:80 + HTTP 标头和浏览器发送的潜在 cookie,它们是 reddit.com 所独有的,并不一定将我标识为 joeDomainUser。

当然,如果我通过身份验证访问 cnn.com,它可以在响应中注入一个 cookie,但是当我访问 reddit.com 时,它将如何跟踪我?浏览器将发送不同的 cookie。

答案1

您需要记住,作为代理,它们位于所有 Web 请求的路径中(或者至少,所有非 SSL 请求,除非您使用 SSL 解密)。

首次访问 cnn.com 时,他们会发现您没有该网站的身份验证 cookie。他们不会向该网站提供服务,而是会暂时将您重定向到他们的身份验证网站。

一旦你进入该身份验证站点,将会发生以下两种情况之一。如果你已经通过了 Zscaler 的身份验证(他们可以使用 cookie 来判断,在本例中是他们的身份验证站点的 cookie),那么他们会将你重定向回 cnn.com,并使用唯一标识你的查询字符串(在 URL 中添加?xxx=yyy)。当你的浏览器遵循该重定向时,他们会再次拦截请求,再次将你重定向 - 这次回到原始 URL(没有额外查询字符串的 cnn.com),并且他们会为 cnn.com 域设置 zscaler 身份验证 cookie,他们之所以这样做是因为就你的浏览器而言,响应来自真正的 cnn.com,因此它允许设置 cookie(即使响应实际上来自 Zscaler)。

此后,对 cnn.com 的每个请求都将包含该域的身份验证 cookie,因此他们会知道是你发出的请求。一段时间后(我认为是 24 小时),该 cookie 将超时,他们将再次经历整个重定向过程。

如果您在上述第一次重定向期间尚未向 Zscaler 进行身份验证,那么他们会让您登录,然后执行相同的流程。

如果您在启用这样的身份验证后查看您的 cookie 列表,您会发现每个站点都为其设置了一个新的 cookie - 这是该域的 Zscaler 身份验证 cookie。

尽管他们可能声称如此,但他们这样做的方式并不独特 - 其他各种网络安全产品都使用完全相同的机制。由于所有重定向(每个域每 24 小时至少发生一次)会对性能产生轻微影响 - 但通常不会那么明显。

相关内容