NSA недавно опубликовало подборку бюллетений Cryptolog, с 1974 по 1997 год. Этот бюллетень – что-то вроде “заводской многотиражки” NSA. От других изданий того же агентства отличается уровнем допуска: есть, в том числе, публикации под грифом Top Secret (ну или не просто публикации, а дезинформация, под таким же грифом; какая, в принципе, разница?) Чтение очень занимательное, рекомендую. Много про Советский Союз, про космонавтов, про передовиков науки и техники. Особенно концептуально выглядят лакуны, созданные в тексте некими цензорами.



Comments Off on Архив бюллетеней Cryptolog NSA

Обычно, перевод древних аналоговых технологий связи на цифровые рельсы выливается в сплошные преимущества: цифровая система может быть и гибче, и надёжнее, и безопаснее. Всё это верно и для радиосвязи. Но только в том случае, если реализация добротная. Очередное подтверждение, очень занятное: исследователи изучили цифровые системы радиосвязи стандарта P25, – используемые, например, спецслужбами США, – и обнаружили эффективные направления для активных атак.

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

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

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

В качестве аппаратуры для практической постановки помех исследователи применяют детскую радиоигрушку (да, именно так, не шутка), по цене $30 за комплект из двух устройств.

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

(Ссылка на научную работу найдена тут: schneier.com.)



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

В продолжение темы про Chrome, который, якобы, переправляет в Google контент закрытых страниц из корпоративных интранетов: интересно подумать, как можно было бы устроить подобный шпионский браузер. Понятно, что едва ли Google что-то подобное делает, потому что не ясны стратегические выгоды: ну чего там интересного для массового пользователя можно найти в интранетах? Тем более, что и ссылку-то не покажешь: сервер же закрыт. В исходном вбросе, направленном на тематические СМИ, по той или иной причине не разработан технический аспект: то есть нет легенды, как именно Chrome “сливает инфу”. А ведь это был бы самый занимательный кусочек истории.

Что можно придумать? Понятно, что простое зеркалирование забранных с “секретного” сайта страниц на сервер Google – это неинтересный вариант. Хотя бы потому, что он обнаруживается совсем уж элементарно, с помощью систем мониторинга трафика. Использование зашифрованных каналов тут не поможет, потому что само наличие канала с трафиком демаскирует “шпиона”. Однако, можно “размазать” собранную информацию по многим транзакциям, передавая внутри каждой лишь небольшой фрагмент. Получается такой медленный и малозаметный канал.

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

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

Другой вопрос: что взять за основу для построения канала утечки? А тут годятся любые сервисы, принимающие некие персонализированные настройки (например, проверка посещаемых URL на “фишинговость и вредоносность”). Сжатый текст будем передавать так: небольшие блоки подмешиваются в токены, которые браузер генерирует при формировании запроса на сервер. Пусть токен содержит 64 байта. Предположим, что 16 из них – это данные утечки. Тридцать запросов с токенами (не много) – 480 байт. Хорошим кодированием можно ужать сюда примерно 2500 знаков текста (можно и заметно больше). Необязательно поддерживать канал открытым, пока не передан весь собранный текст (см. ниже). Вообще, нет никакой необходимости, создавая такой браузер, встраивать в него излишнюю надёжность. Механизмы обеспечения такой надёжности только выдадут затею. Центр посеял много браузеров в окружающее киберпространство. Какие-то из них что-то приносят, какие-то – нет, они сломались. Нестрашно, многочисленность источников компенсирует (для центра) ненадёжность каждого из них.

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

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

Вообще, задача определения “секретных” страниц – тоже интересная (особенно, если нет связи с центром). И её что-то упустили из вида при обсуждении вброса на тему Chrome.

Впрочем, всё это хорошо, но остаётся одна большая трудность: как спрятать дополнительную функциональность браузера внутри его кода. Можно предположить, что большинство пользователей не сами собирают браузер из исходников, а довольствуются “бинарником”. Такой расклад несколько проще. Но ведь и “бинарники” подлежат исследованию. А популярный браузер специалисты разберут дизассемблером вдоль и поперёк.

(Продолжение про риски и политику.)



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

Сейчас вот бурно обсуждают растиражированное заявление представителя Microsoft о том, что корпорация раскроет для специальных служб исходные коды Skype. (Такое раскрытие – это обычная разумная практика: если исходные коды ПО хороши, то вообще нет смысла их прятать, ага.) Сложилась какая-то путаница с отношением этого факта “потенциального раскрытия” к алгоритмам шифрования Skype (как известно, шифрование в этом инструменте голосовой связи давно являлось одним из инструментов маркетингового продвижения). Алгоритм шифрования тоже нет никакого смысла скрывать. Это хорошо, если используется опубликованный алгоритм. Плохо, если некий “секретный”. Очевидно, что используемый алгоритм можно восстановить по исходникам – не понятно, зачем об этом сообщают, как о новости. Хитрость-то не в этом.

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

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

Другими словами, если Skype был кривым внутри, в смысле криптографии, то и раскрытие/нераскрытие исходников никак ситуацию для пользователей не ухудшит (разве что улучшит, кстати, если ПО будет получать соответствующие сертификаты).



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

