Кот Муций (cat_mucius) wrote,
Кот Муций
cat_mucius

Categories:

Про перехват SSL

Спросили меня насчёт интервью, которое дал украинскому сайту "Гордон" какой-то бизнесмен Михаил Талан, утверждающий, что российские спецслужбы рутинно проводят массовую "man-in-the-middle" атаку на TLS-соединения российских пользователей.


– Каким образом россиянам удалось вставить туда "посредника" и считывать зашифрованный трафик?
– Подсунув подменный SSL-сертификат в веб-браузер. Подчеркиваю: именно подменный, а не поддельный. SSL-сертификат – это технология аутентификации, которая, если вы открываете Google, говорит веб-браузеру: да, это точно Google. Подделка SSL-сертификата – это, по сути, базовая хакерская атака, а вот подмена – это базовая функция того, кто этот сертификат продает. Подмена доступна исключительно официальному органу, и делается это на основании запроса и, как правило, "для борьбы с терроризмом".
...
В головах у интернетчиков бытует мнение – поддельный SSL-сертификат не сработает. А я еще раз говорю: не поддельный, а подменный, и он выдается корневым центром сертификации по запросу государства для борьбы с терроризмом. Понимаете? Они опять "продают" идею борьбы с терроризмом. Они таким образом заставили всех выдать им сертификаты, но встала вторая проблема – как их встроить в трафик.


То есть - человек утверждает, что все или по крайней мере основные CA выдали российским спецслужбам ключи своих корневых сертификатов или же подписанные ими дочерние сертификаты, чтобы с их помощью спецслужбы могли выписывать самим себе поддельные сертификаты сайтов и дешифровывать-перерасшифровывать-подменять пользовательский трафик.

Чисто технически в этом ничего невероятного нет, о чём я и писал уже давно (1, 2) - государство действительно может добиться от CA такого сертификата, такую подделку действительно тяжело засечь, поскольку практически все поля в поддельном сертификате будут идентичные настоящему, кроме публичного ключа и его хэша. Смену сайтом публичного ключа можно засечь - см. HTTP Public Key Pinning - но она может произойти и по совершенно нормальным причинам, к тому же разные сервера, на которых хостится сайт, могут одновременно иметь разные сертификаты с разными ключами, да и использовал HPKP очень мало кто.

Но вот политически звучит это невероятно. То, что ключи американских центров сертификации есть у NSA, меня не удивит нисколько - но вот какой смысл им делиться ключами с Россией? Своё же собственное государство по головке не погладит за подобную работу на потенциального противника. Далее, даже если у фирмы, скажем, Digicert от российских денег в зобу дыханье спёрло и они решили продать ФСБ сертификат с включённым флагом "CA" - это означает для них страшнейшую игру с огнём, поскольку один доказанный случай MiTM-атаки с их помощью - и вся их репутация сгорает на корню, а репутация - это в принципе единственное, чем CA торгует, без неё он нафиг никому не нужен. А уж содействовать не просто каким-то очень выборочным атакам на определённых людей, а массовому перехвату в масштабах страны - это просто чистое безумие.

Конечно, вполне в возможностях российских спецслужб попросту украсть корневой или дочерний сертификат одного-двух западных CA - просто подкупив их служащих, к примеру. Сумели же американские / израильские подписать Stuxnet ключами легальных сертификатов для защиты програмного кода. Но опять же, для перехвата трафика условного Навального - это вполне годно. А вот если любой зарубежный сайт для российских пользователей внезапно окажется подписанным именно этими одним-двумя центрами - то это такое шило, которое в мешке не утаишь.

Наконец, такой перехват очень легко сдетектировать при наличии собственного заграничного сервера - скажем, виртуальной машины в любом зарубежном облаке, что вовсе не такое уж разорительное дело. Помимо HPKP, могу назвать два способа:

