一种浏览器指纹探测行为监测方法技术

技术编号:20286574 阅读:36 留言:0更新日期:2019-02-10 18:32
本发明专利技术公开了一种浏览器指纹探测行为监测方法。本方法为:1)对可用于指纹探测的API进行改写,加入计数功能;2)浏览器向web服务器请求页面,将该web服务器返回给该浏览器页面脚本中的API替换为改写后的对应API;然后将修改后的页面脚本返回给该浏览器;3)当改写后的API被该web服务器调用执行时,更新该API的执行次数;然后将计数结果注入页面;4)当该浏览器向web服务器再次向该web服务器请求页面时,从页面请求的HTTP报头中Cookie值并将其传递至目标域;5)通过对该目标域中的Cookie值确定该web服务器的浏览器指纹探测行为。本发明专利技术可使用户直观的了解自身浏览器指纹的泄露程度。

A Method for Monitoring Browser Fingerprint Detection Behavior

The invention discloses a browser fingerprint detection behavior monitoring method. This method is as follows: 1) to rewrite the API that can be used for fingerprint detection and add counting function; 2) the browser requests the page from the web server and replaces the API in the script of the web server with the corresponding API after rewriting; 3) when the rewritten API is invoked and executed by the web server, update the persistence of the API. The number of rows; then the counting results are injected into the page; 4) When the browser requests the page from the web server again, the Cookie value in the HTTP header requested by the page is passed to the target domain; 5) The browser fingerprint detection behavior of the web server is determined by the Cookie value in the target domain. The invention enables users to intuitively understand the leakage degree of their browser fingerprints.

【技术实现步骤摘要】
一种浏览器指纹探测行为监测方法
本专利技术属于网络通信领域,涉及一种对Web站点探测用户浏览器指纹行为的监测方法,尤其涉及一种基于Chrome扩展的浏览器指纹探测行为监测方法。
技术介绍
随着互联网技术的发展,互联网应用种类越来越多,用户参与互联网活动的形式越来越丰富,如电子政务、社交网络、网上购物、网上理财、机票酒店预订、即时通信等。互联网应用的普及使得收集用户真实信息的途径大大增多。用户对于互联网应用的使用程度越深入,其真实身份信息被互联网企业收集的可能性就越高,甚至可能已被很多不同的互联网企业掌握。网络在给我们的工作、生活带来便利的同时,也使得个人的信息变得更为透明,导致越来越多针对个人隐私信息的窃取、滥用等行为不断出现。最新的研究表明,web服务器对用户浏览器指纹的探测可以对用户达到90%的识别率。目前,并没有统一的标准来规范Web服务提供方对用户隐私收集的范围与保护能力。因此设计一个可以兼顾用户隐私、又可以探究Web站点究竟获取了哪些用户的隐私信息的监控方法就显得非常必要。一方面可以让用户清晰的了解,究竟哪些站点收集了什么信息,也可以为监管部门提供一项有力的工具进行客观可量化的监测。目前针对网站隐私安全测评的技术方法主要有以下几种:静态分析法,JavaScript在第三方追踪中有十分重要的作用,可以实现几乎所有的指纹收集追踪技术。根据目的不同,有指纹收集行为的JavaScript代码和没有该行为的JavaScript代码通常会调用不同的API集合。有研究通过爬虫爬取热门网站的原始JavaScript代码,进行静态分析。即在代码不运行的情况下来提取JavaScript代码中的API,并进行统计分析。静态分析的方法易于实现,但是无法对加入代码混淆或加壳的JavaScript代码进行分析。第三方追踪探测。第三方在线追踪就是当用户浏览第一方网站时,嵌入在第一方网站中的与第一方网站不属于同一域或同一公司的第三方网站也在收集用户的点击、浏览指纹等行为信息。第三方追踪方法一般是将追踪代码嵌入到第一方浏览页面的iframedom中,所以阻止脚本执行在一定情况下可以防御主动指纹追踪,当第三方应用通过执行脚本来获取httpCookies,FlashCookies,htmlLocalStorage信息时,阻止脚本执行可以阻止这些有状态的追踪,阻止httpCookies或FlashCookies也可以防御有状态的追踪;过滤协议头部可以防御某些被动指纹信息被获取;黑名单防御对黑名单中的第三方应用防御有效。但是上述阻止脚本执行等方法一方面容易被信息收集者跨越或忽略,另一方面也将影响网站的正常功能。
技术实现思路
针对上述隐私安全现状和现有方法的不足,本专利技术提出一种基于Chrome扩展的浏览器指纹探测行为监测方法。该方法通过API的改写,并在页面加载前替换API,可以监测API的调用次数,对不影响页面功能的指纹探测API可以进行混淆,使得利用浏览器指纹信息识别用户的功能难以发挥作用。这样不影响脚本代码的执行,保障网站的正常运行,也可以达到隐私保护的目的。本专利技术能够实现对Web服务的跨域监测,定量分析出其究竟收集了哪些用户浏览器的指纹信息,明确服务方对隐私信息的收集内容。本专利技术还能够对探测浏览器指纹的API进行混淆,使得服务方难以通过浏览器指纹信息唯一确定用户。为了达到上述目的,本专利技术采用了以下方案:一种浏览器指纹探测行为监测方法,其步骤为:1)对可用于指纹探测的API进行改写,加入计数功能;2)浏览器向web服务器请求页面,将该web服务器返回给该浏览器页面脚本中的API替换为改写后的对应API;然后将修改后的页面脚本返回给该浏览器;3)当改写后的API被该web服务器调用执行时,更新该API的执行次数;然后将计数结果以cookie方式注入页面;4)当该浏览器向web服务器再次向该web服务器请求页面时,从页面请求的HTTP报头中获得计数用的Cookie值并将其传递至目标域;5)通过对该目标域中的Cookie值确定该web服务器的浏览器指纹探测行为。进一步的,对API进行改写还包括加入混淆内容;步骤3)中,当改写后的API被web服务器调用执行时,更新该API的执行次数并将该API改写时加入的混淆内容返回给该web服务器。本专利技术首先对可用于指纹探测的API进行改写,可以加入计数功能(为API设置全局变量,每执行一次该API,相应API的计数变量增1,对执行该API的次数进行计数),或进行内容混淆。将改写后的API提前加载至页面脚本中,替换原API从而达到监控的目的。在原页面加载完成后把每个改写后的API计数结果以cookie方式注入页面(即将计数结果存入浏览器的cookie中)。浏览器下一次向web请求页面的时候通过截获HTTP报头获得计数用的Cookie值,并在Chrome扩展中显示给用户。当web服务器调用这些改写的API之后,将返回给web服务器部分更改过的参数,使得web服务器无法通过原有参数的组合唯一的标识用户;同时具备计数功能,可以展示给用户每种API被调用过多少次。本专利技术所述对用于浏览器指纹探测的API进行的改写,具体包括对属性API的改写,对对象API的改写和对方法API的改写。进一步的,对属性API的改写,需要通过Object.defineProperty()重新定义属性,若加入计数功能,则通过Object.defineProperty()在属性API中增加一属性,该新增属性中设有一返回函数,该返回函数中设有计数器。若需要加入内容混淆功能,则提取属性API的原属性值转化为字符串,改写其中的内容,作为该属性API的返回属性值。注意避免改写影响页面功能的属性。进一步的,对对象API的改写,需要通过newobject()重新定义新对象,在新对象中使用Object.defineProperty()重新定义属性,若加入计数功能,则在新对象中属性定义的回调函数中增加计数器,并加1,同时返回原属性值。若加入内容混淆功能,则可以加入自定义内容至该对象中,避免改写其中的内容,以防正常调用该方法的功能无法实现。进一步的,对方法API的改写,无需重新定义新方法、新属性,直接重写方法,若加入计数功能,则在新方法中增加计数器,并加1,同时直接“returnthis”返回原方法的结果。若加入混淆功能,则可以加入自定义内容至该方法中,将方法返回值转化为字符串,改写其中的内容,作为返回结果。比如更改获取timezone的方法,该方法本身是计算得到的返回值,若需要修改本地浏览器所在的时区,就需要对时区的计算方法进行改写。本专利技术可以实时监听网页加载进程,将改写的API脚本代码在页面加载原JavaScript之前就提前注入待加载页面。所述监听网页加载进程为使用监听chrome.tabs.onUpdated事件,该事件表示chrome的标签进行了更新,有可能是刷新页面或者新建页面。当chrome的标签页进行了更新之后,则执行该事件中定义的内容。进一步的,当页面正在加载时,即“changeInfo.status==='loading'”时,利用chrome.tabs.executeScript方法在网站页面加载之前就把修改后的属性和方法提本文档来自技高网
...

