zScaler cookie身份validation如何工作?

我为我的组织实施了一个网页filter,并且正在考虑zScaler。 我不想使用代理PAC文件。 我刚拿到zScaler的销售电话,他们声称,他们可以使用cookie来区分我的用户后NAT。 他们没有解释它是如何工作,但给我演示。 我的拓扑结构如下所示:

RFC 1918 Space – > FW – > 1.1.1.1 – 1.1.1.2 – > Router – > Internet

本质上在路由器上面我将GRE隧道到他们的ZEN节点。 ZEN只会看到我的公共IP 1.1.1.1。

第一次访问互联网时,我将不得不进行身份validation。 之后,使用cookies跟踪用户会话。 这对我来说没有意义,因为:

  • 两个网站,cnn.com和reddit.com,例如将有我的浏览器设置完全不同的cookie。 zScaler会看到类似于:
    • 1.1.1.1:23883 – > cnn.com:80 + HTTP头和由浏览器发送的可能是cnn.com独有的cookie,不一定要把我当作joeDomainUser。
    • 1.1.1.1:26364 – > reddit.com:80 +浏览器发送的HTTP标头和可能的cookie,它们对于reddit.com是唯一的,不一定要把我标识为joeDomainUser。

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

您需要记住,作为代理,它们处于所有Web请求的path中(或者至less,除非您使用SSL解密,否则所有非SSL请求)。

你第一次去cnn.com时,他们会看到你没有一个他们的authenticationcookie的网站。 他们会暂时将您redirect到他们的身份validation网站,而不是为网站提供服务。

一旦你到达authentication网站,会发生两件事情之一。 如果您已经通过了Zscaler的身份validation(他们可以使用cookie来识别,在这个例子中是用于他们的身份validation站点),那么他们会将您redirect到cnn.com,查询string(?xxx = yyy添加到URL ),唯一标识你。 当你的浏览器遵循这个redirect时,他们将再次拦截请求,再次将你redirect到这个原始的URL(cnn.com没有额外的查询string),并且他们将为cnn.com域设置一个zscalerauthenticationcookie,他们可以这样做,因为就浏览器而言,响应来自真正的cnn.com,所以它允许cookie被设置(即使响应真的来自Zscaler)。

之后,每一个对cnn.com的请求都会包含他们对该域名的auth cookie,所以他们会知道你是在提出请求。 经过一段时间(24小时,我认为),cookie将超时,他们将再次通过整个redirect过程。

如果您尚未在上面的第一次redirect过程中向Zscaler进行身份validation,那么他们会让您login,然后按照相同的过程。

如果您在启用身份validation后查看cookie列表,您会发现每个站点都有一个新的cookie设置 – 这是该域的Zscaler身份validationcookie。

尽pipe他们可能会声称,但他们这样做的方式并不是那么独特 – 其他各种networking安全产品使用完全相同的机制。 由于所有的redirect(每个域每24小时至less发生一次)会对性能产生轻微的影响 – 但通常情况下并不明显。