Больше десяти лет назад я описывал (на правах юмора) сценарий, когда центральное управление социальной сетью используют для дезинформирования пользователей и прямого влияния на офлайн. В качестве примера взял как раз Twitter. Недавно Twitter взломали, получив доступ к управлению чужими аккаунтами – именно через внутренние инструменты, предназначенные для управления сервисом.

В заметке, посвящённой этому событию, Брюс Шнайер пишет:
“Imagine a government using this sort of attack against another government, coordinating a series of fake tweets from hundreds of politicians and other public figures the day before a major election, to affect the outcome”. (Представьте, что правительство использует атаку такого типа в отношении другого правительства, скоординировав серии поддельных “твитов” от лица сотен политиков или других публичных фигур за день до важных выборов, чтобы повлиять на их результат.)

Впрочем, Шнайер (ожидаемо) предлагает регулировать Twitter и подобные крупные информационные системы на государственном уровне, аналогично банкам. Цель регулирования – обязать вводить типовые меры обеспечения безопасности. Понятно, что все инструменты, которые предотвратят подобные публикации поддельных “твитов” даже администраторами сервиса, – известны, они существуют, но внедрение требует огромных затрат (не только программно-аппаратных, но организационных, в том числе, касающихся персонала).

Интересно, что, как пишут, аккаунт Президента США Трампа не был затронут атакой. Если это произошло потому, что, силами Секретной службы и АНБ, государственные аккаунты особой важности отдельно защищены, то получается, что определённое регулирование в Twitter уже внедрено. Конечно, подобное скрытое и как бы “неформальное” регулирование – оно, во многих случаях, гораздо удобнее.



Комментировать »

На dxdt.ru есть страница “Избранные записки” – добавил на эту страницу несколько новых ссылок. Конечно, записки сейчас выходят редко, тем не менее, потихоньку, но набралось количество, достаточное для обновления перечня избранных публикаций.



Комментировать »

На dxdt.ru с 2016 года опубликована небольшая криптографическая библиотека для Arduino, построенная на российском шифре “Магма”. Мне иногда присылают сообщения о проблемах (ошибках, выводимых компилятором), которые возникают при сборке в новых версиях Arduino IDE. Собственно, решение упоминается в комментариях к странице, но я всё же добавил в основной текст подробное пояснение о причине трудностей и о том, как эти трудности победить. Кратко: проблема не в коде библиотеки, а в установленном по умолчанию уровне оптимизации компилятора – в старых версиях Arduino IDE установки были другие. Библиотеку можно использовать без изменений, но нужно подредактировать настройки IDE (штатным способом); второй вариант – использовать обновлённую библиотеку, где параметры оптимизации указаны в исходном коде. Подробности – на странице библиотеки.



Комментировать »

Пишут, что в Штатах в проект бюджета минобороны на 2021 год включили статью, посвящённую созданию навигационных систем, которые не зависят от GPS. Соответствующие системы должны быть предложены в 2023 году, то есть, совсем скоро. Озвученная причина – рост эффективности помехопостановщиков GPS: действующие в разных “горячих точках” силы и формирования регулярно сталкиваются с практической бесполезностью навигационных приборов, полагающихся на GPS, в том числе, на военный сигнал. Несколько лет назад я довольно подробно описывал то, как устроен спуфинг GPS. Не приходится сомневаться, что принципы спуфинга остались те же, а вот аппаратурная составляющая за это время наверняка сильно развилась.

Вообще, благодаря достижениям современной твердотельной электроники, сделать точный, надёжный, компактный и относительно дешёвый навигатор, основанный на приёме сигнала GPS – гораздо проще, чем, например, независящую от внешних сигналов инерциальную систему. Поэтому все держатся за GPS (ну и, опять же, финансирование создания и выведения на орбиту спутников, но это из другой области история). Основной проблемой для инерциальных систем является быстро накапливающаяся погрешность, причём, чем дешевле, меньше и проще система, тем быстрее падает точность. Скорее всего, возможны довольно устойчивые варианты на базе “микромашин”, но их только разрабатывают. Поэтому интересны комбинированные решения, где неточная инерциальная система регулярно и часто (например, раз в минуту) корректируется по внешнему сигналу, который, к тому же, сложно испортить помехой.

