Файл: Разработка схемы защиты компьютерных программ.docx

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 28

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Лицензия программы может привязываться к некоторому физическому объекту, к примеру:

Юридические средства защиты

Согласно законодательству, программный код приравнивается к литературным произведениям, и к нему применяются все соответствующие нормативные акты. В контексте защиты ПО используется следующая терминология:

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

Организационные средства защиты

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

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

Недостатки технических методов защиты ПО

Уязвимости современных методов защиты ПО

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

Использование автоматических средств защиты

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

Это одна из фундаментальных проблем технических средств защиты. Заключается она в том, что система защиты неизбежно создаёт пользователю неудобства, и потому, с точки зрения пользователя, взломанная программа в каком-то смысле лучше, чем оригинальная. Например:

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



Несмотря на наличие всего комплекса законодательных и правовых мер по защите авторских и смежных прав на интеллектуальную собственность, ситуация с пиратским рынком программного обеспечения (ПО) оставляет желать лучшего. Согласно исследованиям компании, IDC Inc., занимающейся изучением мирового рынка информационных технологий и телекоммуникаций, уровень пиратства в России в 2015 г. составил 62 % [1]. Несмотря на то, что эта цифра каждый год снижается, для производителей коммерческого ПО это означает огромную недополученную прибыль. Подобная проблема существует не только на отечественном рынке, но и во всем мире. Для ее устранения используются различные системы защиты программного обеспечения (СЗПО), которые получили широкое распространение и находятся в процессе постоянного развития, благодаря глубокой интеграции информационных технологий в общество. Необходимость использования СЗПО обусловлена рядом причин, среди которых может быть: заимствование кода программы, являющейся интеллектуальной собственностью автора, для написания аналогов продукта; несанкционированная модификация программы, с целью внедрения в ее код вредоносного ПО; незаконное копирование и распространение ПО и т. п.


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

Классификация СЗПО

Системы, встраиваемые в исходный код ПО до компиляции, неудобны для производителя ПО, так как возникает необходимость обучать персонал работе с программным интерфейсом СЗ с вытекающими отсюда денежными и временными затратами. Кроме того, усложняется процесс тестирования ПО и снижается его надежность, так как кроме самого ПО ошибки может содержать API СЗ или процедуры его использующие. Однако такие системы являются более стойкими к атакам, поскольку здесь исчезает четкая граница между СЗ и ПО как таковым [2–4].

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

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

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

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

К основным защитным механизмам, используемым комбинированными системами, относятся:

Основные термины (генерируются автоматически): система, API, IBM, IDC, исходный код, мера выполнения, программное обеспечение, система команд.




По статистике, приведенной в исследовании 2018 BSA Global Software Survey:

  • Нелицензированное (пиратское) ПО составляет 37% от всего объема программного обеспечения, установленного на персональных ПК по всему миру.

  • Стоимость контрафактного ПО оценивается в $46 млрд.

  • Malware, которыми заражены многие пиратские программы, загружаемые из сторонних источников, обходятся бизнесу в $359 млрд в год.

  • Потери от взлома лицензионного ПО составляют порядка $600 млрд ежегодно.

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

Что касается доходов, то по данным BSA бизнес, который решит серьезно отнестись к защите своих программных продуктов, может рассчитывать на повышение прибыли примерно на 11% (впрочем, важно понимать, что это среднее значение).

Но что можно сделать для защиты своего ПО?

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

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

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

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

Ключевые элементы защиты

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

Еще раз подчеркнем важность выбора адекватной защиты. Если вы собираетесь защитить свой велосипед методом, который применяется в Форт-Ноксе, это вряд ли можно назвать разумным. Есть и обратная зависимость: если хотите защитить Форт-Нокс, не используйте для этого велосипедный замок, это бесполезно, взлом гарантирован. В целом, стратегия лицензирования должна соответствовать цене самого продукта.


Виды защит

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

Офлайн-программная защита

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

Онлайн-программная защита

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

При желании можно добавить опции проверки ПО: как используется, есть лицензия или нет. Если требуется постоянное подключение к сети, то продукт, скорее всего, будет работать не всегда и не везде.

Степень серьезности такой защиты — между средним и высоким уровнем.

Аппаратная защита

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

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

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

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


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