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

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

 

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

Известны различные используемые на практике способы защиты ПО от несанкционированного использования и распространения:

- парольная защита, основанная на использовании паролей (активационных кодов) в большей части продаваемого и широко используемого в настоящее время ПО, например, в программах Adobe Illustrator x.x фирмы Adobe Systems Inc. [1], SCO Open Server x.x фирмы Santa Cruz Operation Ltd., [2] и другом ПО;

- защита ПО с помощью ключевых носителей, в качестве которых пользуются, например, магнитные карты компании OMRON Electronics Ltd. [FARNELL Electronics components catalogue 1997/1998, р.995], магнитные носители с дефектами [3], интеллектуальные электронные ключи на базе процессоров и микросхем памяти (электронные идентификаторы Touch-Memory [4], электронные ключи HASP фирмы Aladdin Knowledge Systems Ltd [5]);

- защита ПО, основанная на взаимодействии пользователя ПО с поставщиком ПО и обмене регистрационными данными [5].

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

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

Для выявления паролей (активационных кодов) ПО также может быть подвергнуто анализу с помощью программ-дизассемблеров типа IDA [6] (статические методы анализа) и программ-отладчиков типа SoftICE [7] (динамические методы анализа) пользователями средней и высокой квалификации для выявления "ноу-хау" и/или информации, не подлежащей разглашению, а также для обнаружения и исключения из ПО областей проверки пароля или активационного кода для последующего несанкционированного использования и/или распространения ПО без применения пароля или активационного кода.

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

Более устойчивой к действиям несанкционированных пользователей является защита ПО с помощью ключевых носителей.

При распространении и/или использовании ПО по данному способу необходимо наличие ключевого носителя (магнитной карты) [3], электронного идентификатора Touch-Memory [4], взаимодействующего с ПО с использованием аппаратных средств, например, считывателей магнитных карт, считывателей электронных идентификаторов Touch-Memory, портов ввода-вывода вычислительных машин.

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

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

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

Применение ключевых носителей с уникальными кодами обеспечивает защиту от несанкционированного использования функциональных возможностей и/или распространения ПО зарегистрированными и незарегистрированными пользователями низкой и средней квалификации, поскольку данная защита является недостаточной от исследования ПО такими методами, как анализ ПО с помощью программ-отладчиков, анализ ПО с помощью аппаратных эмуляторов вычислительной среды, анализ протоколов взаимодействия ПО с ключевыми носителями с применением измерительной аппаратуры, например, логических анализаторов типа HP 54620A, HP 54620C, HP 1664A фирмы Hewlett Packard [7].

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

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

Даже при том, что контроль распространения программного обеспечения производится постоянно, при каждом копировании ПО, а не однократно, как при парольной защите, данный способ не обеспечивает защиту от программ статического и динамического исследования, поскольку информация при вводе регистрационных данных и взаимодействии с поставщиком программного обеспечения попадает в средства информационного обмена и в память ЭВПУ, откуда может быть скопирована и использована несанкционированными пользователями.

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

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

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

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

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

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

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

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

Все это существенно усложняет ПО, значительно снижает быстродействие и надежность функционирования ПО.

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

Это означает, что при помощи известных программ-дизассемблеров и программ-отладчиков [6, 7, 9] квалифицированный пользователь ПО имеет возможность заблокировать функции проверок известных защит или собрать недостающие фрагменты кода программы, а затем создать, использовать и распространять электронные копии этого главного кода и тогда раскрытая защита ПО уже не будет функционировать.

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

ЦЕЛЬ И ТЕХНИЧЕСКИЙ РЕЗУЛЬТАТ

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

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ.

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

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

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

Кроме этого, средство защиты ПО выполнено в виде внешнего или внутреннего программно-аппаратного модуля или платы с программируемой микросхемой, программируемым контроллером или программируемой логической матрицей, а интерфейс информационного обмена с ЭВПУ или программируемым устройством выполнен виде интерфейса USB, PCI, RS-232, СОМ, LPT, Etertet, Blue Tuth или IRDA.

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

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

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

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

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

ОПИСАНИЕ ЧЕРТЕЖЕЙ.

Сущность изобретения поясняется чертежами.

На фиг.1 изображена функциональная блок-схема программно-аппаратного средства защиты ПО.

На фиг.2 приведено изображение логической структуры защиты ПО при использовании программно-аппаратного средства защиты ПО.

На фиг.3 представлен алгоритм функционирования защищенного ПО.

На фиг.4 показан внешний вид программно-аппаратного средства защиты ПО в виде программно-аппаратного модуля, подключаемого к порту USB ЭВПУ.

