paint-brush
数字指纹简介:理解、操纵和防御在线跟踪经过@shad0wpuppet
27,113 讀數
27,113 讀數

数字指纹简介:理解、操纵和防御在线跟踪

经过 Konstantin Sakhchinskiy10m2024/01/19
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

数字指纹识别是一种根据独特的设备和浏览器特征来识别用户的技术,对于在线安全至关重要。本文概述了指纹参数、其操作以及隐身浏览网络的策略。它讨论了注重隐私的浏览器、扩展程序和 VPN 等工具。探讨了指纹欺骗、收集用户指纹的动机以及机器人检测系统的作用。概述了其他网站验证步骤的示例,强调了欺骗对于隐私和安全的重要性。文章的结论是,通过欺骗来呈现唯一的合法用户,比简单地隐藏指纹更能提高在线可信度和信任度。

People Mentioned

Mention Thumbnail
featured image - 数字指纹简介:理解、操纵和防御在线跟踪
Konstantin Sakhchinskiy HackerNoon profile picture
0-item

概述

数字指纹识别是一种用于根据用户独特的设备和浏览器特征来识别不同网站上的用户的技术。这些特征 - 指纹参数,可以包括各种软件、硬件(CPU、RAM、GPU、媒体设备 - 摄像头、麦克风、扬声器)、位置、时区、IP、屏幕尺寸/分辨率、浏览器/操作系统语言、网络、互联网提供商-相关和其他属性。


这些参数的组合创建了一个唯一的标识符 - 指纹,可用于跟踪用户的在线活动。指纹在在线安全中发挥着至关重要的作用,使服务能够识别和验证唯一用户。它们还使用户有可能欺骗此类系统以保持在线匿名。然而,如果您可以操纵您的指纹,您就可以运行数十个、数百个或更多不同的帐户来假装它们是唯一的、真实的用户。虽然这听起来很酷,但它具有严重的影响,因为它可以创建一支机器人大军,在整个互联网上传播垃圾邮件和假货,从而可能导致欺诈行为。


注意:显然,我不会在这里讨论如何做“坏”事;一定要时刻保持警惕,远离“阴暗面”,避免做出违法行为。本文介绍的是其背后的技术,因此请明智地使用这些信息。


这是该领域的第一篇(也许不是最后一篇)文章,因此它更像是一个概述。内容提供了该主题的介绍。有数十种工具和方法可以检测、收集和欺骗指纹,并且有许多不同的参数和技术可以揭示或隐藏您的真实身份或您欺骗指纹的事实(意味着您不是真实的用户) )。


数字指纹参数

让我们考虑其中的一些示例,一些是明显的、简单的或众所周知的参数的示例,一些是罕见的、鲜为人知且难以欺骗的参数。


  • User-Agent:该字符串提供有关用户的浏览器、操作系统和设备的信息。
  • IP:它揭示了用户的网络和地理位置。服务使用 IP 地址来确保安全并防止恶意活动。如果您使用来自不同 IP 的一个帐户或来自同一 IP 的多个不同帐户,某些服务可能会将此活动(与其他参数结合)视为可疑活动,并对您使用某种程度的机器人保护。如果您使用已使用的 IP 或某种禁止列表(代理)中的 IP,也可能会触发此操作。
  • 浏览器插件和扩展:有关已安装插件和扩展的信息可用于创建唯一的指纹 - 它有助于根据浏览器的附加功能识别用户。
  • 屏幕分辨率和颜色深度:不同的用户通常有不同的显示特性。
  • 时区和语言设置:它们是指纹识别的重要因素 - 如果您有随机值,例如日本时区挪威语,这有点不寻常。
  • 画布:它涉及在用户浏览器中渲染隐藏图形以收集有关图形硬件的信息。这是一个相当棘手的问题,因为如果你欺骗你的硬件信息,那么你就无法拥有正确的画布值 - 你无法在不同的真实硬件上渲染它。
  • WebGL 指纹识别:它利用用户图形硬件在渲染 3D 图形时的独特功能和限制 - 有关用户设备的附加信息。
  • 字体:用户系统上安装的字体列表可用作指纹识别参数。该信息可通过 JavaScript 访问。字体列表必须是现实的 - 例如,您不能在 macOS 上使用 Win 字体,或者不能只有 1 或 2 种字体,这是一个非常可疑的指标。
  • 电池状态API:它允许网站确定设备的电池电量和充电状态,电池属性的组合可用于指纹识别。
  • 音频指纹:网站可以使用网络音频 API 通过分析设备的音频处理特性来生成独特的音频指纹。
  • 硬件并发:此信息包括有关设备的软件和硬件组件的详细信息,例如显卡、网络适配器和操作系统。这增加了指纹的唯一性。
  • 网络信息:此信息包括有关网络连接的详细信息,例如 IP 地址、ISP 和 DNS 服务器。
  • 打开和使用的端口:一些用户可能会使用一些监听特定端口的软件,这对于某些特定情况也可能有用。



