隐私指纹浏览器产品系列 — 什么是指纹(一)

news2024/11/16 1:22:12

1.引言

现在许多网站在努力的尝试标记互联网上的每一个访客,用以追踪用户的行为轨迹,分析行为习惯,以及确认是否为真实用户。除此之外,他们还利用这些标记,将多个可能是同一个用户身份的访客进行归一,关联,甚至当某一个访客触发了制裁规则时,对这些疑似是同一个用户的账号们进行封禁。

2.什么是指纹

浏览器指纹,就是浏览器的特征,它可以通过浏览器公开的API获得,最常见的有UserAgent,Navigator中的设备信息等,他们是直接可以获取的公开信息。另外有一些指纹可以通过反复操作API获得,例如Canvas,WebGL/WebGPU,音频以及TLS等。还有一些指纹,则是与特定操作系统相关的系统参数。

除了浏览器自身的指纹,它的网络环境,也是指纹组成的一部分,例如访问的IP,DNS链路,本机开放的端口,以及使用的代理等等。

还有一类特殊指纹,就是性能指标,如操作响应时间等。

这些特征信息,最后被统一提取为一段Hash,作为一套完整的对象提交给服务端,而服务端,则通过对Hash的碰撞,来分辨哪些用户可能是同一个人。

当这些指标高度相似时,网站会尝试将我们账号归集为同一个真实用户,此时我们将这种情况称之为关联。

3.指纹带来的影响

有了指纹,网站的管理员可以将我们分门别类,便于统计。但是对于用户来说,他将赤裸裸的遨游在互联网的海洋之中。

试想一下这些场景,你开了一个网店,你希望注册多个账号卖不同品类的商品,但是由于指纹一致,IP一致,网站很快的标记了你所有的账号,并在其中一个账号涉及违规时连坐了你所有的账号。又或者你是个社交媒体运营人员,你有Facebook,Ins,X等多个社交平台的多个账号,你希望他们可以关注不同的领域,面向不同领域的客群进行运营,但是网站通过指纹技术和数据共享,关联了你所有的账号,只给你推送同一类内容和用户。

这些场景,在我们的生活中很常见,在远古的互联网时代,在聊天室中,我们管身份叫马甲,这种一个人有多重身份的情况叫套马甲。而通过指纹技术,网站的运营着将扒光你所有的马甲,识别出真实的、唯一的你,这对于普通用户来说,是很不利的。

由于存在网站为了利益,用户为了隐私的天然矛盾,出现了很多修改指纹的方式。

4.如何修改指纹

人们对隐私的诉求,带来了对抗指纹的几个时代,我们在这里根据操作的难度,分为远古时代,近代,和现代。

4.1 远古时代的指纹处理

在远古时代,人们为了解决指纹带来的关联问题,尝试了许多方式,一开始就是在电脑里装了各个品牌的浏览器,每个浏览器开不同的账号。

这种方式在开始的时候效果确实不错,不但不同浏览器的指纹会略有区别,甚至连Cookie等数据都隔离了。但是这种美好从IP被加入指纹后就一去不复返了。

后来的解决方案,就变成了一台电脑办理一个固定IP的形式,这种形式,是最好的指纹对抗,没有之一。指纹是真的,机器是真的,数据物理隔离,网络物理隔离。除了贵没缺点。

再后来为了省钱,以及云主机的发展,租一台Windows主机远程连接操作成为了最好的选择,当然这也不是没有缺点的,就是很考验远程连接的稳定性和带宽。

4.2 近代的指纹处理

为了解决指纹问题,曾经出现过火爆一时的指纹扩展,他们名称都带fingerprint,有改UA的,有改Canvas的等等,每一个都有不俗的下载量。

他们的原理很简单,Hook dom/bom api,套了个壳子,把结果换成自己的。这种方式极大的简化了指纹的模拟,也让大家只需要装个扩展就能搞定指纹问题。

这段美好的时光,再次随着网站运营商对指纹新的要求而夭折。他们不但要求不同账号的指纹不同,还要求同一个账号的指纹不应该经常变化。

于是这个需求,促成了一个新的赛道,指纹浏览器。

4.3 现代史,指纹浏览器的诞生

在指纹浏览器诞生之前,Firefox也尝试增加了一个隐私模式,来解决人们对指纹问题的诉求。但是很不幸的是,它的解决方案与扩展的形式类似,都是靠随机Hash来实现。也就是说,它能实现隐匿真实的用户,但是无法稳定用户账号的指纹。

指纹浏览器,就是要解决用户打开多个浏览器时,每个浏览器都有自己稳定的指纹,但是相互之间又不重复的问题。他们通常利用启动时加载服务端生成的一份指纹环境清单,来实现指纹的稳定和唯一。同时他们也在服务端管理了不同浏览器网络连接走不同的代理,数据保存在不同的缓存位置等。

正因如此,指纹浏览器才会百花齐放,催生出不同品牌,面向不同方向的产品。

5.总结

上面的内容,讲述了浏览器指纹的前世今生,以及指纹待来的用户与网站运营商之间的恩怨情仇。在下一篇文章 《2024指纹浏览器——详解浏览器指纹》中我们会通过一些指纹检测网站,来熟悉指纹,以及如何修改指纹。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国高尔夫运动快速发展中,深圳高尔夫展邀您迎接机遇与挑战

在浩瀚的体育世界中,高尔夫以其悠久的历史、优雅的姿态和独特的魅力闻名于世,被誉为“古老的贵族运动”,而这个美誉却让很多人对它敬而远之。其实高尔夫被称作“贵族运动”,仅仅是因为早期它更多在贵族之间流行而已。 高尔夫&…

【TS】基本类型

