Защита аппаратного ключа. Часть 2

Все инструменты хакера можно разбить на две большие группы: программные и аппаратные. Давайте подробно рассмотрим их на примере технологии Stealth, которую использует в своих продуктах компания «Актив».

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

Все инструменты хакера можно разбить на две большие группы: программные и аппаратные. Это учитывают разработчики электронных ключей. Созданные устройства имеют специальные средства защиты от всех видов возможных воздействий. Давайте подробно рассмотрим их на примере технологии Stealth, которую использует в своих продуктах компания «Актив».

Кодирование данных в памяти

Энергонезависимая память аппаратных ключей, выполненных с использованием технологии Stealth, надежно защищена от считывания информации из нее с помощью различных утилит. Но, к сожалению, эта защита абсолютно бесполезна против аппаратных «ридеров». Между тем наличие такого устройства у настоящих хакеров на сегодняшний день — не редкость. Именно поэтому вся информация в ключе хранится в закодированном виде. Таким образом, хакер, считав память устройства, получит всего лишь бессмысленный и бесполезный набор символов.

Кодирование информации происходит прямо в ключе непосредственно перед записью ее в память. Осуществляет этот процесс микроконтроллер. А это гарантирует, что никто никогда не сможет узнать алгоритм шифрования данных. Микроконтроллер представляет собой «черный ящик», абсолютно закрытый для любого доступа извне. Декодирование информации происходит непосредственно перед передачей ее на выход электронного ключа. Этим процессом также занимается микроконтроллер. Понятно, что расшифровать информацию, не зная даже принципов работы алгоритма кодирования, невозможно.

Раньше одним из излюбленных приемов хакеров было создание аппаратных копий электронных ключей. Осуществлялся этот процесс так. Все содержимое памяти оригинального ключа считывалось с помощью аппаратного или программного «ридера» и размещалось в другом подобном устройстве. Особенно часто этот прием использовался в отношении защиты программного обеспечения от пиратов. Ведь с его помощью можно было «превратить» ключ к одной, дешевой программе в ключ к другой, более дорогой. Для защиты от создания аппаратных копий устройств технология Stealth предусматривает следующее. Микроконтроллер каждого ключа кодирует информацию уникальным образом. Таким образом, информация, переписанная из одного ключа в другой, будет расшифрована неверно. Так что на выходе «копии» хакеры получат просто беспорядочный набор символов.

Аппаратная блокировка отладчиков

У современных хакеров основным «орудием труда» для взлома аппаратных ключей являются отладчики. Они позволяют изучить протокол обмена с устройством, послать ему любой запрос и получить верный ответ и т. п. Таким образом, с помощью отладчиков можно изучить логику работы аппаратного ключа и даже создать его эмулятор. Например, если блок передаваемой устройству информации небольшой, то злоумышленник может послать устройству все возможные варианты данных и составить таблицу правильных ответов, которая сможет полностью заменить ключ.

Итак, отладчики — один из главных врагов аппаратных ключей. Так что не удивительно, что технология Stealth предусматривает специальную защиту от них. Принцип работы этого механизма основывается на том факте, что использование отладчиков неизбежно увеличивает время обмена данными. Stealth-ключ анализирует временные интервалы поступления информации и автоматически распознает, в какой среде работает приславшее запрос приложение. Ну а если устройство определило, что информация ему поступает через отладчик, оно моментально «засыпает», переставая отвечать на любые запросы. «Разбудить» ключ после этого, конечно же, можно, вот только всю работу с ним придется начинать сначала. Таким образом, у хакеров не получится для изучения устройств, выполненных с использованием технологии Stealth, использовать привычные им отладчики.

Особенности протокола обмена

Одним из самых «узких» мест защиты любого аппаратного ключа является его протокол обмена данными с компьютером. Ведь ни для кого не секрет, что хакер может легко получить как входную, так и выходную информацию устройства. Кроме того, без знания протокола обмена данными невозможно создание эмулятора ключа, защищающего программное обеспечение от пиратов.

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

  • Кодированный Все данные, которым обмениваются ключ и компьютер, кодируются по специальному алгоритму.
  • Плавающий В принципе, это свойство очень похоже на предыдущее. Единственное различие между ними заключается в том, что плавающий протокол предусматривает периодическое изменение метода шифрования данных. Новый алгоритм каждый раз выбирается случайным образом из списка заранее заданных. Это очень полезная возможность. Ведь в случае продолжительного анализа информации хакер сможет выяснить основные закономерности работы алгоритма кодирования. Если же методы будут периодически меняться, исследования станут практически невозможными.
  • Зашумленный Информацию, которой ключ обменивается с компьютером, включаются специально сгенерированные, ничего не значащие данные («шум»). Это очень надежная защита. Хакер не знает, где в потоке значащая информация, а где «мусор». Кроме того, со временем меняются характер «шума» и порядок включения в него реальных данных. Таким образом, хоть сколько-нибудь результативный анализ протокола обмена информацией становится практически невозможен.
  • Самонастраивающийся Предусматривает оптимальную автоматическую настройку собственных параметров в соответствии с особенностями аппаратного и программного окружения. Это позволяет Stealth-устройствам надежно работать на любых компьютерах и не зависеть от качества параллельного порта.
  • С автоматической верификацией и автоповторами Каждая операция записи каких-либо данных в память электронного ключа сопровождается операцией верификации, которая подразумевает их проверку на адекватность. Дело в том, что некоторые другие устройства и мелкие неисправности порта компьютера могут вносить помехи в передаваемые данные. Таким образом, появляется риск того, что в память ключа будет записана ошибочная информация. А это может привести к определенным проблемам в будущем. Так что если верификация данных окажется неудачной, то будет проведен автоматический повтор выполнения операции. Все это позволяет значительно повысить надежность обмена данными компьютера со Stealth-ключом.

Подводим итоги

Технология Stealth основана на использовании аппаратных алгоритмов, настраиваемых разработчиком системы защиты. Именно то, что количество и свойства алгоритмов могут изменяться, и делает ключи Guardant защищенными от создания универсальных программных эмуляторов ключей. Эмуляторы же в настоящее время являются наиболее распространенным методом взлома систем защиты.

Существует два типа эмуляторов: универсальные, требующие лишь дампа памяти ключа, и табличные, которые создаются под конкретную версию конкретного программного продукта (в случае грамотно разработанной защиты). Разработчики уделяют особое внимание именно правильному использованию алгоритмов, ибо это является залогом того, что защита не будет сломана достаточно быстро.

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

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

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