第三方饼干:它们的工作方式以及如何阻止他们在网络上跟踪您

跨站点跟踪饼干的未来黯淡,但仍然会给粗心的用户造成隐私困境

跨站点跟踪饼干的未来黯淡,但仍然会给粗心的用户造成隐私困境

多年来,隐私拥护者一直在向使用Cookie跟踪,配置文件和将个性化广告提供给Web用户的警报。讨论尤其是对用于跨站点跟踪的cookie的急剧性,在该cookie中,网站泄漏或将访问者数据提供给网站中包含的第三方服务。

作为回应,一些主要的网络浏览器供应商在过去两年中加大了他们的努力,以提供改进或新的选择来阻止第三方Cookie。2020年,苹果更新了智能跟踪预防在野生动物园,2021年,莫齐拉(Mozilla)推出了完全保护饼干在Firefox中,通过第三方Cookie固定跟踪。

Google已经走到有希望禁用Chrome中的第三方Cookie,但直到具有隐私的替代方案为止 - 目前正在探索下隐私沙箱计划- 是针对需要广告和分析服务的企业开发的。

但是,如果用户未能为其选择的浏览器审核设置,那么所有这些努力都可以限制第三方cookie。默认情况下,新鲜安装的Web浏览器可能不会阻止第三方Cookie。桌面的Firefox是一个值得注意的例外默认情况下,Cookie的总体保护打开了截至2022年6月。

为了更好地了解cookie的问题,我们将简要介绍一下超文本传输​​协议(HTTP)标头字段,然后深入了解Cookie的外观,网络浏览器如何处理它们以及其使用的某些安全性和隐私含义。

为什么网站无论如何都使用cookie?

网站使用HTTP提供访问者要求的网页。使用此协议,客户端(例如,像Google Chrome之类的Web浏览器)将HTTP请求发送到服务器,并且服务器返回HTTP响应。请注意,在本文中,我们使用“ HTTP”表示HTTP或HTTP。

HTTP是一种无状态协议,这意味着服务器可以在不依赖其他请求的情况下处理该请求。但是,通过使用cookie,服务器可以维护状态 - 他们可以将多个请求识别为从页面重新加载,导航,浏览器重新启动甚至第三方网站的相同源的多个请求。这是饼干引入的基本原理。

什么是HTTP标头字段?

在HTTP的详细信息中,最相关的是,HTTP请求包含修改或传达有关请求的信息的标头字段,但最相关的是,最相关的是。让我们考虑以下客户请求:

图1. HTTP请求

此请求有两个标题字段:用户代理和主机。

用户代理标头字段指示提出请求的客户端是在64位Windows 10机器上运行的Chrome版本103。请注意,可以对用户代理进行欺骗。主机标头字段指示该请求已提交的域以及可选的连接端口,并且在所有HTTP V1.1请求中都需要;在这种情况下,域是example.com。

example.com服务器可能会发送对上述请求的响应,该请求看起来像这样:

图2. HTTP响应

HTTP响应还包含修改响应的标头字段,此特定响应甚至包含消息内容。同样,这里的主要思想是HTTP请求和响应使用标头字段,这些字段通过其提供的信息影响其处理,其中可能包括Cookie。

什么是饼干?

cookie是服务器传递给客户端的一块数据,通常是通过set-cookie标头字段以name = value对的形式传递给客户端。让我们重做上面的HTTP响应,但是这次服务器将尝试设置cookie。

图3.服务器可以使用set-cookie标头字段将cookie发送给客户

在此示例cookie中,SessionID是cookie名称,31D4D96E407AAD42是cookie值。

饼干存储在哪里?

当在Windows上运行的Google Chrome浏览器收到cookie的HTTP响应时,它将cookie保存在磁盘上SQLite版本3数据库称为cookie:

图4.镀铬的路径饼干数据库

该数据库包含一个名为cookie的表曲奇饼值是加密的,并存储在称为的列中genterped_value,以及相关的元数据,从表中的其他列可以看出:

图5.饼干镀铬的桌子饼干数据库

cookie表中的部分行可能看起来像这样:

图6.饼干铬桌饼干数据库

尝试访问该工具饼干数据库和解密曲奇值可以通过ESET产品检测到实时文件系统保护。例如,此Python脚本在GitHub中可用被检测到Python/psw.stealer.ad

图7. ESET产品的实时文件系统保护检测Python/psw.stealer.ad试图解密cookie值

但是,Chrome浏览器允许您查看解密的cookie值Chrome Devtools

图8. Chrome Devtools中的饼干窗格

即使可以在Chrome DevTools中查看解密的Cookie值,该值也可能没有意义,因为它可能是独特的随机值(例如,会话标识符),或包含已被进一步加密和签名的数据由发行服务器,通常以某种“文本安全”方式编码,例如Base64。

