Terug naar blog

Hoe controleer je of de omgeving van een vingerafdrukbrowser echt is? Wat te doen bij een afwijkende vingerafdrukdetectie?

Of een vingerafdrukomgeving “echt” is, hangt niet af van de score die een detectiewebsite geeft, maar van de vraag of de signalen van netwerk, browser, systeem, hardware en machtigingen onderling consistent zijn en bij herhaalde starts stabiel blijven. Dit artikel biedt een laag-voor-laag-detectiemethode, een tabel met veelvoorkomende afwijkingen en advies voor stapsgewijs onderzoek in een vingerafdrukbrowser.

Of de omgeving van een vingerafdrukbrowser echt is, kun je niet afleiden uit de vraag of een detectiewebsite 90 of 100 punten geeft. Zinvollere maatstaven zijn: er zijn geen duidelijke tegenstrijdigheden tussen de signalen van netwerk, browser, besturingssysteem, hardware en machtigingen; dezelfde omgeving blijft stabiel bij herhaalde starts; en de functies die zakelijke websites nodig hebben, werken naar behoren.

Een groene melding van een detectietool betekent niet dat elk platform deze omgeving accepteert; een rode melding betekent ook niet dat de omgeving onbruikbaar is. Detectiewebsites hanteren hun eigen regels, databases en scoringsmodellen. Het uiteindelijke oordeel hangt af van de specifieke velden, de doelwebsite en het daadwerkelijke zakelijke scenario.

Wat is een “echte” browseromgeving

Een aannemelijke omgeving voldoet meestal aan vier voorwaarden:

  1. Interne consistentie: de browsermotor, User-Agent, het besturingssysteem, de GPU, de taal, de tijdzone en de netwerkregio verklaren elkaar wederzijds;
  2. Stabiliteit in de tijd: na een herstart veranderen kritieke parameters niet onregelmatig of fors;
  3. Functionele bruikbaarheid: de benodigde functies zoals inloggen, uploaden, videobellen, betalen of het advertentiebeheer werken normaal;
  4. Traceerbare herkomst: het team weet aan welk account, welke proxy en welke verantwoordelijke deze omgeving is gekoppeld en configuratiewijzigingen worden vastgelegd.

“Elke parameter exact gelijk aan de fysieke computer” is geen noodzakelijke voorwaarde. De browser zelf verlaagt de nauwkeurigheid van gegevens al om de privacy te beschermen. Zo wijst de toelichting van MDN op deviceMemory erop dat deze eigenschap alleen een benaderde geheugenwaarde teruggeeft die is afgerond en binnen boven- en ondergrenzen gebracht; hardwareConcurrency kan ook lager zijn dan het werkelijke aantal logische processors van het apparaat. Een gedetecteerde waarde is dus geen hardware-inspectierapport.

Stel vóór de detectie eerst een basislijn vast

Verander niet steeds opnieuw parameters in een live omgeving met belangrijke accounts. Maak eerst een testomgeving aan waarin je niet bij zakelijke accounts inlogt en leg het volgende vast:

  • de versie van de vingerafdrukbrowser en de Chromium-motor;
  • het besturingssysteem, de User-Agent en de resolutie;
  • het proxytype, het uitgaande IP-adres, het land en de stad;
  • de taal-, tijdzone- en geolocatie-instellingen;
  • het beleid voor WebRTC, DNS, Canvas, WebGL en lettertypen;
  • geïnstalleerde extensies en opstartparameters.

Gebruik op hetzelfde moment twee of drie detectietools voor een kruiscontrole en bewaar schermafbeeldingen of exporteer de resultaten. Wijzig daarna telkens maar één variabele en vergelijk die met de basislijn. Zo ontdek je of de afwijking afkomstig is van de proxy, de browserconfiguratie, een extensie of de detectiewebsite zelf.

Laag 1: controleer de netwerkuitgang

Controleer eerst of het publieke IP-adres dat in HTTP-verzoeken verschijnt het proxy-IP is waaraan de omgeving is gekoppeld, en controleer daarna DNS, WebRTC en IPv6.

IP en DNS