隐身浏览网络

数字指纹操作是一项艰巨的任务,需要采取主动的方法来避免检测。有很多策略和工具可以隐藏您的身份(指纹)或假装您是其他人。

使用注重隐私的浏览器

选择注重隐私的浏览器,例如具有增强隐私设置的 Brave、Ghostery、Tor、Octo Browser 或 Vivaldi,可以从根本上防御常见的指纹识别技术。这些浏览器优先考虑用户隐私,并包含旨在隐藏您真实指纹的功能,使跟踪您的活动变得更加困难。例如,Tor 浏览器基于匿名原则,通过 Tor 网络路由互联网流量。这种战略路由通过一系列志愿者操作的服务器进行反弹连接来掩盖用户的身份,从而增强整体在线匿名性。

浏览器扩展

以隐私为中心的浏览器扩展,包括 AdBlock、uBlock Origin、Privacy Badger 或 CanvasBlocker,可以主动防御跟踪脚本、cookie 和指纹识别尝试。这些工具在后台运行,保护和维护用户的匿名性。

VPN 和代理

VPN 或代理服务的使用通过屏蔽用户的真实 IP(位置、时区、语言等)和加密互联网流量来增加额外的保护层。这不仅用于更改您的指纹,还用于提供更加匿名的在线状态和更高的安全级别。


指纹欺骗背后的动机

了解原因

隐私:担心个人隐私和日益增长的数字监控的个人经常会伪造指纹,以保护自己免受无情的在线跟踪。

地理限制:事实证明,欺骗指纹对于规避地理限制非常有用,允许用户访问仅限于特定区域的内容。 VPN 和代理服务在这里发挥着至关重要的作用,它们不仅隐藏用户的身份,而且还提供对不同地理位置的服务器的访问。

广告:避免有针对性的广告和在线分析是个人操纵其数字指纹的一个令人信服的动机。某些工具可以阻止第 3 方跟踪脚本和 cookie,从而中断分析过程。

数字领域、机器人检测和保护系统的战略需求:网络抓取、多账户、电子商务、赏金和空投、奖金狩猎、社交网络机器人和联属营销通常是中型企业的收入来源或基础。参与这些活动的数字机构、个人和影响者可能需要指纹欺骗才能通过复杂的机器人检测系统。避免检测对于某些服务至关重要,确保合法活动不会被错误地标记或限制(尽管通常情况下,此类活动和帐户并不真正合法,而是假装合法)。一些最流行的工具有 Multilogin、X-Browser、Octo Browser、AdsPower、Incogniton、Scrapy、Surfsky、Web Scraper.io、ScrappingBee 等。


收集用户指纹

JavaScript:网站(显然)使用 JS 来收集有关用户的详细信息以构建全面的数字肖像。这涉及探测屏幕分辨率、设备方向、鼠标移动、击键动态等。复杂的指纹识别脚本枚举了广泛的浏览器和硬件属性。