无论存储在cookie中的数据,名称的长度=值cookie对都不会超过四千字节。这可能是对存储“小”碎屑或数据发起的曲奇的流行描述。

将cookie返回服务器

设置了cookie后,将来的客户端请求向设置cookie设置的服务器可能包含cookie曲奇饼标题字段。让我们重做上面的HTTP请求,但这一次包括先前设置的cookie:

图9.客户使用曲奇饼标题字段返回cookie

影响网络隐私和安全性的关键点之一是客户端的决策逻辑,该逻辑是关于是否将cookie纳入到原始服务器的HTTP请求中。这在很大程度上取决于是否正在在网站上的第一方上下文中启动该请求,该网站设置了cookie或在不同站点上的第三方上下文中,该网站包括来自设置cookie的网站的资源。

接下来,让我们看一下Cookie安全性和隐私功能如何影响客户返回Cookie的决定。

cookie安全

假设我在网站上登录我的帐户。我希望服务器记得我已登录。因此,服务器在我身份验证后会发送cookie。只要客户端在随后的请求中返回该cookie到服务器,服务器就知道我已登录,并且无需使用每个请求进行重新验证。

现在,想象一下,攻击者以某种方式窃取了cookie,也许是通过电子邮件发送的恶意软件。拥有被盗的饼干几乎与拥有我的身份验证凭证一样好,因为服务器将该cookie与我的身份验证的自我相关联。

为了减轻此类Cookie盗窃的危险,服务器可以实施一些措施。

首先,这种特殊的饼干可以设置为短暂的不活动后到期。到期后,一个被盗的饼干变得无用,因为该帐户有效地记录了。

其次,服务器可能需要任何关键操作,例如重置帐户密码,或者,例如在银行申请中传输多个标称金额,可以用当前密码或其他某些其他机制(例如验证代码)确认。cookie小偷应该无法单独使用cookie来重置我的密码或清空我的银行帐户。

最后,服务器可以使用尽可能多的属性设置此cookie,以获得更为严格的安全性,适合曲奇的目的。这意味着使用以下属性:

  • 安全的,指示客户不将cookie包括在未加密的HTTP请求中[这是针对的中间人(AITM)攻击];
  • httponly,指示客户防止像JavaScript这样的非HTTP API访问cookie [这是针对的跨站点脚本(XSS)攻击];
  • samesite =严格,这指示客户仅将cookie包括在访问浏览器地址栏中显示的当前站点的域中的请求中跨站点伪造(CSRF)攻击];和
  • 路径=/,指示客户将cookie包括在域的任何路径的请求中。结合此列表中的下一点,可以将cookie视为“锁定”到域。
  • 但不是领域为了防止cookie被包含在请求中,请求设置cookie的主机的子域。例如,com设置的cookie不应发送到accounts.google.com。

试图设置这样的强化饼干看起来像这样:

set-cookie:sessionID = 31d4d96e407aad42;安全的;httponly;samesite =严格;路径=/

在这里,遵循第一个的属性名称=值一对也是饼干的一部分。

采取进一步的措施来保护站点免受AITM,XSS和CSRF攻击的攻击,也有助于饼干的安全及其提供的服务。

当然,cookie除了处理已登录的用户外,还有更多的用途。它们还可以用来将物品保存在购物车中,记住用户偏好并跟踪用户行为。

第一方饼干与第三方饼干

通过cookie跟踪可以在第一方和第三方上下文中进行。如今,如果按照隐私法的要求披露,通过第一方饼干进行跟踪是标准的课程,除了可能会破坏所有cookie或通过私下或隐身浏览的可能性破坏所有cookie或限制其限制的可能性的破坏网站的选择,除了它不可能对其进行。模式,以便您每次打开新窗口或选项卡并启动新浏览器会话后,每次访问网站时都出现在新访问者中。

但是,第一方饼干到底是什么?让我们以Google为例。如果您打开https://google.com在您的Web浏览器中,然后在Google.com服务器设置的所有cookie中,并将其包含在您的客户端(浏览器)请求中。检查此问题的一种简单方法是寻找具有Google.com域属性值的cookie,因为它们与浏览器地址栏中显示的域相匹配。

Chrome Devtools有个过滤器工具栏加快其域财产的查找请求和cookies选项卡查看每个请求发送的cookie:

图10.第一方饼干返回Google.com

什么是第三方饼干?如果您访问触发到Google.com请求的weliveecurity.c金博棋牌appom之类的非google网站 - 也许该网页具有嵌入式YouTube视频,该视频加载了托管在Google.com上的脚本 - 这些请求中包含的cookie被视为第三方。同样,检查此问题的一种简单方法是寻找具有Google.com的域属性值的cookie,因为它们与浏览器地址栏中显示的域不匹配:

图11.第三方饼干返回到Google.com

