似是而非的分析不符合GDPR

2020-10-23 19:32:34

在过去的几个星期里,我的提要和联合时间线上充斥着绝对精彩的营销活动,宣传“似是而非的分析”,这是一个新的关注隐私的开源网站分析工具。似是而非的分析已经享受到了指数级的增长,并且经常受到自由/开源软件社区中注重隐私的声音的推荐。

那么,似是而非的分析公司是否兑现了其承诺,为谷歌分析公司提供一个合乎道德、隐私友好的替代方案呢?让我们仔细看看。

似是而非的分析声称开箱即用符合GDPR、CCPA和PECR。据称,没有必要征得用户同意,因为从来没有收集过个人数据。

然而,似是而非的分析确实承认,它会收集您的用户代理和IP地址来唯一识别您的访问。此外,它还存储有关您的浏览器、操作系统、设备类型和位置的信息(基于您的IP地址)。即使存储的个人数据是匿名的(而不是听起来更可能的假名),数据仍在处理中。

如果您熟悉GDPR,那么您可能知道它肯定包括收集在线标识符,比如IP地址和用于指纹识别的浏览器特征。

我在注册他们的服务时遇到的另一个问题是,似是而非的分析公司没有向他们的客户提供GDPR数据处理协议(DPA)。当您作为网站所有者允许第三方收集和处理个人数据时,您需要签署符合GDPR的DPA。

在我看来,隐私友好应该不仅仅是用来抨击谷歌分析(Google Analytics)的一个流行语。以下是我归因于隐私友好的几个关键点(似是而非的分析公司都没有遵守这些要点):

隐私友好还意味着尊重个人选择共享哪些数据以及与谁共享的权利。似是而非的分析公司似乎认为代表你做出这样的选择是可以的,我完全不同意。

这种糟糕的技术仍然受到不道德广告商的欢迎,作为对抗广告拦截者的有效对策。该技术通过使网站所有者使用CNAME记录将子域指向第三方服务器,从而有效地将第三方跟踪器伪装成第一方资源。

合乎情理的分析公司至少坦率地说明了他们为什么要部署CNAME伪装,正如他们的文档中所解释的那样:

怎么,有人想屏蔽你的隐私友好追踪器?现在我们不能这样做,绝对跟踪每个人都会给似是而非的分析带来相对于谷歌分析的竞争优势。

这是一个很好的问题,但首先我们需要确切地了解根据RFC1034的设计和实现,CNAME的特殊之处。

CNAME RR将其名称标识为别名,并指定相应的规范名称。当名称服务器在与域名相关联的资源集中找不到所需的RR时,它会检查该资源集是否由具有匹配类的CNAME记录组成。如果是,则名称服务器在响应中包括CNAME记录,并在CNAME记录的数据字段中指定的域名处重新开始查询。

让我们以域markosaric.com为例来看看它是如何工作的。该域名由团队似是而非分析公司的数字营销专家马尔科·萨里奇(Marko Saric)所有。他用来伪装跟踪器的子域是ms.markosaric.com。在对ms.markosaric.com执行DNS查询时,我们得到以下响应:

正如我们所知,DNS解析器将ms.markosaric.com标识为custom.plausible.io的别名。此外,因为它是CNAME记录,所以我们还获得了custom.plausible.io的A记录,它指向46.101.161.209。

当浏览器请求ms.markosaric.com的第一方资源时,会发生相同的“基于DNS的重定向”,并从custom.plausible.io插入跟踪器。然而,由于这发生在DNS级别,广告拦截器无法识别追踪器。

让我们看看在添加了一个自定义过滤器来阻止plausible.io域之后,这个黑魔法是如何排斥Chromium上的uBlock Origin的。

下图由两个合并的屏幕截图组成。图片左侧显示了当CNAME伪装生效时,自定义过滤器如何无法停止跟踪器。图片右侧显示了当直接访问时,相同的过滤器成功阻止了跟踪域:

如上所示,跟踪器(index.js)是从远程IP地址46.101.161.209加载的,该地址解析为custom.plausible.io。不过,脚本并未被阻止,个人数据的收割正在全面生效。

这项技术非常有效,因为uBlock Origin无法访问DNS查询,并且完全没有察觉背后的诡计。我不会将这种方法描述为既不保护隐私也不合乎道德。

尽管CNAME伪装是侵扰的、不道德的和恼人的,但它是可以被击败的。我将通过几个选项来帮助您保护您的隐私,这只是个皮毛而已。

通过添加我在本文前面提到的过滤器,您可以很容易地在Firefox上使用uBlock Origin阻止似是而非的分析。Firefox允许扩展(如果获得许可)通过公开DNS API来解析域名。这允许uBlock Origin识别和阻止伪装的跟踪器:

如果你不想使用Firefox,或者更喜欢在DNS级别上阻止似是而非的分析,那么你需要一个可以清除CNAME响应的工具。在我看来,适合这项工作的工具是dnsccrypt-proxy。Dnsccrypt-proxy客户端域黑名单提供对CNAME拦截的支持。

下面的动画gif显示了dnsccrypt-proxy如何阻止包含不需要的跟踪器的CNAME记录。

我承认我对自由/开源软件社区中有隐私意识的人在推广这项服务感到有点好笑和惊讶。更令人惊讶的是,他们正在为他们的网站配置CNAME伪装。我是说,说真的,你不能在这件事上辩称无知。

似是而非的分析擅长对合适的人进行有针对性的营销。然而,我个人并不认为产品兑现了它的承诺。不管是否开源,这里的商业模式仍然是为了盈利而将个人数据货币化,不管你想怎么打扮它。