【技术保护点】
1.一种浏览器指纹探测行为监测方法,其步骤为:1)对可用于指纹探测的API进行改写,加入计数功能;2)浏览器向web服务器请求页面,将该web服务器返回给该浏览器页面脚本中的API替换为改写后的对应API;然后将修改后的页面脚本返回给该浏览器;3)当改写后的API被该web服务器调用执行时,更新该API的执行次数;然后将计数结果以cookie方式注入页面;4)当该浏览器向web服务器再次向该web服务器请求页面时,从页面请求的HTTP报头中获得计数用的Cookie值并将其传递至目标域;5)通过对该目标域中的Cookie值确定该web服务器的浏览器指纹探测行为。

【技术特征摘要】
1.一种浏览器指纹探测行为监测方法,其步骤为:1)对可用于指纹探测的API进行改写,加入计数功能;2)浏览器向web服务器请求页面,将该web服务器返回给该浏览器页面脚本中的API替换为改写后的对应API;然后将修改后的页面脚本返回给该浏览器;3)当改写后的API被该web服务器调用执行时,更新该API的执行次数;然后将计数结果以cookie方式注入页面;4)当该浏览器向web服务器再次向该web服务器请求页面时,从页面请求的HTTP报头中获得计数用的Cookie值并将其传递至目标域;5)通过对该目标域中的Cookie值确定该web服务器的浏览器指纹探测行为。2.如权利要求1所述的方法,其特征在于,对API进行改写还包括加入混淆内容;步骤3)中,当改写后的API被web服务器调用执行时,更新该API的执行次数并将该API改写时加入的混淆内容返回给该web服务器。3.如权利要求1或2所述的方法,其特征在于,所述API包括属性API、对象API和方法API。4.如权利要求3所述的方法,其特征在于,改写属性API的方法为:在属性API中增加一属性,新增的该属性中设有一返回函数,该返回函数中设有计数器;若在该属性API中加入内容混淆功能,则提取属性API的原属性值转化为字符串,改写其中的内容为设定混淆内容,作为该属性API的返回属性值。5.如权利要...

【专利技术属性】
技术研发人员:江伟玉彭佳葛景全高能李敏
申请(专利权)人:中国科学院数据与通信保护研究教育中心
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1