Leg het uitgaande IP-adres, de ASN, de ISP, het land, de stad en de tijdzone vast. Verschillende databases kunnen een afwijkend oordeel geven over stad en proxytype; een conflict op het niveau van land of ASN verdient meer onderzoek dan een afwijking in één stad.

Als DNS-verzoeken via het lokale netwerk lopen terwijl webverkeer via de proxy gaat, kan een detectiewebsite een DNS-regio tonen die verschilt van de uitgangsregio. Controleer allereerst of de proxy externe DNS ondersteunt, of er in de browser of het systeem een aparte DNS-instelling staat en of extensies netwerkverzoeken herschrijven.

WebRTC

WebRTC verzamelt ICE-kandidaatadressen om peer-to-peer-verbindingen op te zetten. RFC 8828 legt uit dat daarbij extra publieke of private adressen zichtbaar kunnen worden, of dat de proxy wordt omzeild wanneer deze directe verbindingen toestaat, waardoor het echte publieke IP-adres wordt onthuld.

Het detecteren van een privéadres betekent niet per se dat het echte publieke IP-adres lekt; 192.168.x.x, 10.x.x.x en dergelijke zijn alleen lokale netwerkadressen. Waar het werkelijk om gaat: verschijnt er in de ICE-kandidaten een ander publiek IP-adres dat niets met de proxy-uitgang te maken heeft?

Schakel WebRTC niet klakkeloos altijd uit. Videoconferenties, spraak en realtimecommunicatie kunnen ervan afhangen. Kies op basis van de toepassing: laat WebRTC de standaardroute van de proxy volgen, gebruik een proxy die UDP ondersteunt of TURN, beperk de blootstelling van lokale adressen of schakel WebRTC uit wanneer realtimecommunicatie niet nodig is. Test na elke wijziging zowel de privacyresultaten als de bedrijfsfunctionaliteit.

Geolocatie

De coördinaten van de Geolocation API van de browser kunnen afkomstig zijn van gps, wifi, het IP-adres, een mobiel netwerk of gebruikersinvoer. De W3C Geolocation-specificatie vermeldt uitdrukkelijk dat de API niet garandeert dat de werkelijke locatie van het apparaat wordt geretourneerd.

Een klein verschil tussen de stad op basis van het IP-adres en de geolocatiecoördinaten is dus niet per se een afwijking. Belangrijker is of er onverklaarbare conflicten ontstaan tussen land, tijdzone, taal en het zakelijke werkgebied, en of de website al toestemming voor locatie heeft gekregen.

Laag 2: controleer de browser en het besturingssysteem

Vergelijk vooral deze combinaties:

  • de versie van de Chromium-motor met de hoofdversie van de browser in de User-Agent;
  • het besturingssysteem in de User-Agent met platform, UA Client Hints en de lettertypecollectie;
  • de taal van de browserinterface met Accept-Language, de tijdzone en de regio-opmaak;
  • de resolutie, de devicepixelratio, de venstergrootte en de aanraakmogelijkheden;
  • de mobiele kenmerken met de schermafmetingen, het aanwijsapparaat en de hardwarekenmerken.

Een veelvoorkomende afwijking is dat de User-Agent handmatig is aangepast zonder de motor of clienthints te synchroniseren; of dat een omgeving als macOS wordt voorgesteld terwijl er nog duidelijk Windows-lettertypen, een Windows-GPU en Windows-interactiekenmerken aanwezig zijn.

De meest betrouwbare aanpak is niet om elke waarde afzonderlijk te verzinnen, maar om gevalideerde systeempresets te gebruiken en de motor, de UA, het platform en de bijbehorende parameters als één geheel bij te werken. Genereer de User-Agent na een motorupgrade opnieuw of controleer deze, en blijf niet langdurig hangen op een duidelijk verouderde versie.

Laag 3: controleer hardware- en weergavesignalen

Canvas, WebGL, AudioContext, lettertypen, CPU, geheugen, media-apparaten en ClientRects kunnen allemaal bijdragen aan de herkenning van een omgeving. Richt je bij de controle op “of de combinatie aannemelijk is” en “of deze stabiel is”, in plaats van te jagen op één unieke hash.

WebGL en GPU

