Небольшое продолжение истории с алгоритмом генерации псевдослучайных чисел Dual_EC_DRBG (можно, кстати без подчёркиваний – Dual EC DRGB, что означает Dual Elliptic Curve Deterministic Random Bit Generator). Некоторое время назад я написал про данный алгоритм, – реализация которого, как было объявлено, могла содержать бэкдор от NSA, – буквально следующее:

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

Оказывается, всё ещё проще: описание механизма создания бэкдора дано открытым текстом в заявке на патент, подготовленной в 2005 году. И там же прямо сказано, что данный механизм может использоваться при перехвате зашифрованных сообщений уполномоченными службами – это добавляет удобства алгоритму Dual_EC_DRBG и, судя по заявке, является одним из его преимуществ. Кстати, схема с “депонированием” мастер-ключа спроектирована добротно: если вдуматься, то она, фактически, представляет собой реализацию алгоритма Диффи-Хеллмана, где общий секретный ключ генерируют пользователь генератора псевдослучайных чисел и держатель мастер-ключа; последний потом, если потребуется, может восстановить всю псевдослучайную последовательность.

А шумиха в прессе по поводу Dual_EC_DRBG возникла только в 2013 году, после одного из “разоблачений Сноудена” – хотя про специально спроектированный бэкдор, указанный в качестве одного из свойств алгоритма, было известно уже минимум восемь лет.



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

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

(Призы конкурса Streebog весьма приличные: первая премия – 500 тыс. руб.)



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

Очередной секрет Полишинеля: “NSA удаётся обходить криптозащиту интернет-коммуникаций“. Смысл в том, что NSA, якобы, разработали новые методы криптоанализа, позволяющие вскрывать распространённые криптосистемы. То есть, очередной раз подтвердилась давно известная мысль, я, кстати, писал об этом несколько месяцев назад.

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

(Ещё одна ссылка по теме: секретные теоремы высшей алгебры.)



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

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

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

Ну и не станем забывать о том, что многие результаты, легшие в основу современного “несекретного” математического аппарата криптографии, были параллельно получены в рамках вполне себе секретных исследований, выполненных профильными институтами спецслужб. Наиболее часто описываемый случай “секретных теорем” (не так важно, достоверный или нет) – криптосистема RSA: алгоритм, известный сейчас как RSA, на несколько лет раньше появления описаний в открытых источниках, предложил Клиффорд Кокс (Clifford Cocks), математик британского Центра правительственной связи (GCHQ), но его публикации держали в секрете до 1997 года.



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

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) »
Навигация по запискам: « Позже Раньше »