Одним из весьма эффективных вариантов оказывается использование в качестве источника такого сигнала большого количества космических аппаратов с общими синхронными часами, находящихся на низкой орбите, с которыми возможен обмен широкополосными сигналами. То есть, это уже не GPS. Это – в точности схема “спутникового Интернета”, предложенная, например, SpaceX (Starlink).

Как может помочь такая схема? Во-первых, есть возможность использования широкого спектра частот для связи со спутниками (в обе стороны, заметьте) – это означает, что можно применять замаскированные шумоподные сигналы: коррелятор, которому известен действующий секретный ключ, сможет успешно выделять и накапливать полезный сигнал спутника, распределённый псевдослучайным образом по полосе в несколько сотен мегагерц. Во-вторых, наличие на спутниках антенн с активным синтезом апертуры позволяет формировать достаточно узкие лучи – эти лучи могут быть направлены конкретному наземному пользователю, доставляя персональный сигнал (понятно, что точность формирования пятна приёма – сечения луча – всё равно, даже в идеальных условиях, составит сотни метров, но этого более чем достаточно). В-третьих, наличие широкого и доступного всем наземным терминалам (а не только станциям управления) канала в сторону спутников поможет активной коррекции сигнала в ответ на изменение обстановки в эфире, наблюдаемой конкретным приёмником.

Разберём все эти аспекты подробнее. Первый аспект – широкополосный сигнал. Современный сигнал GPS – узкополосный, более того, он использует кодовое разделение для каналов разных спутников. Широкая полоса делает возможным накопление коррелятором сигнала не только по времени, но и по частоте, а это существенно увеличивает возможности по повышению чувствительности. Такой “двумерный” подход вообще несравнимо богаче в плане кодирования, чем “одномерное” накопление по времени. При этом потенциальный помехопостановщик оказывается в сложной ситуации, так как ему нужно одновременно закрывать большую полосу, что требует много энергии даже в том случае, если помеха работает избирательно. Вообще, точно такая же техника опережающей отстройки от активных помех давно известна в радиолокации – излучатель локатора передаёт зондирующий сигнал на нескольких несущих частотах, при этом использует отражённый сигнал, который соответствует только одной из этих частот (ну или некоторой сложной комбинации нескольких).

Аспект второй – формирование узкого луча для канала в сторону наземной станции. Главное преимущество состоит в том, что помехопостановщику становится трудно принять тот же сигнал, который получает приёмник наземной станции. Конечно, всегда есть отражения, “боковые лепестки”, вторичное излучение и прочие эффекты, но их анализ в целях выявления полезного кода – несравнимо сложнее, чем приём общего сигнала. Вспомним, что сигнал ещё и кодируется индивидуально, с псевдослучайной заменой частот. Дополнительное преимущество – наземный приёмник получает больше возможностей по отстройке от простых широкополосных помех на основании направления на источник помехи. Отдельно нужно рассматривать возможность согласованного формирования лучей несколькими спутниками – тут и точность формирования “пятна” можно повысить, и защиту сигнала улучшить.

Третий аспект – индивидуальный канал в сторону спутников. Приёмник, используя этот канал и ключи аутентификации источника, может безопасно выработать общий со спутниковым источником сигнала секретный ключ, а далее периодически этот ключ заменять. Секретный ключ нужен для формирования псевдослучайной последовательности, задающей непредсказуемые для третьей стороны модуляцию и кодирование полезного сигнала, передаваемого спутником. А обнаружив эффективную помеху, если она всё же возникла, терминал может её непосредственно измерить и запросить смену кодирования, либо перейти на другую конфигурацию спутников.

Именно эти три аспекта, если их сложить вместе, позволяют создать хорошо защищённую от помех точную навигационную систему. Скорее всего, как отмечено выше, система будет комбинированной: спутниковый сигнал служит для коррекции автономных инерциальных систем. При этом спутниковые терминалы, требующие достаточно больших по размерам и тяжёлых антенн (ФАР), могут находиться на опорных станциях, например, на автомобилях или самоходных роботах, а носимый вариант навигатора, также имеющий встроенную инерциальную систему, будет взаимодействовать по радио с опорной станцией.

