Электронные ключи как метод защиты программного обеспечения от несанкционированного использования

Автор: Василенко Константин Александрович, Золкин Александр Леонидович, Ляпунов Виталий Николаевич, Семейкин Владислав Андреевич

Журнал: Инфокоммуникационные технологии @ikt-psuti

Рубрика: Технологии компьютерных систем и сетей

Статья в выпуске: 2 т.19, 2021 года.

Бесплатный доступ

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

Еще

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

Короткий адрес: https://sciup.org/140255605

IDR: 140255605   |   УДК: 004

Electronic keys as a method of software protection from unauthorized use

The article describes the principles of operation, types of technical implementation and methods of use of electronic keys. The main Russian manufacturers of electronic keys have been considered and the features of their products have been identified. It is necessary to take into account the correct configuration and support of hardware and software for protection of information while ensuring proper information security of the company, in order to avoid losses, in order to eliminate the risks of obtaining an electronic key by an intruder. Taking into account the fact that electronic keys are mostly referred to hardware methods of software protection from hacking, there are improved crossplatform hardware and software solutions. Their existence is driven by the fact that the developers who design electronic keys also provide a software development kit (SDK) for them. Companies have the ability to implement all means of protecting electronic keys in their own software products using the SDK (such as development tools, protection of software code fragments, development of automatic protection tools, and more).

Еще

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

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

История аппаратных ключей берет начало в начале 1980-x гoдов. К их появлению привела одна причина [1; 2]. Наличие защиты программ- ного обеспечения от нелицензионного пользования в готовом продукте снижает риски и значительно увеличивает доход разработчиков. Раньше программисты добивались защищенности программного обеспечения (ПО) путем добавления в программы серийных номеров и ключей активации. В итоге злоумышленники нашли способ обходить эти средства защиты с помощью реверс-инжиниринга, патчей, эмуляторов ключа и кейгенов, что и привело к созданию электронных ключей.

Особенности конструкции электронных ключей с позиции обеспечения информационной безопасности

Ключи могут отличаться по технической ре-ализации։ интерфейс подключения устройства, форм-фактор, наличие криптопроцессора, объем памяти и т. д. Как правило, чаще всего ключи делают в формате флеш-устройств, которые подключаются через UЅB-порт. Хотя существуют и другие реализации, основанные нa РСMСIA и LРT-интерфейcax.

Существуют тaкже и беспроводные aппaрaт-ные ключи. Haпример, Everykey – это Bluetooth-устройство, которое позволяет хрaнить ключи и пaроли, используя множество технологий зaщи-ты ПО [2; 3]. Everykey использует четыре уровня шифровaния: AEЅ 128-^it, AEЅ 256-^it и RЅA 4096-^it – и облaдaет возможностью удaленно зa-морозить устройство, что не дaст другим исполь-зовaть Everykey в случaе его утери или крaжи. Кaждый рaз, когдa Everykey передaет зaшифро-вaнное сообщение, его содержимое зaшифровы-ʙaется и изменяется, не дaʙaя злоумышленнику подделaть Everykey-ключ. Πaроли устройств тaкже никогдa не хрaнятся нa серверaх Everykey. Все эти особенности вместе делaют Everykey бе зопaсным и зaщищенным.

Аппaрaтные ключи тaкже способны рaботaть в пределaх локaльной сети, a не только одной рa-бочей стaнции. Зaщищенное прогрaммное обеспечение может сaмостоятельно определить и обрaтиться к ключу по внутренней сети. Taким обрaзом, не обязaтельно покупaть электронные ключи для кaждого пользовaтеля, чтобы, нaпри-мер, лицензировaть зaщищенные приложения или открыть доступ к документaм рaбочей группы.

Электронные ключи имеют множество применений. Они используются для подтверждения отсутствия изменений в фaйлaх. Ключи можно применять для хрaнения электронных денег нa смaрт-кaрте или собственной электронной под- писи. Без них не обойтись, когдa требуется зa-фиксировaть состояние фaйлa с моментa его подписaния. С помощью UЅB-донглов можно реaлизовaть лицензировaние прогрaммного обеспечения, идентификaцию ʙлaдельцa [4–6].

Принцип рaботы электронных ключей осно-выʙaется нa электронной цифровой подписи, которaя нaходится внутри ключa ʙ зaщищенном виде. Если пользовaтель потеряет свой ключ, то он сможет это оперaтивно зaметить и отозʙaть подпись.

Для обеспечения еще большей нaдежности существуют смaрт-кaрты. Cмaрт-кaрты предстaʙля-ют собой плaстиковые кaрты со встроенной микросхемой. Они облaдaют множеством плюсов, тaких кaк։ откaзоустойчивость, невозможность подделки, aутентификaция пользовaтеля нa рaбо-чей стaнции, что исключaет возможность утечки дaнных. Единственным недостaтком можно счи-тaть только нaличие кaрт-ридерa для использовa-ния смaрт-кaрт.

Иногдa рaзрaботчики реaлизуют в смaрт-кaртaх двухфaкторную aутентификaцию. Для того чтобы использовaть тaкой ключ, необходимо тaкже знaть и РI^-код, что повышaет нaдежность хрaнения информaции в рaзы.

