DNSCrypt
До того, як DNS через HTTPS перетворив зашифрований DNS на мейнстрім, DNSCrypt був єдиним широко розповсюдженим варіантом збереження конфіденційності розпізнавання імен. Він досі поставляється з pfSense, проксі-сервером Pi-hole DoH і кількома дистрибутивами Linux, а варіанти дизайну протоколу — анонімні реле, ротація сертифікатів сервера, відсутність накладних витрат на TLS — роблять його цікавим навіть зараз.
Повний текст статті подано англійською мовою нижче.
DNSCrypt був створений інженером OpenDNS Френком Денісом у 2011 році для шифрування та автентифікації DNS-запитів між клієнтом і резолвером. Звичайний протокол DNS 1983 року взагалі не має автентифікації: запит — це UDP-пакет, і будь-який пристрій на шляху може прочитати його, змінити відповідь або підробити відповідь. DNSCrypt вирішив обидві проблеми за роки до появи DNS через HTTPS.
Протокол в одному абзаці
Клієнт отримує підписаний сертифікат із резолвера, рекламуючи свій короткостроковий відкритий ключ і підтримувані шифри. Потім клієнт шифрує кожен запит за допомогою X25519 + XChaCha20-Poly1305 або XSalsa20-Poly1305 і надсилає його на розпізнавач на порт 443 (або 53 з магічними байтами DNSCrypt). Резолвер розшифровує, шукає відповідь, шифрує відповідь і повертає її. Ефемерний сертифікат часто змінюється, тому компрометація ключа має обмежений вплив.
DNSCrypt проти DoH проти DoT
Усі три шифрують запит. Відмінності є прагматичними:
- DNSCrypt: користувацький протокол , низькі накладні витрати, підтримує анонімні ретрансляції з коробки, вимагає клієнта, який підтримує DNSCrypt.
- DNS через TLS (DoT): стандартний TLS на порту 853, прозорий для мереж, але легко блокується, закривши цей порт.
- DNS через HTTPS (DoH): запити через HTTPS на порт 443, невідрізнити від веб-трафіку, важко заблокувати, не порушуючи роботу Інтернету.
DoH виграв гонку за стандартами, оскільки використовує найбільш активно використовуваний порт в Інтернеті. DNSCrypt зберігається через робочі функції, яких DoH не має, особливо анонімні ретранслятори.
Anonymized DNSCrypt: відокремлення запитуваного від того, що запитувано
Вбивчою функцією є Anonymized DNSCrypt, доданий у 2019 році. Запит є подвійне шифрування: зовнішній рівень для ретранслятора, внутрішній рівень для резольвера. Реле розшифровує зовнішній рівень, бачить лише адресу резолвера (не питання) і пересилає внутрішній зашифрований текст. Резолвер розшифровує внутрішній рівень, бачить питання, але не бачить вихідну IP-адресу клієнта. Поки ретранслятором і резолвером керують різні сторони й вони не вступають у змову, жодна з них окремо не може пов’язати користувача із запитом.
Це така ж властивість конфіденційності, як Apple Oblivious DNS через HTTPS (ODoH), але DNSCrypt надіслав його першим і підтримує значно більший загальнодоступний список ретрансляторів і резолверів, керованих незалежними. волонтерів у всьому світі.
Клієнтський ландшафт
dnscrypt-proxy — це еталонний клієнт — єдиний двійковий файл Go, який працює в Linux, macOS, Windows, OpenBSD і FreeBSD. Він приймає звичайний DNS на локальному хості, пересилає на налаштований резолвер через DNSCrypt або DoH, підтримує фільтрацію, блокування, журналювання запитів і балансування навантаження між резолверами. pfSense і OPNsense надсилаються в комплекті. Pi-hole підтримує DNSCrypt через dnscrypt-proxy як висхідний канал.
На стороні резолвера загальнодоступні резолвери з підтримкою DNSCrypt включають Cisco OpenDNS, NextDNS, Quad9, AdGuard і десятки менших вузлів спільноти. Список, який підтримується, знаходиться в репозиторії dnscrypt-resolvers.
Що не вирішує DNSCrypt
Шифрування DNS не робить ваш перегляд приватним. Місце призначення кожного HTTPS-з’єднання видно в мережі в полі TLS ServerName Indication (SNI), тому Encrypted Client Hello має значення. DNSCrypt також не допомагає проти зловмисного резолвера: якщо ви вказуєте dnscrypt-proxy на резолвер, який реєструє все, резолвер усе ще матиме ваші запити. Протокол просто не дозволяє спостерігачам бачити їх.
Де підходить DNSCrypt 2026
Для більшості користувачів достатньо вбудованого DoH в ОС або браузер. Для людей, які мають власну інфраструктуру — домашні лабораторії, малі підприємства, орієнтовані на конфіденційність маршрутизатори — dnscrypt-proxy залишається найбільш гнучким вибором. Поєднання анонімних ретрансляторів, легкого балансування навантаження та сертифікатів резолвера, які можна перевірити в автономному режимі, важко знайти.
Часті запитання
- Чи DNSCrypt кращий за DNS через HTTPS?
- Ні те, ні інше не краще. DoH є ширшим стандартом, поставляється в браузерах і витримує блокування портів завдяки роботі на 443. DNSCrypt має менші накладні витрати на протокол, власну підтримку анонімних ретрансляторів і розширеніший довідковий клієнт. Якщо вам потрібен анонімний DNS сьогодні за допомогою однієї зміни конфігурації, DNSCrypt залишається найчистішим шляхом.
- Чи використання DNSCrypt уповільнить мій перегляд?
- Ледве. Автентифікація додає десятки мікросекунд роботи з шифруванням і одну додаткову зворотну передачу UDP під час першого запиту сеансу. Після кешування сертифіката резолвера запити мають приблизно таку ж затримку, як і звичайний DNS. Анонімний DNSCrypt додає ще один стрибок, який додає кілька мілісекунд.
- Чи може мій Інтернет-провайдер усе ще бачити мої DNS-запити за допомогою DNSCrypt?
- Ні, не вміст. Вони бачать зашифрований UDP або TCP до IP-адреси резолвера. Вони все ще можуть бачити, з яким розв’язувачем ви спілкуєтесь. Якщо мета полягає в тому, щоб приховати і запити, і вибір резолвера, запустіть DNSCrypt через VPN.
- Чи DNSCrypt запобігає викраденню DNS?
- Так, для викрадення на шляху — сертифікат резолвера перевіряється клієнтом, тому впроваджені або підроблені відповіді виявляються та видаляються. Це не захищає від ворожого резолвера <em>chosen</em> або викрадення реєстратора домену на авторитетній стороні; перегляньте нашу статтю про викрадення <a href="/learning/dns-hijacking">DNS </a>, щоб отримати повну інформацію про атаку.
- DNSCrypt ще розробляється?
- так dnscrypt-proxy випускає випуски регулярно, а функцію анонімної передачі протоколу було додано нещодавно у 2019 році. Це вже не єдиний варіант із зашифрованим DNS, але розробники продовжують вдосконалювати його для бази користувачів, яка від нього залежить.