1. Об одном уже писал: аутентификация с помощью своего клиентского сертификата, самоподписанного или выданного своим же самопальным CA. Даже если перехватчик может выдать клиенту безупречно подделанный серверный сертификат, выдать серверу поддельный клиентский он не сможет.

2. А вот второй: штука под названием cryptobinding / channel binding. Идея в следующем. Допустим, мы устанавливаем с сервером соединение по TLS, и затем запускаем с ним какой-то протокол аутентификации - скажем, Kerberos, NTLM или EAP. Пускай он использует обычные пароли. Но помимо зашифрованных паролей, мы с ним обмениваемся ещё и некоторыми контрольными суммами, удостоверяющими, что мы с сервером используем общие ключи для TLS - иными словами, и клиент, и сервер соединены прямой "трубой" TLS-соединения.
Если между нами вклинится перехватчик, пускай и с самым безупречным сертификатом, это уже будут две "трубы" - от клиента до перехватчика, и от перехватчика до сервера. Суммы не сойдутся и протокол аутентификации провалится.
В обычном IIS, включённым во всякую винду, эта фича существует под названием "Extended Protection for Authentication" и включается парой движений мышкой.

Ну и добавлю, что если бы массовый перехват происходил, то Талану было бы очень легко привести пример типа "зайдите на https://mail.google.com через российского провайдера и через украинского и сравните ключи". Пользу он этим принёс бы огромную, однако ж страшные глаза он делает, а конкретикой не балует. Самая крутая конктретика там такая:

Я попросил своего друга в Карелии поучаствовать в эксперименте, а именно: он поехал в приграничную зону с ноутбуком, пересек границу, купил финскую сим-карту, вставил ее в телефон и вернулся в Россию. Дальше он взял ноутбук, подключился к интернету через российскую сим-карту, зашел в Facebook, сделал скриншот ленты. После он перегрузил компьютер, сбросил кеш в браузере и зашел в Facebook, используя интернет финской сим-карты. Опять сделал скриншот. И это оказались две абсолютно разные по содержанию ленты, хотя пользователь один и тот же.

Holy Mother of God. :-) Если я в фейсбуке на F5 нажму, то тоже получу две разные по содержанию ленты, алгоритм фейсбука так работает. :-)


- Американцы отменили 35 организациям SSL-сертификаты. Это невероятно. Я, признаться, не верил, что США отменят SSL-сертификат Федеральной службе безопасности РФ. Но они отменили. Зайдите на официальный сайт ФСБ или Кремля, например. Что вы видите рядом с адресной строкой этих сайтов?
– Надпись "Not secure".
– Во-о-от, а обычно рядом с адресом любого сайта стоит значок замочка, то есть трафик защищен. А теперь у официальных сайтов ФСБ и Кремля, например, трафик не зашифрован. То есть США отозвали сертификаты большинству сайтов, связанных с официальной российской властью. На мой взгляд, это беспрецедентная демонстрация того, на что готов пойти Вашингтон, если Москва не начнет вести себя нормально.


Грандиозно, только жаль, что никаких подтверждений тому, что какой-то CA отозвал сертификат для https://fsb.ru мне найти не удалось. :-) Оный сайт сейчас действительно доступен лишь по HTTP, но сложно поверить, что если бы это был результат отзыва, то во всём Интернете про это знал бы лишь один Талан.

Короче, гражданин трепло, выступающее перед падкой на алармистскую риторику аудиторией.
Tags: networking, politics, security
Subscribe

  • (no subject)

    Накатал в технобложик на модную тему изоляции: https://blog.mucius.tk/2020/09/dangers-of-air-gapped-networks.html

  • Разное сетевое

    У Микрософта нашли очередную дыру, и не абы где, а в святая святых, в домен контроллере. В общем, патчим, товарищи, не ленимся. Там, похоже,…

  • (no subject)

    Внезапно пригодился генератор ругательств шекспировской эпохи, который когда-то доставленный el_d в Удел. Я на него перенаправляю незаконные…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 4 comments