Your Fortress Against Behavioral Fingerprinting
Invisible protection for your typing, mouse, and touch patterns. Works silently.
Quick Start β’ Features β’ How It Works β’ Installation β’ Documentation
Behavioral biometrics tracking is an increasingly common privacy threat. Websites analyze your:
- β¨οΈ Typing patterns - keystroke timing, rhythm, word boundaries
- π±οΈ Mouse movements - velocity, acceleration, Bezier curves
- π Scroll behavior - speed, patterns, pauses
- π± Touch patterns - pressure, angle, swipe velocity
- π‘ Device motion - accelerometer, gyroscope data
These create unique "behavioral fingerprints" that can identify you across the webβeven in private browsing mode. Research shows that 36% of major websites employ this tracking technique.
| Company | Industry | Tracking Focus |
|---|---|---|
| BioCatch | Banking | Keystroke + Mouse |
| BehavioSec | Authentication | Full Behavioral |
| TypingDNA | Identity | Keystroke Dynamics |
| NuData | E-commerce | Session Behavior |
- Event Interception - Capture-phase interception of keyboard, mouse, and scroll events
- Adaptive Delay Injection - Privacy-level-based timing obfuscation (10-80ms)
- Order Preservation - Events maintain original sequence despite variable delays
- Context-Aware Adjustments - Gaming detection, form fields, search boxes
- Word-Boundary Detection - Natural pauses between words (Gaussian distribution)
- Digraph Noise - Common key-pair timing pattern obfuscation
- Session Randomization - Per-session behavioral variations
- ML Evasion - Adversarial patterns against neural network classifiers
Based on latest academic research:
| Protection | Research Basis | Defense Against |
|---|---|---|
| Touch Obfuscation | BehaveFormer | Mobile fingerprinting |
| Device Motion | Sensor fingerprinting papers | Accelerometer/gyroscope tracking |
| Timing Attacks | Web timing attacks research | RAF/Audio context timing |
| Interaction Patterns | Behavioral biometrics | Focus/blur/click patterns |
| Flight Time Correlation | DeepKey, TypeNet | Keydown/keyup timing analysis |
| Fatigue Modeling | Fatigue effects research | Session-based pattern detection |
| Log-Normal Distribution | Human reaction time studies | Statistical fingerprinting |
| Pointer Obfuscation | Pen/stylus research | Pressure/tilt fingerprinting |
- Extension Hiding - Prevents detection via
chrome.runtime.id - Symbol-based Markers - Non-enumerable synthetic event markers
- IIFE Wrapping - Minimal global footprint
- Web Worker Timing - Protection against worker-based timing attacks
- Dieter Rams-Inspired UI - Minimalist black & white design
- Three Privacy Levels - Low, Medium, High
- Real-time Statistics - Protection metrics dashboard
- Tracker Detection - Alerts when behavioral trackers detected
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Content Script Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββ
β β Keyboard β β Mouse β β Scroll β β Touch ββ
β β Interceptor β β Obfuscator β β Obfuscator β βObfuscatorββ
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββ¬βββββββ
β β β β β β
β ββββββββββββββββββββ΄βββββββββββββββββββ΄ββββββββββββββββ β
β β β
β βββββββββββββΌββββββββββββ β
β β Delay Calculator β β
β β (Word Boundary + β β
β β Digraph + Session) β β
β βββββββββββββ¬ββββββββββββ β
β β β
β βββββββββββββΌββββββββββββ β
β β Event Queue β β
β β (Order Preservation) β β
β βββββββββββββ¬ββββββββββββ β
β β β
β βββββββββββββΌββββββββββββ β
β β Event Synthesizer β β
β β (Synthetic Dispatch) β β
β βββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β V2 Protection Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββ
β β Device β β Timing β β Interaction β β ML ββ
β β Motion β β Attack β β Pattern β β Evasion ββ
β β Protection β β Protection β β Protection β β ββ
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Stealth Layer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Extension β β Performance β β WebWorker β β
β β Hider β β Coarsener β β Timing β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Service Worker (Background) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Storage β β Statistics β β Message β β
β β Manager β β Manager β β Router β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β React Popup UI β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Main β β Stats β β Settings β β
β β View β β View β β View β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Clone the repository
git clone https://github.com/Fevra-Dev/kala.git
cd kala
# Install dependencies
npm install
# Build the extension
npm run build
# Load in Chrome
# 1. Navigate to chrome://extensions
# 2. Enable "Developer mode"
# 3. Click "Load unpacked"
# 4. Select the dist/ folder# Prerequisites: Node.js 18+ and npm
# Install dependencies
npm install
# Development build (with source maps)
npm run dev
# Production build (optimized, no console logs)
npm run build
# Run tests
npm test
# Lint code
npm run lintChrome / Brave / Edge:
- Navigate to
chrome://extensions(oredge://extensions) - Enable "Developer mode" (top right)
- Click "Load unpacked"
- Select the
dist/directory
Firefox:
- Run
npm run build:firefox(if available) - Navigate to
about:debugging#/runtime/this-firefox - Click "Load Temporary Add-on"
- Select
dist/manifest.json
// 1. Capture-phase interception (before page sees event)
document.addEventListener('keydown', handler, { capture: true });
// 2. Clone original event data
const eventData = cloneEvent(originalEvent);
// 3. Calculate delay with multiple noise sources
const delay = baseDelay // Privacy level base (10-80ms)
+ wordBoundaryPause // Natural word pauses
+ digraphNoise // Key-pair patterns
+ sessionVariation // Per-session randomness
+ gaussianNoise; // Natural variance
// 4. Queue for ordered dispatch
eventQueue.enqueue(eventData, delay);
// 5. Synthesize and dispatch with timing obfuscation
eventQueue.process(() => {
synthesizer.dispatch(eventData, target);
});| Level | Delay Range | Use Case |
|---|---|---|
| Low | 10-20ms | Gaming, real-time typing |
| Medium | 20-45ms | General browsing (recommended) |
| High | 40-80ms | Maximum privacy |
Kala automatically adjusts behavior based on input context:
- Gaming - Reduced latency when WebGL/gamepad detected
- Search fields - Minimal delay for better UX
- Password fields - Standard protection
- Text editors - Slight adjustment for contenteditable
| Module | Purpose |
|---|---|
event-interceptor.ts |
Capture-phase keyboard/pointer interception |
event-queue.ts |
Order-preserving delayed dispatch |
delay-calculator.ts |
Adaptive delay with log-normal distribution |
event-synthesizer.ts |
Synthetic event creation |
word-boundary-detector.ts |
Natural typing pause detection |
digraph-noise-generator.ts |
Key-pair timing patterns |
mouse-obfuscator.ts |
Mouse movement noise injection |
scroll-obfuscator.ts |
Scroll pattern obfuscation |
touch-obfuscator.ts |
Touch/swipe velocity obfuscation |
pointer-obfuscator.ts |
Pen pressure/tilt normalization |
flight-time-correlator.ts |
Correlated keydown/keyup timing |
fatigue-model.ts |
Session-based typing fatigue simulation |
device-motion-protection.ts |
Accelerometer/gyroscope protection |
timing-attack-protection.ts |
RAF/audio timing attack defense |
interaction-pattern-protection.ts |
Focus/blur/click pattern protection |
ml-evasion.ts |
Adversarial ML patterns |
extension-hider.ts |
Extension fingerprinting prevention |
performance-coarsener.ts |
performance.now() precision reduction |
webworker-timing-protection.ts |
Web Worker timing attack defense |
context-detector.ts |
Gaming/form/search context detection |
tracker-detector.ts |
Behavioral tracker signature detection |
index.ts |
Main content script entry point |
Kala is designed for minimal performance impact:
| Metric | Target | Actual |
|---|---|---|
| Event processing overhead | <2ms | ~1.2ms |
| Frame rate maintenance | 60 FPS | β Maintained |
| Memory footprint | <5MB | ~3MB |
| CPU usage | <5% | ~2% |
| Document | Description |
|---|---|
| Testing Guide | How to test and develop the extension |
# Run unit tests
npm test
# Run with coverage
npm run test:coverage
# Run linting
npm run lint
# Type checking
npm run typecheck
# Full CI pipeline
npm run ciKala's design is informed by academic research on behavioral biometrics:
- BeCAPTCHA-Mouse (2020) - Mouse dynamics analysis and evasion
- BehaveFormer (2023) - Multi-modal behavioral biometrics
- DeepKey (2017) - Keystroke dynamics authentication
- TypeNet (2023) - Deep learning keystroke analysis with flight time
- Sensor fingerprinting - Device motion fingerprinting research
- Fatigue Effects on Keystroke Dynamics (2019) - Session-based variation
- Log-normal Distribution of Inter-Key Intervals (2018) - Statistical modeling
- TypeScript - Type-safe JavaScript
- React 18 - Modern UI framework
- Webpack 5 - Module bundling
- Chrome Extension Manifest V3 - Latest extension platform
- Jest - Testing framework
- ESLint + Prettier - Code quality
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Behavioral biometrics research community
- Privacy advocacy organizations
- Open source contributors
Kala β Your fortress. Works silently.