главная    •    Новости    •    софт    •    RSS-ленты    •    реклама    •    PDA-Версия    •    Контакты
Windows XP     •    Windows 7    •    Windows 8    •    Windows 10   •    Windows Server     •    Железо
Полезные советы      •     Администрирование      •     Сеть      •     Безопасность      •     статьи
Реклама на сайте
Книга жалоб и предложений
Правила на сайте
О Winblog.ru и о копирайте
Написать в редакцию
Конфиденциальность
                       
  • Настольные Windows-программы будут работать на смартфонах
  • Windows 10 Insider Preview: вышла сборка 14986
  • Windows 10 Creators Update сделают безопаснее для организаций
  • В Windows 10 будет поддержка шрифта Брайля
  • Сегодня сложно найти разработчика популярного программного обеспечения (ПО), который бы не сталкивался с пиратством по отношению к собственным коммерческим программным продуктам, даже если они защищены современными электронными ключами, - ведь для профессиональных взломщиков не составляет большого труда создать программную эмуляцию работы подобных ключей.

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

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

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

    С точки зрения разработчика программ, процесс защиты в данном случае делится на следующие этапы:

    1. Анализ разрабатываемой программы и выделение таких функциональных блоков, без которых корректное выполнение программы будет невозможно (рис. 1).

    Электронные ключи защиты. Всё новое - это хорошо забытое старое
    рисунок 1.


    В данном (крайне упрощенном!) случае, для выноса в ключ выделяется функция calculation().

    Электронные ключи защиты. Всё новое - это хорошо забытое старое
    рисунок 2.


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

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

    4. Последний шаг - замена выделенных блоков на функции вызова электронного ключа с соответствующими параметрами.

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

    Выноситься в ключ может не одна функция - их количество и размер ограничиваются лишь фантазией разработчика, а также объемом доступной памяти устройства.

    Общая техническая схема электронных ключей с возможностью выполнения кода (рис. 3).

    Электронные ключи защиты. Всё новое - это хорошо забытое старое
    рисунок 3.


    - Интерфейс связи - обеспечивает информационный обмен электронного ключа с любым устройством, к которому он может быть подключен;

    - Процессор - реализует функцию выполнения кода, хранящегося в энергонезависимой памяти ключа;

    - ОЗУ - оперативное запоминающее устройство, предназначено для хранения переменных, стэка, организации буферов обмена данными;

    - Энергонезависимая память - предназначена для хранения программного кода и данных, которые необходимо скрыть от злоумышленника;

    - Часы реального времени - служат для предоставления дополнительных функций электронного ключа, таких как создание временных лицензий;

    - Элемент питания - батарейка, обеспечивающая непрерывную работу часов реального времени.

    В зависимости от модификаций устройства и используемой элементной базы, реальная схема может несколько отличаться от приведенной. Например, могут отсутствовать часы реального времени, присутствовать дополнительный интерфейс программирования или отладки, различные типы энергонезависимой памяти, RFID-метки, светодиодные индикаторы, некоторые модули могут быть объединены в один (процессор + ОЗУ + ПЗУ). Также могут быть использованы специальные средства защиты тех или иных модулей ключа и шин обмена данными.

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

    Электронные ключи можно разделить на 3 вида по типу используемых микроконтроллеров:

    1. Микроконтроллеры известных производителей. Подобные решения не обеспечивают программному продукту высокой степени защищенности ввиду широкой их распространенности и пристального изучения в лабораториях на предмет наличия тех или иных уязвимостей. Стоимость взлома подобных микроконтроллеров колеблется в пределах $500-5000.

    2. Заказные микроконтроллеры, в том числе программируемые логические матрицы и т.п. Эти устройства обеспечивают более высокую защищенность, так как в случае взлома данного типа кристалла необходимо предварительно понять его топологию. Стоимость взлома микроконтроллеров обойдется заказчику в $5-20 тыс.

    3. Микроконтроллеры, выполненные по технологии смарт-карт. Данный тип микроконтроллеров изначально был предназначен исключительно для защиты содержащихся в нем кода и данных. Они содержат максимальное количество механизмов, обеспечивающих защиту, таких как датчики света, системы шифрования шин информационного обмена, системы самодиагностики целостности топологии кристалла и т.п. Обычно стоимость взлома смарт-карт начинается от $50 тыс., и лаборатории не гарантируют успешного результата.

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

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

    Источник: comprice.ru
    Алексей Смирнов


    Оцените статью:
    Голосов 3

    Материалы по теме:
  • USB-накопитель Tornado Plus с функцией шифрования данных
  • Управление ключами шифрования (Encryption Key Management)
  • Стандарт безопасности WEP можно взломать за минуту.
  • Обнаружен способ подбора активационного ключа для Windows Vista
  • Новый способ защиты WindowsXP - Rohos Приветствие 1.7


    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

    Для отправки комментария, обязательно ответьте на вопрос

    Вопрос:
    Сколько будет восемь плюс четыре?
    Ответ:*




    ВЕРСИЯ ДЛЯ PDA      СДЕЛАТЬ СТАРТОВОЙ    НАПИШИТЕ НАМ    РЕКЛАМА

    Copyright © 2006-2016 Winblog.ru All rights reserved.
    Права на статьи принадлежат их авторам. Копирование и использование материалов разрешается только в случае указания явной гиперссылки на веб-сайт winblog.ru, как на источник получения информации.
    Сайт для посетителей возрастом 18+