今天为大家推荐的论文是浙江大学网络空间安全学院的张明雪研究员投稿的最新研究CSChecker: Revisiting GDPR and CCPA Compliance of Cookie Banners on the Web,目前该工作已被ICSE 2024接收。
作为当前最具代表性的个人数据保护法, GDPR(通用数据保护条例)和CCPA(加利福尼亚消费者隐私法)的合规性分析获得了学术界的广泛关注。本文的研究发现了最新技术框架下针对GDPR和CCPA的新型违规行为;通过开发定位潜在违规脚本的分析工具,揭示了部分违规行为的成因,有望协助网页开发者分析和修复违规现象。针对GDPR和CCPA违规情况的对比分析,则阐明了不同授权管理机制对于用户体验和网站合规情况的影响,为相关技术规范的制定提供了参考和建议。
研究背景
为推动GDPR与CCPA的实行,IAB Europe与IAB Tech Lab开发了TCF和USP两个技术框架。它们提出了标准化的方法,使用户能够通过一个交互式界面选择是否允许特定的服务提供商(vendors)使用其个人数据。这一交互式界面通常由CMP(同意管理平台)显示,用户的授权信息则以consent string的形式存储并与vendors共享。由于上述过程缺乏统一监管,网站有可能违反GDPR和CCPA的相关规定,对用户的知情权、拒绝权构成威胁。
现有针对TCF v1.1下交互界面的研究指出,网站可能在用户授权前存储consent string(V1)、不展示拒绝选项或选项很难发现(V2)、预选部分授权选项(V3)、存储错误的consent string(V4);针对CCPA的研究则发现V2和V3类型的违规行为同样广泛存在。
研究目标
在本文中,作者对最新框架TCF v2.1 1和USP v1下的交互界面展开研究,发现两类新型违规行为:不透明的“合法权益”授权(V5)和不透明的“特殊功能”授权(V6),并指出V4同样存在于支持CCPA的网站中。此外,作者开发了基于浏览器的分析工具CSChecker用于检测可能造成各类违规行为的脚本。最后,作者对GDPR和CCPA的违规情况展开了对比分析。
方案设计
获取consent string的方式主要有3种:(1)从cookie 2中获取,(2)从网络请求URL中读取,(3)调用CMP API。为了检测consent string是否被错误使用,作者进行了自动和人工两种实验,两者分别记录了用户交互前和拒绝授权后网站存储的consent string。特别地,对于包含consent string的cookie,CSChecker通过检查调用堆栈获取设置该cookie的JavaScript脚本;对于网络请求,CSChecker则依赖DevTools识别初始化请求的脚本;为检测返回错误值的CMP脚本,CSChecker在V8引擎中进行插桩,记录所有JS函数的定义,利用函数object的地址进行记录回溯,找到第一个定义CMP API的JS脚本作为CMP脚本。
实验发现
针对GDPR和TCF的违规行为V1-V6广泛存在于真实网站中,而针对CCPA的违规行为V2-V4同样存在;
错误的consent string可能由JavaScript脚本预设,而非根据用户授权状态写入cookie;
对于传送错误consent string的网络请求,实验发现它们的初始化脚本多数来自广告/用户追踪相关的域名;
-
CMP脚本定义的API可能会返回错误的consent string。
讨论与建议
禁用第三方cookie并不能解决违规现象,因为TCF和USP允许使用第一方cookie和cookie以外的存储方式;
部分网站同时提供多种拒绝授权的交互渠道,大大增加了用户的授权管理难度。设计更加集中、统一的拒绝授权机制将为用户管理授权提供极大便利;
交互界面的设计(如授权选项数量、界面显示位置等)需要仔细斟酌,以提高用户的关注度和参与度;
用户授权的严格执行,需要CMP、网站开发者和浏览器等各方的共同努力。CMP和开发者可根据Web开发框架模板设计统一的交互界面;浏览器应负责确保不同网站上的统一交互界面不会被伪造或篡改、收集用户授权并阻断错误consent string的使用,最终实现用户授权的严格执行。
实验时的最新版本;
TCF和USP允许网站使用cookie之外的存储方式,但并未做出严格规范。因此本文仍以cookie中的consent string作为研究对象。
获取论文PDF请邮件联系mxzhang97@zju.edu.cn
邮箱:mxzhang97@zju.edu.cn