Что касается расположения спутников на низкой орбите: это снижает задержки, как и в случае организации интернет-доступа, а большое количество спутников (также диктуемое низкой орбитой) добавляет ещё один слой перемешивания: приёмник может выбирать сложные конфигурации спутников, используемых им в данный момент.

Естественно, Starlink – только один из примеров реализации подходящей технологии.

(Кстати, в 2012 году я писал о гипотетическом навигаторе, работающем без GPS.)



Комментировать »

Если взглянуть на “график” эллиптической кривой из недавней записки про протокол Диффи-Хеллмана, то практически сразу можно заметить, что эта картинка обладает хорошо различимой симметрией (как минимум, с горизонтальной осью). Поэтому часто задают вопрос: как же так, это же криптография, а картинка настолько регулярная? Предполагается, что криптографические объекты обязательно должны быть неотличимы от шума.

Эллиптическая кривая над конечным полем.

Вообще-то, в криптографии сплошь и рядом используются симметричные (во многих смыслах) инструменты, а “неотличимость от шума” возникает только в результате применения этих инструментов к числовым последовательностям. Тем не менее, с картинкой эллиптической кривой интересно разобраться подробнее.

Что именно отображено на картинке (см. рисунок выше)? Каждой точке соответствует пара значений — элементов конечного поля. Сами эти элементы, обозначенные натуральными числами, формируют горизонтальную и вертикальную оси. А поскольку значения отображаются парами, то вся картинка соответствует F×F. Пары элементов — это пары, удовлетворяющие уравнению кривой: y2 = x3 + 2020x2 + x. Обратите внимание, что слева здесь квадрат, и уже из этого вытекает необходимость симметрии на картинке.

Возьмём более наглядный пример. На картинке ниже – нарисованы точки эллиптической кривой y2 = x3 + 17x2 + 1 над полем из 101 элемента; горизонтальная черта – разделяет “график” на верхнюю и нижнюю части (симметричные). Для двух точек – написаны их координаты: (26, 53) и (26, 48).

Кривая над полем из 101 элемента.

Почему точки симметричны? Потому что они обратные, их сумма в группе точек эллиптической кривой равна нулю (нейтральному элементу группы). Координаты X у этих точек совпадают, а координаты Y – обратные по сложению в базовом поле: 53 + 48 == 101, а это 0 (mod 101). Как уже упоминалось выше, левая часть уравнения – квадрат. Это означает, что у нас обязательно есть два элемента поля, соответствующих подстановке элемента 26 в правую часть. Полностью аналогично привычному 22 == (-2)2 == 4. Проверяем: 532 (mod 101) == 482 (mod 101) == 82, а 82 == (263 + 17*262 + 1) (mod 101). Понятно, что в группе, по определению, у каждого элемента есть обратный, поэтому картинка “ветвится” таким образом.

Стойкость протокола Диффи-Хеллмана, в рассматриваемом воплощении, базируется на сложности задачи дискретного логарифмирования – то есть, задачи отыскания скаляра, на который умножается известная точка кривой, по результату этого умножения (подробнее см. здесь). Конечно, на практике используются кривые с гораздо большим числом точек, чем рассмотренные выше, но симметрии никуда не деваются. Более того, иногда симметрии (далеко не столь очевидные, как на наших картинках) помогают построить чисто математические атаки на криптосистемы. При этом сложность алгоритмов состоит не в “зашумлении” (за исключением шифров), а в том, чтобы найти обратный путь по некоторому, пусть и симметричному, лабиринту.



Комментировать »

