Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Очередное сообщение про использование мобильных телефонов в качестве жучков – в этот раз за аппаратами следят с самолётов, а делает это Минюст США. Речь, кроме прочего, идёт о сканере IMSI – уникальных идентификаторов, которые назначаются оператором каждому абоненту (в случае GSM этот идентификатор, грубо говоря, соответствует SIM-карте). Размещение такого сканера на самолёте, который барражирует на небольшой высоте, очень хорошее решение.
Известно, что, используя особенности протоколов связи (для примера – GSM), активные сканеры IMSI имитируют работу базовой станции, а сам идентификатор получают при помощи передачи соответствующей команды телефонам. Впрочем, IMSI передаётся телефоном в открытом виде, поэтому нет причин обязательно прикидываться базовой станцией, можно пассивно прослушивать эфир и ловить стандартные сигналы, адресованные оператору. У такого решения есть только одна проблема: нельзя получить сведения в произвольный момент времени – нужно ждать, пока телефон передаст свой IMSI, а это происходит редко.
Часто приходится слышать, что, мол, проблема здесь в том, что стандарт GSM не требует аутентификации сети мобильным телефоном (предусмотрен только обратный процесс: аутентификация телефона сетью, для предоставления доступа). Формально, если бы сеть аутентифицировалась телефонным аппаратом, то поддельная базовая станция не смогла бы перехватывать данные и, по крайней мере, передавать управляющие команды телефону, так как для этого потребовались бы секретные ключи оператора связи. Однако это в теории. На практике такое изменение протокола означало бы лишь то, что уполномоченные службы получили бы интерфейсы к ключам оператора (или просто копии ключей) и точно так же читали бы IMSI или что там ещё потребуется.
Комментарии (4) »
До сих пор нередко встречаются “продвинутые пользователи” персональных компьютеров, старой закалки, которые свой рабочий компьютер не подключают ни к каким вычислительным сетям, а данные переносят на флешках. То есть, к сети компьютер не подключен, “чтобы никто не влез или вирус не пробрался”, но так как некие “конфиденциальные данные” нужно, например, распечатать, они копируются на флешку, с которой пользователь отправляется на другое рабочее место, с целью передачи документа на сетевой принтер.
Вообще, концепция подобного “неподключения” известна давно, называется она air gap (“воздушный зазор”, в вольном переводе) и применяется в целях обеспечения информационной безопасности, иногда – весьма эффективно применяется. Однако описанная выше наивная трактовка концепции, подразумевающая использование флешки, лишь создаёт дополнительные риски: флешка обязательно теряется (или, хоть это и маловероятно, её крадут) – получаем потенциальный канал утечки. Конечно, нельзя забывать и о том, что современное вредоносное ПО успешно распространяется как раз при помощи флешек. Соответственно, “продвинутый пользователь”, постоянно путешествующий со своей флешкой по разным устройствам, не только подвергает свой собственный компьютер угрозе заражения каким-нибудь зловредом, но ещё и служит транспортом для этих зловредов внутри предприятия. Риск внедрения вредоноса на компьютер через вычислительную сеть – едва ли выше, чем в случае с флешкой. Кстати, как писали аудиторы, нашумевший Stuxnet был занесён на режимный иранский завод именно по такой схеме: флешка с данными и документами.
Комментарии (7) »
Есть много необычных механических замков. Вот один из них – обнаружен на сайте blackbag:

Ключ представляет собой рукоятку, в которую вмонтировано несколько штырей разной длины (чтобы штыри не гнулись и не портились по другим причинам – предусмотрена крышка). Для отпирания замка ключ нужно полностью вставить в “приёмный блок” с отверстиями, а потом вынуть.

Вот ключ крупным планом:

