Implementing Device Fingerprinting

1. Understanding Device Fingerprinting

UseDetail
Risk assessmentDetect new/unusual devices
Anti-fraudSpot account takeover patterns
Privacy concernGDPR — informed consent
StabilityBrowser changes degrade fingerprint over time

2. Collecting Browser Fingerprints

SignalDetail
User-AgentReducing (Client Hints)
CanvasRender text/shapes → hash output
WebGLGPU info, rendering
AudioOscillatorNode hash
FontsAvailable fonts list
ScreenResolution, color depth

3. Using User Agent and Platform

Deprecated: UA string detail. Use User-Agent Client Hints (Sec-CH-UA-* headers).

4. Implementing IP Address Tracking

SignalDetail
ASNISP / hosting provider (datacenter IPs suspicious)
GeoIPCountry/city — flag impossible travel
VPN/ProxyLists like IPQS, MaxMind
Tor exit nodesPublic list

5. Using Device IDs

PlatformID
iOSIDFV (per-vendor); IDFA requires ATT consent
AndroidSSAID (per-app-signer); AAID requires opt-in
WebFedCM + localStorage

6. Implementing Feature Detection

FeatureSignal
Touch supportMobile vs desktop
Hardware concurrencyCPU cores
Device memoryRAM tier
Languagesnavigator.languages
TimezoneIntl.DateTimeFormat().resolvedOptions()

7. Using TLS Fingerprinting

TechniqueDetail
JA3 / JA3SHash of TLS ClientHello / ServerHello fields
JA4Newer, more granular
UseDetect bot stacks (curl, python-requests)

8. Implementing Trust Scoring

SignalWeight
Recognized device+ strong
Same IP/ASN as prior+
New country
Datacenter IP
Headless browser− strong

9. Detecting Suspicious Devices

IndicatorAction
webdriver flagFlag as bot
Plugins=0 + headlessLikely automation
Inconsistent timezone vs IPVPN/proxy

10. Implementing Risk Analysis

StepDetail
CollectSignals at login
ScoreWeighted sum or ML model
DecideAllow / step-up / block
Feedback loopMark false positives, retrain