ВУЗ:
Составители:
24
Поскольку ключ шифрования каждого ключа HASP является
уникальным, процесс дешифровки также будет уникальным. Подобный процесс
является серьезным препятствием для копирования содержимого памяти одного
ключа HASP на другой ключ, поскольку ID-номер HASP не может быть
скопирован. Память «поддельного» ключа HASP дешифруется с
использованием неверного ключа, что приводит к неверным результатам
дешифровки.
4.6. Проверка контрольной суммы
программного кода
Проверка контрольной суммы программного кода позволяет
определить, вносились ли изменения в защищаемое приложение или нет.
Для осуществления простейшей проверки контрольной суммы
необходимо:
1. Вычислить контрольную сумму.
2. Сравнить ее с верным значением.
3. Если суммы не сходятся, то предусмотреть появление сообщения об
ошибке. В противном случае программа должна продолжать работать
нормально.
К сожалению, данная техника защиты подвержена нескольким типам
попыток взлома:
1. Программный код может быть изменен, а процедура проверки
контрольной суммы устранена.
2. Возможно программирование выдачи корректного результата
проверки.
Для этого взломщики обычно определяют алгоритм расчета
контрольной суммы и используют различные техники изменения программного
кода для компенсации изменений количества байтов.
Методом защиты от этой атаки является отсутствие операции
сравнения результата проверки контрольной суммы с рассчитанным заранее
значением. Вместо этого можно использовать результаты проверки
контрольной суммы для выполнения действия, которое приводит к
возникновению ошибки, если был получен неверный результат расчета.
Например, можно сохранить результат контрольной суммы в виде переменной и
использовать ее
в последствии в качестве ключа для дешифровки определенных
данных. Такой подход предпочтительнее тем, что эталонная контрольная сумма
не хранится в явном виде в самом защищаемом приложении.
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »