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

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

Info

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
Application number
RU2006114101/09A
Other languages
English (en)
Inventor
Дмитрий Игоревич Горюнов (RU)
Дмитрий Игоревич Горюнов
Original Assignee
Общество с ограниченной ответственностью "АСТРОМА"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37999272&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=RU2296363(C1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Общество с ограниченной ответственностью "АСТРОМА" filed Critical Общество с ограниченной ответственностью "АСТРОМА"
Priority to RU2006114101/09A priority Critical patent/RU2296363C1/ru
Application granted granted Critical
Publication of RU2296363C1 publication Critical patent/RU2296363C1/ru
Priority to EA200802108A priority patent/EA012921B1/ru
Priority to EP07747921A priority patent/EP2082352A2/en
Priority to PCT/RU2007/000219 priority patent/WO2007126341A2/en
Priority to US12/258,684 priority patent/US20090094601A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting 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, отличающийся тем, что
после размещения функционального фрагмента ПО или программ в энергонезависимой памяти программно-аппаратного средства защиты ПО осуществляют отладку ПО и устраняют выявленные ошибки в ПО, а затем устанавливают или активизируют программно-аппаратное средство защиты от воспроизведения, считывания, копирования или модифицирования сохраняемых в энергонезависимой памяти программно-аппаратного средства защиты ПО функционального фрагмента ПО, программ и информации.
RU2006114101/09A 2006-04-27 2006-04-27 Способ и средство защиты программного обеспечения от несанкционированного использования RU2296363C1 (ru)

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 Способ и устройство защиты программного обеспечения от несанкционированного использования
EP07747921A EP2082352A2 (en) 2006-04-27 2007-04-26 Method and device for protecting software from unauthorized use
PCT/RU2007/000219 WO2007126341A2 (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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2527758C2 (ru) * 2012-10-22 2014-09-10 Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации Способ скрытного хранения конфиденциальных данных в защищенной энергонезависимой памяти и устройство для его реализации

Families Citing this family (22)

* Cited by examiner, † Cited by third party
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
US9164924B2 (en) 2011-09-13 2015-10-20 Facebook, Inc. Software cryptoprocessor
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)

* Cited by examiner, † Cited by third party
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
US5982191A (en) * 1997-06-25 1999-11-09 Sun Microsystems, Inc. Broadly distributed termination for buses using switched terminator logic
US6323673B1 (en) * 1997-06-25 2001-11-27 Sun Microsystems, Inc. Apparatus for dynamic termination logic signaling
US6060907A (en) * 1997-06-25 2000-05-09 Sun Microsystems, Inc. Impedance control circuit
US6232792B1 (en) * 1997-06-25 2001-05-15 Sun Microsystems, Inc. Terminating transmission lines using on-chip terminator circuitry
US5990701A (en) * 1997-06-25 1999-11-23 Sun Microsystems, Inc. Method of broadly distributing termination for buses using switched terminators
US5955894A (en) * 1997-06-25 1999-09-21 Sun Microsystems, Inc. Method for controlling the impedance of a driver circuit
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2527758C2 (ru) * 2012-10-22 2014-09-10 Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации Способ скрытного хранения конфиденциальных данных в защищенной энергонезависимой памяти и устройство для его реализации

Also Published As

Publication number Publication date
EP2082352A2 (en) 2009-07-29
US20090094601A1 (en) 2009-04-09
WO2007126341A3 (en) 2008-04-17
EA012921B1 (ru) 2010-02-26
EA200802108A1 (ru) 2009-08-28
WO2007126341A2 (en) 2007-11-08

Similar Documents

Publication Publication Date Title
RU2296363C1 (ru) Способ и средство защиты программного обеспечения от несанкционированного использования
JP6516870B2 (ja) プログラム命令を安全に実行する方法及び該方法用プログラム
US6006190A (en) Computer implemented method and a computer system for enforcing software licenses
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
CN101124768A (zh) 使用受保护的非易失性存储器的系统和方法
KR20060026024A (ko) 숨겨진 중간 키들을 사용하여 소프트웨어를 인증하기 위한시스템 및 방법
EP0266748B1 (en) A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US20080263542A1 (en) Software-Firmware Transfer System
JP4663874B2 (ja) コンピュータプログラムの不当コピー阻止装置,不当コピー阻止方法及び記録媒体
JP4591163B2 (ja) バスアクセス制御装置
CN107832589A (zh) 软件版权保护方法及其系统
US20060242082A1 (en) Method and system for protecting of software application from piracy
US20190251232A1 (en) Software algorithm security
JP2007140620A (ja) マイクロコンピュータ及びそのマイクロコンピュータに接続されるデバッグ装置
JP5124244B2 (ja) 半導体集積回路、機密保護方法、機密保護プログラム及び記録媒体
RU2159953C1 (ru) Способ защиты программного обеспечения
JP2009506416A (ja) プロセッサハードウェアおよびソフトウェア
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