Skip to content

DickHorner/Identity-Firewall

Repository files navigation

Identity Firewall

Die policy-driven Privacy-Schicht gegen Profiling und Surveillance Pricing: Personas statt Zufall, lokale Kontrolle statt Blackbox und ein Setup, das Browser-Signale bewusst normiert, bevor Websites sie auswerten koennen.

CI CodeQL License Rust TypeScript Manifest V3 Privacy Research Issues PRs Contributors Last Commit

Identity Firewall kontrolliert, welche digitale Identitaet Websites zu sehen bekommen: User-Agent, Sprache, Zeitzone, Bildschirmparameter und weitere Signale werden pro Domain ueber Personas auf einen gewuenschten, konsistenten Zustand gebracht. Das Projekt verbindet einen Rust-Core fuer Policy und Validierung mit einer Browser-Extension fuer JS-seitiges Spoofing und legt den Fokus auf Privacy, Transparenz und Forschung statt auf undurchsichtige Anti-Tracking-Versprechen.

Schnellstart · Architektur · Threat Model · Core · Extension · Mitmachen

Inhaltsverzeichnis

Warum Identity Firewall?

Viele Websites lesen nicht nur Inhalte, sondern auch den Kontext, aus dem du kommst: Browser, Sprache, Zeitzone, Bildschirmgroesse und weitere Signale werden zu Profilen verdichtet. Genau dort setzt Identity Firewall an:

  • Profile werden ueber Personas aktiv normiert
  • Domain-Regeln steuern, welche Persona wo gilt
  • Spoofing bleibt bewusst konsistent zwischen Policy und Browser-Oberflaeche
  • Logging bleibt privacy-aware statt datenhungrig

Das Ziel ist nicht "unsichtbar werden um jeden Preis", sondern Profilierbarkeit zu reduzieren, Preisunterschiede messbar zu machen und Browser-Identitaet fuer Forschung und Selbstschutz kontrollierbarer zu machen.

Zurueck nach oben

Das Alleinstellungsmerkmal: Personas statt Zufall

Identity Firewall ist kein lose zusammengeklebter Header-Hack. Der Kern ist ein regelbasiertes Persona-Modell:

  • Eine Persona beschreibt ein bewusst gewaehltes Identitaetsprofil
  • Eine Rule mappt Hostnames oder Pattern auf diese Persona
  • Die Policy Engine loest fuer eine Domain genau die Persona auf, die angewendet werden soll
  • Die Extension setzt diese Entscheidung in der Browserumgebung um

Dadurch entsteht ein reproduzierbarer Workflow fuer Privacy-Tests, Anti-Profiling-Setups und Research zu Surveillance Pricing.

Zurueck nach oben

Feature Highlights (Today)

  • Rust-Core mit Persona-, Rule- und Policy-Modellen
  • Config-Loading fuer TOML und JSON inklusive Validierung
  • Regelmuster mit Priorisierung nach Spezifitaet
  • Privacy-aware Logging mit Persona- und Host-Kontext
  • Browser-Extension mit Popup, Background-Logik und Content-Script-Injektion
  • JS-seitiges Spoofing fuer navigator.*, screen.*, devicePixelRatio und matchMedia
  • Dokumentierte Architektur-, Threat-Model- und Runbook-Basis

Zurueck nach oben

Was heute wirklich implementiert ist

Wichtig fuer eine ehrliche Erwartungshaltung:

  • Implementiert: Rust Policy Engine, Konfigurations-Parsing, Persona-Resolution, Logging-Grundlage und Browser-Extension mit DOM-/JS-Spoofing.
  • Teilweise / in Arbeit: Header-Rewriting auf Extension-Seite, tiefere Browser-Integrationen und ausgebaute Forschungs-Workflows.
  • Geplant: HTTP/WASM-Anbindung an den Core, experimentelle Mehr-Persona-Tests und optional eine GUI.

Das Repo ist also schon klar nutzbar und testbar, verkauft aber bewusst noch keine "vollstaendige Anti-Fingerprinting-Magie".

Zurueck nach oben

Architektur auf einen Blick

flowchart LR
  A[Domain Request] --> B[Policy Engine im Rust-Core]
  B --> C[Persona fuer Host aufloesen]
  C --> D[Browser-Extension setzt Signale um]
  D --> E[Website sieht normierte Identitaet]
