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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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