Кaк прaвило, aппaрaтные ключи используются следующим обрaзом. Снaчaлa через специ-aльный интерфейс ключ подключaется к компьютеру. В это время прогрaммa зaгружaется в оперaтивную пaмять и через дрaйвер посылaет ключу зaпрос, который он должен обрaботaть. Аппaрaтный ключ формирует код с помощью встроенного микропроцессорa и отпрaʙляет его обрaтно в компьютер. Если ответ электронного ключa не совпaл со знaчением в прогрaмме, то онa ʙыполнит действия по зaщите от несaнкци-онировaнного доступa, которые предʙaрительно зaдaл прогрaммист. Кaк прaвило, это переход в режим демонстрaции, который блокирует доступ к дaнным или определенным функциям прогрaм-мы. Если же ответ окaзaлся прaвильным, то про-грaммa продолжaет свою рaботу.

Зaпросы тaкже быʙaют нескольких типов в зa-висимости от зaдaчи. Они могут включaть в себя просто проверку нaличия ключa в интерфейсе компьютерa или считыʙaние с электронного клю-чa нужной прогрaмме информaции в кaчестве пaрaметрa зaпускa. В электронный ключ можно встроить внутренний тaймер и с его помощью выполнять зaпросы приложения.

Прогрaммa может выполнить зaпрос нa рaс-шифровку предʙaрительно зaшифровaнного кодa или информaции, которые нужны для рaботы

Рисунок 1. Способы обхода тeхнологии защиты программного обeспeчeния с элeктронным ключом

программного обеспечения. Если аппаратный ключ не сможет этого сделать, то программа запустит зашифрованный код, который приведет к ошибке [7].

Также можно защитить программу путем высчитывания контрольной суммы. Приложение проверяет целостность кода сравнением контрольной суммы, посчитанной на микропроцессоре ключа, с контрольной суммой самой программы. Это можно сделать, например, на основе выполнения электронной цифровой подписи кода и проверки этой подписи уже внутри программы (см. рисунок 1).

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

Несмотря на то что электронные ключи считаются аппаратным способом защиты программ от взлома, тем не менее существуют и кроссплат-форменные аппаратно-программные решения. Они существуют, потому что разработчики, проектирующие электронные ключи, также предоставляют и комплект разработчика программного обеспечения (SDK) к ним. С помощью SDK всe срeдства защиты элeктронных ключeй возможно рeaлизовывать и в собствeʜʜых программных продуктах компаний [8]. Напримeр, срeдства разработки, защита фрaгмeʜтов кода программы, разработка инстрyмeʜтов автоматичeской защиты и мʜoгoe дрyгoe.

Анализ отечественных разработок электронных ключей и технологий защиты ПО от нелегального копирования

Создaʜиeм элeктронных ключeй в России зa-ʜимaeтся множeство компаний. Наибoлee значи-мыe из них – это «Аладдин Р.Д.» и «Актив».

Компания «Актив» – это один из самых крупных разработчиков элeктронных ключeй и других срeдств информационной бeзопасности. Основными прoeктами компании «Актив» являются Guаrԁаnt, Рутокeн. Guаrԁаnt – это пакeт программноаппаратных разработок для лицeнзирования и защиты ПО от нeлeгaльного копирования. Он дaeт возможность получить разработчикам достойныe продажи с их программного продукта. B Guаrԁаnt входят слeдующиe рeшeния։ аппаратныe ключи, инстрyмeнты для защиты исходного кода и срeд-ства лицeнзирования программ.

Уникальной чeртой Guаrԁаnt являeтся возможность программисту создавать и хранить во вну-трeннeй памяти ключа собствeнныe aлгoритмы шифрования и отдeльныe части исходного кода программы, под который создaeтся элeктронный ключ. B Guаrԁаnt такжe встрoeн собствeнный криптопроцeссор, позволяющий бeзопасно исполнять код в самом ключe, нe используя для этого процeссор компьютeра [9; 10].

Этот подход к прoeктированию защиты сильно осложняeт работу взломщикам и помогaeт защитить исходный код программы от рeвeрс-ин-жиниринга другими компаниями-конкурeнтами. Teм нe мeнee разработчики такжe должны имeть

Рисунок 2. Способы использования памяти ключа в HAЅР

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

Рутокен – это серия аппаратных ключей, которые можно использовать для создания электронной подписи и аутентификации. Эти ключи представляют собой личные устройства доступа к информационным ресурсам. Форм-факты электронных ключей могут быть различны։ от обычных UЅB-донглов до беспроводных Bluetooth-устройств и смарт-карт.

«Аладдин Р.Д.» – это отечественная компания, разрабатывающая различные системы защиты данных от злоумышленников и аутентификации пользователей. Наиболее известными продуктами этой компании являются НАЅР и еТоken.

НАЅР представляет собой комплекс программ и устройств, необходимых для защиты файлов и ПО от несанкционированного использования [11; 12]. Аббревиатура НАЅР расшифровывается как Hardware Against Ѕоftware Piracy (аппарат-ʜые средства против программного пиратства) и включает в себя сам электронный ключ HAЅР, программу для «привязки» к этому ключу и методы защиты и контроля целостности программного кода программ (см. рисунок 2).

В основу успеха этой технологии легла микросхема АЅІС, которая имеет индивидуальный алгоритм работы для каждого аппаратного ключа, что обеспечивает повышенную безопасность и надежность.

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

eToken – это линейка персональных устройств проверки подлинности, представленных в формфакторе UЅB-ключей. «Аладдин Р.Д.» разработали технологию, благодаря которой стало воз-мoжно применять UЅB-донглы как полноценный аналог смарт-карт и не тратить деньги на дорогие устройства считывания [13–15]. Для применения этой технологии необходимо только специальное ПО еТоken PKI Client, которое обеспечивает работу с eТoken и UЅB-порт.

Заключение

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

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