RU2296363C1 - Способ и средство защиты программного обеспечения от несанкционированного использования - Google Patents
Способ и средство защиты программного обеспечения от несанкционированного использования Download PDFInfo
- Publication number
- RU2296363C1 RU2296363C1 RU2006114101/09A RU2006114101A RU2296363C1 RU 2296363 C1 RU2296363 C1 RU 2296363C1 RU 2006114101/09 A RU2006114101/09 A RU 2006114101/09A RU 2006114101 A RU2006114101 A RU 2006114101A RU 2296363 C1 RU2296363 C1 RU 2296363C1
- Authority
- RU
- Russia
- Prior art keywords
- software
- hardware
- programs
- processor
- protection
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000004224 protection Effects 0.000 claims abstract description 125
- 239000012634 fragment Substances 0.000 claims abstract description 52
- 238000012986 modification Methods 0.000 claims abstract description 10
- 230000004048 modification Effects 0.000 claims abstract description 10
- 238000011160 research Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 9
- 239000000872 buffer Substances 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 2
- 239000011814 protection agent Substances 0.000 claims description 2
- 238000009826 distribution Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000004913 activation Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 6
- 238000009434 installation Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012797 qualification Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 102000010410 Nogo Proteins Human genes 0.000 description 1
- 108010077641 Nogo Proteins Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
Abstract
Изобретение относится к вычислительной технике и может быть использовано для защиты программного обеспечения (ПО) электронно-вычислительных программируемых устройств (ЭВПУ) от несанкционированного использования, копирования, модификации, распространения и исследования. Техническим результатом является повышение уровня указанной защиты, надежности и эффективности функционирования ПО ЭВПУ. Средство защиты ПО ЭВПУ от несанкционированного использования выполнено в виде программно-аппаратного средства, содержащего соединенные средствами информационного обмена интерфейс информационного обмена с ЭВПУ, процессор или процессорное ядро, энергонезависимую память, выполненную с возможностью записи и скрытого хранения в энергонезависимой памяти по крайней мере одного функционального фрагмента ПО или программ и их последующего выполнения в процессе функционирования процессора или процессорного ядра, и программное, аппаратное или программно-аппаратное средство защиты от воспроизведения, считывания, копирования, исследования или модифицирования сохраняемых в энергонезависимой памяти функциональных фрагментов ПО, программ и информации. Способ описывает работу указанного средства защиты. 2 н. и 13 з.п. ф-лы, 4 ил.
Description
ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к вычислительной технике и может быть использовано разработчиками или легальными распространителями программного обеспечения (далее - «ПО») для защиты ПО электронно-вычислительных машин, контроллеров и других программируемых устройств (далее - «ЭВПУ») от несанкционированного использования, воспроизведения, копирования, модификации, распространения и исследования.
УРОВЕНЬ ТЕХНИКИ
Известны различные используемые на практике способы защиты ПО от несанкционированного использования и распространения:
- парольная защита, основанная на использовании паролей (активационных кодов) в большей части продаваемого и широко используемого в настоящее время ПО, например, в программах 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 (прототип).
Claims (15)
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, отличающийся тем, что
после размещения функционального фрагмента ПО или программ в энергонезависимой памяти программно-аппаратного средства защиты ПО осуществляют отладку ПО и устраняют выявленные ошибки в ПО, а затем устанавливают или активизируют программно-аппаратное средство защиты от воспроизведения, считывания, копирования или модифицирования сохраняемых в энергонезависимой памяти программно-аппаратного средства защиты ПО функционального фрагмента ПО, программ и информации.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006114101/09A RU2296363C1 (ru) | 2006-04-27 | 2006-04-27 | Способ и средство защиты программного обеспечения от несанкционированного использования |
EA200802108A EA012921B1 (ru) | 2006-04-27 | 2007-04-26 | Способ и устройство защиты программного обеспечения от несанкционированного использования |
PCT/RU2007/000219 WO2007126341A2 (en) | 2006-04-27 | 2007-04-26 | Method and device for protecting software from unauthorized use |
EP07747921A EP2082352A2 (en) | 2006-04-27 | 2007-04-26 | Method and device for protecting software from unauthorized use |
US12/258,684 US20090094601A1 (en) | 2006-04-27 | 2008-10-27 | Method and device for protecting software from unauthorized use |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2006114101/09A RU2296363C1 (ru) | 2006-04-27 | 2006-04-27 | Способ и средство защиты программного обеспечения от несанкционированного использования |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2296363C1 true RU2296363C1 (ru) | 2007-03-27 |
Family
ID=37999272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2006114101/09A RU2296363C1 (ru) | 2006-04-27 | 2006-04-27 | Способ и средство защиты программного обеспечения от несанкционированного использования |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090094601A1 (ru) |
EP (1) | EP2082352A2 (ru) |
EA (1) | EA012921B1 (ru) |
RU (1) | RU2296363C1 (ru) |
WO (1) | WO2007126341A2 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2527758C2 (ru) * | 2012-10-22 | 2014-09-10 | Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации | Способ скрытного хранения конфиденциальных данных в защищенной энергонезависимой памяти и устройство для его реализации |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8800048B2 (en) | 2008-05-20 | 2014-08-05 | Microsoft Corporation | Software protection through interdependent parameter cloud constrained software execution |
US8407523B2 (en) * | 2008-06-06 | 2013-03-26 | Iti Scotland Limited | Method for protecting software programs |
US20100186095A1 (en) * | 2009-01-20 | 2010-07-22 | Microsoft Corporation | Method and system for gap based anti-piracy |
DE102009055247A1 (de) * | 2009-12-23 | 2011-06-30 | Endress + Hauser Conducta Gesellschaft für Mess- und Regeltechnik mbH + Co. KG, 70839 | Anordnung mit einer übergeordneten Steuereinheit und zumindest einem mit der Steuereinheit verbindbaren intelligenten Feldgerät |
US9110690B2 (en) * | 2010-04-28 | 2015-08-18 | General Electric Company | Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers |
US8689349B2 (en) * | 2010-05-05 | 2014-04-01 | Intel Corporation | Information flow tracking and protection |
TWI420339B (zh) | 2010-11-10 | 2013-12-21 | Ind Tech Res Inst | 軟體授權系統及方法 |
EP3518128B1 (en) * | 2011-03-30 | 2021-04-28 | Irdeto B.V. | Enabling a software application to be executed on a hardware device |
JP6402034B2 (ja) | 2011-09-13 | 2018-10-10 | フェイスブック,インク. | コンピュータ内の情報を安全に保つシステム及び方法 |
WO2014145597A2 (en) * | 2013-03-15 | 2014-09-18 | Vigor Systems Inc. | Systems and methods for identifying electronic equipment among a plurality of electronic equipment in an environment |
US9477603B2 (en) | 2013-09-05 | 2016-10-25 | Facebook, Inc. | System and method for partitioning of memory units into non-conflicting sets |
US9983894B2 (en) | 2013-09-25 | 2018-05-29 | Facebook, Inc. | Method and system for providing secure system execution on hardware supporting secure application execution |
US10049048B1 (en) | 2013-10-01 | 2018-08-14 | Facebook, Inc. | Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor |
US9747450B2 (en) | 2014-02-10 | 2017-08-29 | Facebook, Inc. | Attestation using a combined measurement and its constituent measurements |
US9734092B2 (en) * | 2014-03-19 | 2017-08-15 | Facebook, Inc. | Secure support for I/O in software cryptoprocessor |
US9740837B2 (en) * | 2014-08-06 | 2017-08-22 | Infineon Technologies Ag | Apparatus and method for preventing cloning of code |
US10095849B1 (en) * | 2014-09-19 | 2018-10-09 | Amazon Technologies, Inc. | Tag-based programming interface authentication |
CN105303073B (zh) * | 2015-11-26 | 2018-07-06 | 北京深思数盾科技股份有限公司 | 软件代码保护方法 |
CN112528238A (zh) | 2019-09-17 | 2021-03-19 | 赛孚耐信息技术有限公司 | 用于控制应用的执行的方法 |
US11409843B2 (en) * | 2019-10-10 | 2022-08-09 | Nxp B.V. | Method for protecting a software program from copying |
CN111415734A (zh) * | 2020-03-20 | 2020-07-14 | 四川南格尔生物科技有限公司 | 一种有源医疗器械的使用期限管理方法 |
CN112528236B (zh) * | 2020-12-18 | 2022-03-11 | 深圳竹云科技有限公司 | 基于虚拟机的应用软件授权方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4267538A (en) * | 1979-12-03 | 1981-05-12 | Communications Satellite Corporation | Resistively matched microwave PIN diode switch |
US4719369A (en) * | 1985-08-14 | 1988-01-12 | Hitachi, Ltd. | Output circuit having transistor monitor for matching output impedance to load impedance |
US5635761A (en) * | 1994-12-14 | 1997-06-03 | International Business Machines, Inc. | Internal resistor termination in multi-chip module environments |
US5578939A (en) * | 1995-01-23 | 1996-11-26 | Beers; Gregory E. | Bidirectional transmission line driver/receiver |
US5602494A (en) * | 1995-03-09 | 1997-02-11 | Honeywell Inc. | Bi-directional programmable I/O cell |
US5578940A (en) * | 1995-04-04 | 1996-11-26 | Rambus, Inc. | Modular bus with single or double parallel termination |
NO302388B1 (no) * | 1995-07-13 | 1998-02-23 | Sigurd Sigbjoernsen | Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse |
US5604450A (en) * | 1995-07-27 | 1997-02-18 | Intel Corporation | High speed bidirectional signaling scheme |
US6026456A (en) * | 1995-12-15 | 2000-02-15 | Intel Corporation | System utilizing distributed on-chip termination |
JP4052697B2 (ja) * | 1996-10-09 | 2008-02-27 | 富士通株式会社 | 信号伝送システム、および、該信号伝送システムのレシーバ回路 |
US5708400A (en) * | 1996-10-30 | 1998-01-13 | Hewlett-Packard Company | AC coupled termination of a printed circuit board power plane in its characteristic impedance |
US5808576A (en) * | 1997-02-24 | 1998-09-15 | Texas Instruments Incorporated | Resistor string digital-to-analog converter |
US6060907A (en) * | 1997-06-25 | 2000-05-09 | Sun Microsystems, Inc. | Impedance control circuit |
US5990701A (en) * | 1997-06-25 | 1999-11-23 | Sun Microsystems, Inc. | Method of broadly distributing termination for buses using switched terminators |
US5982191A (en) * | 1997-06-25 | 1999-11-09 | Sun Microsystems, Inc. | Broadly distributed termination for buses using switched terminator logic |
US5955894A (en) * | 1997-06-25 | 1999-09-21 | Sun Microsystems, Inc. | Method for controlling the impedance of a driver circuit |
US6323673B1 (en) * | 1997-06-25 | 2001-11-27 | Sun Microsystems, Inc. | Apparatus for dynamic termination logic signaling |
US6232792B1 (en) * | 1997-06-25 | 2001-05-15 | Sun Microsystems, Inc. | Terminating transmission lines using on-chip terminator circuitry |
US6127840A (en) * | 1998-03-17 | 2000-10-03 | International Business Machines Corporation | Dynamic line termination clamping circuit |
US6118310A (en) * | 1998-11-04 | 2000-09-12 | Agilent Technologies | Digitally controlled output driver and method for impedance matching |
US6222389B1 (en) * | 1999-03-25 | 2001-04-24 | International Business Machines Corporation | Assisted gunning transceiver logic (AGTL) bus driver |
EP1276033B1 (de) * | 2001-07-10 | 2012-03-14 | Trident Microsystems (Far East) Ltd. | Speichereinrichtung mit Datenschutz in einem Prozessor |
AR042599A1 (es) * | 2002-11-19 | 2005-06-29 | Schiavoni Juan Jose | Metodo de proteccion de programas y equipo para realizarlo |
-
2006
- 2006-04-27 RU RU2006114101/09A patent/RU2296363C1/ru not_active IP Right Cessation
-
2007
- 2007-04-26 WO PCT/RU2007/000219 patent/WO2007126341A2/en active Application Filing
- 2007-04-26 EP EP07747921A patent/EP2082352A2/en not_active Withdrawn
- 2007-04-26 EA EA200802108A patent/EA012921B1/ru not_active IP Right Cessation
-
2008
- 2008-10-27 US US12/258,684 patent/US20090094601A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2527758C2 (ru) * | 2012-10-22 | 2014-09-10 | Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации | Способ скрытного хранения конфиденциальных данных в защищенной энергонезависимой памяти и устройство для его реализации |
Also Published As
Publication number | Publication date |
---|---|
EA012921B1 (ru) | 2010-02-26 |
WO2007126341A2 (en) | 2007-11-08 |
EA200802108A1 (ru) | 2009-08-28 |
EP2082352A2 (en) | 2009-07-29 |
WO2007126341A3 (en) | 2008-04-17 |
US20090094601A1 (en) | 2009-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2296363C1 (ru) | Способ и средство защиты программного обеспечения от несанкционированного использования | |
JP6516870B2 (ja) | プログラム命令を安全に実行する方法及び該方法用プログラム | |
White | ABYSS: ATrusted Architecture for Software Protection | |
US4817140A (en) | Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor | |
CN100481104C (zh) | 用于保护电子设备中的通信端口的方法和装置 | |
US7707645B2 (en) | Microprocessor | |
US7340614B2 (en) | Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method | |
US7363507B2 (en) | Device and method of preventing pirated copies of computer programs | |
CN101124768A (zh) | 使用受保护的非易失性存储器的***和方法 | |
KR20060026024A (ko) | 숨겨진 중간 키들을 사용하여 소프트웨어를 인증하기 위한시스템 및 방법 | |
US20080263542A1 (en) | Software-Firmware Transfer System | |
EP0266748A2 (en) | A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor | |
JP4591163B2 (ja) | バスアクセス制御装置 | |
CN107832589A (zh) | 软件版权保护方法及其*** | |
US20060242082A1 (en) | Method and system for protecting of software application from piracy | |
US20190251232A1 (en) | Software algorithm security | |
JP2009506416A (ja) | プロセッサハードウェアおよびソフトウェア | |
JP2007140620A (ja) | マイクロコンピュータ及びそのマイクロコンピュータに接続されるデバッグ装置 | |
JP5124244B2 (ja) | 半導体集積回路、機密保護方法、機密保護プログラム及び記録媒体 | |
KR100348027B1 (ko) | 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템및 그 방법 | |
RU2159953C1 (ru) | Способ защиты программного обеспечения | |
TIEMPO et al. | Security Target Lite of the Security Enclave in SEQUANS communication SoC Monarch 2/N-SQN3401 | |
EP4278559A1 (en) | Method and device for controlling access to a resource | |
US20050210274A1 (en) | Apparatus and method for intellectual property protection using the microprocessor serial number | |
Zhang et al. | Software Activation Using Multithreading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20080428 |
|
NF4A | Reinstatement of patent |
Effective date: 20090620 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20130428 |