请注意,与直接在Google.com上返回的cookie相比,访问此WeliveSecurity文章时,很少有cookie返回Google金博棋牌app.com。这是由于饼干的塑料属性。在第三方的情况下,仅设置的cookiesamesite =无安全的属性可以返回。

这就是为什么从事分析,广告和个性化业务的公司对samesite = none;安全的饼干。Google的nid cookie例如,是一个有助于的超级跟踪器:

  • 请记住偏好,例如首选语言,在搜索结果页面上显示的结果数以及Google的Safesearch过滤器是否已打开
  • 在Google搜索上收集分析
  • 向未登录的用户显示Google服务中的针对性Google广告
  • 在Google搜索中启用个性化的自动完成

nid cookie可以无限期地持续 - 一个可怕的命题 - 除非你手动删除它,因为在您上次使用Google服务后六个月过期,每次登录或退出帐户时都可以重置。

登录指纹

为了对第三方Cookie的跟踪能力有更强的想法,请考虑访问使用HTML和JavaScript代码的网站(帽子提示罗宾·莱纳斯(Robin Linus))页面加载后,要向Google登录服务提出专门制作的请求。

单击下面的运行按钮将导致两个动作之一。如果在此浏览器会话中启用了第三方cookie,则该代码将在运行按钮下方显示Google Favicon,并打开一个警报对话框,上面写着:“您已在此浏览器中登录Google”。但是,如果在此浏览器中阻止了第三方cookie,则该代码将不会在运行按钮下方显示favicon,并且会打开警报对话框,上面写着“我不知道您是否已登录Google”。您可以通过在运行之间刷新此页面来测试这两个操作。



数字12。单击运行按钮检查您是否已在此浏览器会话中登录Google

Google使用一个名为的cookie__-host-3plsid可以将其包括在第三方上下文中的请求中。如果您已登录,则该cookie将包含在请求中,从而使请求成功,从而将您的登录状态泄漏到第三方网站。

同样的问题适用于PayPal,尽管多次运行可能会导致PayPal需要解决验证码,以防止登录指纹:



数字13。单击运行按钮检查您是否已登录此浏览器会话中的PayPal

几乎所有的饼干paypal.com套件有资格在第三方上下文中返回。贝宝(Paypal)似乎使用至少两个cookieid_tokenHAC80BWXSCJQZ7KM6VOXULOB534确定已登录的用户。

阻止第三方饼干

登录指纹在所有站点上都无法使用,因为它利用了服务器如何实现其登录机制及其处理重定向的弱点(尽管并非每个服务提供商似乎都关心此)。为了防止您在网站上跟踪您,并可能泄漏您的登录状态,请确保打开浏览器所具有的任何设置以阻止第三方cookie。

以下列表描述了在最受欢迎的Web浏览器中找到第三方Cookie设置的位置。

Firefox

正如我们一开始所说的,Firefox用于桌面曾有过默认情况下,Cookie的总体保护打开了自2022年6月以来。除了博客文章,我们还链接到这篇支持文章提供有关此功能的更深入的技术讨论,包括如何解决可能与启用该功能无法正常工作的站点进行故障排除。更多的冒险用户可能希望微调默认设置,以下位置:

图14.调整Firefox设置以更好地跟踪保护

铬合金

Chrome浏览器在“隐私和安全性”下为Cookie提供了设置:

图15. Chrome中的“块第三方饼干”设置

一旦您检查了“块第三方cookie”选项,所有第三方cookie都会被阻止 - 它们不会返回服务器,也无法在客户端上设置它们:

图16.铬块第三方饼干

边缘

对于Microsoft Edge浏览器,请按照下图中的数字阻止第三方Cookie:

图17.边缘的“块第三方饼干”设置

在iOS上的Safari设置中,打开“防止跨站点跟踪”:

iOS上的野生动物园

图18. iOS上的Safari中的“防止跨站点跟踪”设置

iOS上的第三方浏览器

iPhone具有“允许交叉网站跟踪”设置,可通过设置应用程序为每个第三方浏览器可用。因此,除了检查每个浏览器应用程序提供的第三方Cookie设置外,还请确保未选择此设置:

图19. iOS上的Chrome中的“允许跨网站跟踪”设置

结论:预测第三方跟踪饼干的死亡

在第三方cookie周围的绞索至少从至少三个点开始收紧。首先,来自那些在其设备和应用程序上打开Cookie Blocking Technology的用户。其次,来自正在加强其默认浏览器设置以限制跟踪的Web浏览器供应商。第三,来自使用替代存储机制来处理跨站点资源的Web开发人员。

随着这些越来越多的削弱在线跟踪的努力,跨场地跟踪饼干在其长期生存方面处于不稳定的基础上,我们可以预测它们在不久的将来的灭亡。

注册以收到电子邮件更新,每当我们在我们的乌克兰危机 - 数字安全资源中心

通讯

讨论