Als een omgeving beweert een bepaald besturingssysteem of type apparaat te zijn, maar de WebGL-fabrikant, de renderer en de status van hardwareversnelling tegelijk duidelijk onmogelijk zijn, ga dan terug naar de systeempreset. Verander de fabrikantnaam niet zomaar in een ander merk om één detectiewebsite tevreden te stellen; een verkeerde combinatie leidt meestal tot meer tegenstrijdigheden.

CPU en geheugen

hardwareConcurrency geeft het aantal logische processors aan dat voor de browser beschikbaar is; de browser kan bewust een lagere waarde rapporteren. deviceMemory is een afgeronde benadering. Een melding van 4 kernen of 8 GB zegt dus niets over de werkelijke hardware en is ook geen reden om direct iets te wijzigen omdat het niet met de fysieke computer overeenkomt.

Waar je wél op moet letten: ligt de waarde binnen het bereik dat de browser ondersteunt, botst hij duidelijk met het type mobiel of desktopapparaat en blijft dezelfde omgeving na een herstart redelijk stabiel?

Canvas en audio

Privacybescherming of een ruisbeleid kan ertoe leiden dat hetzelfde fysieke apparaat in verschillende omgevingen verschillende resultaten oplevert. Maar als de hash in dezelfde omgeving bij elke verversing verandert, kan dat wijzen op een te sterke randomisatie, waardoor de stabiliteit van langdurige sessies juist verslechtert.

Test de resultaten van dezelfde omgeving bij opeenvolgende verversingen, na sluiten en opnieuw openen en bij een start op een later moment. Als het beleid is ontworpen als “op omgevingsniveau stabiele ruis”, hoort dezelfde omgeving een verklaarbare continuïteit te vertonen.

Laag 4: controleer opslag, extensies en opstartparameters

Omgevingsisolatie omvat niet alleen de vingerafdrukparameters, maar ook cookies, Local Storage, IndexedDB, de cache, Service Worker, extensies en de downloadgeschiedenis.

Log met twee testomgevingen in op verschillende testsites en bevestig dat cookies en lokale opslag niet door elkaar worden gebruikt; controleer vervolgens of de gegevens na het wissen van de cache, het importeren van cookies of het herstellen van een omgeving overeenkomen met de verwachting.

Extensies zijn een veelvoorkomende bron van verstoring. Ze kunnen de User-Agent, de proxy, requestheaders, Canvas, WebRTC of paginascripts wijzigen. Schakel bij een afwijking eerst in een testkopie alle niet-noodzakelijke extensies uit en schakel ze daarna één voor één weer in. Aangepaste opstartparameters moet je eveneens één voor één uitsluiten, zodat niet meerdere tools tegelijk hetzelfde signaal wijzigen.

Veelvoorkomende afwijkingen en hoe je ze oplost

VerschijnselMogelijke oorzaakAanbevolen aanpak
IP-land en tijdzone komen niet overeenDe tijdzone is vastgezet op een lokale waarde of de regio van de proxy wordt verkeerd herkendControleer eerst het land van de proxy en laat de tijdzone daarna het IP-adres volgen of stel deze in op de werkelijke zakelijke regio
De HTTP-uitgang en het publieke WebRTC-IP verschillenWebRTC maakt direct verbinding, de proxy ondersteunt geen UDP of de routing splitst het verkeerPas de WebRTC-routering aan en test UDP/TURN en de bedrijfsfunctionaliteit
De UA-versie en de motor komen niet overeenDe handmatige UA is te oud of niet gesynchroniseerd na een motorupgradeGebruik een passende preset, genereer de UA opnieuw en test de UA Client Hints opnieuw
macOS-kenmerken met Windows-lettertypen of -GPUAlleen oppervlakkige velden zijn gewijzigdGa terug naar een systeempreset en vermijd handmatige combinaties over systemen heen
Canvas verandert bij elke verversingDe willekeurige ruis is te sterk of een extensie veroorzaakt een conflictZet het vast op een beleid op omgevingsniveau en test opnieuw nadat de conflicterende extensie is uitgeschakeld
CPU of geheugen wordt rood gemarkeerdDe detectiewebsite interpreteert afgeronde waarden als fysieke hardwareControleer eerst de API-definitie van de browser en beoordeel daarna of er echt een combinatieconflict is
Twee detectiewebsites geven tegenstrijdige conclusiesDatabases, regels en updatetempo verschillenVergelijk de onbewerkte velden, niet alleen de totaalscore; de test met de beoogde toepassing is leidend
Belangrijke velden veranderen na een herstartDe willekeurige configuratie is niet opgeslagen of de omgeving is opnieuw opgebouwdControleer het beleid voor opslaan, synchroniseren en willekeurige vingerafdrukken en zet de parameters op omgevingsniveau vast