В СМИ сегодня пишут (вот, например, на “Ленте”), что “хакер взломал GSM”. Речь идёт о работе Карстена Нола (Karsten Nohl), а точнее, речь о завершении важного этапа работы. Подробности реального положения дел такие: атаки на алгоритм шифрования A5/1, используемый GSM для защиты переговоров в радиоэфире, известны уже лет десять. Правда, известны они были скорее в теории, а не на практике. Для получения доступного практичного механизма перехвата и дешифровки GSM-разговоров (SMS, конечно, тоже) в пассивном режиме не хватало предвычисленной базы данных (таблиц ключей), делающей возможным раскрытие произвольного ключа за разумное время.

Нол в 2008-2009 гг. создал проект по генерации нужных таблиц, предложив поучаствовать в создании распределённой вычислительной сети добровольцам. В итоге, сейчас нужные таблицы вычислены общими усилиями и, как утверждают, доступны в P2P-сетях. Тут нужно отметить, что полная “таблица ключей” для A5/1 – требует очень большого объёма для хранения, и огромного машинного времени для вычисления. Поэтому использовался отработанный на “взломах” хешированных (например, MD5) паролей метод: в БД сохранются не все возможные “ключевые варианты” (в таком случае, дискового пространства потребовалось бы слишком много), а лишь определённая их часть, представленная в виде “сжатой” структуры (так называемые rainbow tables), многократно ускоряющей перебор ключей. Это известный в криптологии подход, позволяющий найти “алгоритмический компромисс” между количеством вычислений и объёмом памяти. В данном случае подход, похоже, качественно реализовали на практике (что далеко не всегда удаётся).

Интересно, что для генерации таблиц ключей использовались системы с современными графическими ускорителями (3D-ускорители для игрушек), которые, как известно, позволяют многократно ускорить многие криптографические операции. Вот какая польза от компьютерных игр. (Между прочим, летом 2008-го года с помощью кластера из нескольких сотен Sony PlayStation исследователи реализовали на практике уязвимость в SSL, выпустив полностью валидный, но при этом поддельный SSL-сертификат.)

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



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

Генераторы случайных чисел (а они могут быть только аппаратными) часто строят на использовании различных естественных физических эффектов в полупроводниковых электронных устройствах. Как обычно, эти устройства подвержены хитроумным атакам, проводимым через “побочные каналы”.

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

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

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

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

Атака “неразрушающая”, модулирующий сигнал находится в пределах норм электропитания микросхемы. Более того, наводить колебания в “питающих каналах” можно дистанционно, облучая, скажем, банкомат СВЧ-полем.

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



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

credit: KB35, flickr The Register пишет про итальянских исследователей, которые с помощью лазерного “виброметра” научились читать вводимые на клавиатуре компьютера символы. Кроме того, в этой же статье эти же исследователи “читают” PS/2-клавиатуры через линии электропитания.

В первом случае используется анализ звука, производимого каждым нажатием клавиши пользователем, во втором – анализируют электрические “наводки” в электросети, также связанные со срабатыванием клавиш клавиатуры. Для автоматизации распознавания кодов символов используют специальное ПО, вполне ожидаемо работающее со словарём. Интересно, что атаки реализованы с минимальными затратами, измеряемыми сотнями долларов США.

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

Но интерес-то статьи в другом: рядовые пользователи не экранируют свои квартиры (ну, за редким исключением) и используют самые обычные клавиатуры (часто вообще – беспроводные). При этом с помощью клавиатур вводятся и “банковские пароли”, и номера кредитных карт. И вот уже почти настал такой момент, когда на оборудование по дистанционному “съёму информации” с ПК этих пользователей уже не нужно тратить десятки тысяч евро, а достаточно спаять “лазерный микрофон” за $200 и раздобыть не самую мудрёную программу-анализатор. (Да, конечно, как и прежде требуется высококвалифицированный специалист, чтобы всё заработало.)

Вот так. Ждём появления средств защиты для массовых пользователей.

(Между прочим, готовое решение – работает против “виброанализатора”: на клавиатуру достаточно привинтить вибратор, который будет ставить помеху по сложному алгоритму. Вполне годится виброзвонок от мобильного телефона.)



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

На сайте GPGPU, посвящённом вычислениям с использованием графических ускорителей, – подборка ссылок на криптологические продукты, касающиеся перебора MD5 по большей части.



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

Очевидно, у Касперских действительно уже есть какие-то хитрые криптологические ходы в запасе, чтобы раскрыть ключи шифрующего пользовательские файлы вируса Gpcode. Иначе публиковать приглашение к факторизации 1024-битного ключа RSA “всем миром” – это несколько странно.

А если есть ходы, то получается такой хороший PR (все кому не лень перепечатали ж пресс-релиз) и позже получается закрытый ключ (после применения “хитрых ходов”). Собственно, они же и сами честно пишут:

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

Понятно, что приступать к факторизации, имея на руках только 1024-битный ключ (если он хороший, конечно) – было бы поспешным решением со стороны специалистов.



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