Электронные ключи как метод защиты программного обеспечения от несанкционированного использования
Автор: Василенко Константин Александрович, Золкин Александр Леонидович, Ляпунов Виталий Николаевич, Семейкин Владислав Андреевич
Журнал: Инфокоммуникационные технологии @ikt-psuti
Рубрика: Технологии компьютерных систем и сетей
Статья в выпуске: 2 т.19, 2021 года.
Бесплатный доступ
В статье описываются принципы работы, виды технической реализации и способы применения электронных ключей. Также были рассмотрены основные российские производители электронных ключей, и выявлены особенности их продуктов. При обеспечении должным образом информационной безопасности компании необходимо учитывать правильную настройку и поддержку аппаратных и программных средств защиты информации во избежание убытков, с целью ликвидации рисков получения электронного ключа злоумышленником. Учитывая, что электронные ключи чаще всего относят к аппаратным способам защиты программ от взлома, при этом имеются улучшенные кроссплатформенные аппаратно-программные решения. Их существование обусловлено тем, что разработчики, проектирующие электронные ключи, также предоставляют и комплект разработчика программного обеспечения (SDK) к ним. Компании в своих собственных программных продуктах имеют возможность реализации с помощью SDK всех средств защиты электронных ключей, таких как средства разработки, защита фрагментов кода программы, разработка инструментов автоматической защиты и многое другое.
Электронные ключи, смарт-карты, методы защиты информации, программное обеспечение, несанкционированный доступ, злоумышленник, сервер, зашифрованный код, ключи активации, идентификация
Короткий адрес: https://sciup.org/140255605
IDR: 140255605
Текст научной статьи Электронные ключи как метод защиты программного обеспечения от несанкционированного использования
Защита программного обеспечения и электронных документов с использованием электронных ключей существует уже много лет, и она до сих пор показывает свою эффективность. Электронный ключ (аппаратный ключ, донгл) – это аппаратное средство, в основе которой лежит специальная микросхема, защищающая программное обеспечение и документы от незаконного копирования, использования и распространения третьими лицами.
История аппаратных ключей берет начало в начале 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 выполнен в крепком корпусе, который защищает его от механических повреждений и воды.
Аппаратно-программные средства защиты информации необходимо не просто приобретать, но и правильно настраивать и поддерживать. В противном случае если электронный ключ, который хранит в себе все пароли пользователя, получит злоумышленник, то ему достаточно будет подобрать всего один пароль, чтобы получить полный доступ к этому ключу. Это приведет к огромным убыткам компании, и это надо иметь в виду при проектировании систем защиты с использованием электронных ключей.