Группа исследователей из университета Карнеги-Меллон совместно с компанией Facebook провели (https://www.linshunghuang.com/papers/mitm.pdf) исследование, нацеленное на изучение доли в реальном web-трафике поддельных HTTPS-соединений, установленных в результате MITM-атак (man-in-the-middle). Результаты превзошли все одидания - около 0.2% (6845) из почти трёх с половиной миллионов проанализированных HTTPS-запросов пользователей к социальной сети Fecebook оказались установленными с использованием поддельных SSL-сертификатов, сгенерированных без ведома владельца сайта. Подобные поддельные сертификаты позволяют организовать транзитный перехват трафика, при этом браузер клиента определяет соединение как защищённое и не выводит предупреждений.
Подавляющее большинство запросов с поддельных сертификатов приходится на различные антивирусные системы. На втором месте корпоративные межсетевые экраны и системы отслеживания утечек данных. Подобные системы используют (http://www.opennet.me/opennews/art.shtml?num=33127) заслуживающие доверия сертификаты антивирусных вендоров или вторичные корневые сертификаты, которые позволяют создать корректный и не вызывающий подозрения сертификат для любого сайта в сети. Суть метода состоит в перехвате соединения клиента и его трансляции через промежуточный локальный прокси, при установке соединения клиента с прокси используется поддельный сертификат, а при соединении прокси с целевым сайтом устанавливается нормальное защищённое соединение.
Примечательно, что среди поддельных сертификатов, выявлено 112 запросов, связанных с активностью вредоносного ПО. В данных запросах фигурировали сертифиткаты, выписанные от имени удостоверяющего центра IopFailZeroAccessCreate, поддельный корневой сертификат которого подставлялся вредоносным ПО в браузеры, после успешных атак на клиентские компьютеры. Во вредоносном ПО поддельные сертификаты используются для организации перехвата паролей в HTTPS-трафике, а также для подстановки собственной рекламы на запрашиваемые пользователем защищённые страницы.
Отмечается, что практика перехвата HTTS-трафика антивирусным ПО представляет потенциальную угрозу - если профессиональные злоумышленники или спецслужбы, в результате кражи или принуждения, получат в свои руки корневой сертификат производителя антивирусного ПО, то они получат возможность контролировать защищённый трафик пользователей данного вендора.
В качестве способа накопления статистики о числе пользователей, применяющих поддельные сертификаты, разработан простой метод (диаграмма справа), основанный на размещении на сайте специальной Flash-вставки, которая осуществляет HTTPS-соединение силами Flash и записывает в журнал используемый в этом соединении сертификат. В дальнейшем, владелец сайта может оценить записи в журнале, в которых фигурируют поддельные сертификаты.
<center><img src="http://www.opennet.me/opennews/pics_base/0_1399872220.png" style="border-style: solid; border-color: #606060; border-width: 1px;max-width:100%;" title="" border=0></center>
URL: http://arstechnica.com/security/2014/05/significant-portion-.../
Новость: http://www.opennet.me/opennews/art.shtml?num=39751
>> Отмечается, что практика перехвата HTTS-трафика антивирусным ПО представляет
>> потенциальную угрозу - если профессиональные злоумышленники или спецслужбы, в
>> результате кражи или принуждения, получат в свои руки корневой сертификат
>> производителя антивирусного ПО, то они получат возможность контролировать
>> защищённый трафик пользователей данного вендора.Тогда уж про весь SSL в таком контексте нужно говорить, что он УГ, а-то накинулись тут на бедных несчастных антивирописателей, под чьим контролем и так вся система и, как сдедствие, юзерская инфа находится.
> Тогда уж про весь SSL в таком контексте нужно говорить, что он УГSSL-то в порядке. А вот PKI… Даёшь референдум за децентрализацию! :)
Ну да, это и имелось ввиду.
> SSL-то в порядке.Вообще-то переусложненный протокол и переусложненная либа - не совсем порядок. Потому что уйма легаси и багов, а безопасно этим пользоваться умеет полтора человека на планете.
Мне кажется, это говорилось не про библиотеку (только танкисты не слышали про heartbleed), а про создание защищённого соединения при помощи двойного рукопожатия с использованием открытых-закрытых ключей.Проблема PKI в основном состоит в том, что есть камни преткновения - так называемые Certificate Authority, закрытые сертификаты которых сертификационные центры используют для подписи сертификатов других людей, и которые импортированы по умолчанию в веб-браузеры.
Короче говоря, если кто-то заполучит сертификат CA, то это будет ЧП мирового масштаба.
Нет, не будет. Такое было не раз, и будет ещё не раз. Ну и чисто для удовлетворения моего любопытства: а если самый настоящий УЦ выпишет не менее настоящий сертификат для какого-либо домена, скажем gmail.com, не имея для этого никаких "легальных" оснований -- это будет ЧП мирового масштаба или так, фигня на постном масле?
> Нет, не будет. Такое было не раз, и будет ещё не раз.
> Ну и чисто для удовлетворения моего любопытства: а если самый настоящий
> УЦ выпишет не менее настоящий сертификат для какого-либо домена, скажем gmail.com,
> не имея для этого никаких "легальных" оснований -- это будет ЧП
> мирового масштаба или так, фигня на постном масле?фигня, уже было. На право и налево раздают сертификаты, которые могут выписывать валидные сертификаты для gmail.com. Сабж не читал?
Фигня потому что ты не обязан доверять никакому CA. Можешь их все удалить, или только те, которые выдают вторичные корневые из сабжа.
> использованием открытых-закрытых ключей.Посмотри на TLS, почитай описание протокола. А потом читани описание какого-нибудь CurveCP. Так, для контраста. Чтобы осознать насколько одно и то же может быть разным по сложности реализации. Разница дикая. Ясен пень не в пользу TLS. А чем сложнее протокол - тем больше багов в его реализациях и в вариантах протокольной логики. Heartbleed - один из примеров. Но вообще-то если выбирать для протокола девиз, для TLS хорошо бы подошел "а теперь со всей этой фигней мы попробуем взлететь".
> Короче говоря, если кто-то заполучит сертификат CA, то это будет ЧП мирового
> масштаба.И, как видим, каждые 2 случая из 1000 уже являются фуфлом. То-есть, не только заполучили, но и пользуются.
>а-то накинулись тут на бедных несчастных антивирописателей, под чьим контролем и так вся система и, как сдедствие, юзерская инфа находится.Ну, чтобы злоумышленник (или правоохранитель в штатском) получил доступ ко всей системе через антивирус, в нём должен быть бэкдор. Это технически труднее и может всплыть. А вот если я знаю, что Вася пользуется антивирусом Кашпировского, и у меня есть сертификат Кашпировского и я могу перехватить соединение, то я могу организовать MITM для Васи с любого сайта безо всякого насилия над самим Васиным компом.
Другое дело, что, я так думаю, нормальный антивирус должен поднять тревогу, если обнаружит, что из интернета предъявили его сертификат, который должен использоваться только на локальной машине.
> Другое дело, что, я так думаю, нормальный антивирус должен поднять тревогу, если
> обнаружит, что из интернета предъявили его сертификат, который должен использоваться только
> на локальной машине.Вы сами-то поняли, что написали?
Чей-чей сертификат? Антивируса? Откуда получит? Что значит "должен использоваться на локальной машине"?
>Вы сами-то поняли, что написали?
>Чей-чей сертификат? Антивируса? Откуда получит? Что значит "должен использоваться на локальной машине"?Ну, как я понимаю, схема такая же, как на некоторых инсталляциях в локальной сети. То есть:
Без антивируса:
Сервер --> [сертификат сервера] --> Васин браузерС антивирусом:
Сервер --> [сертификат сервера] --> Антивирус --> [сертификат антивируса] --> Васин браузерЕсли сертификат антивируса придёт от сервера, то надо поднимать тревогу.
> Ну, как я понимаюУвы, доктор, вы понимаете неверно. Нет никаких сертификатов антивирусов. Есть сертификаты серверов, в том числе сертификаты серверов, с которыми соединяется антивирус (скажем, для обновления сигнатур).
Это печально. Вы, судя по всему, работаете на догадках, чего в данном деле быть не должно.Вам нужно почитать какую-нибудь справку по сабжу. Вот это вполне подойдёт для ознакомления с теоретической частью: http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/
По крайней мере именно это мне рекомендовал в своё время Вагнер.
Ты бы новость почитал сначала, особенно кусок про перехват трафика антивирусами. Именно так это и работает.
а что он, кстати, неправильно описал? анонимус выше вполне резонно удивляется, потому что схема MITM описана вполне верно, хоть и поверхностно. ок, на самом деле там будет *корневой* сертификат от антивируса, и подписаные ним сертификаты для других ресурсов. поскольку антивирус спокойно встроит свой сертификат в системное хранилище как довереный, то браузер даже и не пискнет, увидев вполне легальный сертификат, подписаный довереным root authority.inb4: нет, практик. для PoC пришлось, правда, вернуть в PolarSSL код генерации сертификатов.
У меня в squid пользователи тоже через https под созданным мною сертификатом сидят в инете. По другому никак.
ну это другой вопрос.
внутри сети конторы, по указанию руководства можно (нужно???) перехватывать/заворачивать/отслеживать всё и вся.
а вот всякие "дикие" MITM - плёхо.
> У меня в squid пользователи тоже через https под созданным мною сертификатом
> сидят в инете. По другому никак.А что этот squid делает в случае невалидного сертификата на удалённой стороне?
А так же что он делает, елси пользователь пытается авторизоваться используя свой клиентский сертификат?
Возможно вообще не стоит вообще обманывать пользователей, и перенаправлять их на http к squid-у, а со squid-а уже https. Как-то как не крути, всё слишком криво получается при данной схеме)
> А что этот squid делает в случае невалидного сертификата на удалённой стороне?Лучше пусть скажет, какие гарантии что он креды кардерам не сливает со своего сквида. Никаких? Ну тогда при случае сажать как сообщника.
Не забываем, что это корпоративная сеть какого-то предприятия. Нехер из корпоративной сети выполнять банковские операции с личными счетами.
Если это не подписано __всеми__ сотрудниками конторы и они не стоят в известности - то это преступление.
> Не забываем, что это корпоративная сеть какого-то предприятия.Насколько я помню, УК РФ кроме всего прочего обещает некислые кары за подобную активность, при том там потенциально чуть не полдюжины статей подходят. А персонально моя точка зрения - если вы проводите такую активность то в случае утечки данных должны отвечать как соучастник.
> У меня в squid пользователи тоже через https под созданным мною сертификатом
> сидят в инете. По другому никак.И какой смысл от такого https? Вы, или хакер на этом сквиде, или кто там еще в два счета могут умыкнуть сведения о кредитных картах и прочее. Надеюсь что в случае таких вещей вас вздрючат по полной программе и вообще сделают подозреваемым.
> У меня в squid пользователи тоже через https под созданным мною сертификатом
> сидят в инете. По другому никак.статьей попахивает
> У меня в squid пользователи тоже через https под созданным мною сертификатом
> сидят в инете. По другому никак.ням-ням-ням! у тебя благосостояние как? а то, понимаешь, первый же более-менее умный пользователь шустренько пишет заявление про то, что «пропало куртки замшевых три и стопицот мильёнов денег со счёта», после чего ещё твои внуки будут его внукам выплачивать компенсации.
> У меня в squid пользователи тоже через https под созданным мною сертификатом
> сидят в инете. По другому никак.p.s. и да, «начальство приказало» в данном случае отмазкой не является. если начальство тупое и приказало это письменно, то пойдёт соучастниками. а если умное и как обычно, устным приказом, то оно вообще не при чём.
Они ещё предлагают Flash, как костыль к PKI использовать, ну вообще прекрасно!
> Они ещё предлагают Flash, как костыль к PKI использовать, ну вообще прекрасно!Прекрасна глубина твоих выводов из прочитанного.
Они предлагают, как пример, "HSTS and HPKP defenses [..., как...] most readily supported in [...] major browsers today", хотя и не "prevent all types of attacks [...]".
А флеш у них, как инструмент "скриптования" на стороне клиента~~~
>А флеш у них, как инструмент "скриптования" на стороне клиента~~~То есть у каждого клиента должен стоять flash-плагин, иначе это не работает?
Или я снова не так понял?
> То есть у каждого клиента должен стоять flash-плагин, иначе это не работает?
> Или я снова не так понял?Не напрягайся так. У каждого клиента *facebook*-а _стоит_ флеш. Исключения подтверждают и пренебрегаются.
После появления новости http://www.opennet.me/opennews/art.shtml?num=33034 я в рассылке Mozilla предлагал сделать из JavaScript доступ к полученному https сертификату сервера, чтобы можно было передать его обратно на сервер и там сравнить с тем, который был отправлен самим сервером. Так можно было бы эффективно собирать информацию о центрах авторизации, типа Trustwave, которые продают свои корневые сертификаты для организации атак MiTM. Уверен, что после сбора достаточного количества статистики таких умников поубавилось бы, так как мало кто любит сообщников в получении информации о собственной частной жизни. И в любом случае стоимость таких левых сделок увеличилась бы на порядок, а значит, организаций, способных купить железку, способную проксировать и прослушивать https трафик тоже стало на порядок меньше. Понятно, что от NSA это не защитит, но и для них такая операция станет сложнее и, возможно, ее не получится проделывать совсем автоматически.Однако, мозилловцы ответили, что "человек посредине" сможет и JavaScript отключить, и подменить его. Все верно, но для частичного изменения JavaScript потребуется искусственный интеллект, а его полное отключение может частично или полностью сделать неработоспособным сайт, их не насторожило.
P.S. Про Сноудена тогда никто еще не знал, но другого объяснения, кроме негласной "дружбы" с АНБ я не нашел.
> Однако, мозилловцы ответили, что "человек посредине" сможет и JavaScript отключить, и подменить
> его. Все верно, но для частичного изменения JavaScript потребуется искусственный интеллект,
> а его полное отключение может частично или полностью сделать неработоспособным сайт,
> их не насторожило.Какой нафиг искусственный интеллект? В данном случае javascript патчится банальным поиском и заменой подстроки. Не надо искать заговор там, где ты просто не понимаешь смысл ответов.
А после замены кода JavaScript придется снова разрабатывать патч. Делать это нужно либо вручную, либо... Ну в общем тот кто это будет делать должен обладать интеллектом.
Специально для одаренных поясняю. Ты предложил добавить новую функцию в js api. У этой функции будет фиксированное имя. Ищется в коде данный вызов или присвоение функции и заменяется на константу или функцию-константу. Содержимое всего остального кода роли не играет, ничего анализировать не нужно. gameover. Похоже, искусственный интеллект тут нужен отнюдь не злобным взломщикам.
Он с сервера же предложил отдавать тот javascript. Что в общем логично, бо по идее именно владельцу сервера должно быть интереснее всего узнать не перехватывается ли сессия с ним кем-нибудь по дороге. Ну, если владелец сервера не РЖД, конечно.
И кто ж мешает отдавая этот JS клиенту его легонечко полиморфировать, чем-нибудь серверным посолив? И никаких фиксированных имен и вообще символов, привет перехватчикам.
дальше они предложат встраивать js-код прямо в сертификаты. потом — что js слишком медленный и глазами видно, надо встраивать байткод жабы. потом ещё что-нибудь идиотичное. вместо чтобы понять, что тришкин кафтан ремонту не поддаётся вообще. никакими методами.
> дальше они предложат встраивать js-код прямо в сертификатыНет, потому что это сведет всю идею к нулю
>> дальше они предложат встраивать js-код прямо в сертификаты
> Нет, потому что это сведет всю идею к нулюидею «продадим лохам побольше воздуха»? полноте, эту идею не угробить ничем, пока на свете есть хоть один лох.
>>> дальше они предложат встраивать js-код прямо в сертификаты
>> Нет, потому что это сведет всю идею к нулю
> идею «продадим лохам побольше воздуха»? полноте, эту идею не угробить ничем,
> пока на свете есть хоть один лох.Это-то здесь причем? В качестве ЦА изначально рассматривались владельцы критичных сайтов, тех же банков, например. Пользователя безопасность не волнует, что общеизвестно - во всяком случае если для этого от него требуется хотя бы поднять палец.
Вы полагаете что идея может быть реализована исключительно в виде нового типа сертификата, со встроенным JS и продаваться сертификато-продавцами под вывеской "на 40% лучше"? Да, свою аудиторию в лице какой-то части корпоративной публики такой продукт найдет, что с того?
Никто не мешает наряду с этим сделать банальный модуль для nginx, отдающий этот самый полиморфный JS, принимающий ответ и делающий соответствующие выводы с соответствующей записью в лог и, опционально, в соответствующий реквест соответствующего бэкенда. С практически нулевым влиянием на общую производительность. Более вменяемая публика будет использовать его.
> Это-то здесь причем?при том, что https — это торговля воздухом. к безопасности оно имеет такое же отношение, как я к балету.
> В качестве ЦА изначально рассматривались владельцы критичных сайтов
ну да, потому что им впаривать намного выгодней.
> Вы полагаете что идея может быть реализована исключительно в виде нового типа
> сертификата, со встроенным JS и продаваться сертификато-продавцами под вывеской "на 40%
> лучше"?где я такое написал? O_O
> Более вменяемая публика будет использовать его.
«решето: теперь с модулем для ngnix!» ура. инновации.
А в виде extension не получится это сделать?
> А в виде extension не получится это сделать?это всё — костыли для паралитика.
С паралитиком аналогии не усмотрел.
С костылями намного лучше чем ползать гусеницей, всё ж мы прямоходящие.
А разговоры о том что HTTPS в корне крив и так далее - оставьте, нам с ним жить и никуда мы от него не денемся в ближайшую декаду.
> нам с ним жить и никуда мы от него
> не денемся в ближайшую декаду.обожаю такие спичи.
он крив. починить его невозможно, ибо он defective by design. каждый костыль для уродца продлевает ему жизнь ещё на несколько лет. соответственно, те, кто хотя бы считают такие костыли «неизбежным злом» — срут себе же на лысины. люди, ау, вы вообще хотя бы в простейшую логику умеете?
Вы что конкретно предлагаете? Отключить везде HTTPS с завтрашнего дня чтоб мир содрогнулся? Не рассматривая этичность подобных подходов ("чем хуже, тем лучше" - ваш кумир В.И.Ленин, кстати, негативно относился к такому подходу). Осталось придумать как договориться о том чтобы отключили таки все, потому что те, кто не отключит тут же получат конкурентное преимущество перед отключившими.
> Вы что конкретно предлагаете?много чего. как минимум — децентрализованную систему. наличие root CA — это крест на всей «секурности» сразу.
> Отключить везде HTTPS с завтрашнего дня чтоб мир
> содрогнулся?и чтобы младенцы умирали тысячами, да. пока ещё не выросли в полновесных дураков.
> ваш кумир В.И.Ленин
«дядя Петя, ты дурак?» (ц)
> как договориться о том чтобы отключили таки все
на «всех» совершенно наплевать: вполне достаточно следить за собой.
> кто не отключит тут же получат конкурентное преимущество перед отключившими.
какая досада! (ц)
>> Вы что конкретно предлагаете?
> много чего. как минимум — децентрализованную систему. наличие root CA — это
> крест на всей «секурности» сразу.Да, разумеется, как в эту пору чудесную добраться-то?
>> как договориться о том чтобы отключили таки все
> на «всех» совершенно наплевать: вполне достаточно следить за собой.Хорошо. Что именно вы предлагаете администратору конкретного веб-сайта? Отключить на этом сайте SSL? Включить вместо и вместе с ним что-то другое? Что именно?
Или ваши соображение имеют форму "нужно чтобы IETF собрался и всё переделал как надо"?
> Да, разумеется, как в эту пору чудесную добраться-то?ждать волшебника на голубом вертолёте, разумеется. а пока он не прилетел — изо всех сил поддерживать https: ведь от этого он быстрее загнётся.
> Хорошо. Что именно вы предлагаете администратору конкретного веб-сайта?
какого? и сколько он заплатит мне за консультацию?
> Отключить на этом сайте SSL?
самая лучшая идея. всё равно большинство пользователей слишком тупы для того, чтобы проверять сертификаты. да и не понимают модели угроз.
> Или ваши соображение имеют форму "нужно чтобы IETF собрался и всё переделал
> как надо"?мои соображения имеют много форм, но неизменно начинаются с «ssl/tls в топку, централизованность в топку».
Расширения имеют необходимый доступ, но их нужно специально устанавливать, а JavaScript установлен везде.Как раз потому что расширения умеют получать необходимую информацию, я предположил, что сделать то же самое для JavaScript совсем несложно.
ха. а на chaoscon последнем - дядьки из EFF https-обсерватории - оценили обьем bogus сертификатов или даже ауторити, совокупно - почти в 27%, плюс обьем хайджака IKE траффика - тоже высок.
пошарьте на ютубе 3сo -видеоролики.
Если вы об этом https://www.eff.org/files/ccc2010.pdf то там таких цифр нет.Если о 30C3, то я не смог там найти подобного выступления в https://www.youtube.com/playlist?list=PLOcrXzpA0W82rsJJKrmeB...