Занятное решение, но, конечно, не очень удобное. Не похоже, что такой замок обладает какой-то дополнительной секретностью по сравнению с классическими схемами. Однако, как и в случае с другими механическими системами, здесь может сработать простой принцип “неинформированности”: у взломщика просто не окажется с собой подходящих инструментов, сложности добавит и отсутствие информации о внутреннем устройстве замка.
На исходном сайте есть ещё короткое видео, показывающее замок в работе.
Комментарии (3) »
(На правах технократического юмора.) Если кто не знает, то “циска” – это собирательное название маршрутизаторов, произошедшее от Cisco и почти ставшее нарицательным. Известно, что если отключить достаточное число маршрутизаторов, то национальный сегмент Интернета потеряет внутреннюю связность (а не только связность с глобальной Сетью). То есть внешняя атака, отключающая “циски”, приводит к пропаданию Интернета в выбранной стране. Естественно, маршрутизаторы содержат уязвимости-закладки, некоторые из них позволяют маршрутизатор не просто отключить, а убить совсем. Идеальным решением задачи активации закладки является передача в составе трафика специального ключа.
Маршрутизаторы копируют все пакеты и обязательно анализируют часть их заголовков, а факультативно – содержимое самих пакетов. Так что обнаружив ключ активации в составе полученного пакета данных, маршрутизатор отключается. Ключ может представлять собой строку из 256 бит, соответственно подобрать его не представляется возможным. Понятно, что программная реализация проверки валидности полученного кода должна быть устроена так, что сам код на основании анализа алгоритма вычислить не удастся. Это очень важный аспект: иначе кто-то сможет получить ключ уничтожения в своё распоряжение, прикупив одну уязвимую “циску”.
Вопрос в том, как правильно встроить в трафик убивающий маршрутизаторы ключ. Ситуация тут напоминает искусственно создаваемую биологическую эпидемию.
Предположим, что пакет, содержащий “смертельный код”, отправляется внешним узлом в направлении ближайшего пограничного маршрутизатора атакуемого сегмента сети. Если маршрутизатор, получив пакет, умирает немедленно, то гарантировать можно лишь уничтожение этого самого маршрутизатора – остальные узлы-маршрутизаторы останутся работоспособными, а вот связь их с внешним сетевым миром прервётся, поэтому вырубить их извне уже не получится. Проблема.
Допустим, маршрутизатор сперва отправляет пакет далее по маршруту, и лишь потом – умирает. При такой схеме возможно вывести из строя один из маршрутов, в который входит начальный маршрутизатор, да и то – гарантировать ничего нельзя: пакет может потеряться в пути, а переслать его повторно будет уже некому. Так как маршрутов доставки пакетов обычно несколько, получаем проблему с покрытием: после того, как откажет несколько “цисок”, эпидемия затихнет, а связность сохранится.
Естественно, можно продолжать бомбардировать все доступные узлы пакетом, содержащим смертельный код, но есть и другое решение. Для качественного уничтожения связности пакеты должны пройти через каждый маршрутизатор, обеспечивающий работу национального сегмента Сети. При этом желательно, чтобы вредоносные пакеты вообще не покидали пределов сегмента. Это означает, что источником пакетов должны быть пользовательские компьютеры – тогда они заведомо охватят большое число маршрутизаторов, а распространяться эпидемия отключений начнёт с самого подходящего уровня: ведь без конечных пользователей Интернет не имеет особого смысла.
Как получить нужный эффект? Например, использовать механизм, встроенный в распространённую операционную систему. Пусть в определённый момент центральные серверы, куда эта операционная система обращается за обновлениями, отправят некий “праймер” – сигнал к атаке. После этого операционная система в любой пакет исходящего трафика встраивает убивающий маршрутизаторы код и – вуаля, сегмент посыпался, причём падают маршрутизаторы во всех возможных путях доставки пакетов к пользователям, покрытие идеальное. Естественно, операционная система пользовательских компьютеров не содержит секретного кода: он передаётся центральными серверами, в зашифрованном виде, чтобы не вызвать преждевременного срабатывания. От конечного компьютера требуется только расшифровать код и вернуть его обратно в Сеть – самая обычная операция, кстати, не вызывает подозрений, встречается во многих протоколах, так как может являться чем-то вроде проверки электронной подписи или служить частью системы аутентификации.
А после того как в национальном сегменте умерли хотя бы две трети “цисок”, на восстановление связности потребуются многие месяцы (не исключено, что и годы).
Комментарии (10) »
Наверное самая спорная технология, от которой, тем не менее, никуда не деться – это распознавание лиц на лету, когда данные для распознавания поступают от видеокамеры, а результат тут же выводится на монитор очков дополненной реальности (ну или на ретинальный монитор другого типа, если хотите). То есть, пользователь сразу видит дополнительную информацию о том человеке, лицо которого попало в поле зрения носимой видеокамеры. Конечно, тут сразу напрашиваются варианты сервисов, собирающих базы изображений людей, привязанных к фамилиям, именам, профилям в социальных сетях вроде Facebook, персональным страничкам, да и просто к выдаче Google. Такие приложения уже есть, в том числе для очков дополненной реальности. Внедрению их многие противятся, но, скорее всего, помешать не получится. (Кстати, такие системы уже есть на вооружении у спецслужб.)
Не исключено, что массовое распространение подобных “распознавалок лиц” может стать фактором, подталкивающим использование головных уборов, которые полностью скрывают лицо: это такой шаг к сохранению некоторой доли анонимности, скажем, во время передвижения по улице.
На первый взгляд кажется, что человек, желающий оставаться анонимным в новой дополненной реальности, может просто не публиковать свои фотографии (с указанием дополнительных данных) в Интернете. Но как мы видим на примере того же Facebook – это не решение: если человек не “публикуется” сам, его рано или поздно “опубликуют” какие-нибудь малознакомые люди. В случае с массовой носимой системой распознавания лиц, человека может внести в общую базу любой желающий: например, познакомившись на каком-то публичном мероприятии (или даже просто прочитав “бейджик” автоматическим считывателем). Так что спрятаться, не выкладывая фото в Сети, не получится.
В принципе, на пути внедрения таких систем есть формальное препятствие в виде законов о защите персональных данных. Заметьте, что при желании фотографию лица человека можно признать биометрическими данным, которые, в терминах законодательства о персональных данных, подлежат максимальной степени защиты. В таком случае, распространять приложения смогут лишь те, кто получил соответствующую лицензию и сертификаты. Обратите внимание на то, что само распространение подобного сервиса всё равно не будет ограничено, просто для его реализации потребуется решить значительно большее число административных задач.
В общем, распознавание лиц в режиме онлайн – это весьма горячая тема, которая в ближайшие пару лет наверняка принесёт немало скандалов и неизвестных ранее проблем.
Комментарии (2) »
В Европе, в том числе и в России, а также и в других странах мира, сейчас готовят к внедрению автоматические системы оповещения экстренных служб о происшествиях с автомобилями. Предполагается, что система представляет собой некий достаточно автономный блок, в обязательном порядке устанавливаемый в каждый автомобиль (или в каждый новый автомобиль – не так важно). Блок оборудован сенсорами, которые обнаруживают экстренную ситуацию – например, удар. Также блок содержит систему связи (очевидно, GSM), которая автоматически передаёт тревожное сообщение в специальный центр. Сообщение содержит точные координаты, так как система использует GPS. Идея, конечно, здравая. Однако подобное устройство, в качестве побочного эффекта, обеспечит каждый автомобиль жучком, позволяющим узнавать местоположение машины.
Заметьте, что GPS-модуль не может включаться только по сигналу тревоги: для определения местоположения ему придётся накопить сигнал от спутников, что будет приводить к дополнительной задержке отправки координат – для экстренного сообщения это неприемлемо. Но есть ещё и GSM-модуль. Конечно, рекомендации предусматривают “блокирование” программно-аппаратного обеспечения системы во время штатной эксплуатации автомобиля. Именно в целях сохранения “приватности”. Проблема в том, что всякий современный GSM-модуль содержит в себе как минимум один микрокомпьютер, работающий с собственной операционной системой и решающий свои собственные задачи. Обычно, это задачи связи. Но, как обычно, побочные каналы и разнообразные бекдоры присутствуют и в GSM-модулях. Поэтому, даже если разработчики остальной аппаратуры, составляющей автомобильный тревожный модуль, сделают всё как надо и не станут постоянно транслировать в эфир координаты автомобиля с его уникальной меткой, кто сможет гарантировать, что удалённо прочитать координаты в любой момент времени не сможет, например, продвинутый радиовзломщик с беспилотником, передав несколько недокументированных команд GSM-модулю?
Комментарии (4) »
“Плащ-невидимка” – это такое теоретическое снаряжение, позволяющее человеку или предмету стать практически невидимым, хотя бы в некотором диапазоне электромагнитных волн. Лучше всего, конечно, подходит видимый диапазон. Возможность создания подобного снаряжения показана в теоретических работах физиков уже несколько лет назад. Сейчас достижения в области невидимости демонстрируют в лабораторных условиях, для весьма ограниченных ситуаций. Но кто знает – возможно, некоторым сильным спецслужбам уже доступно практическое решение, представляющее собой готовый элемент снаряжения, изготовленный в секретных высокотехнологичных мастерских. Интересно представить, какая от такого плаща может быть реальная польза.
Очевидно, подобное секретное снаряжение разрешат использовать лишь для каких-то суперважных операций – в противном случае, риск утечки секретных технологий перевесит выгоды от успешного завершения операции. Предположим, что при помощи плаща (или костюма – не так важно) невидимым становится агент-человек. Теперь его изображение не фиксируют камеры видеонаблюдения. Также, он может пройти незамеченным мимо часовых. Но какой в этом толк?
Если невидимые агенты проникают в какой-то хорошо охраняемый бункер, то такие бункеры ограждены разнообразными заборами. Пройти сквозь забор – плащ не помогает. Даже в случае с часовыми и сотрудниками охраны всё не так просто: хорошо защищённые периметры содержат в составе пропускных пунктов “шлюзы”; войти в такой шлюз невидимке не удастся уже потому, что шлюз активируется оператором, который должен видеть входящего (или выходящего). Если же невидимка забежал внутрь шлюза вместе с кем-то из сотрудников охраняемого объекта, то он будет тут же обнаружен дополнительными сенсорами, которыми оборудован шлюз: а там, как минимум, имеется какой-нибудь рентгеновский или терагерцевый сканер. Запертый внутри кабинки невидимый агент, естественно, произведёт фурор. Но не более того.
Невидимость удобна для предварительной разведки местности, проводимой с некоторого расстояния. Но и тут есть проблема: объективы средств наблюдения придётся выставлять наружу, а тогда их сможет обнаружить автоматический детектор оптики, которым оборудован защищённый сверхсекретный объект. Очевидно, что всякий объект, заслуживающий внимания агента, оснащённого секретным плащём-невидимкой, оборудован детектором оптических приборов. Или даже несколькими такими детекторами. Что уж говорить о радарах, в том числе, длинноволновых, от которых плащ не защищает (по условиям задачи).
Можно было бы сказать, что служба безопасности нашего защищённого объекта даже не догадывается о существовании плаща-невидимки. Но в реальности это вряд ли так – ведь всякая теоретическая возможность должна учитываться при разработке модели угроз для сверхзащищённого суперсекретного объекта. Тем более, что обнаружение невидимок реализуется уже имеющимися средствами.
Конечно, невидимость окажется полезной для роботов-разведчиков: такой робот может иметь небольшой размер и проникать в помещения сквозь системы вентиляции или проползая под двери. Беда в том, что от подобных роботов охраняемые помещения уже защищают, и системы защиты далеко не всегда подразумевают визуальный контакт (хотя разные “лазерные заборы” никто не отменял).
Так что выгод от использования секретного плаща-невидимки не так много. Но область применения у них, тем не менее, есть: плащ нужно использовать не для проникновения куда-то, а для выхода с территории тех или иных объектов, или для того, чтобы скрытно вынести что-то. Защита охраняемого лица от взгляда снайпера – вот другое эффективное применение.
Комментарии (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) »
Новый