Программно-аппаратное средство защиты ПО по изобретению содержит (фиг.1) соединенные средствами информационного обмена интерфейс связи с ЭВПУ 1, оперативное запоминающее устройство 2, процессор или процессорное ядро 3 (далее -«процессор 3»), устройство индикации 4, средство защиты энергонезависимой памяти 5 (далее - «средство защиты 5»), энергонезависимую память 6 в виде постоянного запоминающего устройства (далее - «ПЗУ 6») и интерфейс программирования 7.

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

Интерфейс связи с ЭВПУ 1 обеспечивает реализацию функции двунаправленной передачи информационных данных между ЭВПУ и процессором 3 и может использоваться также для загрузки программного кода и информационных данных в ПЗУ 6 с последующей установкой или активацией средство защиты 5 для запрета воспроизведения, считывания, копирования, исследования или модифицирования сохраняемых в ПЗУ 6 функционального фрагмента ПО и информации в ПЗУ 6.

Интерфейс связи с ЭВПУ 1 допускает объединение с интерфейсом программирования 7 и может использоваться для загрузки программного кода и данных в ПЗУ 6 с последующей установкой или активацией запрета на чтение, копирование или модифицирование информации в ПЗУ 6.

Оперативное запоминающее устройство 2 предназначено для реализации функции хранения переменных, стека, организации буферов обмена данными и другой информации, необходимой для функционирования процессора 3, устройства индикации 4, средства защиты 5, ПЗУ 6 и интерфейса программирования 7.

Процессор или процессорное ядро 3 предназначен для реализации функции выполнения кода функционального фрагмента ПО, хранящегося в ПЗУ 6.

Устройство индикации 4 предназначено для реализации функции отображения информации, если это необходимо.

Средство защиты 5 обеспечивает защиту от воспроизведения, считывания, копирования, исследования или модифицирования сохраняемых в ПЗУ 6 функционального фрагмента ПО и хранящейся в ПЗУ 6 информации, однако изготовлено с возможностью выполнения программного кода функционального фрагмента ПО процессором 3, например [8], [9], [11].

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

Интерфейс программирования 7 предназначен для первоначального программирования ПЗУ 6, а также может использоваться разработчиком для загрузки программного кода функционального фрагмента ПО, программ и информационных данных в ПЗУ 6 с последующей активацией средства защиты 5 или при необходимости стирания или уничтожения информации из ПЗУ без возможности ее восстановления. Данный интерфейс аппаратно допускает объединение с интерфейсом связи с ЭВПУ 1.

На фиг.2 показана логическая структура, получаемая при использовании программно-аппаратного средства защиты ПО и установке защиты на ПО способом по изобретению.

Модули 8 и 11 являются непосредственно функциональными составляющими элементами защищаемого ПО.

Модуль 9 выполняет функции передачи данных в процессор 3 и обратно в ЭВПУ.

Модули 10 и 12 обеспечивают функции работы интерфейса связи с ЭВПУ 1.

Фиг.3 иллюстрирует пример функционального процесса работы защищенного ПО.

Как показано на фиг.3, процессор ЭВПУ производит выполнение части ПО и программ, находящейся в памяти ЭВПУ.

Скрытые в ПЗУ 6 функциональный фрагмент ПО и программы не являются доступными процессору ЭВПУ. Вместо их функционального выполнения внутри ЭВПУ происходит передача через интерфейс связи с ЭВПУ 1 всех необходимых для их функционального выполнения исходных данных в процессор 3 программно-аппаратного средства защиты ПО.

После приема исходных данных процессор 3 программно-аппаратного средства защиты ПО сам выполняет скрытые в ПЗУ 6 функциональный фрагмент ПО и программы, после чего результаты выполнения посредством интерфейса связи с ЭВПУ 1 передаются обратно в ЭВПУ, где продолжается выполнение ПО и программ в ЭВПУ.

При этом может быть задействован как один скрытый в ПЗУ 6 функциональный фрагмент ПО или одна программа, так и, в случае необходимости, несколько.

Таким образом, скрытые в ПЗУ 6 функциональный фрагмент защищенного ПО или программы могут быть выполнены только процессором 3 программно-аппаратного средства защиты ПО, но никогда не могут быть прочтены или скопированы из его энергонезависимой памяти при использовании ПО.

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

ОСУЩЕСТВЛЕНИЕ И ПРОМЫШЛЕННАЯ РЕАЛИЗАЦИЯ ИЗОБРЕТЕНИЯ.