Loading

Die drei Hauptbausteine:

  1. core/ verwaltet Personas, Regeln, Konfiguration und Logging.
  2. extension/ setzt Persona-Entscheidungen im Browser um.
  3. docs/ beschreibt Grenzen, Risiken und Betriebswissen.

Mehr Tiefe dazu gibt es in docs/ARCHITECTURE.md und PROJECT.md.

Zurueck nach oben

Schnellstart

Voraussetzungen

  • Rust Stable
  • Node.js 24
  • ein Chromium-basierter Browser fuer den aktuellen Extension-Workflow

Root-Checks

npm install
npm install --prefix extension
npm run verify
pwsh -NoLogo -ExecutionPolicy Bypass -File ./.motherlode/scripts/audit.ps1

Einzelne Build-Pfade

Rust-Core:

cargo build --workspace
cargo test --workspace

Extension:

npm --prefix extension run build
npm --prefix extension run type-check
npm --prefix extension run test

Extension lokal laden

  1. Baue die Extension mit npm --prefix extension run build.
  2. Oeffne chrome://extensions oder edge://extensions.
  3. Aktiviere den Developer Mode.
  4. Lade den Ordner extension/ als unpacked extension.
  5. Oeffne eine Website und pruefe im Popup, welche Persona gematcht wurde.

Zurueck nach oben

Projektstruktur

  • core/ - Rust-Core fuer Personas, Regeln, Policy-Resolution und Logging
  • extension/ - Browser-Extension mit Background-, Content- und Popup-Logik
  • docs/ - Architektur, Threat Model und Runbooks
  • scripts/ - Root-Automation fuer Rust- und Workspace-Kommandos
  • .github/ - CI und CodeQL
  • .motherlode/ - Repo-Standards und Audit-Basis
  • PROJECT.md - Vision, Ziele und MVP-Abgrenzung
  • RUNBOOK.md - Betriebs- und Entwicklerablauf

Zurueck nach oben

Security und Trust

Identity Firewall bewegt sich an einer sensiblen Grenze: zwischen User, Browser und adversarialen Websites. Deshalb sind diese Dokumente nicht "nice to have", sondern Teil des technischen Vertrags:

Wichtige Leitplanken im Projekt:

  • keine Secrets oder Beispiel-Credentials committen
  • keine privacy-feindlichen Defaults einfuehren
  • Browser-seitige Eingaben und DOM-Kontexte als untrusted behandeln
  • sicherheitsrelevante Aenderungen mit Tests und Doku flankieren

Zurueck nach oben

Roadmap (Now / Next / Later)

Now

  • Rust-Core mit Config-Loading, Validierung und Persona-Resolution
  • Browser-Extension mit Popup, Background-Service-Worker und Content-Script-Spoofing
  • dokumentierte Architektur-, Threat-Model- und Runbook-Basis

Next

  • staerkere Header-Rewriting-Unterstuetzung
  • sauberere Core-Integration ueber WASM oder lokale HTTP-Schnittstelle
  • mehr automatisierte Tests fuer Browser-seitige Privacy-Flows

Later

  • Experiment-Modus fuer Persona-Vergleiche gegen dieselbe URL
  • GUI/Tauri-Oberflaeche fuer Persona- und Rule-Management
  • tiefere Abdeckung weiterer Fingerprinting-Surfaces

Zurueck nach oben

Mitmachen

Beitraege sollen fokussiert, reversibel und nachvollziehbar bleiben. Wenn du beitragen willst:

  • starte mit CONTRIBUTING.md
  • nimm Security-Meldungen ueber SECURITY.md
  • fuehre vor PRs die Root-Checks und den Motherlode-Audit aus
  • aktualisiere Doku, wenn Verhalten, Workflows oder Sicherheitsannahmen sich aendern

Fuer Core-Aenderungen sind Rust-Tests wichtig, fuer Extension-Aenderungen TypeScript-Tests und manuelle Browser-Validierung.

Zurueck nach oben

Lizenz

Dieses Projekt steht unter der MIT-Lizenz. Details in LICENSE.

Zurueck nach oben

About

The Identity Firewall is a layer between the user and the web that controls which ‘digital identity’ websites get to see.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors