Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Статистика запусков для новой ракеты Orbital Sciences сильно испорчена: подобный взрыв на старте скорее всего связан с серьёзным дефектом конструкции. Кстати, двигатели там – фактически советские, то есть, при должной адаптации должны бы быть надёжными.
Комментарии (1) »
На фото (достаточно старом, впрочем: как минимум, 2012 год) – F-35 в варианте STOVL, с внешними подвесками. Центральный контейнер, под фюзеляжем, содержит пушку. Ну или должен содержать: как там на самом деле – не ясно.

Такой пример стратегического решения, возможно, странного: сконструировать сложный в производстве и обслуживании малозаметный истребитель, очень дорогой, который, тем не менее, позволяет подвесить банальный контейнер с пушкой (предусмотрено для двух из трёх вариантов самолёта). Понятно, что как бы ни старались разработчики, внешний контейнер сильно повышает заметность. Хотя, конкретно про это решение писали, будто пушечный контейнер тоже сделают малозаметным.
Комментарии (1) »
Известно, что параметры бытового электропитания, например, 220 вольт и 50 герц, в реальности далеки от стабильности: в линиях всегда присутствует шум разнообразной природы. Этот шум можно записывать, если подключить к проводам подходящую аппаратуру. Понятно, что ряд характеристик шума будет общим для той или иной большой группы потребителей. Более того, параметры шума будут уникальными для выбранного интервала времени.
Казалось бы, зачем нужен подобный архив, в котором хранятся записи шумов сетей электроснабжения? Одно из интересных применений состоит в датировке аналоговых (да и цифровых тоже, надо сказать) аудиозаписей. Механизм тут такой: шум электропитания оставляет следы в записи, эти следы можно выделить, сопоставить характеристики с архивными данными, и сказать, когда могла быть выполнена предоставленная запись. Такая методика иногда используется в рамках судебной экспертизы. Естественно, датировать так можно не только аудиозаписи.
Схема не самая совершенная, обладает плавающей точностью, требует не только наличия “архива шумов” со шкалой времени, но и определённых условий работы аппаратуры, на которой проводилась запись, а также совместимости сети электропитания. Но это не отменяет технологического изящества решения.
Комментарии (2) »
Вышел из печати очередной номер журнала “Доменные имена”. Тема номера – кто бы сомневался? – столичные домены. Помимо других интересных материалов – в выпуске моя статья о “милитаризации Интернета” (да, модное нынче направление), сборе пользовательских данных, системах анонимизации.
Comments Off on Новые “Доменные имена”
“Плащ-невидимка” – это такое теоретическое снаряжение, позволяющее человеку или предмету стать практически невидимым, хотя бы в некотором диапазоне электромагнитных волн. Лучше всего, конечно, подходит видимый диапазон. Возможность создания подобного снаряжения показана в теоретических работах физиков уже несколько лет назад. Сейчас достижения в области невидимости демонстрируют в лабораторных условиях, для весьма ограниченных ситуаций. Но кто знает – возможно, некоторым сильным спецслужбам уже доступно практическое решение, представляющее собой готовый элемент снаряжения, изготовленный в секретных высокотехнологичных мастерских. Интересно представить, какая от такого плаща может быть реальная польза.
Очевидно, подобное секретное снаряжение разрешат использовать лишь для каких-то суперважных операций – в противном случае, риск утечки секретных технологий перевесит выгоды от успешного завершения операции. Предположим, что при помощи плаща (или костюма – не так важно) невидимым становится агент-человек. Теперь его изображение не фиксируют камеры видеонаблюдения. Также, он может пройти незамеченным мимо часовых. Но какой в этом толк?
Если невидимые агенты проникают в какой-то хорошо охраняемый бункер, то такие бункеры ограждены разнообразными заборами. Пройти сквозь забор – плащ не помогает. Даже в случае с часовыми и сотрудниками охраны всё не так просто: хорошо защищённые периметры содержат в составе пропускных пунктов “шлюзы”; войти в такой шлюз невидимке не удастся уже потому, что шлюз активируется оператором, который должен видеть входящего (или выходящего). Если же невидимка забежал внутрь шлюза вместе с кем-то из сотрудников охраняемого объекта, то он будет тут же обнаружен дополнительными сенсорами, которыми оборудован шлюз: а там, как минимум, имеется какой-нибудь рентгеновский или терагерцевый сканер. Запертый внутри кабинки невидимый агент, естественно, произведёт фурор. Но не более того.
Невидимость удобна для предварительной разведки местности, проводимой с некоторого расстояния. Но и тут есть проблема: объективы средств наблюдения придётся выставлять наружу, а тогда их сможет обнаружить автоматический детектор оптики, которым оборудован защищённый сверхсекретный объект. Очевидно, что всякий объект, заслуживающий внимания агента, оснащённого секретным плащём-невидимкой, оборудован детектором оптических приборов. Или даже несколькими такими детекторами. Что уж говорить о радарах, в том числе, длинноволновых, от которых плащ не защищает (по условиям задачи).
Можно было бы сказать, что служба безопасности нашего защищённого объекта даже не догадывается о существовании плаща-невидимки. Но в реальности это вряд ли так – ведь всякая теоретическая возможность должна учитываться при разработке модели угроз для сверхзащищённого суперсекретного объекта. Тем более, что обнаружение невидимок реализуется уже имеющимися средствами.
Конечно, невидимость окажется полезной для роботов-разведчиков: такой робот может иметь небольшой размер и проникать в помещения сквозь системы вентиляции или проползая под двери. Беда в том, что от подобных роботов охраняемые помещения уже защищают, и системы защиты далеко не всегда подразумевают визуальный контакт (хотя разные “лазерные заборы” никто не отменял).
Так что выгод от использования секретного плаща-невидимки не так много. Но область применения у них, тем не менее, есть: плащ нужно использовать не для проникновения куда-то, а для выхода с территории тех или иных объектов, или для того, чтобы скрытно вынести что-то. Защита охраняемого лица от взгляда снайпера – вот другое эффективное применение.
Комментарии (1) »
Продолжается новомодный поток анонсов с громкими атаками на SSL/TLS: в этот раз – POODLE, позволяющая свести на нет секретность HTTPS (например) при использовании SSLv3. Занятно, что в сообщении по ссылке читаем: “Today, Firefox uses SSLv3 for only about 0.3% of HTTPS connections” (“Сейчас Firefox использует SSLv3 лишь для 0,3% HTTPS-соединений”).
Комментарии (1) »
Большой проблемой современного состояния SSL/TLS в Интернете является возможная “прозрачная” подмена сертификатов, проводимая при участии удостоверяющих центров. Одним из решений этой проблемы является построение независимой от иерархии удостоверяющих центров публичной системы аудита выданных сертификатов. Соответствующая инициатива называется Certificate Transparency (CT), я писал о ней примерно год назад. Результаты аудита, которые публикуются в специальных логах, могут, в том числе, автоматически проверяться браузерами. Технология активно развивается и уже частично поддерживается браузерами Chrome и Chromium. Конечно, есть проблема с полнотой логов, но важно, что поддержку включили.
Кстати, поговаривают, что в Chrome/Chromium будут требовать поддержки CT для EV-сертификатов (сертификатов с “дополнительной валидацией”) с февраля 2015 года. То есть, уже совсем скоро.
Посмотреть, как работает эта новая технология, можно, например, здесь: https://embed.ct.digicert.com/.
Комментарии (4) »
Кстати, я не так давно писал, что гипотетически возможен вариант с “внешним отключением Интернета“. Однако, насколько можно судить, сейчас в новостях речь идёт не просто об отключении Рунета, а о том, чтобы получить возможность всё же использовать Интернет, в том случае, если от него пытаются отключить внешние силы.
Вообще, разумными представляются действия, направленные на сохранение присутствия в глобальной Сети, вне зависимости от внешних попыток отключения. Действующая сейчас глобальная инфраструктура, конечно, создаёт тут весьма заметные трудности, но их можно и преодолеть. Неотключаемый (для всех) Интернет – был бы наиболее интересен. Однако, он, пока что, невозможен.
Технически, сломать национальный сегмент можно, если ломающая сторона обладает достаточными полномочиями и ресурсами. Тут сомнений быть не может. Ломать, естественно, нужно не на уровне DNS, а на уровне BGP (то есть, на уровне маршрутизации). Если у вас не работает BGP, то национальный сегмент разваливается на множество автономных систем, которые не могут обмениваться трафиком. То есть, нет даже единого интранета. Естественно, DNS при этом тоже не работает. Но локальные сети – остаются. Также, остаётся “локальный” обмен трафиком, если между несколькими автономными системами установлены прямые подключения (“пиры”). Например, у “Яндекса” есть прямые каналы к крупным российским хостингам (возможно, и к зарубежным). Эти каналы не видны для всего остального Интернета. (Не видны – в терминах BGP.)
(Очень интересно будет вспомнить, что отключение Интернета в Сирии, если верить иностранной прессе, произошло из-за ошибки сотрудников АНБ, которые удалённо ковырялись в пограничном маршрутизаторе и – сломали его. Медийное пространство хорошо выстроено, да.)
Комментарии (1) »
(Меня попросили простыми словами объяснить, как работают методы считывания секретных ключей через побочные излучения и наводки, например через измерение электрических параметров ноутбука, как продемонстрировано в недавней работе Genkin, Pipman, Tromer. Думаю, что описание достаточно интересно и для публикации на dxdt.ru, тем более, что в нём, на мой взгляд, есть наблюдения, полезные для понимания деталей работы современных реализаций RSA и принципов разработки криптографического ПО.)
Всякая сколь-нибудь сложная техника, особенно вычислительная, излучает в окружающее пространство разнообразные сигналы (это и есть “излучения”), а также изменяет параметры работы сопряжённых с данной техникой устройств и систем (это и есть “наводки”). На практике, убрать побочные излучения и наводки полностью – нельзя. Именно поэтому мы регулярно видим новые работы, достающие секреты при помощи всё более оригинальных измерений на побочных каналах.
Основная идея использования излучений и наводок для создания канала утечки состоит в том, чтобы при помощи анализа тех или иных параметров научиться определять внутреннее состояние атакуемой системы, с привязкой к некоторой временной шкале. (Это верно даже для тривиального случая, когда “защищаемая” информация по недосмотру просто транслируется в эфир.)
Но недостаточно научиться лишь различать внутренние состояния системы, измеряя внешние параметры – нужно ещё суметь сопоставить эти состояния со значением проводимых системой операций. То есть, грубо говоря, провести “декодирование” или раскрытие сигнала. В случае с программным обеспечением, выполняющим криптографические вычисления, векторы атак направлены в сторону различий в использовании ресурсов для реализации тех или иных операций. Хрестоматийный пример: реализация умножения чисел, занимающая разное время в зависимости от значений сомножителей.
Кстати, именно наличие побочных каналов утечек задаёт совершенно другие требования к архитектуре криптографического ПО: его разработчики не только должны отлично владеть программированием как таковым, но и в деталях понимать особенности исполнения программного кода аппаратным обеспечением; это, естественно, кроме досконального знания криптографических алгоритмов. Одной из фундаментальных задач при разработке криптографического ПО является создание такого кода, для которого действовал бы принцип неразличимости “внешним наблюдателем” проводимых над разными операндами низкоуровневых операций между собой и между операндами. В том числе, принцип должен действовать для такого наблюдателя, который может изменять данные, поступающие на вход функций криптобиблиотеки (см. ниже). Поэтому разработка качественных криптобиблиотек представляет собой обособленный вид магии, сильно отличающийся от других направлений программирования. Разобраться в этой магии чрезвычайно сложно, ещё сложнее – научиться её применять.
Перейдём к конкретному примеру, описанному в исходной работе: получение ключа RSA при помощи измерения электрического потенциала на корпусе (“земле”) ноутбука. (В работе речь идёт также о криптосистеме ElGamal, но принцип атаки совершенно аналогичен, поэтому мы будем рассматривать только случай RSA.) RSA использует операцию возведения в степень, и для шифрования, и для расшифровывания. Напомню, что секретной в RSA является расшифровывающая экспонента, обратная к шифрующей экспоненте. Последняя входит в состав открытого ключа, наряду с модулем (большим числом, задающим конечное множество чисел, в котором осуществляются операции для данного ключа). RSA работает с очень большими числами (2048 бит и более). Арифметические операции над ними, если их осуществлять “в лоб”, занимали бы слишком много времени, даже при работе на самых мощных компьютерах. К счастью, известно большое число оптимизаций, сводящих умножение (возведение в степень) больших целых чисел RSA к некоторому разумному количеству операций. Эти оптимизации всегда являлись проводником для возникновения побочных каналов утечек. Они же используются и в этот раз.
Итак – секретной частью ключа RSA является расшифровывающая экспонента. Это целое число. Достаточно большое. В компьютерной памяти, естественно, оно представлено в двоичном виде. Операции с ним также осуществляются, грубо говоря, побитно – это одна из оптимизаций для быстрого умножения. После того, как исследователи определили, что можно различить исполняемые центральным процессором компьютера серии одних и тех же операций, измеряя потенциал на его корпусе, осталось найти такие зацепки в программном коде, которые позволили бы, на основе этих измерений, различать единицы и нули шифрующей экспоненты. Здесь и кроется основная задумка работы. Зацепки удалось найти в части кода GpuPG, осуществляющей умножение: здесь для 1 и 0 шифрующей экспоненты выбирались разные ветки кода, исполнение которых, при определённых условиях (см. ниже про шифротекст), оставляло разные следы в измеряемом канале утечки.
В RSA шифруемое/расшифровываемое сообщение также представляет собой большое целое число (по длине записи соответствующее длине ключа). При шифровании это число (сообщение) возводится в степень, соответствующую открытой экспоненте. Для дешифрования служит обратная, секретная экспонента. То есть, для того, чтобы наблюдать операции с секретным ключом, атакуемая система должна расшифровывать сообщения – возводить полученные числа в степень, используя соответствующий фрагмент кода GnuPG. А чтобы исследователи могли увидеть биты секретной экспоненты, нужно чтобы возводимые числа (а точнее – одно число) имели специальный вид. Использование специального шифротекста называется “атакой с подобранным шифротекстом”. В рассматриваемом случае – это основная зацепка: если система работает с другими шифротекстами, извлечь ключ описанным способом невозможно.
Подобранный шифротекст вовсе не обязан быть каким-то осмысленным сообщением. Это просто число. Значение этого числа подбиралось по параметрам открытого ключа RSA таким образом, чтобы при обработке внутри низкоуровневых функций GnuPG для нулевых битов секретной экспоненты получались промежуточные значения одного из операндов, содержащие в своем представлении большое число нулевых элементов (промежуточных произведений), а для битов секретной экспоненты, которые равны единице – нулевых элементов было бы мало. Это довольно тонкое наблюдение, очередной раз подтверждающее, что если реализация криптосистем в программном коде – штука, обладающая многими гранями сложности, то работа криптоаналитика с этими системами больше напоминает рыбалку: собирая снасти, никогда точно не знаешь, что поймаешь.
Выбрать правильный шифротекст, из-за особенностей реализации RSA, не представляло особого труда: подходит значение m – 1, где m = pq – модуль ключа, который, как известно, равен произведению двух простых чисел p и q. Значение модуля является открытым. (В секрете держится только разложение на p и q. Несмотря на то что, строго говоря, для расшифровывания сообщения нужно знать только расшифровывающую экспоненту, значения p и q сохраняются, чтобы в дальнейшем использовать их для оптимизации умножения при расшифровывании сообщений.)
Собственно, дальнейшие действия очевидны: передать подобранный шифротекст в атакуемую систему можно, отправив зашифрованное открытым ключом сообщение электронной почты; в записанном сигнале утечки нулям секретной экспоненты будут соответствовать хорошо различимые сигнатуры, последовательно расположенные на временной шкале. Достаточно записать их и – получаем секретный ключ.
Ещё раз остановлюсь на ключевых моментах: побочные излучения и наводки есть практически всегда; для их использования в качестве канала утечки нужно научиться по измеряемым физическим параметрам (электрический потенциал, звуковое давление, что-то ещё) различать внутренние состояния атакуемой системы; для извлечения полезной информации при атаках на конкретное ПО требуется также правильно сопоставить различным внутренним состояниям логические этапы работы используемой криптосистемы.
И рекомендую почитать исходную работу (PDF).
Комментарии (2) »
Некоторое время назад было опубликовано исследование, в рамках которого секретный ключ RSA считывали при помощи анализа звука, издаваемого работающим ноутбуком. Недавно эти же исследователи опубликовали новую работу. Теперь для извлечения ключа используют другой, более очевидный, канал утечки – электромагнитный. При этом все варианты канала разобраны в деталях, в том числе, потенциал с корпуса считывали при помощи “касания рукой”. Описание и ссылка на детальный текст – есть на специальной странице.
Естественно, всё это давно известные в теории явления и методы, но подобных практических демонстраций для массового вычислительного оборудования сильно не хватало. Ну, как минимум, в открытом доступе. Каналы утечек ключей из автоматического шифровального оборудования, – например, по линиям электропитания, – хорошо известны, наверное, с 60-х годов, или даже раньше. Столь же давно используются побочные излучения. Классический пример: “помехи”, транслируемые в эфир электромагнитными реле, используемыми в шифровальной машине.
Защитой, кстати, является не только модификация ПО, но и оснащение “защищённого” ноутбука подходящим генератором шума, который будет “прятать” сигнал утечки. Точно так же много лет защищают оборудование от утечек через электросеть и через побочные ЭМ-излучения.
Comments Off on Электрическое считывание ключей RSA
Довольно давно возникла идея использовать потоки нейтрино (или антинейтрино – отличия тут чисто технические) для обнаружения и классификации ядерных реакторов. У нейтрино есть очень удобное для решения данной задачи свойство: они могут без проблем улетать очень далеко от активной зоны реактора, так как практически не взаимодействуют с веществом.
Соответственно, детектор, расположенный где-нибудь под Москвой, может принимать нейтрино, испускаемые реактором в Антарктиде (например). Надо заметить, что спектр потоков нейтрино/антинейтрино, рождающихся в результате процессов внутри реактора, зависит от типа топлива и, в меньшей степени, от типа и режима работы самого реактора. То есть, инструмент, в теории, идеальный. Идее этой около сорока лет. Она, между прочим, сыграла значительную роль в обосновании необходимости всех этих гигантских и, нередко, весьма дорогостоящих, экспериментов по детектированию нейтрино (как минимум – в СССР, но Штаты вряд ли выдумывали какую-то другую мотивацию).
Основные препятствия на пути к практической реализации, как это обычно бывает, создаёт то самое полезное свойство нейтрино, которое и делает инструмент привлекательным: детектировать нейтрино крайне сложно, соответственно, разрешающая способность системы (и во времени, и в пространстве) будет плохой. Тем не менее, с ростом качества детекторов, к теме постоянно возвращаются. Вот свежее предложение от физиков: компактный, – в размере стандартного транспортного контейнера, – детектор, пригодный для инспектирования иранского реактора (не только иранского, конечно). Впрочем, предлагаемая в статье по ссылке схема подразумевает размещение детектора в непосредственной близости от реактора (указан несколько странный показатель – “около 19 метров от активной зоны”). Это нужно для того, чтобы быстрее накопить данные для измерений.
Неплохим развитием являлось бы наблюдение за реакторами, находящимися на подводных лодках: следить за ними можно было бы с другого конца планеты, а местоположение определять при помощи взятия пеленга по потоку нейтрино. Но это, конечно, пока что чистая фантастика. Хоть и вполне научная.
(На фото – часть детектора нейтрино обсерватории IceCube.)
Комментарии (1) »
Новый