fuzzy-anonymize-dns

command module
v0.0.0-...-683a1d6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 21, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

README

fuzzy-anonymize-dns

This repository provide proof-of-concept of fuzzy-anonymize DNS

outline

DNS works in hierarchical way as follows:

  • client
  • recursive resolver
  • iterative resolver (omitted afterwards for simplicity)

Current works on anonymizing DNS propose relay in between client and recursive resolver:

  • client
  • relay
  • recursive resolver

relay is contradictory in that:

  • protocol do not trust relay
  • protocol ensures anonymity as much as relay (does not collude with recursive resolver)

relay also add latency in that:

  • additional network hop is required to DNS query
  • recursive resolver provide target address geographically adjacent to relay rather than to client

dnscrypt-proxy

On the other hand, dnscrypt-proxy propose local DNS proxy (or proxy in short). proxy achieves:

  • easy setup for client (e.g., query 127.0.0.1 without encryption)
  • ensure encryption on communication from local to recursive resolver (e.g., dnscrypt)
  • cache DNS queries locally
  • queries from clients are grouped as one

proposal

Idea is to extend proxy to make groups of proxy. As group size increase, it is harder to distinguish client to client and proxy to proxy.

Once cache miss occurs, it will be broadcasted to random number of random other proxy to update cache and to replicate query to recursive resolver.

Proposal achieves follows:

  • DNS queries are fuzzily anonymized
    • recursive resolver cannot easily distinguish distribution of DNS queries of individual client
    • proxy cannot easily distinguish distribution of DNS queries of other proxy following randomness
  • less cold cache misses
    • cache miss of other proxy randomly updates other proxys
    • especially beneficial to not-so-frequently-used proxy and often-used domain name
  • no latency added
    • no additional network hop is required
      • do not wait for response of other proxy
      • call to recursive resolver is handled in parallel
    • every proxy maintain geographically adjacent target addresses for domain names

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL