Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Несколько избранных ссылок на недавние записки:
Comments Off on Подборка ссылок на избранное
Телефонии немало лет. На смену проводной – повсеместно пришла беспроводная. За десятилетия эволюционировали и телефонные аппараты. Интересно взглянуть, как богател набор встроенных в аппарат функций, подходящих для сбора информации (в том числе, негласного сбора).
Первые аппараты работали либо в режиме точка-точка, либо через оператора. При подключении к проводам появлялась возможность прослушивания разговора. Это, собственно, тривиальный случай, но его тоже нужно отметить. Разговор мог в штатном режиме прослушивать оператор.
Параллельно с ростом проникновения телефонной связи развивались и средства негласного получения информации. Строгой связи с телефонией тут, конечно, нет. Однако классический проводной телефон, вошедший в употребление во второй половине 20-го века, за редкими исключениями, являлся “жучком”, установленным в квартире. Дело в том, что в телефонном аппарате есть узлы, которые, будучи запитанными от телефонной сети, создают канал утечки информации из помещения: подключив специальное, – но не очень сложное, – оборудование к абонентскому проводу (телефонной паре), можно принимать возникающие наводки и слушать разговоры в помещении примерно так же, как если бы мы использовали микрофон. Подчеркну: речь не о разговоре по телефону, а о разговорах в комнате, “возле телефона”.
Например, один из таких узлов – электрический звонок, находящийся в аппарате. Благодаря удачной конструкции, он, в качестве побочного эффекта, успешно преобразует акустические колебания в электрические сигналы, поступающие в телефонную линию. Снимать такой сигнал можно только в том случае, если удалось подключиться напрямую к “последней миле” заданного абонента. Зато качество сигнала очень неплохое.
Надо сказать, долгое время подобное подключение было возможно на так называемых телефонных кроссах АТС, куда абонентские пары выводились напрямую, без частотного уплотнения и прочих фокусов с обработкой. То есть, специалистам не требовалось выезжать в условный “конкретный подъезд”. Достаточно было организовать подключение на территории АТС.
Итак, классический телефонный аппарат позволял без особых сложностей прослушивать помещение, где он установлен. Но только в том случае, если аппарат подключен к телефонной розетке. Отключили – данная конкретная утечка невозможна. Впрочем, возможно организовать утечку, использующую выключенный телефонный аппарат, другими способами. Но все они по сложности существенно превышают описанный выше метод, а кроме того, не являются специфичными именно для телефонии. (Пример: настенные электронные часы. Но это другая история.) Больше из классического аппарата ничего особенного вытянуть нельзя. Продвинутые электронные модели, конечно, имели память для телефонных номеров: она часто фигурирует в детективах, позволяя тому или иному персонажу узнать, куда последний раз звонил “пользователь телефона”. Да ещё, наверное, можно снять отпечатки пальцев с трубки, но, опять же, это не особенность телефона.
Первые мобильные телефоны, надо сказать, устраняли каналы утечек по проводам, ввиду отсутствия последних. Взамен, до введения приемлемого шифрования, телефонные разговоры стало возможно прослушивать в эфире. Некоторые модели мобильных аппаратов, практически как и проводной телефон, позволяли (позволяют) прослушивать, с некоторого расстояния, разговоры, даже если аппарат находится в режиме ожидания. Но процесс организации утечки весьма сложен, требуется дорогостоящее, редкое оборудование и подходящие условия в эфире. Более того, эта, скорее теоретическая, возможность, по своему практическому результату полностью повторяет соответствующую функцию проводного телефона.
Самая главная новинка мобильной связи, в контексте нашей истории, – это возможность определения географического положения носителя жучка. Определить местоположение можно быстро, удалённо, и чисто техническими средствами. Принципиально новая функция, недоступная ранее. Сигнал аппарата содержит уникальные метки. Для определения положения нужны несколько приёмников, специальное оборудование и навыки радиопеленгации. GPS не требуется, но и простыми средствами не обойтись. Особенно благоприятной ситуация была в те времена, когда мобильные телефоны не получили ещё повсеместного распространения. Впрочем, других прорывов, кроме определения местоположения, первые мобильные телефоны не принесли, так как набор сервисных функций у них совпадал с электронными проводными телефонами.
С годами список сервисных функций расширялся. Переход на цифровую мобильную связь сразу же создал возможность локальной записи телефонных разговоров владельца аппарата. Ещё до появления современных смартфонов, такую запись можно было организовать, используя недокументированные возможности (читай – ошибки) аппарата. Электронная записная книжка, перекочевавшая в телефон, позволила получать подробную информацию о контактах владельца. Если эту книжку удалось скопировать, то раскрывались имена и фамилии, а не только телефонные номера. Память аппарата вообще является фундаментом для целого ряда дополнительных функций жучка: тексты SMS, сведения о частотности звонков на те или иные номера, данные о взаимодействии аппарата с сетью оператора – это всё новые возможности.
Итак, на очередном этапе эволюции к возможностям жучка добавились: функция определения местоположения, теоретическая локальная запись разговоров по телефону, локальное накопление информации о контактах.
Появились смартфоны, оснащённые большими экранами, мощными процессорами, и, что главное, фото- и видеокамерами. Теперь аппарат получил возможность вести наблюдение за реальностью вокруг его владельца, а из памяти можно вынуть большое количество снимков, запечатлевших друзей и знакомых владельца, для многих тут же указаны имена, фамилии и, естественно, номера телефонов. Наличие нескольких видов каналов внешнего доступа у смартфона (кроме чисто “телефонной” сети, добавились WiFi, Bluetooth и т.д.) сильно снижает затраты по подключению к нужным функциям жучка извне. Кроме того, перемещение “сервисных” возможностей на борт аппарата позволяет, например, получать сведения о местоположении абонента штатными локальными средствами – тут помогает GPS.
Просмотр веб-сайтов, электронная почта – благодаря большой памяти аппарата теперь можно получить доступ не только к каким-то там SMS, но и к подробному архиву личных сообщений. Физический доступ к аппарату, как в случае со старыми трубками, уже не нужен: достаточно удалённо установить приложение. Это же приложение сможет слушать разговоры с помощью встроенного микрофона и, при необходимости, делать фотоснимки и вести видеозапись.
Удачное сочетание функций определения положения в пространстве, измерения ускорений (тот или иной “гироскоп”, как известно, тоже наличествует в смартфоне) и ориентации аппарата, а также получения фотоснимков и анализа сигналов WiFi, уже позволяет картографировать места обитания носителя жучка в удивительных подробностях, позволяющих построить детальную 3D-модель его квартиры, вместе со всем внутренним убранством. Да, нужно установить приложение. Но, как показывает практика, никто пока что не отменил и недокументированных возможностей.
Так что новый этап эволюции позволил жучку-телефону записывать сведения о привычках владельца, собирать его личную почту, строить модели жилища. В список не попали традиционная запись разговоров различными способами и определение местоположения. В новых телефонных аппаратах уже добавляют сканеры отпечатков пальцев, а личные данные из телефона давно приучили копировать “в облако”, чтобы, опять же, не требовался физический доступ к аппарату.
На всё про всё потребовалось около 130 лет. Не так уж и долго, с другой стороны.
Комментарии (2) »
Очередной дефект в личных электронных картах граждан, которые выдают государственные органы (по ссылке – все подробности). Суть: тайваньские национальные смарт-карты используют ключи, имеющие общий множитель (это сейчас популярная дыра в генерации модулей RSA), и, в дополнение, во многих из них встроен некачественный генератор псевдослучайных чисел (ещё один популярный случай). Злоумышленник, вычисливший ключи, может выдать себя за гражданина – владельца карты. Владелец, понятное дело, узнает об этом уже постфактум.
Надо заметить, что мало кто из сведущих людей сомневался: всеобщий перевод идентификации (аутентификации) граждан на электронные рельсы приведёт к новым, масштабным, проблемам. Масштабным потому, что, в отличие от добрых “бумажных схем”, проведение атак в электронном виде легко автоматизируется.
Кстати, цитата: “The big story here is that these keys were generated by government-issued smart cards that were certified secure. The certificates had all the usual buzzwords: FIPS certification from NIST (U.S. government) and CSE (Canadian government), and Common Criteria certification from BSI (German government)“.
Comments Off on Ссылка: дефект в тайваньских личных идентификационных картах
В продолжение темы аппаратных закладок: интересная работа Georg T. Becker, Francesco Regazzoni, Christof Paar и Wayne Burleson (по ссылке – PDF). Предложен метод внедрения аппаратных закладок (“троянов”) путём изменения легирующего состава (dopant), добавляемого в вещество, составляющее транзистор. В результате меняется тип проводимости, что влияет на электрические характеристики схемы.
Преимущество метода в том, что созданные с его помощью троянские модификации микросхем практически невозможно обнаружить, “топологически” исследуя кристалл по слоям при помощи электронного микроскопа (или другого оборудования): не добавляется новых элементов, изменённые транзисторы на снимках выглядят так же, как и штатные. Более того, “троянская” схема успешно проходит процедуры контроля качества.
В роли одного из практических примеров обсуждают модификацию аппаратного генератора случайных чисел Intel. Корректировка поведения транзисторов, изменяющая свойства регистров, сводит вполне корректную интеловскую схему генерации (псевдо)случайных чисел к фиксированному исходному ключу и небольшому количеству псевдослучайной энтропии. То есть, всё можно раскрыть простым перебором. Степень желаемой сложности перебора задаётся атакующим. Так, штатно работающий генератор выдаёт сложность 2^128, модификация позволяет сократить её до, например, 2^32 (доступно для перебора). Для непосвящённого в атаку аналитика, контролирующего качество элементной базы, результаты выглядят вполне себе добротно. Изменения не обнаруживаются и встроенной в схемотехнику системой самопроверки. Примерно такой подход снижения сложности перебора ключей, кстати, обсуждается в записке о гипотетической системе прослушивания TLS. Думаю, не нужно напоминать, что оборудование Intel весьма распространено.
И, конечно, направление атаки – аппаратная генерация случайных чисел – выбрано самое правильное. Сложно поспорить с утверждением, что именно здесь находится идеальное место скрытного внедрения ослабляющих криптографию механизмов.
Comments Off on Аппаратные закладки на уровне полупроводников
Сообщают, что в очередном iPhone есть сканер отпечатка пальца. Данные, получаемые этим сканером, очевидно, будут храниться в каком-нибудь “облаке”: если передача отпечатков вовне не запланирована официально, то, вероятно, она будет происходить из-за очередной программной ошибки. Или такой вариант: аппарат потерян, попал в чужие руки – теперь там есть не только электронная почта, контакты владельца, вместе с кучей фотографий и информацией о перемещениях, но и просканированный отпечаток пальца, который можно скормить всякому совместимому устройству, благодаря тому, что он уже представлен в цифровом виде.
(Да, понятно, что данные в iPhone должны быть зашифрованы. Но плохо зашифрованные данные – это далеко не отсутствие данных.)
Комментарии (4) »
Интересно представить, как может работать гипотетическая система “тотального” прослушивания NSA защищённого интернет-трафика. Защищённый интернет-трафик, в подавляющем большинстве случаев, использует TLS/SSL, с теми или иными SSL-сертификатами. Самый известный пример такого использования – защищённая версия HTTP, HTTPS, его и возьмём в качестве примера. Другим источником сведений о гипотетической системе послужат скриншоты неких интерфейсов доступа и другие фрагменты презентаций, которые были опубликованы в СМИ. (Напомню, что я уже писал о перехвате HTTPS ранее.)
Итак, чтобы получить доступ к зашифрованной сессии того или иного пользователя Интернета, если известна точка подключения этого пользователя, NSA потребуется решить две задачи: получить доступ к трафику, возможно, в активном режиме, и либо расшифровать данные, либо предотвратить их шифрование.
Начнём со второй задачи, с расшифровки или предотвращения шифрования данных, предположив, что трафик уже перехвачен.
В принципе, протоколы TLS (HTTPS) проектировались из соображений, что канал передачи данных между пользователем и сервером может прослушиваться и перехватываться в активном режиме. Поэтому TLS, в теории, позволяет защитить данные от прослушивания и обнаружить активное вмешательство в канал. Что с этим можно сделать? Я уже не раз рассказывал о том, что есть возможность подмены серверного сертификата с дальнейшим перехватом соединения. Эта опция доступна, если с вами сотрудничает удостоверяющий центр, которому доверяет программное обеспечение пользователя. Но есть ещё один вариант: можно получить серверный закрытый ключ. В таком случае для перехвата можно использовать действующий сертификат сервера, он всем доступен, его достаточно просто скопировать. При наличии серверного ключа можно и проводить атаку типа “человек посередине”, и расшифровывать данные в пассивном режиме (если сервер настроен подходящим образом). Атака “человек посередине” предотвращает шифрование данных в точке перехвата.
Как получить серверный ключ? Если NSA внедряет закладки в программное и аппаратное обеспечение, то, вероятно, есть возможность вычислить секретный ключ за разумное время. Например, для самой популярной криптосистемы RSA достаточно знать разложение на простые множители модуля, используемого в данном секретном ключе. (Модуль – это, грубо говоря, число, задающее множество, в котором проводятся операции для даннной пары закрытый/открытый ключ.) Это не единственный способ, есть множество других. Закладка NSA с указанными свойствами приводит к уменьшению количества возможных ключей. В качестве наиболее вероятного рычага воздействия закладки принято называть генератор (псевдо)случайных чисел. Действительно, как бы хорошо не была реализована сама криптосистема, если практическое число возможных ключей, порождаемых генератором “неслучайных” чисел, не велико, то и от самой системы толка нет.
Тривиальный пример. Предположим, в NSA, воздействуя на производителей криптомодулей, на разработчиков программного обеспечения, добились того, что количество простых чисел, используемых в качестве одного из сомножителей в ключах RSA, которые генерируются “сертифицированными средствами”, не превышает 10^12 (триллион). Второе число может быть истино случайным, ведь тут важно не переборщить: чрезмерно малое разнообразие ключей будет быстро обнаружено наблюдателями (см. историю с ошибкой в Debian OpenSSL, которая, кстати, теперь уже и не кажется просто ошибкой). Зная структуру множества этих выбранных простых чисел, можно быстро вычислить секретный ключ простым перебором. Чуть более технично: пусть модуль ключа RSA представляет собой произведение двух простых чисел; если наш суперкомпьютер выполняет миллион пробных делений в секунду, то, исходя из 10^12 вариантов известных множителей, мы получим разложение для модуля не более чем через 278 часов; это означает, что факторизация будет обычно занимать чуть более недели. Заметьте, что серверные ключи традиционно существуют в неизменном виде годами.
Весьма занимательно, что в прошлом году было опубликовано исследование ключей TLS-серверов Интернета, в котором обнаружено заметное число разных ключей, имеющих общие простые множители.
Соответственно, при получении запроса на расшифровку (перехват) HTTPS-сессии, система, сперва, выполняет поиск нужного серверного ключа в своей базе данных, если такого ключа не найдено, то он ставится в очередь на вычисление, исходя из предположения, что ключ был сгенерирован “сертифицированными средствами”. Использование этих самых “сертифицированных средств” более чем вероятно, так как технические службы крупных интернет-сервисов охотно закупают оборудование (различные криптоускорители и криптомодули) от подходящих поставщиков.
Вычисленный ключ попадает в базу данных и становится доступен пользователям системы прослушивания HTTPS. Трафик можно начинать записывать сразу, не дожидаясь готовности ключа. Например, если взглянуть на те же веб-сервера Mail.ru, то они, как и подавляющее большинство других сервисов Интернета, не поддерживают прогрессивной секретности (forward secrecy) для HTTPS, это означает, что ранее записанный трафик можно расшифровать позднее, когда станет известен серверный ключ. (Подчеркну: я не вижу тут какой-то ошибки со стороны Mail.ru – они просто следуют сложившейся практике.)
Продолжение про перехват HTTPS – в следующей части, рассказывающей о перехвате трафика.
Комментарии (4) »
Очередная порция материалов относительно прослушивания интернет-трафика NSA. В этот раз на “скриншотах” видео, повествующего об экономическом шпионаже за бразильской нефтяной компанией Petrobras, можно посмотреть на интерфейс некой системы, перехватывающей TLS (HTTPS). Из контекста очевидно, что перехват производится при помощи подмены серверного сертификата на другой, но тоже легитимный, выпущенный тем или иным хорошо известным удостоверяющим центром, чтобы не вызывать предупреждения системы безопасности в браузере.
Очень интересно, что российский почтовый провайдер Mail.ru опять фигурирует в презентациях NSA (АНБ). Полюбуйтесь – здесь указан IP-адрес сервера (94.100.184.14) из сети Mail.ru:

