[О блоге] [наверх] [пред] [2018-09-24 22:38:50+03:00] [108669cb34dc8b1fd2d91f77214906350ac5f76b]

Разница между DNSCurve и DNSSEC, почему DNSSEC так хотят?

https://dnscurve.io/faq/differences-between-dnscurve-and-dnssec.html
Перевожу на русский, плюс свои дополнения:

* DNSCurve зашифрован (блюдёт вашу приватность и конфиденциальность)
  DNSSEC не зашифрован
* DNSCurve использует curve25519 алгоритм (быстрый, компактный, безопасный)
  DNSSEC использует RSA (медленный, ресурсоёмкий, сложно реализуемый безопасно)
* DNSCurve имеет 128-бит уровень безопасности
  DNSSEC по-умолчанию 80-бит (1024-бит RSA ключи)
* DNSCurve не требует ни одного дополнительного пакета при работе
  DNSSEC требует более чем половину больше
* DNSCurve не требует новых типов записей DNS
  DNSSEC требует DS, DNSKEY, DLV, TLSA, RRSIG, NSEC, NSEC3, NSEC3PARAM
* DNSCurve не требует дополнительного пользовательского интерфейса
  DNSSEC требует для каждого registrar поддерживающего DNSSEC
* DNSCurve неуязвим для атак перепроигрывания (replay)
  DNSSEC уязвим
* DNSCurve не сливает никаких данных
  DNSSEC сливает содержимое зон через NSEC/NSEC3
* DNSCurve противостоит цензуре в сетях
  DNSSEC вообще никак не защищает от неё
* DNSCurve лишь чуть-чуть увеличивает размер пакетов
  DNSSEC существенно (что может потребовать TCP)
* DNSCurve не может являться источником DDoS
  DNSSEC может
* DNSCurve не использует PKI
  DNSSEC, будучи зависимым от PKI, может контролироваться правительствами

Как работает DNSCurve, вкратце?

    Авторитарный сервер и resolver должны поддерживать этот протокол.
    Иначе будет использоваться обычный DNS.

    Как resolver заранее узнает что авторитарный сервер поддерживает
    DNSCurve? После того, как администратор установит DNSCurve ПО, то он
    помещает его публичный ключ в DNS NS запись. Например, вместо
    запроса к серверу ns1.example.com он может прописать
    uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1.example.com

    Здесь DNS имя uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1
    начинается с магической строчки uz5, после которой идёт Base32
    закодированный Curve25519 публичный ключ. Видя это, resolver
    понимает что сервер поддерживает DNSCurve.

    Resolver затем вычисляет общий ключ, используя свой эфемерный
    приватный ключ и известный публичный сервера. Используя этот ключ,
    он шифрует запрос XSalsa20-Poly1305 и посылает его серверу вместе со
    своим эфемерным публичным ключом.

    Сервер дешифрует запрос, используя свой приватный ключ и эфемерный
    отправителя. Затем шифрует ответ и отправляет назад.

Так почему же DNSSEC при всей своей монструозности жив? Потому-что на
нём можно делать огромный бизнес (кучу софта поменять, админки поменять,
PKI построить), потому-что его безопасность могут нивелировать
правительства, потому-что можно всё-равно устраивать цензуру и смотреть
кто что запрашивает. Сплошной profit для бизнесменов, пытающихся убедить
людей в том что тут речь про безопасность. DNSCurve слишком красив,
прост, эффективен и безопасен, плюс бизнеса никакого не организуешь.

    [оставить комментарий]