Защита программного обеспечения от копирования

Фактически, «защита от копирования» — это создание средств, дающих возможность «защиты от несанкционированного выполнения»: программу можно переписать, но она не будет выполняться. Системы защиты от копирования можно разделить на следующие группы:

—привязка к дискете;

—привязка к компьютеру;

—привязка к ключу;

—опрос справочников;

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

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

Третий способ — использование ключей, подключаемых к СОМ, LPT или USB портам.

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

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

«Привязка» программы к дистрибутивной дискете путем описанных ранее способов защиты несет в себе большое неудобство для пользователя, связанное с необходимостью работы только со вставленной в дисковод оригинальной дискетой. Гораздо удобнее иметь необходимый программный продукт, записанным на жесткий диск. Поэтому необходимо, чтобы контролирующая часть защищаемой программы «запомнила» свой компьютер и потом при запуске сравнивала имеющиеся характеристики с характеристиками , «родного» компьютера. В случае их расхождения можно считать, что программа незаконно скопирована, и прервать ее выполнение. \ Для этого надо найти какие-то параметры, которые бы индивидуально характеризовали каждую вычислительную систему. На самом деле это весьма сложная задача, поскольку открытая архитектура построения персональных компьютеров подразумевает их обезличенность.

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

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

—времени (или периоду) его эксплуатации;

—количеству запусков.

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

Еще одним способом ограничить использование программного обеспечения является введение счетчика запусков.

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