WhatCanFingerprint/README.md
2025-08-29 00:19:10 +03:00

5.0 KiB

WhatCanFingerprint

License TypeScript Svelte Vite Node.js

Privacy Research

A browser fingerprinting analysis tool.

Overview

WhatCanFingerprint is a web application that demonstrates the extensive capabilities of browser fingerprinting. It showcases how much information can be gathered about a user's device, browser, and behavior without requiring any permissions or user interaction.

Features

Core Browser APIs

  • Basic Information - User Agent, platform, vendor, cookie settings, DNT header
  • Display Properties - Screen resolution, color depth, pixel ratio, orientation
  • Localization - Timezone, date/time formatting, language preferences
  • Graphics Rendering - Canvas 2D fingerprinting with geometric shapes and text
  • WebGL Analysis - GPU vendor, renderer, supported extensions, parameters
  • Audio Context - Sample rates, channel configuration, processing capabilities

Advanced Detection Methods

  • Font Detection - Available system fonts through measurement techniques
  • Plugin Enumeration - Installed browser plugins and extensions
  • Hardware Profiling - CPU cores, memory, touch capabilities
  • Network Analysis - Connection type, bandwidth estimation, RTT measurement
  • Battery API - Charging status, level, time estimates
  • Media Devices - Available cameras, microphones, speakers
  • Storage APIs - Support for localStorage, sessionStorage, IndexedDB, WebSQL

Security & Privacy Analysis

  • Permissions - Geolocation, notifications, push messaging capabilities
  • Security Headers - Content Security Policy, referrer policy analysis
  • Detection Evasion - Headless browser detection, automation signatures
  • Timing Attacks - Performance-based fingerprinting techniques
  • Memory Pressure - JavaScript heap analysis and garbage collection patterns

Behavioral Fingerprinting

  • Mouse Dynamics - Movement patterns and interaction timing
  • Keyboard Timing - Keystroke dynamics and typing patterns
  • Scroll Behavior - Scrolling velocity and acceleration patterns
  • Touch Gestures - Multi-touch capabilities and gesture recognition
  • Device Motion - Accelerometer and gyroscope data analysis

Technology Stack

  • Svelte 4 - Modern reactive framework with excellent performance
  • TypeScript - Strong typing for better code quality and developer experience
  • Vite - Fast build tool with instant hot module replacement
  • Modern Web APIs - Extensive use of cutting-edge browser capabilities

Quick Start

Prerequisites

  • Node.js 18+
  • pnpm (recommended) or npm

Installation

# Install dependencies
npm install

# Start development server
pnpm dev

Open http://localhost:3000 in your browser.

Production Build

# Build for production
pnpm build

# Preview production build
pnpm preview

Type Checking

# Run TypeScript type checking
pnpm check

Project Structure

src/
├── components/           # Reusable Svelte components
│   ├── ExportButton.svelte
│   ├── FingerprintGrid.svelte
│   ├── FingerprintSection.svelte
│   ├── LanguageSwitch.svelte
│   └── ProgressBar.svelte
├── lib/                  # Core fingerprinting logic
│   ├── fingerprint.ts    # Main fingerprinting functions
│   ├── webrtc.ts        # WebRTC-specific implementations
│   ├── i18n.ts          # Internationalization system
│   └── advanced-fingerprint*.js
├── styles/               # Global CSS styles
│   └── global.css
├── types/                # TypeScript type definitions
│   └── fingerprint.ts
└── App.svelte           # Main application component

Browser Compatibility

  • Chrome/Chromium 80+
  • Firefox 75+
  • Safari 13+
  • Edge 80+

Some features may not be available in all browsers due to API support variations.

Privacy & Ethics

This tool is designed for educational and research purposes only. It demonstrates the capabilities of browser fingerprinting to:

  • Educate users about digital privacy
  • Help developers understand browser security
  • Assist researchers in privacy studies
  • Enable security professionals to test defenses

Important: Always obtain proper consent before collecting user data in production applications.

License

0BSD

Contributing

Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests to improve the project.