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

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

Info

Publication number
EA012921B1
EA012921B1 EA200802108A EA200802108A EA012921B1 EA 012921 B1 EA012921 B1 EA 012921B1 EA 200802108 A EA200802108 A EA 200802108A EA 200802108 A EA200802108 A EA 200802108A EA 012921 B1 EA012921 B1 EA 012921B1
Authority
EA
Eurasian Patent Office
Prior art keywords
software
protection
memory
data
functional fragment
Prior art date
Application number
EA200802108A
Other languages
English (en)
Other versions
EA200802108A1 (ru
Inventor
Владимир Никитич Встовский
Дмитрий Игоревич Горюнов
Михаил Федорович Ахраменко
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=EA012921(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Владимир Никитич Встовский, Дмитрий Игоревич Горюнов, Михаил Федорович Ахраменко filed Critical Владимир Никитич Встовский
Publication of EA200802108A1 publication Critical patent/EA200802108A1/ru
Publication of EA012921B1 publication Critical patent/EA012921B1/ru

Links

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

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

Description

Настоящее изобретение относится к защите программного обеспечения и может быть использовано разработчиками или распространителями программного обеспечения для защиты программного обеспечения, установленного на электронно-вычислительных машинах, контроллерах и других программируемых компьютерных устройствах, от несанкционированного использования, копирования, воспроизведения, модифицирования, распространения и исследования.
Уровень техники
Производители программного обеспечения знакомы с проблемой несанкционированного использования и распространения программного обеспечения и других цифровых данных. Из-за несанкционированного копирования и распространения программного обеспечения - так называемого компьютерного пиратства - компании ежедневно теряют огромные суммы доходов. Согласно статистике В8А (Вившезв 8оП\таге ЛШаисе - Альянса производителей коммерческого программного обеспечения), 38% используемого в мире программного обеспечения - это несанкционированные копии. В 1998 г. из-за компьютерного пиратства производители программного обеспечения потеряли 11 млрд долларов дохода, в 2003 г. - 29 млрд долларов дохода, а в 2005 г. - 34 млрд долларов дохода. Потеря доходов приводит к уменьшению количества рабочих мест, к уменьшению количества инновационных продуктов и к повышению потребительских цен.
В частности, эта проблема относится к всемирной сети Интернет и к другим сетям обмена данными, которые задействуют большое количество взаимодействующих между собой и обменивающихся информацией программируемых электронно-вычислительных устройств (ПЭВУ), к числу которых относятся персональные, портативные и планшетные компьютеры, персональные электронные секретари (ΡΌΑ), игровые приставки и т.д. Интернет и другие сети (кабельные, спутниковые, корпоративные или ведомственные) используют, помимо прочего, для распространения программного обеспечения. Однако подобное распространение нередко принимает форму незаконной загрузки и совместного использования защищенного авторским правом программного обеспечения сторонами, не имеющими на это прав.
Для борьбы с незаконным распространением защищенных авторскими правами программных продуктов, а также для того, чтобы обеспечить соблюдение условий лицензии во время использования цифровых данных, производители и распространители программного обеспечения используют различные способы защиты.
Одним из известных способов защиты программного обеспечения является так называемая «активация программного продукта», или парольная защита, которая основана на использовании паролей (кодов активации). Активация программного продукта, также известная под названием «активация программного обеспечения», - это бизнес-модель, характерная для большей части коммерческого программного обеспечения (например, в программах АбоЬе 111и81та1ог™ фирмы АбоЬе 8у81ешв 1пс., 8СО Ореп 8егует™ фирмы 8ап!а Сгих Оретайоп Ыб. и др.) и обеспечивающая контроль над использованием и распространением программных приложений.
В целом такая защита основана на ограничении числа раз, которое программное обеспечение может быть установлено. Как правило, задачей этого способа защиты является обеспечение возможности установки программного приложения только на одно устройство. В течение заданного периода (например, в течение 30 дней) после установки пользователь обязан «активировать» программное приложение и только после этого может использовать его. Для активации устанавливают связь (как правило, через Интернет) между устройством, на котором установлено программное приложение, и лицензирующим сервером для передачи информации об аппаратном оборудовании, на которое установлено приложение. Если программное обеспечение приобретено легально, то удаленный сервер предоставляет разблокирующий код, который должен быть записан в устройстве пользователя. Каждый раз при запуске приложения осуществляется проверка соответствия между кодом и компонентами аппаратного оборудования устройства (например, типом дисплейного адаптера, 8С81-адаптера, ГОЕ-адаптера, типом процессора и т.д.), и выполнение разрешается только в том случае, если обнаруженный во время проверки код соответствует ожидаемому коду.
Так как при такой активации используется информация об аппаратном оборудовании, любое изменение в аппаратном оборудовании создает сложности для положительной идентификации устройства пользователя. При замене устройства пользователь должен повторно активировать программное обеспечение. Кроме того, использование лицензионного программного обеспечения более чем на одном устройстве создает дополнительные сложности.
Парольная защита программного обеспечения является наиболее простой, но наименее надежной, поскольку при ее использовании возможно несанкционированное распространение программного обеспечения зарегистрированным пользователем, так как ему известен пароль (активационный код), а также передача активационного кода незарегистрированному пользователю с последующим несанкционированным использованием и/или распространением программного обеспечения.
В Интернете можно найти пароли (активационные коды) для большинства программных продуктов,
- 1 012921 что позволяет при наличии нелицензионной копии программного обеспечения несанкционированно использовать и/или распространять это программное обеспечение.
Для выявления паролей (активационных кодов) программное обеспечение также может быть подвергнуто анализу с помощью программ-дизассемблеров типа ГОЛ (статические методы анализа) и программ-отладчиков типа 8ой1СЕ (динамические методы анализа) пользователями средней и высокой квалификации для выявления ноу-хау и/или информации, не подлежащей разглашению, а также для обнаружения и исключения из программного обеспечения областей проверки пароля или активационного кода для последующего несанкционированного использования и/или распространения программного обеспечения без применения пароля или активационного кода.
В основе еще одного способа защиты программного обеспечения лежит использование локального лицензирующего сервера, т. е. сервера, который работает в частных сетях организаций и контролирует функции лицензирования/защиты по меньшей мере одного программного продукта. Например, в памяти локального лицензирующего сервера имеются N лицензий, т.е. в одно и то же время могут быть использованы не более N копий программы. Каждый раз при запуске копии программного обеспечения оно «запрашивает» у лицензирующего сервера разрешение на работу. Каждый раз, когда пользователь запускает одно программное приложение, количество лицензий в памяти лицензирующего сервера уменьшается на единицу, а каждый раз, когда пользователь заканчивает работу с приложением, количество лицензий в памяти лицензирующего сервера увеличивается на единицу. Если приложение одновременно используют более N пользователей, то в зависимости от условий купленной организацией лицензии сервер может отказать в запуске дополнительных копий, обеспечить взыскание с организации платы за использование дополнительных копий и т. п.
Защита программного обеспечения, основанная на вводе регистрационных данных и взаимодействии с поставщиком программного обеспечения, не требует наличия аппаратных средств защиты, но она способна воспрепятствовать несанкционированному распространению и использованию программного обеспечения только в том случае, если зарегистрированные или незарегистрированные пользователи имеют низкую или среднюю квалификацию.
Даже при том, что контроль распространения программного обеспечения производится постоянно, при каждом копировании программного обеспечения, а не однократно, как при парольной защите, данный способ не обеспечивает защиту от программ статического и динамического исследования, поскольку информация при вводе регистрационных данных и взаимодействии с поставщиком программного обеспечения попадает посредством каналов передачи данных в память ПЭВУ, откуда может быть скопирована и использована незарегистрированными пользователями.
В настоящее время наиболее надежными с точки зрения предотвращения несанкционированных действий зарегистрированных и незарегистрированных пользователей являются системы защиты авторских прав на цифровые продукты, основанные на использовании ключевых носителей, например магнитных карт, производимых такими компаниями, как ΘΜΚΌΝ Е1есйошс8 Ыб., магнитных носителей с дефектами, интеллектуальных электронных ключей на основе микропроцессоров и микросхем памяти (электронные идентификаторы Тоисй Метогу, аппаратные ключи НЛ8Р компании А1аббт 1<по\\'1ебде Зуккетк Ькб.), которые взаимодействуют с цифровыми данными, например с программным обеспечением, на аппаратном уровне, например, посредством считывателей магнитных карт, считывателей электронных идентификаторов Тоисй Метогу или портов ввода-вывода вычислительных машин.
Аппаратные ключи НА8Р™ - это семейство продуктов, которые предназначены для защиты программного обеспечения (т.е. для предотвращения над ним пиратских действий), и они также используются в системах защиты авторских прав на цифровые продукты. В настоящее время семейство аппаратных ключей НА8Р включает в себя следующие продукты: НА8Р НЬ™ - аппаратная система лицензирования и защиты программного обеспечения; РгМ1еде™ - аппаратная система лицензирования, защиты и распространения программного обеспечения; РгМ1еде Тпа1\\'аге Тоо1кй - средства организации безопасного контролируемого пробного использования программного обеспечения и НА8Р Эос8еа1™ - аппаратная система для защиты интеллектуальной собственности и конфиденциальной информации в НТМЬфайлах.
Для работы программного обеспечения, которое защищено аппаратными ключами, установленными в разъем порта ввода-вывода ПЭВУ, требуется идентификация ключа. При идентификации программа запрашивает код ключа и сравнивает его с кодом, записанным в программе. По результатам идентификации программа реализует заданный регламент ее использования.
Например, ключ НА8Р НЬ™ распространяют в форме аппаратного ключа (известного также под названием «защитный ключ», или «донгл»), который предназначен для установки в ИЗВ-порт или другой подобный порт вычислительной машины, например параллельный порт. Этот ключ представляет собой аппаратное криптографическое устройство, используемое для шифрования и дешифрования данных для защиты программного обеспечения. Во время работы ключ НА8Р НЬ™ принимает от защищаемого приложения последовательность зашифрованных данных и дешифрует их способом, который невозможно повторить. Расшифрованные данные из ключа НА8Р НЬ™ возвращаются в защищаемое при
- 2 012921 ложение и определяют режим, в котором работает программа: загрузка и выполнение, запуск лишь определенных компонентов программы или полный отказ от запуска. Устанавливаемое на микросхему устройство шифрования ΗΑ8Ρ™ содержит 128-битный криптографический алгоритм улучшенного стандарта шифрования (АЕ8 стандарта), универсальный прикладной программный интерфейс, информацию о возможностях, которые предоставляет данная лицензия, межплатформенную универсальную последовательную шину (И8В) и т.д.
Способ защиты с помощью электронных ключей является более надежным, но для его реализации необходимо дополнительное устройство (ключ), уникальное по записанному в нем коду, и существует возможность выявления информации о записанных в ключе или программах кодах при помощи упомянутых выше программ статического и динамического исследования (дизассемблеров и программотладчиков). С этой точки зрения наиболее надежными из ключевых носителей являются интеллектуальные устройства на базе процессоров, реализующие сложные и защищенные протоколы взаимодействия защищаемого программного обеспечения и ключевого носителя. Существуют, в частности, методы защиты программного обеспечения, позволяющие прятать фрагменты программы, отсутствующие на внешнем носителе, в память такого ключа, которым комплектуется лицензионное программное обеспечение. В процессе выполнения программы недостающие фрагменты считываются из памяти ключа в память системы, декодируются и затем выполняются. Применение ключевых носителей с уникальными кодами обеспечивает защиту от несанкционированного копирования и/или распространения программного обеспечения зарегистрированными и незарегистрированными пользователями низкой и средней квалификации.
Однако данная защита является недостаточной для исследования программного обеспечения такими методами, как анализ программного обеспечения с помощью программ-отладчиков, анализ программного обеспечения с помощью аппаратных эмуляторов вычислительной среды, анализ протоколов взаимодействия программного обеспечения с ключевыми носителями с применением измерительной аппаратуры, например логических анализаторов типа ΗΡ 54620А, ΗΡ 54620С, ΗΡ 1664А фирмы Нс\\1с11 Раскагб. Например, программы-отладчики отслеживают и захватывают информацию цифровых данных после ее обработки дешифрующим программным приложением, выявляя, таким образом, «защищенную» информацию. Такая информация содержит файл с цифровыми данными и метаданные, описывающие, как их нужно обрабатывать. Программа, которая взламывает приложение и извлекает эту информацию из системы защиты авторских прав, обеспечивает возможность получения несанкционированных копий оригинального файла цифровых данных. Таким образом, ноу-хау или информация, не подлежащая разглашению, могут быть выявлены зарегистрированными пользователями высокой квалификации с помощью дизассемблеров. Эти способы также могут быть применены для обнаружения и стирания имеющихся в программном обеспечении областей, отвечающих за обращение к ключевому носителю, для возможности последующего несанкционированного использования и/или распространения программного обеспечения без ключевого носителя. Эта проблема усиливается тем, что большинство используемых для взлома средств - это эффективные и законные инструменты, широко используемые в области разработки программного и аппаратного обеспечения, например инструменты внутрисхемной эмуляции, отладчики и дизассемблеры. Эти инструменты разрешены законом, их легко приобрести, и они становятся все более совершенными и эффективными. К их числу относятся 8ой1СЕ компании БиМеда, отладчики компаний М1сто8ой или Вот1апб, эффективный инструмент снятия защиты Ρ^ос^итρ, условно-бесплатные программы, которые могут быть свободно загружены из Интернета, и многие другие.
В качестве меры противодействия в системах защиты авторских прав могут быть использованы более сложные криптографические схемы и способы скрытия кода. Согласно другим способам криптографические ключи могут быть записаны на аппаратных средствах, защищенных от несанкционированных попыток извлечения хранящейся на них информации. Такие способы раскрыты, например, в И8 7131006 (Уепхоп ЬаЬотаЕопек 1пс.), где предлагается использовать криптографический аппаратный ключ, и в И8 7165727 (8ип Мютокуйетк), где предлагается записывать криптографические ключи и криптографические алгоритмы на смарт-карту. Недостатком подобных устройств является либо то, что во время дешифрования информации ПЭВУ имеет доступ к криптографическому ключу, либо то, что после выполнения криптографических функций внутри криптографического устройства к конечному результату, который выдается в исходной форме, может быть получен доступ.
В подобных способах криптографические алгоритмы должны быть реализованы в аппаратных средствах, которые также должны содержать криптографические ключи для возможности доступа к цифровым данным. Таким образом, криптографические алгоритмы и ключи должны быть всегда доступны приложению. Эти требования существенно усложняют программное обеспечение, снижают скорость его работы и функциональную надежность.
Кроме того, описанные выше способы способны лишь задержать злоумышленника, а не остановить его. Программа для взлома системы защиты авторских прав может быть написана, если злоумышленник потратит на это достаточное количество времени и усилий. Специалистам в данной области известно, что проще осуществлять успешные атаки на программные приложения, работающие в открытой среде
- 3 012921 разработки программ, которая позволяет программистам совершенствовать программы. Как и в описанных выше способах, цифровые данные после их дешифрования криптографическими сопроцессорами остаются незащищенными.
Таким образом, еще одной общей проблемой описанных выше способов защиты программного обеспечения является то, что защищенное программное обеспечение, включая защитные средства, рано или поздно попадает в каналы передачи данных и в память ПЭВУ, поскольку это необходимо для его обработки и выполнения процессором ПЭВУ. С этого момента программное обеспечение не защищено от копирования, воспроизведения или проникновения как зарегистрированными, так и незарегистрированными пользователями программного обеспечения.
Это означает, что любой квалифицированный пользователь, имея достаточно средств и времени и приложив некоторые усилия, может с помощью известных дизассемблеров и отладчиков заблокировать проверочные функции известных способов защиты или скомпоновать недостающие фрагменты кода, необходимые для воссоздания, использования и распространения копий основного кода программы.
В заявке И8 20060010500 раскрыт способ защиты цифровых данных, согласно которому исходные защищенные авторским правом цифровые данные разделяют по меньшей мере на две части таким образом, что каждая часть отдельно от других частей не может обеспечить конечный результат использования этих данных, после чего получившиеся после разделения файлы перекомпоновывают в единый файл, который сжимают и зашифровывают для распространения по сети. Принятый единый файл хранится в устройстве для защиты авторских прав, которое в соответствующие моменты времени отправляет один файл в компьютер пользователя для обработки, а второй файл обрабатывает самостоятельно. Однако изза того, что результаты обработки объединяются в ПЭВУ, они не защищены от незаконного копирования.
В И8 20060242082 раскрыт вариант этого способа, согласно которому хранение и выполнение второй части разделенных цифровых данных осуществляется на удаленном сервере. Во время работы приложения цифровое оборудование никогда не содержит всех частей исходных данных и всех алгоритмов его обработки, следовательно, данные недоступны для взлома.
Однако так как вторая часть исходных данных хранится на удаленном сервере в машиночитаемой форме, она может быть незаконно скопирована с этого сервера.
Кроме того, способы, использующие сложные криптографические алгоритмы, делают программы громоздкими и замедляют загрузку файлов из сети.
Следовательно, необходимы такие способ и средства защиты программного обеспечения, которые устраняют описанные выше проблемы уровня техники и обеспечивают возможность простого и эффективного, но вместе с тем полностью защищенного, распространения и использования программного обеспечения.
Задачи изобретения
Задачей настоящего изобретения является создание надежной защиты программного обеспечения от несанкционированного использования, воспроизведения, распространения, исследования и модифицирования, которая способна противостоять всем известным способам незаконного копирования и воспроизведения программного обеспечения.
Еще одной задачей настоящего изобретения является создание способа и устройства для защиты программного обеспечения, которые устойчивы к статическому и динамическому исследованию программами-дизассемблерами, программами-отладчиками и аппаратными средствами проникновения.
Еще одной задачей настоящего изобретения является создание способа и устройства для защиты программного обеспечения, которые не позволяют получать полнофункциональные копии программного обеспечения с любого известного носителя данных, такого как память ПЭВП, выполняющего это программное обеспечение.
Еще одной задачей настоящего изобретения является создание простого инструмента для производителей и распространителей программного обеспечения, который позволяет легко, надежно и эффективно защитить программное обеспечение без операций шифрования и дешифрования, создания, проверки и использования уникальных ключевых носителей или кодов системы защиты.
Еще одной задачей настоящего изобретения является снижение или полное исключение риска воссоздания исходного кода, находящегося в памяти легально произведенных устройств для защиты программного обеспечения, даже в случае нелегального воспроизведения или создания его аппаратной копии, таким образом, исключая возможность несанкционированного использования, копирования, распространения и исследования программного обеспечения, защищенного средством и способом согласно настоящему изобретению.
Сущность изобретения
Для решения этих и других задач предлагается устройство для защиты программного обеспечения от несанкционированного использования, содержащее энергонезависимую память, выполненную с возможностью записи и хранения в ней по меньшей мере одного функционального фрагмента, изъятого из указанного программного обеспечения, средства защиты по меньшей мере части содержимого указанной энергонезависимой памяти, при этом защищенная часть хранит указанный по меньшей мере один функ
- 4 012921 циональный фрагмент, изъятый из указанного программного обеспечения, интерфейс информационного обмена для обмена данными с программируемым электронно-вычислительным устройством и процессор для обработки изъятого фрагмента программного обеспечения, хранящегося в указанной энергонезависимой памяти, причем указанное устройство выполнено с возможностью соединения с программируемым электронно-вычислительным устройством для обмена данными, что обеспечивает возможность выполнения оставшейся части программного обеспечения.
Согласно предлагаемому изобретению обмен данными включает в себя отправку программируемым электронно-вычислительным устройством исходных данных и/или команд для запуска выполнения изъятого фрагмента в устройстве для защиты программного обеспечения, вследствие которого получаются результирующие данные, и отправку этих результирующих данных программируемому электронно-вычислительным устройству.
Согласно предлагаемому изобретению средства защиты обеспечивают защиту от копирования, считывания, воспроизведения, исследования, модифицирования и/или стирания.
Средства защиты могут быть реализованы в виде программных, аппаратных или программноаппаратных средств.
Согласно предлагаемому изобретению средства защиты могут быть многоуровневыми, т.е. они могут обеспечивать поэтапное применение разных видов защит.
Например, в одном варианте реализации устройство для защиты программного обеспечения может быть изготовлено с защищенной от считывания энергонезависимой памятью, в которой может быть записана и сохранена любая часть программного обеспечения без возможности ее последующего считывания из этой памяти.
Согласно еще одному варианту реализации в средствах защиты также может быть предусмотрена дополнительная защита, которую активируют после записи данных в память, и суть которой заключается в том, что данные, будучи записанными в память и став ее содержимым, не могут быть модифицированы или стерты, и/или в ту же энергонезависимую память не могут быть записаны дополнительные данные. Эта защита может быть реализована, например, с помощью паролей или с помощью других подходящих средств по усмотрению специалиста в данной области.
Согласно еще одному варианту реализации может быть предусмотрена дополнительная защита от подбора паролей. Способы этой дополнительной защиты могут быть определены специалистами в данной области.
Согласно еще одному варианту реализации может быть предусмотрена еще одна защита для полной блокировки памяти.
Тип защиты может быть выбран специалистом в данной области в зависимости от конкретных условий и требований безопасности. Для реализации защиты могут быть использованы стандартные средства.
Например, защита может быть реализована описанным в публикациях компании А1шс1 способом «двоичной блокировки памяти для программ и данных» (см., например,
1Шр://\у\у\у.а1тс1.сот/0уп/гс5оигсс5/ргоб Йоситеп18/йос2486.рб1). Согласно настоящему изобретению может быть использован и любой другой подходящий способ защиты содержимого памяти.
Согласно предлагаемому изобретению указанный по меньшей мере один функциональный фрагмент, изъятый из указанного программного обеспечения, предпочтительно хранится в указанной энергонезависимой памяти в виде кода, выполняемого процессором указанного устройства для защиты программного обеспечения.
Указанный по меньшей мере один функциональный фрагмент, изъятый из указанного программного обеспечения, может храниться в памяти устройства для защиты программного обеспечения в виде кода, выполняемого другим процессором, реализуемым, например, с помощью эмуляции виртуальных машин.
Использование эмуляции виртуальных машин позволяет выполнять коды, которые изначально предназначены для выполнения другими типами процессоров. Также возможно выполнение текстовых инструкций с использованием виртуальной машины 1ауа или другой подобной виртуальной машины.
Согласно одному варианту реализации, указанный по меньшей мере один изъятый фрагмент хранится в части энергонезависимой памяти, которая защищена средствами защиты содержимого этой памяти.
Согласно одному варианту реализации оставшаяся часть программного обеспечения, из которой изъят по меньшей мере один функциональный фрагмент, хранится в части энергонезависимой памяти, которая не обязательно защищена средствами защиты.
Оставшаяся часть программного обеспечения, из которой изъят по меньшей мере один функциональный фрагмент, может храниться в дополнительной энергонезависимой памяти, которая не защищена или защищена средствами защиты.
Оставшаяся часть программного обеспечения, из которой изъят по меньшей мере один функциональный фрагмент, может быть загружена с удаленного сервера или из сети.
Оставшаяся часть программного обеспечения, из которой изъят по меньшей мере один функцио
- 5 012921 нальный фрагмент, может храниться на любом читаемом компьютером носителе, например на компактдиске, флэш-памяти и т.п.
Кроме того, как будет понятно специалисту в данной области, указанные процессор, энергонезависимая память и интерфейс информационного обмена соединены друг с другом средствами информационного обмена.
Согласно одному варианту реализации изобретения устройство для защиты программного обеспечения может быть реализовано в форме внешнего модуля, такого как программно-аппаратный модуль.
Согласно еще одному варианту реализации устройство для защиты программного обеспечения может быть реализовано в форме внутреннего модуля и использовано, например, для защиты системного программного обеспечения, такого как ΒΙΟ8 и т.п.
Например, устройство для защиты программного обеспечения согласно настоящему изобретению может быть реализовано либо в виде печатной платы или микросхемы, которые могут быть соединены с помощью интерфейса информационного обмена с портами или шинами программируемого электронновычислительного устройства, такого как персональный или портативный компьютер, контроллер, персональный электронный секретарь (ΡΌΑ) или любое другое устройство такого рода, либо в виде печатной платы с программируемой микросхемой, программируемым контроллером или программируемым логическим устройством, которые могут быть интегрированы в программируемое электронновычислительное устройство.
В состав одного из возможных вариантов реализации входит производимый компанией 8Шеои ЬаЬога1опе8 микроконтроллер С8051Р320/1, который содержит процессорное ядро, программируемую флэш-память и аппаратные средства защиты от считывания, воспроизведения или модифицирования сохраняемых в нем программ или данных.
Устройство для защиты программного обеспечения также содержит оперативную память, которая предназначена для хранения переменных и данных и выполняет функцию буфера обмена данными, который необходим для работы процессора. С помощью, например, средств информационного обмена оперативная память может быть соединена с процессором, а с помощью интерфейса информационного обмена - с программируемым электронно-вычислительным устройством.
Интерфейс информационного обмена может быть реализован в форме физических средств передачи данных или беспроводных средств передачи данных, например, с использованием интерфейсов ϋ8Β, РС1, В8-232, СОМ, ЬРТ, Е111егпе1. В1иеЮо111 или ΙΒΌΑ.
Согласно предлагаемому изобретению средства защиты программного обеспечения также могут содержать дополнительный интерфейс программирования указанной энергонезависимой программируемой памяти. В одном варианте реализации указанный дополнительный интерфейс программирования может быть объединен с интерфейсом информационного обмена.
Согласно еще одному варианту реализации средства защиты, по меньшей мере, частично или полностью блокируют доступ к энергонезависимой памяти, осуществляемый через интерфейс программирования и/или процессор. В этом же или в еще одном варианте реализации указанные средства защиты могут полностью отключать интерфейс программирования.
Согласно предлагаемому изобретению указанные средства защиты содержимого указанной энергонезависимой памяти защищают содержимое от считывания, копирования, воспроизведения, исследования, модифицирования и других форм выявления его содержимого, а также от стирания.
Согласно предлагаемому изобретению устройство для защиты программного обеспечения может дополнительно содержать по меньшей мере один сопроцессор, такой как математический процессор, криптографический процессор или подобный.
Предлагается способ защиты программного обеспечения от несанкционированного использования, содержащий этапы изъятия по меньшей мере одного функционального фрагмента программного обеспечения, без которого оставшаяся часть программного обеспечения будет выполняться в программируемом электронновычислительным устройстве неправильно или вообще не сможет выполняться;
записи указанного изъятого функционального фрагмента программного обеспечения в энергонезависимую память устройства для защиты программного обеспечения, имеющего средства защиты указанного фрагмента от считывания;
дополнительно возможный этап активации дополнительной защиты находящегося в указанной энергонезависимой памяти функционального фрагмента от копирования, воспроизведения, исследования, модифицирования и/или стирания;
вставки в оставшуюся часть программного обеспечения функции передачи для отправки устройству для защиты программного обеспечения исходных данных и/или команд, инициирующих выполнение изъятого фрагмента, для получения результирующих данных, и для отправки полученных результирующих данных программируемому электронно-вычислительному устройству.
Согласно настоящей заявке исходные данные содержат всю информацию, которая необходима для правильного выполнения изъятого функционального фрагмента программного обеспечения.
Результирующие данные - это данные, полученные в результате выполнения изъятого функцио
- 6 012921 нального фрагмента программного обеспечения.
В одном варианте реализации этап применения защиты от считывания могут выполнять либо раньше записи указанного по меньшей мере одного функционального фрагмента в энергонезависимую память, либо после его записи в эту память. После активации этой защиты фрагмент невозможно считать из памяти.
Способ также может содержать этап активации дополнительной защиты хранящегося в энергонезависимой памяти функционального фрагмента от копирования, воспроизведения, исследования, модифицирования или стирания. Таким образом, защиту могут активировать поэтапно для обеспечения различных уровней защиты в соответствии с требованиями производителя.
Например, способ может дополнительно содержать этап активации защиты содержимого от записи/модифицирования/стирания, так что данные, будучи записанными в память и став содержимым, не могут быть модифицированы, стерты, и/или в эту же энергонезависимую память не могут быть записаны дополнительные данные. Эта защита может быть реализована, например, с помощью паролей или другими подходящими средствами по выбору специалиста в данной области.
Согласно еще одному варианту реализации способ также может содержать этап активации защиты от подбора паролей. Способ такой защиты может быть выбран специалистом в данной области.
Согласно еще одному варианту реализации способ также может содержать последний этап, на котором полностью блокируют память.
Согласно предлагаемому изобретению функционирование оставшейся части программного обеспечения в программируемом электронно-вычислительном устройстве вместе с хранящимся в энергонезависимой памяти устройства для защиты программного обеспечения функциональным фрагментом становится возможным благодаря тому, что в указанную оставшуюся часть программного обеспечения помещены соответствующие функции, инструкции или команды, на основании которых программируемое электронно-вычислительное устройство отправляет исходные данные и/или команды устройству для защиты программного обеспечения, процессор которого после получения этим устройством исходных данных выполняет функциональный фрагмент или программы, вследствие чего получают результирующие данные, которые отправляет обратно программируемому электронно-вычислительному устройству для обеспечения возможности последующего выполнения им оставшейся части программного обеспечения.
Очевидно, что, согласно предлагаемому изобретению, функциональный фрагмент или программа хранятся в энергонезависимой памяти устройства для защиты программного обеспечения в виде кода, выполняемого процессором указанного устройства для защиты программного обеспечения, или в виде кода, выполняемого другим процессором, например, реализуемым с помощью эмуляции виртуальных машин.
До активации средств защиты от копирования, воспроизведения, модифицирования или стирания над хранящимся в энергонезависимой памяти устройства для защиты программного обеспечения функциональным фрагментом могут производить отладку с исправлением найденных ошибок.
Согласно предлагаемому изобретению также имеется комплект для безопасного распространения продукта программного обеспечения, содержащий продукт программного обеспечения, из которого изъят по меньшей мере один функциональный фрагмент и который может быть загружен из сети или удаленного сервера либо может быть записан на любой подходящий читаемый компьютером носитель, такой как компакт-диск, и подробно описанное выше устройство для защиты программного обеспечения.
Согласно еще одному аспекту предлагаемого изобретения также имеется комплект для безопасного распространения продукта программного обеспечения, содержащий читаемый компьютером носитель, на который записано по меньшей мере одно программное обеспечение, из которого изъят по меньшей мере один функциональный фрагмент, и устройство для защиты программного обеспечения согласно настоящему изобретению.
Согласно еще одному аспекту предлагаемого изобретения также имеется комплект для безопасного распространения продукта программного обеспечения, содержащий устройство для защиты программного обеспечения, в энергонезависимую память которого записано программное обеспечение, из которого изъят по меньшей мере один функциональный фрагмент, и указанный по меньшей мере один функциональный фрагмент.
Согласно еще одному аспекту настоящего изобретения предлагается способ приобретения и обеспечения защиты программного обеспечения в системе, содержащей компьютер пользователя или любое программируемое электронно-вычислительное устройство, сервер и устройство для защиты программного обеспечения, содержащий этапы приобретения или загрузки пользователем программного обеспечения; установки указанного программного обеспечения на указанный компьютер пользователя или на указанное программируемое электронно-вычислительное устройство и выполнения программного обеспечения с использованием устройства для защиты программного обеспечения, как описано выше.
Согласно еще одному аспекту настоящего изобретения предлагается способ безопасного распространения программного обеспечения с использованием устройства для защиты программного обеспечения, содержащий этапы
- 7 012921 загрузки, предназначенной для защиты программы программного обеспечения на программируемое электронно-вычислительное устройство;
соединения устройства для защиты программного обеспечения с программируемым электронновычислительным устройством;
выполнения программы на программируемом электронно-вычислительном устройстве таким образом, что при достижении программой по меньшей одной помещенной в нее функции передачи программируемое электронно-вычислительное устройство отправляет исходные данные и/или команды устройству для программного обеспечения;
приема устройством для защиты программного обеспечения исходных данных и выполнения им изъятого фрагмента программного обеспечения для получения результирующих данных;
отправки результирующих данных программируемому электронно-вычислительным устройству для обеспечения возможности выполнения им следующей части программы программного обеспечения.
Краткое описание чертежей
После краткого описания чертежей приведено более подробное описание предлагаемого изобретения со ссылками на прилагаемые чертежи.
Фиг. 1 - функциональная блок-схема программно-аппаратного устройства для защиты программного обеспечения согласно одному варианту реализации настоящего изобретения;
фиг. 2 - логическая структура защиты программного обеспечения согласно настоящему изобретению;
фиг. 3 - алгоритм выполнения программного обеспечения, защищенного согласно настоящему изобретению;
фиг. 4 - внешний вид программно-аппаратного средства защиты программного обеспечения, которое реализовано в виде программно-аппаратного модуля, выполненного с возможностью присоединения к и8В-порту ПЭВУ.
Подробное описание предпочтительных вариантов реализации изобретения
Ниже приведено подробное описание настоящего изобретения со ссылками на чертежи, на которых изображены конкретные варианты реализации. Специалистам в данной области понятно, что возможны другие варианты реализации настоящего изобретения в пределах его сущности, поэтому приведенное ниже подробное описание изобретения не является ограничением.
На фиг. 1 показана блок-схема варианта реализации устройства для защиты программного обеспечения согласно настоящему изобретению, содержащего по меньшей мере один центральный процессор 3, по меньшей мере одну оперативную память 2, по меньшей мере одну энергонезависимую память 6, средства 5 защиты данных и по меньшей мере один интерфейс 1 информационного обмена между устройством для защиты программного обеспечения и ПЭВУ (не показано).
Память 6 может входить в состав процессора 3 или быть независимой от него, в целом для повышения уровня интеграции и для возможного снижения стоимости устройства для защиты программного обеспечения его компоненты или субкомпоненты могут быть объединены друг с другом. Например, перечисленные выше функциональные блоки могут быть реализованы аппаратно либо в виде отдельных устройств, которые соединены каналами передачи данных, либо в виде единого устройства, содержащего все упомянутые выше блоки, например, в виде интегральной схемы, реализующей все вышеперечисленные функции. Также некоторые блоки могут быть объединены, в то время как другие блоки реализованы отдельно.
ПЭВУ, используемые конечными пользователями для выполнения по меньшей мере одного файла данных, могут представлять собой, например, персональный, портативный или планшетный компьютер, контроллер, персональный электронный секретарь (ΡΌΑ) и любое другое работающее с программным обеспечением оборудование.
Устройство для защиты программного обеспечения дополнительно может содержать устройство 4 индикации, которое показывает состояние или режим работы любого субкомпонента указанного устройства. Например, устройство индикации может показывать, что энергонезависимая память заполнена или свободна, или что устройство работает в режиме программирования или в рабочем режиме.
Устройство для защиты программного обеспечения может содержать интерфейс 7 программирования указанной энергонезависимой программируемой памяти.
Перечисленные выше компоненты связаны друг с другом посредством интерфейса информационного обмена или каналов передачи данных.
Интерфейс 1 выполнен с возможностью обеспечения взаимодействия между устройством для защиты программного обеспечения и ПЭВУ.
Физически интерфейс 1 может быть реализован, например, в виде по меньшей мере одного кабеля и/или порта или шины.
Реализуемый интерфейсом 1 информационный аспект обеспечивает возможность обмена данными между устройством для защиты программного обеспечения и цифровым оборудованием через беспроводные, инфракрасные или любые другие подходящие средства. В качестве интерфейса 1 может быть использован любой интерфейс, например, РС1, Ι8Α, И8В, РйеХУйе. ГОЕ, 8С81, К.8-232 или другой после
- 8 012921 довательный интерфейс, параллельный интерфейс, интерфейс Сотрас! Р1акк (СР), интерфейс 8опу Метогу 8Пск, МиШтеФа Сагб (ММС), кесиге б1дИа1, т1ш кесиге б1дИа1, ех!гете άίβίΐαΐ (χΌ), В1иеЮо111. ΙηίίηίЬапб, интерфейс мобильного телефона, интерфейс персонального электронного секретаря и/или любой другой интерфейс, который подходит для соединения устройства для защиты программного обеспечения с цифровым оборудованием, таким как ПЭВУ.
Кроме того, интерфейс 1 может быть использован для передачи устройству для защиты программного обеспечения исходных данных и/или команд и приема от него результирующих данных.
В одном варианте реализации интерфейс 1 может быть объединен с интерфейсом 7. В этом случае интерфейс 1 также может быть использован для загрузки кода программы в память 6.
Оперативная память 2 предназначена для хранения переменных и данных и выполняет функцию буфера обмена данными или другой информации, которая необходима для работы процессора 3, устройства 4, интерфейса 1, средств 5, памяти 6 и интерфейса 7.
Процессор 3 выполняет код содержащегося в памяти 6 функционального фрагмента программы. Процессор 3 может быть процессором общего назначения или специальным процессором. Процессор 3, память 6 и/или другие компоненты могут быть реализованы в виде аппаратных средств, защищенных от несанкционированного извлечения хранящейся на них информации, либо защищенными таким образом могут быть лишь части процессора 3, памяти 6 и/или других компонентов. Перечисленные условия не являются ограничением.
Являющиеся необязательными компонентами дисплей или устройство 4 при необходимости предоставляют визуальную информацию.
Память 6 хранит функциональный фрагмент в виде машинного кода, выполняемого процессором 3, или кода, выполняемого другим процессором с использованием эмуляции. Память 6 может также хранить другие данные, такие как способы проверки прав доступа. Перечисленные условия не являются ограничением.
В качестве памяти 6 может быть использовано любое запоминающее устройство, содержащее носитель данных на основе полупроводников, такое как постоянное запоминающее устройство (КОМ), электрически-стираемое программируемое постоянное запоминающее устройство (ЕЕРКОМ), флэш-память (Пакк-память), оперативное запоминающее устройство с батарейным питанием или любой другой вид энергонезависимой памяти, включая перепрограммируемую память, неперепрограммируемую память, двустороннюю электрически-программируемую интегрированную память и т.п. Перечисленные условия не являются ограничением.
Средства 5 позволяют процессору 3 выполнять код содержащегося в памяти 6 фрагмента программного обеспечения, но препятствуют прямому доступу к хранящимся в памяти 6 данным. Средства защиты данных препятствуют доступу пользователя к содержимому энергонезависимой памяти, в которой хранится по меньшей мере один функциональный фрагмент программного обеспечения, защищенного согласно настоящему изобретению. Интерфейс 7 может быть использован для исходного программирования памяти 6, кроме того, его могут использовать разработчики для загрузки в память 6 кода функционального фрагмента, программ и данных и для последующей активации средств 5 или, в случае необходимости, для стирания или невосстанавливаемого разрушения хранящихся в памяти 6 данных. Интерфейс 7 на аппаратном уровне может быть объединен с интерфейсом 1.
На фиг. 2 показана блок-схема, изображающая логическую структуру варианта реализации защиты программного обеспечения согласно настоящему изобретению (показанный пример не является ограничением). Первая часть программного обеспечения (программные модули 8, 9, 10) записана на ПЭВУ 20, а вторая часть (программные модули 11, 12) хранится в защищенном виде в устройстве 30 для защиты программного обеспечения согласно настоящему изобретению.
Как показано на фиг. 2, предназначенная для выполнения ПЭВУ 20 первая часть программного обеспечения согласно настоящему изобретению содержит модуль 8, содержащий программное обеспечение, из которого изъят по меньшей мере один функциональный фрагмент, функцию 8а передачи данных, которая вставлена в указанную первую часть продукта программного обеспечения, модуль 9, который представляет собой драйвер, содержащий функцию 9а передачи данных для отправки исходных данных и/или команд, как подробно описано выше, и модуль 10, который представляет собой драйвер интерфейса информационного обмена для обмена данными с устройством 30. При необходимости первая часть также может содержать любые дополнительные поддерживающие или функциональные компоненты. Эти компоненты могут быть созданы специалистом в данной области с использованием любых доступных инструментов программирования.
Вторая часть хранится в защищенном виде в отдельном устройстве 30, т.е. отделена от ПЭВУ 20. Вторая часть состоит из модуля 11, содержащего указанный по меньшей мере один функциональный фрагмент, который изъят из первой части и сохранен в защищенном виде в защищенной от считывания энергонезависимой памяти указанного устройства для защиты программного обеспечения, и модуля 12, содержащего интерфейс информационного обмена для обмена данными с ПЭВУ 20.
Модули 8 и 11 являются основными функциональными компонентами защищенного программного обеспечения, а модули 9, 10, 12 являются вспомогательными компонентами и содержат драйверы, кото
- 9 012921 рые поддерживают работу основных компонентов. Подходящие драйверы могут быть легко подобраны специалистом в данной области и не являются предметом настоящего изобретения.
Согласно настоящему изобретению во время выполнения первой части программы в ПЭВУ 20 указанная по меньшей мере одна вставленная в драйвер 9 функция 9а обеспечивает корректную передачу исходных данных через драйвер 10 устройству 30 для того, чтобы устройство 30 само выполнило вторую часть программы и отправило результирующие данные через драйвер 12 обратно в ПЭВУ 20, что позволяет ПЭВУ 20 продолжить выполнение первой части программы.
Очевидно, что функция передачи может быть реализована в виде по меньшей мере одного принимающего или передающего модуля, по меньшей мере одного приемопередающего модуля, либо в виде нескольких модулей, предназначенных для передачи и/или приема информации.
Функции передачи могут быть вставлены как в область изъятого фрагмента, так и в любую другую область программы, если это необходимо для функционирования последней. Например, функции передачи могут быть вставлены в те места программы, где необходим запрос результирующих данных из устройства для защиты программного обеспечения. Места программы, куда требуется поместить функцию передачи, могут быть легко определены специалистом в данной области.
Согласно настоящему изобретению первая часть содержит по меньшей мере одну предшествующую часть программы, которая должна быть выполнена до выполнения изъятого функционального фрагмента, по меньшей мере одну функцию передачи и по меньшей мере одну последующую часть программы, которая должна быть выполнена после приема результирующих данных, полученных при выполнении изъятого фрагмента на отдельном устройстве для защиты программного обеспечения. При необходимости из первой части могут быть независимо друг от друга изъяты по меньшей мере два функциональных фрагмента, и в первую часть может быть вставлена по меньшей мере одна функция передачи или модуль функции передачи.
Подробное описание способа защиты программного обеспечения
В отличие от других известных способов защиты программного обеспечения, основанных на хранении отдельных фрагментов (т.е. модулей программного обеспечения, паролей и кодов активации) в памяти устройства для защиты программного обеспечения, в способе согласно настоящему изобретению хранящиеся в памяти 6 функциональные фрагменты программного обеспечения или программы выполняются процессором 3 и не могут быть непосредственно считаны через каналы передачи данных, а следовательно, не могут быть скопированы в память ПЭВУ или на другой носитель для последующего несанкционированного использования.
Это означает, что даже если процессор 3 обменивается данными с ПЭВУ, невозможно скопировать полную версию программного обеспечения, которая содержит все необходимые для нормальной работы функциональные фрагменты или программы.
Способ защиты программного обеспечения с использованием устройства для защиты программного обеспечения согласно настоящему изобретению может быть реализован следующим образом.
На первом этапе выбирают по меньшей мере один функциональный фрагмент программного обеспечения, который будет не доступен для считывания, воспроизведения, копирования, стирания и/или модифицирования.
На втором этапе из программного обеспечения изымают по меньшей мере один выбранный функциональный фрагмент или программу (если это готовый коммерческий продукт).
В другом варианте реализации, если программа еще находится в процессе компиляции, программист составляет ее таким образом, чтобы она состояла из отдельных модулей, которые не могут быть использованы в качестве полноценного программного обеспечения отдельно друг от друга.
На третьем этапе выбранный фрагмент (модуль) компилируют в машинный код, выполняемый процессором 3. Или же выбранный фрагмент (модуль) могут компилировать в код другого процессора, который может быть выполнен с помощью эмуляции виртуальных машин.
На четвертом этапе в оставшуюся часть программного обеспечения вставляют по меньшей мере одну функцию передачи, которая предназначена для обмена данными с изъятой частью программного обеспечения, после чего указанную оставшуюся часть программного обеспечения компилируют в код, выполняемый процессором ПЭВУ, таким образом, что при достижении программным обеспечением указанной по меньшей мере одной функции передачи ПЭВУ передает устройству для защиты программного обеспечения исходные данные и/или команды, необходимые для обработки изъятой части программного обеспечения, которая хранится в энергонезависимой памяти устройства для защиты программного обеспечения.
Очевидно, что процессор 3 должен быть снабжен инструкциями и/или командами, с помощью которых при получении от ПЭВУ исходных данных он выполняет хранящийся в энергонезависимой памяти изъятый фрагмент программного обеспечения для получения результирующих данных, которые отправляются обратно в ПЭВУ.
На пятом этапе устройство для защиты программного обеспечения с помощью интерфейса 1 или интерфейса 7 соединяют с ПЭВУ или другим программируемым устройством. Соединение могут выполнять через порт передачи данных, шину или беспроводное соединение, как описано выше. Для этой цели
- 10 012921 могут использовать любые доступные средства, обеспечивающие возможность двусторонней передачи данных и/или команд между ПЭВУ и устройством для защиты программного обеспечения, такие как инфракрасный порт мобильного телефона, портативного компьютера и т. д. Скомпилированные модули по меньшей мере одного фрагмента программного обеспечения или программы загружают в память 6 устройства для защиты программного обеспечения. Указанные модули хранятся в той части памяти 6, к которой пользователи программного обеспечения не имеют доступ, и могут быть выполнены только процессором 3 внутри устройства для защиты программного обеспечения.
Дополнительно после загрузки функционального фрагмента программного обеспечения или программы в память 6 может быть выполнена отладка, суть которой заключается в выполнении программного обеспечения с целью исправления.
Ошибки, найденные в процессе отладки находящегося в памяти 6 функционального фрагмента программного обеспечения или программы, надлежащим образом исправляют, после чего фрагмент функционального обеспечения или программу повторно компилируют и снова загружают в память 6.
После отладки на шестом этапе могут активировать средства 5, которые защищает указанный по меньшей мере один функциональный фрагмент программного обеспечения или программу, хранящиеся в памяти 6 в защищенном виде, от чтения, копирования или любого другого воспроизведения с использованием известных способов проникновения.
Ясно, что указанный по меньшей мере один функциональный фрагмент хранится в виде машинного кода, выполняемого только процессором 3, а когда оставшаяся часть программного обеспечения, выполняемая ПЭВУ, достигает по меньшей мере одной вставленной в нее функции передачи, ПЭВУ отправляет исходные данные и/или команды устройству для защиты программного обеспечения, продолжая при этом исполнять другие функции защищенного программного обеспечения. Устройство для защиты программного обеспечения после приема исходных данных выполняет изъятый функциональный фрагмент программного обеспечения в процессоре 3 для получения результирующих данных, которые затем отправляет обратно ПЭВУ. Благодаря этому фрагмент или программу не нужно отправлять в ПЭВУ в открытой форме через каналы передачи данных.
Таким образом, в каждой копии распространяемого программного обеспечения, защищенного согласно настоящему изобретению, не хватает по меньшей мере одного функционального фрагмента программного обеспечения или программы, причем недостающий функциональный фрагмент хранится в защищенном виде в памяти 6 устройства для защиты программного обеспечения согласно настоящему изобретению.
Таким образом, согласно еще одному аспекту настоящего изобретения предлагается защищенный программный продукт, фрагмент или программы которого изъяты и сохранены в защищенном виде в устройстве для защиты программного обеспечения. Программный продукт неработоспособен без устройства для защиты программного обеспечения, а следовательно, не может быть использован несанкционированно.
Таким образом, производители защищенного авторским правом программного обеспечения получают удобный инструмент, обеспечивающий устойчивость их программного обеспечения к хакерским атакам. Использование защищенного согласно настоящему изобретению программного обеспечения возможно только в том случае, если кроме копии программного обеспечения, загруженной из сети или записанной на устройство хранения данных, имеется устройство для защиты программного обеспечения (например, показанный на фиг. 4 программно-аппаратный модуль).
Перед использованием программного обеспечения необходимо присоединить устройство для защиты программного обеспечения к ПЭВУ. В противном случае программное обеспечение выдаст сообщение о том, что устройство для защиты программного обеспечения не удалось обнаружить, и запретит доступ.
Любая попытка перехватить или заблокировать функцию обнаружения устройства для защиты программного обеспечения и откорректировать работу этого устройства через интерфейс информационного обмена или любые другие возможные каналы передачи данных приведет к тому, что выполнение программы будет осуществляться до момента попытки передачи данных устройству для защиты программного обеспечения, вызывающей системную ошибку. Таким образом, программное обеспечение не будет работать нормально, и незарегистрированный пользователь будет получать соответствующее сообщение.
Любая попытка заблокировать передачу исходных данных и/или команд устройству для защиты программного обеспечения и прием результирующих данных от этого устройства, например отмена этих функций и принудительное дальнейшее выполнение программного обеспечения, приведет к некорректной работе, и незарегистрированный пользователь будет получать соответствующее сообщение.
На фиг. 3 показан алгоритм выполнения программного обеспечения, защищенного с помощью устройства для защиты программного обеспечения согласно настоящему изобретению, в вычислительной машине пользователя или другом ПЭВУ, таком как контроллер, персональный компьютер, портативный компьютер и т. п.
Как показано на фиг. 3, на этапе 21 ПЭВУ 20 выполняет первую часть программного обеспечения, находящегося в памяти ПЭВУ, а при необходимости и другие программы.
- 11 012921
Вместо выполнения изъятого функционального фрагмента ПЭВУ на этапе 22 через интерфейс 1 отправляет процессору 3 устройства для защиты программного обеспечения исходные данные и/или команды.
На этапе 23 устройство для защиты программного обеспечения принимает исходные данные и/или команды, на этапе 24 процессор 3 выполняет хранящийся в памяти 6 функциональный фрагмент программного обеспечения, на этапе 25 устройство для защиты программного обеспечения через интерфейс информационного обмена отправляет результирующие данные обратно ПЭВУ, которое принимает результирующие данные на этапе 27 с последующим выполнением оставшейся части программного обеспечения на этапе 28.
Одновременно с этапом 24 ПЭВУ может осуществлять этап 26, на котором оно выполняет другие функции и фрагменты защищенного программного обеспечения.
Таким образом, указанный по меньшей мере один функциональный фрагмент программного обеспечения или программа, хранящиеся в памяти 6 в защищенном виде, могут быть выполнены процессором 3, но во время выполнения программного обеспечения они не могут быть считаны или скопированы из памяти 6.
Согласно настоящему изобретению при необходимости по меньшей мере один функциональный фрагмент программного обеспечения или по меньшей мере одна программа могут быть изъяты из программного обеспечения и сохранены в памяти 6 в защищенном виде.
На фиг. 4 показан пример практической реализации устройства для защиты программного обеспечения, которое выполнено в виде внешнего устройства, подключаемого к порту И8В.
Способ и устройство для защиты программного обеспечения согласно настоящему изобретению представляют собой эффективный инструмент для защиты охраняемого авторским правом и правами на интеллектуальную собственность программного обеспечения от несанкционированного использования, воспроизведения, распространения и исследования.
Предлагаемые способ и устройство для защиты программного обеспечения препятствуют доступу к функционально значимым частям программного обеспечения даже во время его выполнения на ПЭВУ, исключая, таким образом, возможность создания и использования нелегальных копий.
Это достигается путем предотвращения физического доступа по меньшей мере к одной функционально значимой части программного обеспечения, изъятой из коммерчески распространяемого продукта. Более того, указанная функционально значимая часть программного обеспечения всегда недоступна для процессора ПЭВУ и пользователя, а следовательно, не может быть выполнена процессором ПЭВУ, не может через интерфейс информационного обмена быть записана в память ПЭВУ, скопирована на любой носитель или иным способом модифицирована, даже с использованием специальных инструментов или программного обеспечения.
Изъятый функциональный фрагмент программного обеспечения выполняется внутри устройства для защиты программного обеспечения после получения этим устройством исходных данных и/или команд от ПЭВУ. После выполнения указанного фрагмента процессором 3 устройство для защиты программного обеспечения отправляет ПЭВУ результирующие данные, а не сам фрагмент.
Согласно еще одному варианту реализации программное обеспечение, находящееся внутри устройства для защиты программного обеспечения, представляет собой криптографическую программу, причем указанный по меньшей мере один функциональный фрагмент представляет собой криптографический алгоритм.
В одном примере варианта реализации ключи шифрования/дешифрования генерируются внутри устройства для защиты программного обеспечения с использованием программы для генерирования криптографических ключей, причем как программа, так и генерируемые ключи хранятся в защищенном виде в защищенной части энергонезависимой памяти устройства для защиты программного обеспечения.
Ключи шифрования/дешифрования могут генерироваться любым другим ПЭВУ с их последующим надежным сохранением внутри указанного устройства для защиты программного обеспечения.
В этом случае шифрование/дешифрование информации осуществляется внутри устройства для защиты программного обеспечения с использованием сохраненных и защищенных в этом устройстве криптографического ключа и криптографической программы. При распространении программного обеспечения, защищенного согласно настоящему изобретению, вместе с каждой копией программного обеспечения поставляется устройство для защиты программного обеспечения, реализованное, например, в виде программно-аппаратного модуля (фиг. 4) или иного устройства (например, в виде внутренней платы ПЭВУ).
Подобные устройства хорошо подходят для реализации предлагаемого способа защиты программного обеспечения, так как в одном микрочипе содержат и интегрированную энергонезависимую память для сохранения функционального фрагмента программного обеспечения, процессор для выполнения функционально значимой части защищенного программного обеспечения и средства защиты, препятствуя, таким образом, физическому доступу извне к каналам передачи данных между ядром процессора и энергонезависимой памятью.
Специалистам в данной области понятно, что изобретение может быть реализовано и иными спосо
- 12 012921 бами без выхода за рамки его сущности, а описанные в тексте настоящей заявки примеры носят пояснительный, а не ограничительный характер.

Claims (28)

1. Устройство для защиты программного обеспечения от несанкционированного использования, содержащее энергонезависимую память, выполненную с возможностью записи и хранения в ней по меньшей мере одного функционального фрагмента, изъятого из указанного программного обеспечения, процессор для обработки изъятого фрагмента программного обеспечения, хранящегося в указанной энергонезависимой памяти, и интерфейс информационного обмена для обмена данными с программируемым электронновычислительным устройством, что обеспечивает возможность выполнения оставшейся части программного обеспечения, при этом указанный по меньшей мере один фрагмент программного обеспечения хранится в форме кода, выполняемого процессором, и защищен многоуровневыми средствами защиты, содержащими по меньшей мере два активируемых последовательно уровня защиты.
2. Устройство для защиты программного обеспечения от несанкционированного использования, содержащее энергонезависимую память для записи и хранения по меньшей мере одного функционального фрагмента, изъятого из указанного программного обеспечения, память для записи и хранения оставшейся части программного обеспечения, в которую вставлена по меньшей мере одна функция передачи для отправки этому устройству исходных данных и/или команд, запускающих выполнение изъятого фрагмента для получения результирующих данных, и для отправки полученных результирующих данных программируемому электронно-вычислительному устройству, процессор для обработки изъятого фрагмента программного обеспечения, хранимого в указанной энергонезависимой памяти, и интерфейс информационного обмена для обмена данными с программируемым электронновычислительным устройством, что обеспечивает возможность выполнения оставшейся части программного обеспечения, при этом указанный по меньшей мере один фрагмент программного обеспечения хранится в форме кода, выполняемого процессором, и защищен многоуровневыми средствами защиты, содержащими по меньшей мере два активируемых последовательно уровня защиты.
3. Устройство по п.1 или 2, в котором указанный по меньшей мере один функциональный фрагмент программного обеспечения хранится в указанной энергонезависимой памяти в форме кода, выполняемого процессором этого устройства, или в форме кода, выполняемого другим процессором, реализуемым с помощью эмуляции виртуальных машин.
4. Устройство по п.1 или 2, отличающееся тем, что оно выполнено в виде внешнего устройства или внутреннего модуля программируемого электронно-вычислительного устройства, выбранных из группы, включающей программно-аппаратный модуль, печатную плату, печатную плату с программируемой микросхемой, программируемым контроллером или программируемым логическим устройством.
5. Устройство по п.1 или 2, отличающееся тем, что интерфейс информационного обмена выполнен с возможностью соединения этого устройства с программируемым электронно-вычислительным устройством с помощью физических средств передачи данных, включающих кабели, компьютерные порты и шины, или каналов передачи данных, таких как беспроводные каналы передачи данных и т.п.
6. Устройство по п.1 или 2, отличающееся тем, что указанная энергонезависимая память выбрана из группы, включающей энергонезависимую программируемую память, программируемую флэш-память, электрически стираемую программируемую постоянную память, перепрограммируемую память, неперепрограммируемую память, двустороннюю электрически программируемую интегрированную память и т. п.
7. Устройство по п.1 или 2, отличающееся тем, что указанные многоуровневые средства защиты включают следующие уровни защиты:
защиту от считывания, так что любые данные, будучи записанными в указанную память и став ее содержимым, не могут быть считаны из нее, защиту от записи/модифицирования/стирания, так что данные, будучи записанными в указанную память и став ее содержимым, не могут быть модифицированы никаким способом, и защиту от доступа, так что доступ к данным, записанным в указанную память и ставшим ее содержимым, по меньшей мере частично, блокирован, причем указанные уровни защиты применяются поэтапно.
8. Устройство по п.7, отличающееся тем, что защита от записи/модифицирования/стирания обеспечивается защитой с использованием паролей, которая может быть дополнительно усилена путем введе
- 13 012921 ния защиты от подбора паролей.
9. Устройство по п.1 или 2, отличающееся тем, что средства защиты выполнены в виде аппаратных средств, программных средств или программно-аппаратных средств.
10. Устройство по п.1 или 2, отличающееся тем, что оно содержит дополнительный интерфейс программирования указанной энергонезависимой памяти.
11. Устройство по п.10, отличающееся тем, что указанный дополнительный интерфейс программирования объединен с интерфейсом информационного обмена или соединен с указанной энергонезависимой памятью посредством средств информационного обмена.
12. Устройство по п.1 или 2, отличающееся тем, что указанные средства защиты, по меньшей мере частично, блокируют доступ к энергонезависимой памяти, осуществляемый через интерфейс программирования и/или через процессор, или отключает интерфейс программирования.
13. Устройство по п.1, отличающееся тем, что оставшаяся часть программного обеспечения, из которой изъят по меньшей мере один функциональный фрагмент, хранится в той части энергонезависимой памяти, которая не обязательно защищена средствами защиты, или хранится в дополнительной энергонезависимой памяти.
14. Устройство по п.1, которое выполнено с возможностью защиты программного обеспечения, распространяемого с удаленного сервера.
15. Устройство по п.1 или 2, которое выполнено с возможностью защиты программного обеспечения, распространяемого в форме, записанной и хранимой на читаемом программируемым электронновычислительным устройством носителе данных, таком как оптический диск, флэш-память и т. п.
16. Устройство по п.1 или 2, отличающееся тем, что программное обеспечение представляет собой криптографическую программу, а указанный по меньшей мере один функциональный фрагмент представляет собой криптографический алгоритм.
17. Способ защиты программного обеспечения от несанкционированного использования, содержащий этапы изъятия по меньшей мере одного функционального фрагмента из указанного программного обеспечения, без которого остальная часть программного обеспечения будет выполняться в программируемом электронно-вычислительном устройстве неправильно или вообще не сможет выполняться;
записи указанного изъятого функционального фрагмента программного обеспечения в энергонезависимую память устройства для защиты программного обеспечения, причем указанный по меньшей мере один функциональный фрагмент хранится в форме кода, выполняемого процессором, и защищен от считывания средствами защиты, которые могут быть активированы поэтапно; и вставки в оставшуюся часть программного обеспечения функции передачи для отправки устройству для защиты программного обеспечения исходных данных и/или команд, запускающих выполнение изъятого фрагмента для получения результирующих данных, и для отправки полученных результирующих данных программируемому электронно-вычислительному устройству, при этом в качестве устройства для защиты программного обеспечения используют устройство по п.1 или 2.
18. Способ по п.17, согласно которому средства защиты содержимого указанной энергонезависимой памяти активируют перед или после этапа записи указанного по меньшей мере одного функционального фрагмента в указанную энергонезависимую память.
19. Способ по п.18, согласно которому перед активацией средств защиты дополнительно отлаживают указанное программное обеспечение и устраняют обнаруженные ошибки.
20. Способ защиты программного обеспечения, содержащий этапы выполнения части программного обеспечения, из которого изъят по меньшей мере один функциональный фрагмент, в программируемом электронно-вычислительном устройстве и выполнения изъятого по меньшей мере одного функционального фрагмента в устройстве для защиты программного обеспечения, в качестве которого используют устройство по п.1 или 2.
21. Программный продукт, содержащий первую часть, которая предназначена для выполнения программируемым электронновычислительным устройством, из которой изъят по меньшей мере один функциональный фрагмент и в которую вставлена по меньшей мере одна функция передачи данных, и вторую часть, предназначенную для выполнения на отдельном устройстве для защиты программного обеспечения с обеспечением таким образом недоступности второй части программного обеспечения для указанного программируемого электронно-вычислительного устройства, при этом вторая часть содержит указанный по меньшей мере один функциональный фрагмент, изъятый из первой части и хранящийся в защищенном виде в форме кода, выполняемого процессором, в энергонезависимой памяти устройства для защиты программного обеспечения по п.1 или 2.
22. Продукт по п.21, отличающийся тем, что первая часть содержит по меньшей мере один предшествующий блок, который должен быть выполнен перед выполнением изъятого функционального фрагмента, по меньшей мере одну функцию передачи и по меньшей мере один последующий блок, который должен быть выполнен после приема результирующих данных, полученных при выполнении изъятого
- 14 012921 фрагмента на отдельном устройстве для защиты программного обеспечения.
23. Продукт по п.22, отличающийся тем, что указанная по меньшей мере одна функция передачи после запуска выполнения по меньшей мере одного предшествующего блока первой части программного обеспечения передает исходные данные и/или команды устройству для защиты программного обеспечения, тем самым обеспечивая отдельное выполнение второй части программного обеспечения в указанном устройстве для защиты программного обеспечения для получения результирующих данных, передаваемых обратно программируемому электронно-вычислительному устройству для обеспечения возможности выполнения последующего блока первой части программного обеспечения.
24. Продукт по п.21, отличающийся тем, что вторая часть находится в устройстве для защиты программного обеспечения, а первая часть находится на удаленном сервере или на читаемом программируемым электронно-вычислительным устройством носителе.
25. Комплект для безопасного распространения программного обеспечения, содержащий программный продукт, из которого изъят по меньшей мере один функциональный фрагмент, и устройство для защиты программного обеспечения по п.1 или 2, в котором хранится в защищенном виде в форме кода, выполняемого процессором, указанный изъятый по меньшей мере один функциональный фрагмент.
26. Комплект для безопасного распространения программного обеспечения, содержащий читаемый программируемым электронно-вычислительным устройством носитель, на который записана по меньшей мере одна программа, из которой изъят по меньшей мере один функциональный фрагмент, и устройство для защиты программного обеспечения по п.1 или 2, в котором хранится в защищенном виде указанный функциональный фрагмент, изъятый из указанной программы.
27. Способ безопасного распространения программного обеспечения с использованием устройства для защиты программного обеспечения по п.1 или 2, содержащий этапы загрузки в программируемое электронно-вычислительное устройство защищенного программного обеспечения, из которого изъят по меньшей мере один функциональный фрагмент, приобретения устройства для защиты программного обеспечения по п.1 или 2 и его соединения с программируемым электронно-вычислительным устройством и запуска программного обеспечения на программируемом электронно-вычислительном устройстве.
28. Читаемый программируемым электронно-вычислительным устройством носитель с записанным на нем программным продуктом, содержащим такие операторы в программном коде, что при выполнении этого программного продукта на программируемом электронно-вычислительном устройстве обеспечивается исполнение этапов способа по п.17.
EA200802108A 2006-04-27 2007-04-26 Способ и устройство защиты программного обеспечения от несанкционированного использования EA012921B1 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2006114101/09A RU2296363C1 (ru) 2006-04-27 2006-04-27 Способ и средство защиты программного обеспечения от несанкционированного использования
PCT/RU2007/000219 WO2007126341A2 (en) 2006-04-27 2007-04-26 Method and device for protecting software from unauthorized use

Publications (2)

Publication Number Publication Date
EA200802108A1 EA200802108A1 (ru) 2009-08-28
EA012921B1 true EA012921B1 (ru) 2010-02-26

Family

ID=37999272

Family Applications (1)

Application Number Title Priority Date Filing Date
EA200802108A EA012921B1 (ru) 2006-04-27 2007-04-26 Способ и устройство защиты программного обеспечения от несанкционированного использования

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)

Families Citing this family (23)

* 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 軟體授權系統及方法
EP2506174B1 (en) * 2011-03-30 2019-01-09 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
RU2527758C2 (ru) * 2012-10-22 2014-09-10 Федеральное государственное унитарное предприятие "18 Центральный научно-исследовательский институт" Министерства обороны Российской Федерации Способ скрытного хранения конфиденциальных данных в защищенной энергонезависимой памяти и устройство для его реализации
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 深圳竹云科技有限公司 基于虚拟机的应用软件授权方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193987A1 (en) * 1995-07-13 2004-09-30 Sospita As Protection of software code from unauthorized use by executing portions of the code in a secure computer environment separate from the environment that executes the remaining portions of the code

Family Cites Families (22)

* 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
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
US6232792B1 (en) * 1997-06-25 2001-05-15 Sun Microsystems, Inc. Terminating transmission lines using on-chip terminator circuitry
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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193987A1 (en) * 1995-07-13 2004-09-30 Sospita As Protection of software code from unauthorized use by executing portions of the code in a secure computer environment separate from the environment that executes the remaining portions of the code

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEUL M.: "DONGLES: HARDWARE SCHUTZT SOFTWARE", ELEKTRONIK, WEKA FACHZEITSCHRIFTENVERLAG, POING, DE, vol. 39, no. 10, 11 May 1990 (1990-05-11), pages 82-84, 86, XP000117036, ISSN: 0013-5658, abstract, pages 84 and page 86, section "Verfahren III: Codeauslagerung", page 86, section "Verfahren IV: Funktionsauslagerung (Coprozessor)" *

Also Published As

Publication number Publication date
WO2007126341A3 (en) 2008-04-17
WO2007126341A2 (en) 2007-11-08
EP2082352A2 (en) 2009-07-29
RU2296363C1 (ru) 2007-03-27
EA200802108A1 (ru) 2009-08-28
US20090094601A1 (en) 2009-04-09

Similar Documents

Publication Publication Date Title
EA012921B1 (ru) Способ и устройство защиты программного обеспечения от несанкционированного использования
White ABYSS: ATrusted Architecture for Software Protection
KR100896625B1 (ko) 숨겨진 중간 키들을 사용하여 소프트웨어를 인증하기 위한시스템 및 방법
KR100851631B1 (ko) 보안 모드 제어 메모리
US20020083318A1 (en) Method and system for software integrity control using secure hardware assist
US20030120938A1 (en) Method of securing software against reverse engineering
US20050060568A1 (en) Controlling access to data
US20040078585A1 (en) Protecting software from unauthorized use by applying machine-dependent modifications to code modules
EP1423771A1 (en) Method to protect software against unauthorized use
GB2404536A (en) Protection of data using software wrappers
JP2003330560A (ja) デジタル権利管理(drm)システムを使用するソフトウェアアプリケーションの保護のための方法および媒体
US20110271350A1 (en) method for protecting software
US20130283396A1 (en) System and method for limiting execution of software to authorized users
US20080263542A1 (en) Software-Firmware Transfer System
CN107832589A (zh) 软件版权保护方法及其系统
US8479014B1 (en) Symmetric key based secure microprocessor and its applications
CN102982262A (zh) 用于开发的操作系统的安全机制
US20060242082A1 (en) Method and system for protecting of software application from piracy
US10789338B2 (en) Software algorithm security
RU68149U1 (ru) Мобильное устройство защиты программного обеспечения и персональных данных от несанкционированного доступа
RU2159953C1 (ru) Способ защиты программного обеспечения
US20240064026A1 (en) Method and device for controlling access to a resource
KR100298506B1 (ko) 집적회로카드와프로그램의공조에의한불법설치방지시스템
US20050210274A1 (en) Apparatus and method for intellectual property protection using the microprocessor serial number
CN112446055A (zh) 一种嵌入式电子电路设备防复制的方法

Legal Events

Date Code Title Description
MM4A Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s)

Designated state(s): AM AZ BY KZ KG MD TJ TM RU