Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Смартфоны, которые находятся в распоряжении у граждан, это хорошая основа для создания децентрализованных сетей связи, сетей обмена сообщениями. Я писал о таких mesh-сетях раньше и не раз. Самый доступный вариант создания подобной сети – специальное приложение, исполняемое смартфоном. А самый простой вариант сети – сеть, ретранслирующая текстовые (возможно, гипертекстовые) сообщения так, что в итоге они доступны всем участникам сети. Распространение сообщений может идти достаточно медленно, скажем, от минут до нескольких часов (полезна и функция отложенной передачи, когда долгое время отсутствовавший в сети узел может получить сообщения, накопившиеся за несколько суток).
Протокол обмена сообщениями должен быть независимым от транспорта передачи данных. Тогда для обмена данными годятся любые доступные смартфону средства коммуникации. Если есть доступ к Интернету, то данные передаются через глобальную Сеть. Есть только локальный WiFi – данные передаются через него. Есть только GSM – передача происходит через SMS (MMS). Совсем плохо со связью – узлы, находящиеся в непосредственной близости, синхронизируются через Bluetooth. Одна из непростых задач состоит в том, чтобы успешно реализовать анонсирование разнообразных адресов (для разных коммуникационных транспортов) новых узлов. Но эта задача решаема (подобные протоколы уже разработаны). И, конечно, из-за наличия GSM в сети будут проблемы с анонимностью, но это отдельная проблема. А вот скрыть сам трафик сети, так, чтобы он не обнаруживался и не блокировался системами DPI, проще.
Как бороться с такой сетью? Самый очевидный вариант: блокировать сервис, раздающий приложения (например, Google Play Market или Apple App Store). Однако пользователи могут начать обмениваться кодом приложения между собой, хоть это и потребует дополнительных усилий. В общем, как и другие децентрализованные решения, основанные на современных доступных коммуникационных устройствах, сеть получается очень устойчивой и живучей (хоть и заведомо медлительной).
Комментарии (4) »
Между прочим, сильный противник в Интернете может сделать гораздо больше, чем просто устраивать банальные DDoS. Сильный противник – это игрок уровня АНБ, например. А самый действенный вариант здесь – активная атака на ключевые маршрутизаторы и на BGP.
Известно, что системное программное обеспечение маршрутизаторов содержит уязвимости. Это касается не только “домашних роутеров”, но и дорогих продуктов уровня Cisco. Эти уязвимости, вероятно, позволяют не просто остановить работу маршрутизатора, но повлиять на то, как работает большой сегмент сети, где взломанный маршрутизатор находится. Маршрутизатор позволяет делать с трафиком всё что угодно, в том числе, проводить инъекцию пакетов, заменять данные в пакетах и выполнять другие, не менее занимательные, вещи. Атаковать маршрутизатор можно удалённо, а если он удачно расположен, то послужит отличной отправной точкой для проведения других атак.
Что касается BGP (это протокол обмена информацией о сетевых маршрутах, определяющий то, как ходят пакеты в Сети): здесь поможет использование точек присутствия на основных магистралях для воздействия на BGP . При должном масштабе и информированности атакующего эта, вполне себе инфраструктурная, атака может заставить трафик в выбранном сегменте Интернета “ходить не туда”. Естественно, захваченные чужие маршрутизаторы служат идеальным базисом для BGP-атак.
Комментарии (1) »
В связи с некоторым обострением международных отношений интересно вспомнить, что базовые системы адресации Интернета управляются из США, что только добавляет пикантности ситуации. (Предложения о прекращении предоставления адресного пространства в рамках санкций – уже встречались; правда, инициатором их была негосударственная организация из США.)
Надо сказать, что и у ICANN, и у “подведомственных” ей структур, есть технические возможности по весьма эффективному блокированию национальных сегментов Интернета, в том числе, национальных доменов. Да, эти возможности, пока что, – скорее теоретические, но они есть. А в данном контексте важны именно возможности, а вовсе не намерения, как можно было бы подумать.
Поделюсь несколькими ссылками на прошлые записки по теме (кто бы мог подумать, что они опять станут актуальны):
- ICANN и управление Интернетом;
- ICANN, правительство США и “независимость” Интернета (2009 год, между прочим);
- Новые домены, DNSSEC и главный рубильник.
И ещё одно наблюдение, по близкой теме:
Комментарии (10) »
Нашли как бы ответ на Goto fail от GnuTLS (это очень распространённая библиотека криптографических функций) – некорректная обработка сертификатов в GnuTLS приводит к тому, что сессию можно перехватить. Пишут, что эту свежую ошибку в GnuTLS выявили в рамках аудита кода для Red Hat.
Очень много подобного добра в коде криптобиблиотек, к сожалению. Сейчас, хотя бы, стали чуть более тщательно исследовать этот код, из-за шума вокруг деятельности АНБ.
Комментарии (1) »
В продолжение записки про ошибку “goto fail” в операционных системах Apple. Это очень показательный случай, очередной. Ошибка, заключающаяся в одной элементарной строке кода, приводит к тому, что “защищённое” соединение можно перехватывать без проблем. И практических методов защиты от использования этой ошибки – нет.
Сравнение отпечатков сертификатов никак не помогает, потому что сертификат используется легитимный, полученный с сервера – ошибка гарантирует, что не проверяется соответствие подписей. Подмена IP-адреса сервера может происходить с помощью DNS, это традиционный способ. Тут, в принципе, некоторую защиту обеспечивает DNSSEC, но только если атакуемый домен подписан (а это вряд ли). Более того, во многих сетевых конфигурациях (скажем, в чужой WiFi-сети) подмену сервера можно провести, сохранив его IP-адрес, то есть, DNSSEC уже никак не поможет. DANE – только добавит пользователю уверенности, что всё хорошо, так как отпечатки сертификатов из DNS и с подставного сервера – совпадут.
Вот.
Так работает современная массовая криптография. Один оператор goto – и больше нет защиты. Совсем.
Комментарии (3) »
Нашумевший недавно Outernet – представляет собой довольно наивный проект: сотни низкоорбитальных микроспутников транслируют на землю некий контент, связанный с Интернетом, да так, что этот контент могут принимать даже смартфоны, используя штатный канал WiFi. Схема работает наподобие радиостанции – в одну сторону. То есть, это никакой не “бесплатный WiFi-доступ к Интернету”, как поспешили написать многие СМИ.
Очевидно, что приём смартфоном полезных данных из сигнала WiFi, исходящего с борта кучи быстро движущихся микроспутников, за сотни километров, из космоса, через ионосферу – это, пока что, фантастика. Можно было бы предположить, что орбитальный сигнал смогут принимать модифицированные точки доступа WiFi, оснащённые дополнительными антеннами, но и такой вариант представляется труднореализуемым для массового потребителя.
Интересно, что, помимо прочих слов, на страничке с описанием проекта сказано, что планируется трансляция Blockchain из сети Биткоин. Blockchain позволяет проверять биткоин-транзакции (подробности – в отдельной заметке про биткоины). Однако центральная трансляция Blockchain противоречит основным принципам хождения биткоинов. Предполагается, что через Outernet данные достигнут тех жителей Земли, которым подключение к Интернету недоступно. То есть, спутниковая трансляция будет для них единственным источником Blockchain, соответственно, в него можно включить какие угодно транзакции, сделав ответвление от основной цепочки. Смысл теряется. Ну и, понятно, осуществить транзакцию без связи с Интернетом – всё равно не выйдет, так что особой практической пользы в такой трансляции нет.
(А вообще, спутниковые трансляции могут оказаться полезным источником особого программного обеспечения для граждан. Но это другая история.)
Комментарии (2) »
У Apple – грандиозная ошибка в коде, отвечающем за установление TLS-соединения: лишний оператор goto (зачем они вообще его использовали?) приводит к тому, что не проверяется серверная подпись при генерации ключа по протоколу Диффи-Хеллмана. Это означает, что сессия может прослушиваться, так как атакующий получает возможность подменить сеансовый ключ. Ошибка, можно сказать, сводит защищённость TLS в соответствующих продуктах Apple примерно к нулю.
Addon:
Пожалуй, скопирую и фрагмент исходного кода:
static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
uint8_t *signature, UInt16 signatureLen)
{
OSStatus err;
...
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
...
fail:
SSLFreeBuffer(&signedHashes);
SSLFreeBuffer(&hashCtx);
return err;
}
Речь, как несложно догадаться, о паре последовательных goto. Второй из операторов безусловен, а так как переменная err, в случае, если ошибочный goto выполнился, содержит 0, то и сама функция “проверки” вернёт этот код успешного завершения.
Комментарии (2) »
Когда обсуждали перехват надоедливых любительских беспилотников, пришли к выводу, что просто сбивать их, скажем, выстрелом из ружья (или пневматической винтовки) – далеко не лучший вариант. Прежде всего, есть очевидная проблема: стрельба обычно запрещена там, где применяются любительские беспилотники. Да, возможны исключения для маломощных пневматических винтовок, но они – маломощные: чтобы сбить аппарат потребуется прицельное попадание в уязвимый элемент (двигатель, пропеллер, устройства управления).
Но главная трудность в том, что повреждённый квадрокоптер, равно как и любой другой тип беспилотника, потерявший управление, может доставить неприятностей – упасть на кого-то (например, на оператора), разбить окно, напугать прогуливающихся по газону котиков. Это плохо. Повреждение чужого имущества (а беспилотник может быть дорогой штукой), тоже не очень хорошее дело, грозит штрафом. Собственно, поэтому под вопросом оказываются активные системы, стреляющие пластиковыми стержнями или чем-то похожим.
Так что идеальный вариант – это беспилотный перехватчик, который заводит на перехватываемый аппарат сеть, прикрепленную к парашюту: остановленный в воздухе беспилотник относительно плавно, с минимальными повреждениями спускается на землю. Вот только разработка подобного беспилотного перехватчика – та ещё задача, да и в результате её решения получаем очередной любительский беспилотник, только с функцией “отлова врагов”.
Комментарии (11) »
В продолжение записки об огораживании национальных сегментов Интернета. Сейчас часто приходится слышать, что нужно закрыть национальный сегмент киберпространства (а это более широкое, чем Интернет, понятие), так, чтобы он превратился в чёрное, непрозрачное облако для разведок других стран. Интересно, что Штаты почему-то до сих пор так не поступили, имея все возможности. Хотя, с другой стороны, они могут весь Интернет рассматривать как собственный национальный сегмент. Но это несколько другая история.
Что касается полной непрозрачности. Это далеко не такой однозначный момент. Дело в том, что информирование разведок других стран о чём-то, наличие у этих разведок возможности что-то видеть на чужой территории, получать информацию собственными силами – это важный элемент взаимодействия государств. Совершенно закрытый сегмент пространства вызывает беспокойство потенциального противника, а настороженный противник – это не лучший вариант. Именно поэтому существуют специальные “программы доверия” (скажем, “Открытое небо” и так далее), а также долгая история осознанного взаимодействия спецслужб разных стран в стиле “они здесь всё просматривают со спутника, выкатывайте больше макетов” или “подошли водолазы, будут ставить оборудование по съёму информации на наш кабель”. Наблюдение за передвижением военной техники, за ракетными испытаниями – всё это важные элементы межгосударственного взаимодействия, но, обычно, находящиеся в тени. Поэтому нет оснований считать, что в новомодном межгосударственном киберпространстве, если рассматривать его как новое измерение государственной территории, всё должно быть по-другому.
Тем более, что сколь-нибудь полное закрытие, во-первых, невозможно технически, а во-вторых, приведёт к тому, что всякая активность, направленная вовне – будет тут же замечена. Зато, условно открытый национальный киберпространственный сегмент никаким образом не отменяет ведения активной скрытой работы, в том числе и на чужой территории.
Комментарии (1) »
Кое-что о возможной практике анализа больших массивов данных, собранных из разных источников. Предположим, что у АНБ есть списки пассажиров самолётов гражданской авиации, международных рейсов. Существуют общие базы, к которым, для АНБ, не так трудно получить доступ. Для списка ведётся история. То есть, можно построить представление, где каждому пассажиру (идентифицируется с точностью до имени/фамилии) соответствует последовательность его перелётов по странам, сопоставленная с датами, конечно.
Теперь возьмём базу обращений смартфонов (и других персональных мобильных устройств) через Интернет к серверам, например Google и Apple. Такие обращения содержат идентификатор устройства, а также данные о местоположении аппарата (если вдруг координат нет, то дополняем сведениями из базы IP-геолокации, по IP – источнику обращения). Накопленная история позволяет построить последовательности перемещения аппаратов между странами.
Думаю, дальнейший ход понятен: последовательности стран из базы перелётов и базы смартфонов – сопоставляются, с учётом даты. Несмотря на то, что пассажиров у авиакомпаний очень много, а перелёты разные. При использовании в качестве “ключа” последовательности из трёх-пяти перелётов – всякая неоднозначность исчезнет, за исключением, конечно, тех пассажиров, которые действительно летают группой (это тоже важная информация). То есть, в результате получаем соответствие “идентификатор смартфона – имя/фамилия”, для пользователей из разных стран мира, без необходимости доступа к базам операторов связи.
Обработка проводится автоматически, для всех доступных данных по персонам. Сюда же включаются базы по другим видам транспорта, всё, до чего можно дотянуться, а дотянуться в наше информатизированное время можно много до чего. В подобном анализе только массовость и имеет смысл. Интересные подзадачи: имена, фамилии могут быть записаны разным способом, нужно учитывать возможное расстояние между вариантами записи, чтобы автоматически склеить выборки, относящиеся к одному лицу; смартфоны бывают разные, для повышения точности разумно использовать трафик от популярных приложений (уже были сообщения про игру Angry Birds, которая использовалась подобным образом).
Комментарии (5) »
В Wired опубликована заметка о том, что в рентгеновских сканерах, которые используют для досмотра багажа в штатовских аэропортах, есть функция по удалённому изменению изображения, выводимого сканером. Функция активируется с рабочего места “супервайзера” (старший смены), а предназначена для того, чтобы оператор мог тренироваться – предполагается, что показываются изображения разных запрещённых предметов (оружия, например), выбранные из отдельной библиотеки. Эти тренировочные изображения просто накладываются на изображение реальное. И вот данную функцию можно обратить, показав вместо изображения запрещённого предмета что-то нейтральное (типа предмета одежды). Что и представляет собой потенциальную уязвимость в системе.
Комментарии (1) »
Новый