(Примерно 2:08 в видео.)
Не вдаваясь в оценки связи с реальностью “скриншотов” интерфейса системы NSA из СМИ, отмечу, что трафик на серверы Mail.ru вполне мог перехватываться, при условии, что тот или иной транзитный маршрутизатор перенаправлял нужный поток в NSA (о чём упоминается на тех же слайдах).
Комментарии (7) »
Очередной секрет Полишинеля: “NSA удаётся обходить криптозащиту интернет-коммуникаций“. Смысл в том, что NSA, якобы, разработали новые методы криптоанализа, позволяющие вскрывать распространённые криптосистемы. То есть, очередной раз подтвердилась давно известная мысль, я, кстати, писал об этом несколько месяцев назад.
А самый широко известный пример секретных достижений NSA в области криптологии – это метод дифференциального криптоанализа, позволяющий построить эффективные практические атаки на некоторые симметричные шифры. Этот метод долгие годы успешно использовался в NSA, но при этом оставался неизвестным открытому академическому сообществу.
(Ещё одна ссылка по теме: секретные теоремы высшей алгебры.)
Комментарии (5) »
Пять избранных записок (из недавних):
- Массовое сохранение пользовательского трафика;
- Беспилотник X-47B – окончание проекта;
- Популярно о перехвате HTTPS;
- Доступные беспилотники: возможности;
- Защита от беспилотников, развитие темы.
Глобальная подборка избранных записок есть на специальной странице.
Comments Off on Подборка ссылок на избранное
Вновь приходится слышать утверждения, что невозможно “вывести из строя комплекс ПВО” при помощи передачи в адрес его РЛС особого сигнала помехопостановщиком. Мотивировка примерно такая: “РЛС служит только для измерения расстояния до цели, воздействовать на комплекс через неё невозможно; вычислительные машины комплекса не подключены к Интернету, их тоже не достать”. В реальности, к сожалению, всё не так просто. Я уже писал на эту тему ранее, в этот раз добавлю пару детальных примеров.
Для начала, случай из моей практики, не имеющей отношения к комплексам ПВО. Однажды мы разрабатывали систему автоматического анализа изображений, для некоторой коммерческой аппаратуры. В задачи системы входил разбор поступившей с видеокамеры картинки, распознавание и подсчёт неких объектов. Как вы понимаете, “видеокамера служила только для получения картинки”. На очередном этапе отладки неожиданно выяснилось, что при наблюдении видеокамерой некоторых сцен – программная часть, реализующая анализ изображения, “падает”, в результате критической ошибки. К счастью, ситуация довольно хорошо воспроизводилась, поэтому, при помощи отладчика, удалось выяснить, что данные изображения, в момент их разбора одной из процедур, приводили к порождению большого числа (миллионы) мелких объектов в памяти компьютера. Построение индекса объектов, конечно, было реализовано с мелкой и достаточно традиционной ошибкой – переполнялся буфер, что и приводило к сбою. При этом, в случае подавляющего большинства других изображений, ничего подобного не возникало, так как ситуация с порождением миллионов объектов, вообще-то, оказалась довольно редкой: подходящее изображение попалось чисто случайно.
Собственно, в этой истории нет ничего уникального: практически все программно-аппаратные системы, работающие с реальностью, сталкиваются с тем, что некое непрограммное воздействие извне – будь то подходящая “картинка”, громкий звук или неожиданное ускорение, – приводит к аварии. Комплекс ПВО – не исключение. Программы для комплексов разрабатывают такие же инженеры-программисты, как и те, которые работают с коммерческими системами реального времени. Думаю, миф о том, что комплекс – изолированная система, сложился в головах не чуждых программирования и информационных технологий людей, которые, при этом, никогда не имели дела с разработкой систем управления, а ограничивались “электронными таблицами” и базами данных.
Перейдём к комплексам ПВО. Понятно, что активная система РЭБ может сформировать такую помеху, такой сигнал, который временно выведет вычислительные системы РЛС из строя, использовав ту или иную ошибку в программном коде. Ошибка, при этом, может считаться и не ошибкой вовсе, а особенностью, поскольку в практике применения разработчикам с её проявлением сталкиваться не приходилось. Например, рассуждая сугубо теоретически, можно представить следующую ситуацию: для индикации и сопровождения целей программное обеспечение циклически вычисляет их координаты в некоторой собственной системе; РЛС при этом проводит подсвет разных целей, перемещая луч; задача активной помехи состоит в формировании ложной цели, которая, будучи поставленной на сопровождение, начнёт давать отметку, противоречащую текущему положению луча РЛС. Возникшая в программе, после преобразования координат, конфигурация переменных не была предусмотрена программистом – пожалуйста, получаем глобальный сбой, придётся перезапускать.
Современные комплексы ПВО, оставаясь системами реального времени, имеют достаточно сложные и, в какой-то мере, гибкие программы управления. Но если речь идёт о старых советских комплексах, например о тех же классических “Буках”, то они работают по жёсткой и весьма простой временной диаграмме, что сильно упрощает получение атакующей стороной данных о том, в каком состоянии находится комплекс, что он будет делать в следующую миллисекунду.
Почему сложные активные атаки РЭБ не случались раньше, а о них рассуждают только сейчас? Всё просто: двадцать лет назад, и ранее, во-первых, не было элементной базы, которая позволила бы реализовать подобный помехопостановщик. Речь, заметьте, не столько о центральных арифметических процессорах и памяти, сколько о приёмо-передающих элементах и специальных сигнальных процессорах. Во-вторых, на перенос теоретического математического аппарата в практическую электронику требуются время, а сам нужный прикладной математический аппарат мог появиться только после накопления опыта взаимодействия с системами ПВО. Ну и в-третьих, да, огромная вычислительная мощность оказалась доступной “в поле” только относительно недавно.
Дополнение: в комментариях верно заметили, что для эффективного анализа ошибок (или особенностей) в работе комплекса ПВО нужен сам комплекс, либо образцы программного обеспечения. Это так. Однако, в теории, можно выявить потенциальные дефекты и особенности внешним наблюдением, не имея прямого доступа к самой системе. Особенно это касается старых комплексов, которые устроены по хорошо известным принципам, выдают детали внутренней работы через побочные каналы и имеют небольшое пространство состояний (что упрощает моделирование). А вот и старая записка по этой теме.
(Кстати, записка по теме – активация аппаратных закладок.)
Комментарии (6) »
Числа, отражающие наличие тех или иных систем вооружений в Сирии, довольно лукавые. Так, не ясно, что с реальной боеготовностью частей: они должны быть развёрнуты, иметь снабжение, связь и так далее. Про гипотетические комплексы С-300 в Сирии (популярная тема) – Штаты, наверняка, обладают точной информацией: если комплексы есть, то они должны были выходить в эфир, тем самым обозначив своё присутствие.
Вообще, момент с демаскированием позиций сирийских систем вооружений важен сам по себе: у Штатов и их союзников большое преимущество как в информационном обеспечении, так и в средствах активной РЭБ. Соответственно, заработавшие передатчики, просто радиотрафик, имеющий отношение к перемещению частей, – всё это работает в пользу Штатов.
Имеющиеся в Сирии более-менее современные комплексы ПВО вряд ли можно просто распределить по территории, потому что они должны прикрывать друг друга. Да и береговые противокорабельные ракетные системы, – тут сейчас популярно упоминание про “Яхонты” в “Бастионах”, – нуждаются в прикрытии. И не только от воздушного нападения. Здесь, скорее, могут действовать диверсанты. Потому что, понятно, пока есть теоретическая возможность нарваться на “Яхонт”, штатовские корабли к берегу соваться не станут: всё ж эта ракета относится к тем немногим образцам вооружений, которых Штаты реально опасаются.
Что касается РЭБ, то в начале года, после сообщений о рейдах Израиля, я публиковал подборку ссылок на записки по теме.
Комментарии (19) »
Новый