Doorloop de lagen in PurpleMark

Als de eerdere bevindingen er normaal uitzien maar sommige platforms nog steeds een afwijking melden, kun je de controles uitvoeren op de betreffende omgeving in PurpleMark.

De eerste stap is het bevestigen van de uitgang. Bekijk in het proxybeheer van PurpleMark de proxy die aan de huidige omgeving is gekoppeld, bevestig het uitgaande IP-adres, de regio en de tijdzone, vergelijk dit met het publieke IP-adres dat de detectiewebsite toont en controleer daarna of er via WebRTC een ander publiek adres verschijnt dat niets met de uitgang te maken heeft.

De tweede stap is om de parameters als één geheel te controleren in plaats van ze stuk voor stuk handmatig aan te passen. Bij het maken van een omgeving in PurpleMark kun je in één keer het besturingssysteem, de Chromium-motor, de User-Agent, de taal, de tijdzone en de geolocatie instellen en vingerafdrukparameters zoals WebGL, WebRTC, CPU, geheugen en Canvas configureren. Wanneer de motor, de UA, het besturingssysteem en de lettertypen dezelfde preset volgen, voorkom je tegenstrijdige resultaten zoals “Windows-lettertypen bij een macOS-kenmerk”. Bekijk vóór het aanmaken eerst de voorbeeldweergave van de omgeving, bevestig dat de combinatie van velden aannemelijk is en sla daarna pas op.

De derde stap is veilig experimenteren. Maak een kopie van de problematische omgeving als testkopie en blijf niet eindeloos wijzigen in de live omgeving. Pas telkens slechts één variabele aan — bijvoorbeeld eerst de proxy of de WebRTC-route en daarna het Canvas-ruisbeleid — sla na elke wijziging het detectieresultaat op, start tweemaal opnieuw om de stabiliteit te bevestigen en doorloop daarna pas het echte zakelijke proces op de doelwebsite. Vermoed je dat een extensie stoort, schakel die extensies dan in de kopie één voor één in om de oorzaak te vinden.

Deze stappen helpen je om binnen dezelfde configuratie de uitgang, de parametercombinaties en de stabiliteit te controleren, zodat gemakkelijker is vast te stellen “uit welke laag een detectieresultaat afkomstig is”. Ter verduidelijking: PurpleMark zorgt ervoor dat de parameters consistent blijven en de omgeving reproduceerbaar blijft; het uiteindelijke detectieoordeel blijft afhankelijk van de kwaliteit van de proxy, de browserversie, extensies, de netwerkroutering en de eigen beoordelingslogica van de doelwebsite.

Creëer geen nieuwe afwijkingen om een perfecte score te halen

De scores van detectiewebsites zijn geschikt om aanwijzingen te vinden, maar niet als enig doel. Veelvuldig wisselen van UA, GPU, Canvas, lettertypen en tijdzone kan de omgeving instabieler maken dan voorheen; het kopiëren van andermans “perfecte parameters” kan ook niet het netwerk, de hardware en het gebruiksverleden van die ander kopiëren.

De juiste aanpak is om uit te gaan van de onbewerkte velden: los eerst de duidelijke tegenstrijdigheden op en verifieer daarna de stabiliteit op de lange termijn en de bedrijfsfunctionaliteit. Een omgeving die niet de hoogste score haalt maar wel een aannemelijke combinatie en een blijvende stabiliteit heeft, is meestal beter beheerbaar dan een “perfect scorende omgeving” die bij elke detectie verandert.