Реплика: ошибка в реализации TLS от Apple

В продолжение записки про ошибку “goto fail” в операционных системах Apple. Это очень показательный случай, очередной. Ошибка, заключающаяся в одной элементарной строке кода, приводит к тому, что “защищённое” соединение можно перехватывать без проблем. И практических методов защиты от использования этой ошибки – нет.

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

Вот.

Так работает современная массовая криптография. Один оператор goto – и больше нет защиты. Совсем.

Адрес записки: https://dxdt.ru/2014/02/25/6678/

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 3

  • 1 <t> // 25th February 2014, 16:12 // Читатель Дмитрий Белявский написал:

    А не надо писать криптографию самим. OpenSSL этой ошибке не подвержен, NSS тоже…

  • 2 <t> // 25th February 2014, 17:56 // Александр Венедюхин:

    Это да. Странно – они взялись за свой “стек”, но не смогли даже выстроить аудит кода. Предпочли goto fail.

  • 3 <t> // 26th February 2014, 18:57 // Читатель Jeff Zanooda написал:

    Это скорее выглядит как закладка. Пока не обнаружили, угрозы безопасности нет (спасает security by obscurity – кому придет в голову пробовать левый сертификат, ясно же, что код его не примет). А когда обнаружили, можно сказать “ой, ошибся” и тут же исправить. Называется plausible deniability.