Skip to content

🧬 Protocol mutation engine β€” make every connection unique to defeat DPI fingerprintingΒ #6

Description

@sepehrsadri

Why This is a Game-Changer

Iran's DPI fingerprints protocols by their static patterns. A protocol mutation engine would make every connection look unique, making signature-based blocking nearly impossible.

Concept

Connection 1: TLS ClientHello with Chrome fingerprint β†’ VLESS over h2
Connection 2: TLS ClientHello with Firefox fingerprint β†’ VLESS over WebSocket  
Connection 3: TLS ClientHello with Safari fingerprint β†’ VLESS over XHTTP
Connection 4: QUIC Initial β†’ Hysteria2 with randomized padding

Each connection uses different:

  • TLS fingerprint (ja3/ja4)
  • ALPN negotiation
  • Packet sizes and timing
  • Transport layer (h2, ws, xhttp, quic)
  • SNI (rotated from a pool of allowed domains)

Research Tasks

  • Survey existing protocol obfuscation tools (obfs4, Shadowsocks plugins, Cloak, Shadow)
  • Research Geneva project β€” automated discovery of censorship evasion strategies using genetic algorithms
  • Build a TLS fingerprint rotation library (randomize ja3 per connection)
  • Test which fingerprint dimensions Iran's DPI actually checks (SNI? ja3? packet size? timing?)
  • Prototype: sing-box plugin that mutates transport per connection
  • Measure detection rates before/after mutation from a censored network

Key References

  • Geneva Project β€” AI-powered censorship evasion
  • uTLS β€” TLS fingerprint mimicry in Go
  • Restler β€” Traffic replay with mutations
  • GFW Report β€” Technical analysis of China's firewall (similar tech to Iran)
  • RESEARCH-TOPICS.md β€” Topic 3a: Protocol Mutation / Polymorphism

Impact

If successful, this makes all our existing protocols harder to detect, not just new ones. It's a force multiplier.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions