跳至正文

什么是浏览器指纹?

    IPv4

    网际协议版本4(英语:Internet Protocol version 4,IPv4),又称互联网通信协议第四版,是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署的版本。IPv4是互联网的核心,也是使用最广泛的网际协议版本,其后继版本为IPv6,直到2011年,IANA IPv4位址完全用尽时,IPv6仍处在部署的初期。

    IPv4在IETF于1981年9月发布的 RFC 791 中被描述,此RFC替换了于1980年1月发布的 RFC 760。

    IPv4是一种无连接的协议,操作在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。这些方面是由上层的传输协议(如传输控制协议)处理的。

    2019年11月26日,全球所有43亿个IPv4地址已分配完毕,这意味着没有更多的IPv4地址可以分配给ISP和其他大型网络基础设施提供商。

    资料来源:维基百科

    IPv6

    网际协议第6版(英语:Internet Protocol version 6,缩写:IPv6)是网际协议的最新版本,用作互联网的协议。用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。

    IPv6的设计目的是取代IPv4,然而长期以来IPv4在互联网流量中仍占据主要地位,IPv6的使用增长缓慢。在2019年12月,通过IPv6使用Google服务的用户百分率首次超过30%。

    资料来源:维基百科

    Flash

    FlashCookie是由FlashPlayer控制的客户端共享存储技术:

    (1)、类似HTTP Cookie,Flash Cookie利用 SharedObject类实现本地存储信息,SharedObject类用于在用户计算机上读取和存储有限的数据量,共享对象提供永久贮存在用户计算机上的对象之间的实时数据共享;
    (2)、本地共享对象是作为一些单独的文件来存储的,它们的文件扩展名为.SOL;
    (3)、本地共享对象并不是基于浏览器的,所以普通的用户不容易删除它们。如果要删掉它们的话,首先要知道这些文件所在的具体位置。这使得本地共享对象能够长时间的保留在本地系统上。

    资料来源:https://blog.csdn.net/Fabulous1111/article/details/84206426

    Language语言


    语言属于浏览器基本指纹之一。浏览器基本指纹是任何浏览器都具有的特征标识,包括屏幕分辨率、硬件类型、操作系统、用户代理(User agent)、系统字体、语言、浏览器插件 、浏览器扩展、浏览器设置 、时区差等众多信息,这些指纹信息类似人类的身高、年龄等,有很大的冲突概率,只能作为辅助识别。

    资料来源:https://www.digitalcitizen.life/what-screen-resolution-or-aspect-ratio-what-do-720p-1080i-1080p-mean/

    Resolution分辨率

    屏幕分辨率是指屏幕上显示的文字和图像的清晰度。显示器越大,通常支持的分辨率越高。是否可以提高屏幕分辨率取决于显示器的大小和功能以及所用视频卡的类型。从技术上讲,“分辨率”是每单位面积的像素数,而不是像素总数。

    资料来源:https://www.digitalcitizen.life/what-screen-resolution-or-aspect-ratio-what-do-720p-1080i-1080p-mean/

    Audio音频

    HTML5提供给JavaScript编程用的Audio API则让开发者有能力在代码中直接操作原始的音频流数据,对其进行任意生成、加工、再造,诸如提高音色,改变音调,音频分割等多种操作,甚至可称为网页版的Adobe Audition。

    AudioContext指纹原理大致如下:

    方法一:生成音频信息流(三角波),对其进行FFT变换,计算SHA值作为指纹。

    方法二:生成音频信息流(正弦波),进行动态压缩处理,计算MD5值。

    两种方法都是在音频输出到音频设备之前进行清除,用户根本就毫无察觉就被获取了指纹。

    AudioContext指纹基本原理:

    主机或浏览器硬件或软件的细微差别,导致音频信号的处理上的差异,相同器上的同款浏览器产生相同的音频输出,不同机器或不同浏览器产生的音频输出会存在差异。

    从上可以看出AudioContext和Canvas指纹原理很类似,都是利用硬件或软件的差异,前者生成音频,后者生成图片,然后计算得到不同哈希值来作为标识。

    资料来源:https://segmentfault.com/a/1190000023249147

    Timezone时区

    时区是全球范围内的指定区域,为法律,商业和社会目的遵守统一的标准时间。 时区往往遵循国家及其分区的边界,而不是严格遵循经度,因为便于紧密商业或其他通信区域保持同一时间。

    陆地上的大多数时区与协调世界时(UTC)的总时差为整小时数(UTC-11:00(无人居住的UTC-12:00)至UTC + 14:00),但其中一些时区 偏移30或45分钟(例如,纽芬兰标准时间为UTC-03:30,尼泊尔标准时间为UTC + 05:45,印度标准时间为UTC + 05:30,缅甸标准时间为UTC + 06:30)。

    Maskfog打开浏览器显示格林威治时间。

    资料来源:维基百科

    localStorage本地储存

    localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将bai数据保存在客户端中,而客户端一般是指上海网站设计用户的计算机。在移动设备上,由于大部分浏览器都支持web storage特性,因此在android和ios等智能手机上的web浏览器都能正常使用该特性。


    localStorage保存的数据,一般情况下是永久保存的,也就是说只要采用localstorage保存信息,数据便一直存储在用户的客户端中。即使用户关闭当前web浏览器后重新启动,数据让然存在。知道用户或程序明确制定删除,数据的生命周期才会结束。


    在安全性方面,localstorage是域内安全的,即localstorage是基于域的。任何在该域内的所有页面,都可以访问localstorage数据。但让然存在一个问题,就是各个浏览器厂商的浏览器之间的数据是各自独立的。也就是说,如果在firefox中使用localstorage存储一组数据,在chrome浏览器下是无法读取的。同样,由于localstorage数据是保存在用户的设备中的,因此同一个应用程序在不同设备上保存的数据是不同的。

    资料来源:https://zhidao.baidu.com/question/304730398919931564.html

    Geo地理位置

    Geolocation API是W3C HTML5标准的一部分,该标准提供了一个简单的高级JavaScript API,该API允许网站请求实际位置,从而潜在地损害了用户的隐私。 此地理位置API测试旨在确保未经您的明确许可,不会通过此API访问任何位置信息。

    资料来源:https://browserleaks.com/geo

    Fonts字体

    字体指纹识别–是您拥有的字体以及如何绘制字体。基于测量文本HTML元素填充的尺寸,可以构建一个标识符,该标识符可用于随时间跟踪同一浏览器。

    基于字体指标的指纹与画布指纹紧密结合。这可能是一种较弱的指纹识别技术,因为画布不仅会获取边界框,还会获取像素数据。另一方面,字体指纹更难防御。

    文本渲染是网络浏览器的一个细微而复杂的部分。甚至在拉丁字母中,布局也不仅仅是将框堆叠在一起:连字,字距调整和组合字符等考虑因素都已发挥作用。其他一些书写系统甚至更加复杂,导致浏览器依赖于OS提供的库来进行文本布局。这些库,包括GNU / Linux上的Pango,Windows上的图形设备接口(GDI)或DirectWrite,以及Mac OS X上的Core Text,都是独立的代码库,行为不相同。浏览器还在基本文本呈现之上强加了自己的自定义项。

    资料来源:https://browserleaks.com/fonts

    Do Not Track请勿追踪

    请勿追踪(英语:Do Not Track,简称DNT)是一项HTTP头字段(Header)。当用户启用该功能后,浏览器会在http数据传输中添加一个头字段:dnt: 1,该字段向网站的服务器表明用户不希望被追踪。这样,遵守该规则的网站就不会追踪用户的个人信息来用于投放更精准的广告。

    资料来源:维基百科

    SSL安全通讯端层

    传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布TLS 1.0标准文件(RFC 2246)。随后又公布TLS 1.1(RFC 4346,2006年)、TLS 1.2(RFC 5246,2008年)和TLS 1.3(RFC 8446,2018年)。在浏览器、电子邮件、即时通信、VoIP、网络传真等应用程序中,广泛使用这个协议。许多网站,如Google、Facebook、Wikipedia等也以这个协议来创建安全连线,发送资料。目前已成为互联网上保密通信的工业标准。

    SSL包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的资料做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。

    资料来源:维基百科

    Proxy代理

    代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。

    提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接传回已缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。代理服务器的选项和设置在计算机程序中,通常包括一个“防火墙”,允许用户输入代理地址,它会遮盖他们的网络活动,可以允许绕过互联网过滤实现网络访问。

    资料来源:维基百科  Best Proxy Reviews

    代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。代理不改变请求URI,并不会直接发送给前方持有资源的目标服务器。

    持有资源实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端。

    DNS域名系统

    域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

    开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“XXX.中国”、“XXX.美国”的域名可以在地址栏直接输入并访问,而不需要安装插件。

    资料来源:维基百科

    Cookie,类型为“小型文本文件”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

    因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么,所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

    在刚才的购物场景中,当用户选购了第一项商品,服务器在向用户发送网页的同时,还发送了一段Cookie,记录着那项商品的信息。当用户访问另一个页面,浏览器会把Cookie发送给服务器,于是服务器知道他之前选购了什么。用户继续选购饮料,服务器就在原来那段Cookie里追加新的商品信息。结帐时,服务器读取发送来的Cookie就行了。

    Cookie另一个典型的应用是当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

    资料来源:维基百科

    Canvas画布

    画布(canvas)元素是HTML5的一部分,允许脚本语言(scripting languages)动态渲染位图像。可以利用JavaScript编程语言在该元素上绘图,常见的应用包括绘制图形及文字、影像处理、游戏及动画制作。

    资料来源:维基百科

    WebGL

    WebGL是一种JavaScript API,用于在不使用插件的情况下在任何兼容的网页浏览器中呈现交互式2D和3D图形。WebGL完全集成到浏览器的所有网页标准中,可将影像处理和效果的GPU加速使用方式当做网页Canvas的一部分。WebGL元素可以加入其他HTML元素之中并与网页或网页背景的其他部分混合。WebGL程序由JavaScript编写的句柄和OpenGL Shading Language(GLSL)编写的着色器代码组成,该语言类似于C或C++,并在电脑的图形处理器(GPU)上运行。

    资料来源:维基百科

    User agent用户代理

    用户代理(英语:user agent)在计算机科学中指的是代表用户行为的程序(软件代理程序)。例如,网页浏览器就是一个“帮助用户获取、渲染网页内容并与之交互”的用户代理;电子邮件阅读器也可以称作邮件代理。而在会话发起协议(SIP)中,用户代理指代的是一个通信会话的所有两个终端。

    在很多场合,用户代理作为一个主从式架构的分布式计算系统中的通信所用网络传输协议的客户端而行为。特别是在超文本传输协议中指定要求发起请求的客户端软件要使用一个“User-Agent”请求表头,即使在客户端不由用户操纵的时候。SIP协议(基于HTTP)沿用了这一用法。

    资料来源:维基百科

    (更多详细介绍可见 Best Proxy Reviews

    IndexedDB

    Indexed Database API(简称IndexedDB,以前称WebSimpleDB)是W3C推荐的一项网页浏览器标准,是为提供一个具有索引的JSON对象集合的事务性本地数据库操作接口。W3C于2015年1月8日发布了IndexedDB接口的最终建议。

    IndexedDB可以用于浏览器内实现的功能,例如书签,以及Web应用程序,如电子邮件。

    资料来源:维基百科