В качестве развития технологии ESNI, которая так и не вышла из статуса черновика (draft), сейчас разрабатывается вариант с передачей полного дополнительного сообщения ClientHello, но в зашифрованном виде. Предлагаемая сейчас схема выглядит чрезмерно сложной, в основном, из-за того, что логические составляющие вложены одна в другую, при этом есть ссылки из внутреннего сообщения на элементы внешнего. Вряд ли это удастся реализовать без множества ошибок, порождающих уязвимости. Тем не менее, само направление интересное. Вообще, в теории, большинство прикладных протоколов современной Сети можно сделать полностью зашифрованными, включая этап установления соединения. Конечно, на практике такое если и возможно, то не скоро, однако можно рассмотреть гипотетическую картину, которая возникнет, если схему всё же воплотить. Сейчас, в TLS 1.3, зашифрованы не все сообщения, но, если сравнить с предыдущими версиями, то на защищённый обмен стороны переходят гораздо раньше. Например, в случае развития TLS в выбранном направлении, первое же сообщение клиента будет передаваться полностью в зашифрованном виде.

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

То есть, опять же, на примере TLS, – клиент извлекает серверные криптографические параметры для установления соединения из DNS, генерирует нужные ключи и зашифровывает первое же сообщение, которое направляет серверу. Это сообщение может вообще не содержать фиксированных заголовков в открытом виде (кроме, понятно, относящихся к TCP/IP или UDP). Третья сторона видит только факт обмена узлов псевдослучайными данными. Более того, даже на уровне DNS – тоже видны только псевдослучайные данные, поскольку обмен защищён TLS, в том числе, на пути между рекурсивным резолвером и авторитативным сервером.

Основных проблем у такой схемы, если она внедрена повсеместно, несколько. Во-первых, сервер должен принимать и пытаться расшифровать любые входящие пакеты. Это очень затратно в вычислительном плане. Конечно, криптография сейчас довольно быстрая, но нагрузки всё равно возрастут в тысячи раз (и более). Нужно учитывать, что быстрые решения по фильтрации пакетов на уровне протоколов, доступные сейчас и работающие с данными в открытом виде, работать перестанут: для фильтрации в таком режиме окажутся доступны только параметры уровня номера порта и IP-адреса (ну, ещё ряд параметров TCP), а для обработки протоколов – придётся выгружать ключи на узлы балансировки и фильтрации. (Это можно сделать, но потребует очень больших затрат; которым, впрочем, наверняка будут рады крупнейшие производители сетевого оборудования.)

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

В-третьих, полностью исчезнут современные возможности по приоритизации разных типов трафика силами DPI: никаких сигнатур отдельных протоколов не останется, кроме самых базовых – номеров портов и IP-адресов (ну, ещё количество потоков можно как-то измерить).

Кроме того, гораздо сложнее станет отлаживать работу сетевого ПО и обнаруживать ошибки, поскольку типы прикладного трафика полностью потеряют “различимость”. Недоступным окажется пассивное блокирование ресурсов на уровне протокола (опять же, с использованием DPI).

И тем не менее, переход на такой уровень – вполне возможен в ближайшие годы.



Комментарии (4) »

По адресу audit.statdom.ru заработал полезный сервис Технического центра Интернет (ТЦИ), позволяющий автоматически проверить многие настройки веб-узла, с точки зрения их соответствия современным рекомендациям. Вводите имя (хостнейм, в формате test.ru) – робот опрашивает соответствующие узлы и выводит подробный отчёт, содержащий параметры TLS, HTTP/HTTPS (заголовки безопасности), DNS и MX, с рекомендациями: что включить и что работает не так, как ожидается. Кроме того, вычисляется рейтинг узла в баллах. Одной из особенностей этого сервиса является подробная проверка DNS, например, есть обнаружение доступности DNS-over-TLS (DoT) на авторитативных серверах.

Обратите внимание, что отправной точкой для исследования параметров является введённое имя хоста (имя сервера), при этом робот не следует HTTP-редиректам, а выводит результат для того имени, которое задано. Это означает, что если вы хотите проверить узел www.test.ru, для которого настроен редирект test.ru -> www.test.ru, то вводить нужно имя с www.

Ссылка: audit.statdom.ru.

(Я имею непосредственное отношение к разработке данного сервиса.)



Комментировать »

