Защита от спама. AGAVA SpamProtexx.

       КОМПЬЮТЕРНАЯ  
           ЗАЩИТА
 

     СЕКРЕТНОСТЬ КЛЮЧА ЗАЩИТЫ  

ГЛАВНАЯ  СТРАНИЦА

Угрозы  безопасности

Системы  обнаружения
атак  сетевого  уровня
Системы  обнаружения
атак  системного  уровня
Защита  от  удаленных  атак
в  сети  Internet
Административные   методы
з
ащиты   в  сети  Internet
ППрограммно-аппаратные
методы   защиты  в  Internet
Рынок  систем  безопасности
Лидеры  на  рынке
систем  безопасности
Вирусы  в  сети  Internet
Защита  информации  на
персональном  компьютере
Информационная
безопасность  в  Intranet
Меры  процедурного  уровня
Фильтрация  информации
Безопасность
программной  среды
ы
Виртуальные  частные  сети
Задачи  информационной
безопасности
Избыточная  защита
Оценка 
эффективности  защиты
Криптография  как  наука
Модели
криптоаналитических  атак
Криптография
для  программиста
Актуальные  задачи
защиты  программ

Аппаратные ключи защиты

Стеганографическая
защита  информации

Ослабление
средств  защиты

Исследования  
средств  защиты

Концепции безопасности

Защита  компьютера  от  несанкционированного доступа

Защита  компьютера 
от  сбоев

Безопасность  
в  сети  Интернет

Атаки  из  сети  Интернет

 

 

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

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

В рекомендациях по защите программ с помощью аппаратных ключей даются советы, как сделать фиктивные запросы со случайными данными так, чтобы затруднить построение эмулятора. Однако если программа при запуске делает 100 запросов, результат которых может быть проверен, и 100 случайных запросов, результат которых не проверяется, то, запустив программу 10 раз, очень легко выделить действительные запросы, повторившиеся 10 раз, и отсечь все фиктивные, встретившиеся по 1—2 раза. Конечно, не стоит всегда проверять наличие ключа выполнением одной и той же серии запросов с проверкой. Лучше выполнять проверки в разных частях программы и в разное время. Это может значительно усложнить сбор статистики для отсечения фиктивных запросов. Но не стоит забывать, что противник может проанализировать программу и попытаться в дизассемблере найти все обращения к ключу. Это поможет ему выяснить, ответы на какие из запросов проверяются, и построить компактную таблицу для эмуляции.

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

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

Но как таймер может помочь усилить защищенность? Ключи HASP Time предоставляют возможность узнавать текущее время, установленное на встроенных в ключ часах. И защищенная программа может использовать ключ для того, чтобы отследить окончание тестового периода. Но очевидно, что эмулятор позволяет возвращать любые показания таймера, то есть, аппаратная часть никак не повышает стойкость защиты. Хорошей комбинацией является алгоритм, связанный с таймером. Если алгоритм может быть деактивирован в определенный день и час, очень легко будет реализовывать демонстрационные версии программ, ограниченные по времени.   (продолжение)