Пиши Дома Нужные Работы

Обратная связь

Алгоритмы и протоколы реализации функции цифровой подписи

 

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

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

  • идентификатор пользователя;
  • дата и время создания подписи;
  • массив, полностью соответствующий открытому сообщению, для подтверждения подлинности информации.

. Для сокращения времени подписывания и размера цифровой подписи при формировании третьего элемента используются так называемые функция хэширования или хэш-функции (hash function). Функцией хэширования называется функция, преобразующая сообщение М в сообщение Н (М) фиксированного малого размера. Пользователь, получивший сообщение заново вычисляет хэш-функцию и сравнивает ее значение со значением, соответствующего элемента цифровой функции.



Криптографические хэш-функции подразделяются на два класса: с ключом и без ключа. Значение хэш-функции с ключом может вычислить лишь тот, кто знает некоторый секретный параметр-ключ. Такие функции называются МАС - кодами аутентификации сообщений (стандарт FIPS PUB 113-1985 (МАС)). Российским аналогом этого американского стандарта может служить режим имитоприставки в ГОСТ 28147-89.

Хэш-функцией с ключом (зависящей от ключа) называется функция, имеющая следующие свойства:

• Функции Н(к,х) должна быть известна, а секретная информация должна представлять собой ключ к;

• Аргумент х функции Н(к,х) может быть строкой чисел произвольной длины, а значение функции должно быть строкой чисел фиксированной длины.

• При любых данных к и х вычисление Н(к,х) должно быть достаточно быстрым;

• По любому данному х должно быть трудно угадать значение Н(к,х). Должно быть трудно определить ключ к даже по большому числу известных пар [х, Н(к,х)].

В стандарте FIPS PUB 113-1985 хэш-функция с ключом построена на основе блочного стандарта шифрования DES с ключом из 56 бит. Хэш-функцнн без ключа называются MDS - код определения манипуляции. Они в свою очередь подразделяются на два подкласса: слабые однонаправленные хэш-функцнн и сильные однонаправленные хэш-функции.

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

  1. По открытому ключу. Злоумышленник знает только открытый ключ.
  2. По открытому ключу и сообщению. Злоумышленник знает открытый ключ и может наблюдать случайные пары (сообщение/подпись).
  3. По выбранным сообщениям. Злоумышленник может получить подписи к сообщениям выбранным им лично.

Различают несколько уровней по степени раскрытия схемы подписей:

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

• 'Выборочное подделывание. Злоумышленник подделывает подпись некоторого сообщения, по своему выбору.

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

• Полное раскрытие схемы подписи. Злоумышленник может вычислить секретный ключ подписывающего.

 

Программно-аппаратная форма защиты

Интеллектуальной собственности

 

Методы защиты от исследования логики работы

Исполняемых модулей

 

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

1. Статическая форма предусматривает использование дизассемблеров различного уровня анализа кода программы. Особенно опасны так называемые "умные" дизассемблеры, которые пытаются оформить ассемблерный текст в виде сочетая подпрограмм, процедур и других структур. Это существенно облегчает процесс последующего исследования логики работы исполняемых модулей.

Существуют следующие методы защиты от дизассемблирования:

  1. шифрование
  2. использование самогенерируемых кодов
  3. "обман" дизассемблера

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

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

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

  1. использование нестандартной структуры программы;
  2. скрытые переходы, вызовы подпрограмм и прерываний и выходы из них;
  3. переходы и вызовы подпрограмм по динамически изменяемым адресам;
  4. модификация исполняемых кодов.

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

Второй способ заключается в нестандартной реализации некоторых операторов.

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

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

2. Динамическая форма атаки предусматривает использование отладчиков. Проблема защиты заключается в обнаружении факта работы программы под отладчиком. Для этого могут использоваться следующие механизмы:

1.Блокировка отладочных прерываний. Метод защиты зависит от того, восстанавливает ли отладчик среду своего функционирования. Эта функция заключается в переопределении отладчиком текущих векторов 1 и 3 на стандартный либо свой собственный обработчик. При восстановлении среды функционирования отладчиком защита заключается в перехвате отладочных прерываний. Если в процессе выполнения защищенной программы при вызове отладочного прерывания управление получает ее собственный обработчик, то программа функционирует не под отладчиком. В противном случае необходимо предпринять меры, препятствующие отладке. Пример отладчика – Turbo Debugger. Если отладчик не восстанавливает среду функционирования, то обработчики отладочных прерываний программы могут состоять из одной команды RET или выполнять какие-либо действия, фиксирующие факт работы программы под контролем отладчика. Пример отладчика - Debug.

2.Блокировки прерываний от клавиатуры. В ходе трассировки программы необходимо нажимать на клавиши для перехода к очередной команде. Это можно использовать для блокировки отладчика. Так если отладчик не восстанавливает среду функционирования, то достаточно запретить клавиатурное прерывание при выполнении определенного участка программы (например, начало программы или наиболее важный ее участок). Запретить клавиатурное прерывание можно либо написать свой обработчик вектора 9, либо использовав порт контроллера прерываний 21h. При восстановлении отладчиком среды функционирования можно применить метод, описанный для блокировки отладочных прерываний контролируя при этом вектор 9.

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

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

 






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.