Giới thiệu Numa: Relay ODoH công khai thứ hai và giải pháp DNS ẩn danh không cần tài khoản
Các dịch vụ DNS hiện tại thường yêu cầu tài khoản hoặc vẫn lộ dữ liệu người dùng. ODoH giải quyết vấn đề này bằng cách tách biệt địa chỉ IP và nội dung truy vấn giữa hai nhà khai thác độc lập. Bài viết giới thiệu Numa, relay công khai thứ hai hỗ trợ giao thức ODoH, giúp nâng cao quyền riêng tư và đa dạng hóa hệ sinh thái DNS an toàn.
Trong thế giới bảo mật DNS hiện nay, người dùng thường phải đối mặt với sự đánh đổi khó khăn. Nếu bạn sử dụng Pi-hole hay AdGuard Home, nhà cung cấp dịch vụ có thể nhìn thấy cả địa chỉ IP của bạn và nội dung truy vấn. Ngay cả khi chuyển sang trình giải quyết đệ quy như Unbound, địa chỉ IP của bạn vẫn bị lộ cho mọi nameserver ủy quyền mà bạn tiếp xúc.
Các giải pháp doanh nghiệp như iCloud Private Relay của Apple hay NextDNS, Cloudflare for Families đều yêu cầu tài khoản, phí thuê bao hoặc bị khóa chặt vào một nền tảng cụ thể. Đây là lúc ODoH (Oblivious DNS over HTTPS) phát huy tác dụng.
ODoH là một giao thức IETF (RFC 9230) giải quyết vấn đề trên bằng cách tách biệt đường dẫn: một bên trung gian (relay) nhìn thấy IP của bạn nhưng không biết nội dung truy vấn, trong khi bên đích (target) biết nội dung truy vấn nhưng không biết IP của bạn.
Numa: Relay công khai thứ hai cho hệ sinh thái ODoH
Trước đây, hệ sinh thái ODoH công khai thực sự chỉ có một người vận hành duy nhất (Frank Denis trên Fastly Compute). Tôi đã xây dựng Numa — một relay công khai thứ hai và một ứng dụng khách (client) hoàn chỉnh để giao tiếp với nó.
Numa v0.14 đóng gói client, relay và một triển khai công khai vào trong một binary duy nhất. Mục tiêu là cung cấp tùy chọn DNS ẩn danh cho những người tự host (self-hosted) mà không cần tài khoản hay bị khóa nền tảng.
Cơ chế hoạt động
Kiến trúc của ODoH dựa trên sự hợp tác giữa hai nhà khai thác độc lập:
- Bạn (Client): Mã hóa truy vấn bằng khóa công khai HPKE của target (Cloudflare). Bao gồm một khóa đối xứng để nhận phản hồi.
- Numa Relay: Chỉ nhìn thấy địa chỉ IP của bạn và dữ liệu đã mã hóa (ciphertext). Nó không thể giải mã nội dung truy vấn hay phản hồi.
- Cloudflare Target: Giải mã câu hỏi, thực hiện phân giải DNS chuẩn. Họ không nhìn thấy IP của bạn, chỉ nhìn thấy IP của relay. Sau đó, họ mã hóa câu trả lời và gửi ngược lại qua relay.
Quá trình này sử dụng các nguyên lý mật mã đã được kiểm toán như odoh-rs (HPKE) và rustls (TLS), đảm bảo không có mã hóa tùy chỉnh nào được sử dụng.
Thách thức khi xây dựng Relay
Để triển khai relay odoh-relay.numa.rs, tôi đã giải quyết hai vấn đề kỹ thuật quan trọng:
- Chống SSRF (Server-Side Request Forgery): Relay mở kết nối outgoing đến target được chỉ định trong URL. Nếu không kiểm soát, kẻ tấn công có thể lợi dụng để truy cập metadata của cloud (ví dụ: 169.254.169.254). Tôi đã xây dựng một trình xác thực tên hostname nghiêm ngặt dựa trên regex (RFC 1035), chặn IP literals và các port không phải 443.
- Kiểm tra eTLD+1: Đảm bảo relay và target không thuộc cùng một tổ chức. Nếu chúng chia sẻ eTLD+1 (ví dụ cùng thuộc
example.com), một nhà khai thác có thể ghép nối IP và câu hỏi, làm vô hiệu hóa tính năng ẩn danh. Numa từ chối cấu hình cùng nhà khai thác theo mặc định.
Những hạn chế mà ODoH không khắc phục
Mặc dù ODoH cải thiện quyền riêng tư đáng kể, nó không phải là giải pháp toàn diện:
- Target vẫn nhìn thấy câu hỏi: ODoH chuyển dịch sự tin tưởng chứ không loại bỏ nó. Target (ví dụ Cloudflare) vẫn có thể ghi log truy vấn, nhưng họ không biết là ai đã gửi.
- Rò rỉ ở chế độ đệ quy: Nếu target hoạt động ở chế độ đệ quy, các bước đi đến root/TLD/authoritative vẫn là văn bản thuần túy (UDP/TCP). ODoH chỉ bảo vệ đoạn từ client đến target.
- Phân tích lưu lượng: Với các relay nhỏ có ít người dùng, kẻ tấn công có thể suy ra danh tính dựa trên thời gian truy vấn. Sự bảo vệ nằm ở số lượng: càng nhiều người dùng trên cùng một relay, tính ẩn danh càng cao.
- Phân phối khóa công khai tập trung: Client lấy cấu hình HPKE của target qua HTTPS từ chính target đó. Nếu bạn không tin tưởng WebPKI, bạn sẽ không tin tưởng ODoH.
Hệ sinh thái và tương lai
Hiện tại, danh sách được biên tập của DNSCrypt chỉ ghi nhận một relay duy nhất. Với việc Numa tham gia (odoh-relay.numa.rs), chúng tôi có thêm một lựa chọn để đa dạng hóa nhà khai thác.
Đây không phải là một sản phẩm thương mại, mà là hạ tầng cơ sở tôi duy trì vì cộng đồng cần nó. Tôi khuyến khích những người khác tự đứng lên các relay ODoH khác nhau. Với Numa, bạn chỉ cần chuyển đổi chế độ sang relay, đặt Caddy phía trước, và mọi thứ sẵn sàng trong một buổi chiều.
Để sử dụng Numa cho DNS ẩn danh ngay hôm nay:
cargo install numa
Sau đó đặt mode = "odoh" trong numa.toml. Các truy vấn của bạn sẽ được định tuyến qua hai tổ chức độc lập — đều mã nguồn mở và có thể kiểm tra.
Numa là một trình giải quyết DNS chạy trên laptop hoặc điện thoại của bạn, tích hợp client ODoH, phân giải đệ quy từ root với DNSSEC, chặn quảng cáo, và nhiều tính năng khác.
Tham khảo thêm về mã nguồn và thảo luận tại GitHub.
Bài viết liên quan

Phần mềm
Google tung ra Antigravity 2.0: Ứng dụng lập trình thế hệ mới với công cụ CLI và gói đăng ký AI Ultra
19 tháng 5, 2026

Phần mềm
Plugin Checkmarx Jenkins bị xâm phạm trong cuộc tấn công chuỗi cung ứng
11 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026