В отличие от известных способов защиты ПО, подразумевающих хранение отдельных фрагментов (программных модулей, паролей, активационных кодов) в памяти подключаемых устройств, способ по изобретению характерен тем, что функциональный фрагмент ПО или программы, записанные в ПЗУ 6, не могут быть прочитаны оттуда либо из линий информационного обмена и, как следствие, не могут быть скопированы в память ЭВПУ на какой-либо носитель информации и несанкционированно использованы.

Скрытые в ПЗУ 6 программно-аппаратного средства защиты ПО функциональный фрагмент ПО или программы являются непосредственно рабочими программами процессора 3 программно-аппаратного средства защиты ПО, но они не доступны ЭВПУ и другим устройствам.

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

Использование программно-аппаратного средства защиты ПО, установку и активацию средства защиты ПО в процессе реализации способа по изобретению осуществляют следующим образом.

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

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

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

Затем программно-аппаратное средство защиты ПО посредством интерфейса связи с ЭВПУ 1 или интерфейса программирования 7 подключают к ЭВПУ или другому устройству для программирования.

Полученные после трансляции программные модули функционального фрагмента ПО или программ загружают в ПЗУ 6 программно-аппаратного средства защиты ПО и в дальнейшем они будут являться скрытыми для пользователей ПО, расположенными и функционирующими непосредственно в программно-аппаратном средстве защиты ПО при функционировании процессора или процессорного ядра 3 программно-аппаратного средства защиты ПО.

После загрузки функционального фрагмента ПО или программ в ПЗУ 6 программно-аппаратного средства защиты ПО осуществляют традиционный процесс отладки ПО, где должны быть исправлены все выявленные ошибки.

Если в процессе отладки ПО выявляются какие-либо ошибки в скрытом функциональном фрагменте ПО или программах, находящихся в ПЗУ 6 программно-аппаратного средства защиты ПО, то после исправления ошибок и повторной трансляции скрытых функционального фрагмента ПО и программ производят их повторную загрузку в ПЗУ 6 программно-аппаратного средства защиты ПО.

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

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

Для работы с защищенным таким образом ПО кроме обычной копии ПО на обычном носителе информации необходимо наличие программно-аппаратного средства защиты ПО, например, в виде программно-аппаратного модуля, изображенного на Фиг.4.

До запуска защищенного ПО программно-аппаратное средства защиты ПО должно быть подключено к ЭВПУ, иначе ПО выдаст сообщение об отсутствии программно-аппаратного средства защиты ПО и откажется продолжать работу.

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

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

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

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

Достижение технического результата обеспечивается тем, что недоступная функционально значимая часть ПО физически отсутствует на открытом для пользователя носителе информации при распространении, установке и использовании ПО, всегда является недоступной для ЭВПУ и пользователя, не может быть выполнена процессором ЭВПУ, не может быть считана в память ЭВПУ и средства информационного обмена с ЭВПУ, а также не может быть скопирована на какой-либо носитель информации или каким-либо образом модифицирована, даже с применением каких-либо специальных средств или специальных программ.

Данная функционально значимая часть ПО будет постоянно хранится в памяти ПЗУ 6 программно-аппаратного средства защиты ПО, которое в процессе функционирования процессора 3 выполняет функции дополнительного процессора.

Недоступная функционально значимая часть ПО выполняется непосредственно внутри программно-аппаратного средства защиты ПО при получении всех необходимых исходных данных от ЭВПУ, а в ЭВПУ передаются только результаты выполнения скрытой функционально значимой части ПО в процессе функционирования процессора 3 программно-аппаратного средства защиты ПО.

При распространении лицензионного ПО к каждой его копии должно прилагаться такое программно-аппаратное средство защиты ПО в виде программно-аппаратного модуля (фиг.4) или в ином виде, например в виде устанавливаемой внутрь ЭВПУ платы.

В энергонезависимую память ПЗУ 6 программно-аппаратного средства защиты ПО помещают функционально значимую часть ПО, активируют средство защиты ПЗУ 5 от считывания, копирования и модифицирования, после чего скрытая часть ПО может выполняться процессором 3 программно-аппаратного средства защиты ПО, но никогда не может быть прочитана или скопирована оттуда никаким образом без ее физического искажения или уничтожения.

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

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

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

Аппаратно программно-аппаратное средство защиты ПО от несанкционированного использования (дополнительный процессор), копирования, распространения и исследования может выполняться, например, на базе микросхем с программируемой энергонезависимой памятью, имеющих механизм защиты записанной в них информации от чтения, например, на базе микросхем типа C8051F320/1 производства Silicon Laboratories с процессорным ядром, программируемой Flash-памятью и аппаратным средством запрета воспроизведения, чтения, копирования или модифицирования сохраняемых в ней программ или информации.

В качестве таких средств могут быть использованы микросхемы, контроллеры, программируемые логические матрицы, цифровые сигнальные процессоры.

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