基本类型 类型例子描述number1, -33, 2.5任意数字stringhi, "hi", hi任意字符串booleantrue、false布尔值true或false字面量其本身限制变量的值就是该字面量的值any*任意类型unknown*类型安全的anyvoid空值(undefined)没有值(或und…

鸿蒙HarmonyOS开发:如何使用第三方库,加速应用开发

文章目录 一、如何安装 ohpm-cli二、如何安装三方库1、在 oh-package.json5 文件中声明三方库,以 ohos/crypto-js 为例:2、安装指定名称 pacakge_name 的三方库,执行以下命令,将自动在当前目录下的 oh-package.json5 文件中自动添…

面对电商渠道品牌要如何控价

在当今竞争激烈的市场环境中,品牌销售渠道的管理至关重要。线上和线下渠道的低价、窜货问题犹如侵蚀品牌根基的蚁穴,若不加以有效治理,品牌价值将受到严重损害。 线上渠道方面,除了利用系统精准监测低价情况外,还应注重…

手撕数据结构之二叉树

1.树 树的基本概念与结构 树是⼀种⾮线性的数据结构,它是由 n(n>0) 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。 • 有⼀个特殊的结点&…

python语言day2

字符串: 字符串的方法 字符串格式化: 输出结果: 姓名张三今年123岁,现在在北京工作,名字叫张三 text "姓名{0}今年{1}岁,现在在{2}工作,名字叫{0}".format("张三",123,"北京") print(t…

关于冒泡算法

一、前言 当谈及经典排序算法时,冒泡排序(Bubble Sort)无疑是最具代表性的一种。这种算法以其简单直观的特点,成为初学者理解排序基本概念的理想选择。本文将深入解析冒泡排序的原理、实现步骤,以及其在 C# 编程中的具…

【Vue】RuoYi-Vue 若依 vue3 版本安装 tailwindcss 不生效问题

解决方法 删除默认安装教程下的 postcss.config.js 将配置转移到 vite.config.js 中,不生效原因我推测是因为 vite.config.js 配置 postcss 这段覆盖了 postcss.config.js 所致 代码修改如下: 另外原博主友情提示,引入的TailwindCSS的样式…

已解决AttributeError: module ‘emoji‘ has no attribute ‘get_emoji_regexp‘

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

遥感技术在生态系统碳储量、碳收支、碳循环以及人为源排放反演等领域的技术发展

卫星遥感具有客观、连续、稳定、大范围、重复观测的优点,已成为监测全球碳盘查不可或缺的技术手段,卫星遥感也正在成为新一代 、国际认可的全球碳核查方法。目的就是梳理碳中和与碳达峰对卫星遥感的现实需求,系统总结遥感技术在生态系统碳储量…

synchronized 与 Lock 的区别

synchronized 与 Lock 的区别 1、相同点2、不同点2.1 精确性与灵活性2.2 性能2.3 使用便利性 3、示例3.1 synchronized 示例3.2 Lock 示例 4、总结 💖The Begin💖点点关注,收藏不迷路💖 在Java多线程编程中,synchroniz…

查找并可视化非线性关系

使用部分依赖图 (PDP)、互信息和特征重要性分析非线性关系 刚开始开车时,你的经验较少,有时还会比较鲁莽。随着年龄的增长,你会获得更多的经验(和意识),发生事故的可能性也会降低。然而,这种趋势…

Java语言程序设计基础篇_编程练习题*16.6 (演示TextField的属性)

目录 题目:*16.6 (演示TextField的属性) 习题思路 代码示例 结果展示 题目:*16.6 (演示TextField的属性) 编写一个程序,动态地设置文本域的水平对齐属性和列宽属性,如图16-38a所示 习题思路 创建一个HBox,一个Labe…

【前端】记录各种控制台警告/bug

一、Element Plus 1、控制台警告:“Runtime directive used on component with non-element root node. The directives will not function as intended.” 错误原因:在 Vue 组件上使用了运行时指令(指那些在运行时动态绑定到 DOM 元素上的指…

bilibili实习生一面0625

OSI七层模型 物理层:将帧中的比特传送到下一个节点(比特) 数据链路层:将数据包装成帧并传送到路径上下一个节点,将相邻节点间不可靠的物理链路变成可靠的逻辑链路(帧) 网络层:路由寻…

信创数据库沙龙(深圳站 | 开启报名)

信创数据库沙龙: 是一个致力于推动数据库技术创新和发展的高端交流平台,旨在增强国内数据库产业的自主可控性和高质量发展。这个平台汇集了学术界和产业界的顶尖专家、学者以及技术爱好者,通过专题演讲、案例分享和技术研讨等丰富多样的活动形式&#x…

Tkinter Canvas 如何在顶部绘制文本?

在 Tkinter 的 Canvas 上绘制文本非常简单,我们可以使用 create_text 方法来完成这个任务。create_text 方法允许我们指定文本的位置、内容以及字体等属性。为了确保文本绘制在顶部,我们可以设置 y 坐标接近 Canvas 的顶部。 1、问题背景 在使用 Tkinte…

响应式高端大气的模板源码图库素材资源下载平台网站源码,无加密无后门

好看的响应式高端网站模板源码图库素材 资源下载平台源码(可运营)可用于做资源网,功能非常的齐全无任何加密也无任何后门!响应式高端网站模板源码图库素材 资源下载平台源码。这个是独立的网站源码,不依赖wordpress等第…

本地部署Perplexity 克隆:使用Llama 3.1实现高效搜索

最近,OpenAI宣布推出Search GPT,这基本上是Perplexity的改版,但直接由OpenAI开发。这让我非常高兴,因为与其让第三方使用他们的模型并提供封装服务,不如他们自己来做。我一直不喜欢Perplexity,因为他们声称…

【C++ | 泛型编程】C++函数模板详解(定义、使用、特化、重载)

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…