Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПАЗИ.docx
Скачиваний:
13
Добавлен:
25.04.2019
Размер:
147.65 Кб
Скачать

19. Виды защиты от несанкционированного копирования программ. Программно-аппаратная защита от копирования программ.

Виды защиты от несанкционированного копирования программ Защита с помощью серийного номера. Предполагается наличие уникального номера в каждом экземпляре программы. При размножении программы в нее заносится её порядковый номер, который затем проставляется на регистрационной карточке продажи этой программы конкретному покупателю. При обнаружении копии программы у незарегистрированного пользователя можно найти источник похищения программы и даже проследить цепочку. Такой способ отлично работает, если есть соответствующее законодательство. По идеологии защита с использованием серийного номера близка к защите с помощью пароля. Использование технических отличий в машине для программной защиты. Как правило, каждая модель ПЭВМ имеет свои индивидуальные особенности. Это можно использовать для проверки уникальности компьютера, на котором установлена программа. • Тактовая частота работы ПК имеет различия, доходящие до ±0,001 и даже ±0,01 МГц. Если точно измерить частоту, можно проверить уникальность ПЭВМ. • ППЗУ одинаково только для машин одного класса одной и той же фирмы. Поэтому подсчет контрольной суммы ПЗУ, либо ППЗУ (BIOS в ПЭВМ) может ограничить использование программы одной модификацией машины данной фирмы. • При копировании программа записывается в произвольное место на диске. Если не узнать, на какие физические секторы произведена запись, практически невозможно перенести программу на другой диск. • Специальная обработка конкретного бита на диске. При нормальном чтении диска происходит анализ: если есть магнитный сигнал, – 1, нет – 0. А если сигнал слабый? Тогда считывание десять раз дает, допустим, три раза 1, а семь раз – 0. Можно записать такой слабый сигнал, а потом проверять его. Программно-аппаратная защита от копирования программ Обычно процесс установки защищенного от копирования программного продукта завершается настройкой программного продукта на параметры используемого компьютера. Это необходимо для того чтобы защищенный от копирования программный продукт стало невозможно перенести на другой компьютер. Существует несколько методов настройки установленного программного обеспечения на конкретный компьютер: • привязка файлов программного продукта к их физическому расположению на диске (метод основан на том, что при восстановлении файлов на другом компьютере они будут располагаться в других секторах диска); • запись в неиспользуемый участок последнего кластера, распределенного файлу, контрольной информации (при выгрузке и восстановлении файлов эти неиспользуемые участки файлов пропадают); • привязка программы к конкретной версии BIOS, при этом используется дата трансляции BIOS и метод контрольных сумм; • проверка производительности отдельных подсистем компьютера. Защита же от несанкционированного копирования установочных программ так или иначе сводится к проверке каких-то специфических условий или параметров наличной аппаратуры или носителей информации. Самым "естественным" способом использования аппаратуры для защиты программ от несанкционированного копирования является широкое использование особенностей оборудования при написании программы. Эта "естественность", однако, может входить в противоречия с требованиями универсальности и простоты тиражирования программного обеспечения. Подобная защита строится по типу "черного ящика". Оборудование определенным, но уникальным образом программируется; соответственно изменяется и код программы в определенных местах; в некоторых точках программы происходит обращение к оборудованию с известными программе параметрами; оборудование возвращает какие–то данные, которые используются, например, для построения кода какого–то участка программы. Такая схема трудна для "вскрытия", поскольку невозможно установить по данным, передаваемым оборудованию, и по данным, получаемым от него в ответ, что за программа работает внутри. Сравнение разных копий дает мало информации для понимания происходящего (как правило, разные копии "зашумлены" случайными изменениями, чтобы еще более затруднить поиск реальных отличий). Локальный характер обращений к оборудованию позволяет ни в один момент не строить всего исполняемого кода. Обычные вопрос, стоящие при построении таких систем защиты: обеспечение независимого функционирования оборудования, легкость монтажа и демонтажа. Первоначально такая аппаратура размещалась внутри компьютера. Так, ранние версии Novell защищались с помощью keycard, вставлявшейся в разъем шины сервера. Сейчас же одним из самых надежных способов реализации такой защиты является использование электронных ключей. Эти компактные устройства обычно устанавливаются на порты компьютера (параллельный ил последовательный), но существуют также решения для шины USB или для установки в слот ISA. Существует огромное множество вариаций электронных ключей, совместимых со всеми сетевыми средами, операционными системами (в том числе UNIX) и предназначенными для различных интерфейсов (в том числе для Macintosh ADB-порта, USB, японского стандарта Centronics36 и других). При использовании ключа защищенное программное обеспечение "привязывается" не к конкретному компьютеру, а именно к ключу. Поэтому на практике пользователь может взять ключ с собой и продолжить работу с защищенными данными, скажем, на домашнем компьютере. В основе электронных ключей лежат ASIC-процессоры (Application Specific Integrated Circuit). Так, например, современный ASIC-чип, разработанный инженерами компании Aladdin, производится по 1,5-микронной Е2-технологии и содержит более 2500 вентилей на кристалле. По информации производителей электронных ключей (Aladdin, Rainbow), эти устройства, устанавливаемые на порты компьютера, "прозрачны" для периферийного оборудования и не мешают его работе. Многие электронные ключи позволяют осуществлять их каскадирование (подсоединение несколько устройств друг к другу, образуя цепь длиной 10 и более ключей). Электронные ключи, входящие в состав аппаратно-программной инструментальной системы серии Aladdin HASP, не содержат элементов питания, имеют до 496 байт EPROM-памяти, доступной для чтения и записи, и возможность генерации уникальной серии кодов с использованием функции y=f(x), где х – отправляемое в ключ целое число в диапазоне от 0 до 65 535, а у – возвращаемые четыре целых числа из того же диапазона. Система HASP предоставляет широкий выбор различных методов защиты: С использованием защитного "конверта" (Envelope) для уже готовых DOS и 16/32-разрядных Windows-приложений без вмешательства в исходный код программы. Защищаются программные файлы (в том числе и содержащие внутренние оверлеи). Тело программы кодируется, и в нее добавляется специальный модуль, который при запуске защищенной программы перехватывает управление. С использованием функций API. Программа может осуществлять вызовы функции обращения к ключу из многих мест; результаты могут быть разбросаны по всему телу программы или библиотек DLL и хорошо замаскированы. Встраивание в программу вызовов API требует от разработчика некоторых усилий при программировании и модернизации программы.