Написал про HTTP-заголовки, связанные с обеспечением безопасности доступа браузеров (и не только) к веб-узлам, – статья опубликована на сайте ТЦИ.



Комментировать »

Авторитативные серверы DNS – это серверы, которым делегирована поддержка заданной доменной зоны. Другими словами, это основные серверы, служащие первоисточником информации об адресации внутри доменной зоны. Именно к авторитативным серверам должен обращаться рекурсивный резолвер при поиске значений DNS-записей.

DNS-over-TLS – технология, защищающая трафик DNS-запросов при помощи TLS. Обычно, DNS-запросы и DNS-ответы передаются по протоколу UDP (реже – TCP) в открытом и незащищённом виде. Существует технология DNSSEC, которая позволяет снабдить содержание DNS-ответов электронной подписью, затруднив, таким образом, подмену информации. Но DNSSEC не скрывает сам трафик: то есть, третья сторона всё равно будет видеть состав запросов и ответов. Кроме того, DNSSEC аутентифицирует только передаваемые данные, привязывая их к некоторому открытому ключу, но не позволяет аутентифицировать сервер, который данные передал. В принципе, в модели угроз DNSSEC аутентификация сервера и не требуется: основная идея этой технологии состоит в том, что не имеет значения, каким маршрутом и от какого узла DNS-данные попали к клиенту – если данным соответствует валидная подпись от доверенного ключа, то они, так или иначе, достоверны. То есть, с точки зрения достоверности, канал получения DNS-информации для DNSSEC не важен. Если данные, защищённые DNSSEC, будут как-то изменены на транзитном узле, то клиент сможет обнаружить подмену. С DNS-over-TLS (или DoT) – другая история. Эта технология оборачивает обычный трафик DNS в TLS, создавая защищённый канал связи. DoT позволяет узлам, которые намерены обменяться DNS-запросом и DNS-ответом, аутентифицировать друг друга до отправки запроса. В подавляющем большинстве случаев, конечно, будет использоваться только аутентификация сервера клиентом.

В DNS, как в сервисе, большое значение имеет взаимодействие рекурсивного резолвера с так называемым stub-резолвером. Последний представляет собой самый простой вариант резолвера, который не выполняет поиска в DNS, а лишь перенаправляет запросы рекурсивному резолверу. Stub-резолвер – это типовой резолвер в подавляющем большинстве конфигураций операционных систем. Сервис же рекурсивного резолвера предоставляется либо провайдером доступа, либо отдельным провайдером DNS, как, например, в случае общедоступных резолверов Cloudflare (1.1.1.1) и Google (8.8.8.8).

Так вот, сейчас часто приходится слышать, что технология DNS-over-TLS предназначена лишь для защиты DNS-трафика на пути от stub-резолвера до рекурсивного резолвера, а на авторитативных серверах – не нужна. Это не так. Авторитативным серверам тоже рекомендована поддержка DNS-over-TLS, так как такая поддержка позволит защитить обмен информацией с рекурсивными резолверами. Дело в том, что прослушивание DNS-запросов или подмена данных – возможны и для трафика рекурсивного резолвера, адресованного не клиенту, а авторитативному серверу. Другое дело, что реализовать избирательность такой атаки становится сложнее, поскольку точно не известно, какие запросы какому клиенту соответствуют. Но, например, если используется популярный сервис DNS, то IP-адреса его узлов-резолверов известны, поэтому подмена может осуществляться избирательно. Впрочем, атакующему придётся каким-то образом встать своим транзитным узлом между авторитативным сервером и сервером DNS-резолвера. Это сложно, но возможно. Причём, разными способами. А не раз продемонстрированные на практике BGP-атаки позволяют перехватить трафик между сетями, которые, в смысле маршрутизации, находятся “далеко” от точки перехвата.

Поддержка DoT на авторитативных серверах пока что является большой редкостью и встречается существенно реже, чем даже поддержка DNSSEC. Тем не менее, один масштабный пример внедрения DoT здесь уже есть: технология поддерживается авторитативными серверами Facebook, на которые делегирована зона facebook.com.



Комментарии (2) »
Навигация по запискам: Раньше »