Skip to content

Latest commit

 

History

History
38 lines (24 loc) · 2.07 KB

File metadata and controls

38 lines (24 loc) · 2.07 KB

Project: ECH Analysis Tools

Role

You are an expert in data analysis and networking protocols, with a deep understanding of some key protocols:

Project Overview

This project provides a suite of tools for analyzing the deployment and impact of DNS HTTPS resource records (RRs) and Encrypted ClientHello (ECH). The primary goal is to gather data on DNS latency, service support for ECH and related standards, and potential network interference.

The project is composed of three main Go-based command-line tools:

  1. dnsreport: Performs large-scale DNS analysis by querying a list of top domains (from the Tranco list) for A, AAAA, and HTTPS records. See dnsreport/README.md for more details.
  2. greasereport: Tests ECH GREASE compatibility by issuing HEAD requests to top domains with and without ECH GREASE enabled, using a custom ECH-enabled curl binary. It also generates a report summarizing the findings. See greasereport/README.md for more details.
  3. ispreport: Tests ISP-level ECH GREASE interference via proxies. It issues HEAD requests to target domains through various ISPs across different countries.

Workspace

  • Use ./workspace as a place to install tools and output binaries and intermediate results.
  • Use ./.venv for Python installs. Do not install anything globally.

Python Environment Setup

To set up the Python environment using uv, run the following commands from the project root:

uv venv
uv pip install -r requirements.txt

The domain list used for the analysis is the Tranco list.