Cookie 和本地存储:存储在本地存储中的持久 Cookie 和数据可跨会话和平台跟踪用户。技术包括利用浏览器 cookie 和存储用于用户跟踪的唯一标识符。根据您的目的,您需要知道何时需要具有唯一指纹的“空”浏览器,或者何时需要欺骗服务以显示您拥有特定的 cookie 和相同的指纹。

第三方脚本:包含用于分析和广告的第三方脚本嵌入了隐形跟踪器,通常用于根据收集的指纹调整特定用户的系统行为。您可以使用上述工具和方法有选择地阻止或欺骗此类脚本以获得所需的行为。


了解您的在线身份

在线检查器: Panopticlick (EFF)、Pixelscan、deviceinfo.me 和 BrowserLeaks 显示浏览器的指纹参数,例如用户代理、画布指纹、字体等。这些检查器可以深入了解您的数字指纹在不同浏览中的唯一性和稳定性会议。

浏览器开发人员工具:它们允许用户检查网络请求、cookie 和其他指纹参数,从而加深对其数字印记以及网站如何检测机器人和唯一合法用户并收集指纹的了解。检查浏览器中的网络和应用程序选项卡可以实时查看浏览器、网站和服务器之间交换的数据。


以下是一些示例,说明如何在浏览器中获取有关用户指纹的一些信息。

  • 地理:
 navigator.geolocation.getCurrentPosition(function(position) { var userLocation = position.coords; });


  • 麦克风:
 navigator.mediaDevices.enumerateDevices() .then(function(devices) { var microphones = devices.filter(device => device.kind === 'audioinput'); });


  • 相机:
 navigator.mediaDevices.enumerateDevices() .then(function(devices) { var cameras = devices.filter(device => device.kind === 'videoinput'); });


  • 演讲嘉宾:
 navigator.mediaDevices.enumerateDevices() .then(function(devices) { var speakers = devices.filter(device => device.kind === 'audiooutput'); });


  • 声音的:
 var audioContext = new (window.AudioContext || window.webkitAudioContext)(); var oscillator = audioContext.createOscillator(); var analyser = audioContext.createAnalyser(); oscillator.connect(analyser); analyser.connect(audioContext.destination);


  • 图形处理器:
 var canvas = document.createElement('canvas'); var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); var renderer = gl.getParameter(gl.RENDERER); console.log(renderer);


  • 字体:
 var fonts = []; var fontList = document.fonts.forEach(function(font) { fonts.push(font.family); }); console.log(fonts);


  • 画布(哈希):
 var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); var dataURL = canvas.toDataURL(); var canvasHash = MurmurHash3(dataURL); console.log(canvasHash);


  • 内存和CPU:
 function getCPUInfo() { return navigator.hardwareConcurrency || 0; } function getDeviceMemory() { return navigator.deviceMemory || 0; } var cpuInfo = getCPUInfo(); var deviceMemory = getDeviceMemory(); console.log(`CPU Cores: ${cpuInfo}`); console.log(`Device Memory (GB): ${deviceMemory}`);

机器人检测系统:防御自动化