В качестве интерфейсов связи и программирования могут использоваться любые существующие интерфейсы, например, USB, PCI, RS-232, СОМ, LPT, Etertet, Blue Tuth, IRDA или другие, а также допускается разработка новых интерфейсов, в том числе специализированных для функций защиты информации.

Конструктивно дополнительный процессор может выполняться в виде внешнего подключаемого устройства, однако допускается исполнение для установки внутрь ЭВПУ с подключением к системной шине.

Также возможен вариант установки дополнительного процессора на плату с центральным процессором ЭВПУ для обеспечения при необходимости защиты системного программного обеспечения (BIOS).

ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ И

СООТВЕТСТВИЕ КРИТЕРИЯМ ОХРАНОСПОСОБНОСТИ.

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

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

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

Источники информации

1. http://www.adobe.com

2. http://www.sco.com

3. Патент РФ №2109331, МКИ: G 06 F 12/14, 1998.

4. DALLAS SEMICONDUCTOR Product Data Book 1992-1993.

5. http://www.aladdin.ru

6. http://www.datarescue.com/ida.htm

7. http:/www.numega.com/products/sys/sys.htm

8. http://www.atmel.com/dyn/resources/prod documents/doc2486. pdf стр.222

9. http://www.atmel.com/dyn/resources/prod documents/doc2467. pdf стр.289

10. Патент США №5199066, МКИ: Н 04 L 9/00, 1993.

11. http://www.fek.by/doc/magazine/2005/10-05-1.pdf стр.21 журнала

12. Патент RU 2159953 G 06 F 12/00, G 06 F 12/14, дата публикации: 27.11.2000 (прототип).

1. Средство защиты программного обеспечения (ПО) электронно-вычислительного программируемого устройства (ЭВПУ) от несанкционированного использования,

отличающееся тем, что выполнено в виде программно-аппаратного средства,

содержащего соединенные средствами информационного обмена

интерфейс информационного обмена с ЭВПУ,

процессор или процессорное ядро,

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

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

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

2. Средство по п.1, отличающееся тем, что

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

3. Средство по п.1, отличающееся тем, что

содержит программируемую энергонезависимую память.

4. Средство по п.1, отличающееся тем, что

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

5. Средство по п.1, отличающееся тем, что

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

6. Средство по п.1, отличающееся тем, что

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

7. Средство по п.1, отличающееся тем, что энергонезависимая память выполнена в виде программируемой Flash-памяти.

8. Средство по п.1, отличающееся тем, что

выполнено в виде внешнего или внутреннего программно-аппаратного модуля или платы с программируемой микросхемой, программируемым контроллером или программируемой логической матрицей.

9. Способ защиты программного обеспечения (ПО) электронно-вычислительного программируемого устройства (ЭВПУ) от несанкционированного использования, отличающийся тем, что

из защищаемого ПО или программы изымают по крайней мере один функциональный фрагмент ПО, без которого защищаемое ПО или программа не сможет выполняться в ЭВПУ или выполнение приведет к некорректным результатам,

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

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

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

10. Способ по п.9, отличающийся тем, что

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

11. Способ по п.9, отличающийся тем, что

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

12. Способ по п.9, отличающийся тем, что

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

13. Способ по п.9, отличающийся тем, что

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

14. Способ по любому из пп.9 и 13, отличающийся тем, что в качестве программно-аппаратного средства защиты ПО используют программно-аппаратное средство защиты ПО электронно-вычислительных или программируемых устройств от несанкционированного использования по любому из пп.1-9.

15. Способ по п.9, отличающийся тем, что

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



 

Похожие патенты:

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

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

Изобретение относится к системе обработки информации, которая защищена от разрушения вирусной программой или хакером. .

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

Изобретение относится к области электросвязи. .

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

Изобретение относится к области автоматики и вычислительной техники, в частности к средствам идентификации при предоставлении доступа к автономным ресурсам

Изобретение относится к области защиты информации

Изобретение относится к области электросвязи и может быть использовано для поиска информации и оперативной идентификации стека коммуникационных протоколов TCP/IP, применяемого в цифровых системах связи, в частности в сети передачи данных типа "Internet"

Изобретение относится к области способов и устройств для обеспечения защиты информации и может быть использовано для защиты вычислительных сетей от несанкционированного проникновения и доступа к конфиденциальной информации

Изобретение относится к области вычислительной техники, а именно к информационным вычислительным системам и сетям

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

Изобретение относится к устройству, программе и способу обработки лицензии

Изобретение относится к вычислительным системам и системам обработки информации

Изобретение относится к устройству и способу управления воспроизведением содержания
Наверх