此类系统的几个示例:

  • Distil Networks:它是机器人检测和缓解领域的全球领导者。它提供了一种主动且准确的方法来验证合法人类用户是否正在访问您的网站、移动应用程序和 API。机器人检测: Distil Networks 使用多种技术组合来检测机器人。它研究一系列变量,例如光标移动、点击模式和其他网站的网页浏览模式。它使用设备指纹和“你是人类吗”技术,根据数百种不同的特征检查所有访客,重点关注他们的行为。它主动从浏览器中提取附加数据以精确识别设备。当浏览器请求传入时,Distil 会询问标头以查看访问者是否谎报了其身份。即使在浏览器中无法读取或存储 cookie、隐藏客户端 IP 地址或切换到同一设备上的另一浏览器时,此唯一标识符也可用于完全或部分识别各个设备。它使用机器学习来检测鼠标活动和滚动的生物识别模式,并查看浏览器、设备和其他因素以寻找线索。它可以检测许多从网页运行 JS 的简单或中等复杂度的机器人。资源保护: Distil Networks 防御网络抓取、竞争性数据挖掘、帐户接管、交易欺诈、未经授权的漏洞扫描、垃圾邮件、点击欺诈、拒绝服务和 API 滥用。它可以自动阻止 99.9% 的恶意流量,而不影响合法用户。它还提供针对 Web 和 API 的 Distil Bot Defense,分别保护您的网站和 API 服务器。
  • Imperva:它是一个综合性网络安全平台,集成了基于指纹的识别功能,可区分合法用户和潜在威胁。 Imperva 利用先进的行为分析和异常检测,根据多种因素(包括 IP 声誉、用户代理、不同的指纹参数和行为特征)构建配置文件。这使得系统能够检测表明机器人流量的可疑活动并有效缓解潜在威胁。
  • Akamai:它是一家著名的内容交付和云服务提供商,在其安全产品中融入了强大的机器人检测机制。 Akamai 结合基于指纹的检测、行为分析和机器学习,识别并防御各种机器人程序。 Akamai 的全球网络可提供实时威胁情报,从而能够主动防御不断变化的机器人策略。
  • Cloudflare:它是一种广泛使用的内容交付网络和安全服务,采用多方面的方法进行机器人检测。 Cloudflare 通过分析 IP 声誉、用户代理特征和行为模式等参数来区分人类用户和机器人。该平台还利用威胁情报和社区驱动的见解,在对抗新兴机器人威胁的斗争中保持领先地位。 Cloudflare 使用JA3 Fingerprinting来分析 SSL/TLS 客户端并阻止潜在的机器人请求。它还使用HTTP 过滤来应用规则并根据 HTTP 请求信息路由流量。数据指纹用于识别特定文件并防止数据丢失。这些技术有助于检测非真实用户。

机器人检测系统的作用:

它们在增强机器人检测能力方面发挥着关键作用。通过将服务器战略性地部署在全球各地,他们可以利用地理洞察和实时威胁情报来有效识别和减少机器人流量。该平台的 WAF 和机器人管理器有助于全面防御自动化“用户”。


在这场正在进行的猫鼠游戏中,机器人检测系统不断发展,利用先进技术领先于指纹欺骗技术。安全提供商、企业和更广泛的在线社区之间的合作对于防御自动威胁策略仍然至关重要,但在某种程度上,也被用来侵犯用户的隐私、匿名和在线体验,带来侵入性广告和复杂的用户跟踪工具只对企业有利,对用户不利。然而,隐私保护、指纹隐藏和欺骗以及广告和跟踪器拦截工具也在不断发展,以逃避最复杂的用户跟踪系统。


网站的额外验证步骤

  • 可疑行为:如果指纹看起来可疑,例如频繁更改或数据点的异常组合,网站可能会触发额外的验证步骤。
  • 验证码:网站可能会向用户提出验证码挑战以验证其身份。这涉及解决谜题或识别扭曲的文本,这些任务对于原始机器人来说很难执行。
  • 手机验证:网站可能会要求用户验证手机号码,以在唯一身份和现实世界实体之间建立更牢固的联系。这有助于防止欺诈活动。
  • 身份验证:思路与手机相同,但需要提交身份证件


例子:

Google 不需要对具有清晰、一致指纹的新用户进行额外验证。如果用户的指纹经常变化或与已知机器人使用的指纹相似(或谷歌已经知道),谷歌可能会要求提供手机号码或要求处理验证码。


由于交易的敏感性,金融网站通常会执行更严格的验证措施。他们可能要求用户提供额外的个人信息,通过安全通道验证其身份,或通过更复杂的验证码挑战。

观点:欺骗比隐藏更好

隐藏指纹可以增强隐私、安全性和在线匿名性,但欺骗指纹使其显示为独特的合法用户可以提供更大的优势。通过融入人群并避免检测反检测工具的系统的怀疑,您可以保持信誉和信任。这种方法使您能够享受被视为独特、合法用户的好处,最大限度地减少面临额外保护措施或障碍的机会。显然,它有助于防止泄露您的真实数据和身份。


也发布在这里