Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Иванов Разрушаюсчие программные воздействия 2011

.pdf
Скачиваний:
5
Добавлен:
12.11.2022
Размер:
2.56 Mб
Скачать

Рис. 2.15. Схема алгоритма формирования цифровой подписи

Поскольку качественная псевдослучайная последовательность практически не отличима от истинно случайной, ни владелец устройства, ни сторонний наблюдатель не сможет выявить наличие «закладки».

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

Если же в каждый экземпляр устройства при производстве «прошивать» индивидуальный ключ, с помощью которого будет формироваться ПСП, то для восстановления секретного ключа

61

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

r, s [1, n - 1]?

да

e := H(m)

w := s-1(mod n)

u1 := ew(mod n), u2 := rw(mod n)

нет

(x1, y1) := u1G + u2QA

x1 = r(mod n)?

да

Подпись принимается

нет

H(x) – хеш-функция

SHA-1

нет

Подпись отвергается

Рис. 2.16. Схема алгоритма проверки цифровой подписи

Рассмотрим механизмы клептографических атак на ECDSA.

62

Пусть зашифрованный ключ генератора, который необходимо скрыто передать, имеет размер 320 бит. Если каждая подпись будет содержать 2 бита шифротекста, то для передачи всего шифротекста потребуется 160 подписей, выполненных последовательно на одном и том же устройстве. Однако даже если будет получена не вся информация, недостающую часть ключа можно будет восстановить путем перебора.

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

Данный способ построения скрытого канала предельно прост, однако обладает существенным недостатком: статистические свойства двух выбранных разрядов подписи изменяются. Для устранения этого недостатка достаточно фиксировать два разряда не в самой подписи, а, например, в ее MAC-коде. Аналогичным образом можно скрывать в подписи не ключ, а биты идентификатора генератора. Например, если выпущен 1 млн устройств, то десяти подписей, сделанных последовательно на одном и том же устройстве, достаточно для восстановления ключа генератора.

Модифицированный алгоритм формирования подписи представлен на рис. 2.17.

Схема алгоритма атаки на ECDSA показана на рис. 2.18. Такой вид клептографических атак применим практически к

любой криптосистеме, содержащей генератор ПСП.

2.4.Внедрение троянской компоненты

валгоритм Эль-Гамаля

Криптосистема Эль-Гамаля – это криптосистема с открытым ключом, стойкость которой основана на вычислительной сложности задачи логарифмирования целых чисел в конечных полях.

Для генерации пары ключей сначала выбирается простое число p и два случайных числа g (примитивный элемент) и d, кото-

63

рые должны быть меньше p. Затем вычисляется число e = g d mod p . Открытым ключом являются e, g и p. Секретным

ключом является d.

Схема стандартного алгоритма генерации ключей по схеме Эль-Гамаля представлена на рис. 2.19.

Схема модифицированного алгоритма генерации ключей представлена на рис. 2.20.

e := H(m)

k - случайное, k [1, n - 1]

r := x1(mod n),

где (x1, y1) = kG

да

r = 0?

нет

s := k-1(e + dAr)(mod n)

да

s = 0?

нет

M := MAC(r : s)

нет

M|2 = h?

да

H(x) – хеш-функция

SHA-1

Младшие 2 бита MAC-кода подписи совпадают с битами, которые необходимо передать?

Рис. 2.17. Схема модифицированного алгоритма вычисления цифровой подписи

64

Рис. 2.18. Схема алгоритма атаки на ECDSA

Формирование простого p

Формирование случайного d, 1 < d < p, НОД(d, p - 1) = 1

Формирование g,

g - примитивный элемент

e := gd mod p

Рис. 2.19. Схема стандартного алгоритма генерации ключей для криптосистемы Эль-Гамаля

Модифицированный алгоритм генерации ключей имеет следующий вид.

Выбирается простое число p, затем выбирается секретное случайное число d и вычисляется g =E(d), где E(x) – функция

65

шифрования разработчика. Если g – примитивный элемент, то вычисляется e = gd mod p , если нет – выбирается новое d.

С помощью своей секретной функции D(x), обратной E(x), разработчик получает доступ к секретному ключу пользователя: d = D(g).

2.5. Клептографическая атака на алгоритм выработки общего секретного ключа Диффи-Хеллмана

Алгоритм Диффи-Хеллмана (DH) – алгоритм, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания, но защищенный от подмены канал связи. Этот ключ может быть использован для последующего шифрования данных с помощью симметричного криптоалгоритма.

Предположим, что обоим участникам протокола (абонентам А и В) известны некоторые два несекретных числа g – примитивный элемент конечного поля и p – простое число. Тогда схема протокола DH будет иметь вид, показанный на рис. 2.21.

Криптосхема (устройство абонента А) проектируется таким образом, что после первого разделения секретного ключа между абонентами А и В доступ к секрету получит разработчик.

Схема атаки следующая.

1. Первая выработка общего ключа:

- абонент А посылает y A1 = g xA1 mod p абоненту B; - устройство абонента А запоминает xA1 ;

- абонент B посылает yB1 = g xB1 mod p абоненту А; - абоненты А и B вычисляют K1 = g xA1xB1 mod p . 2. Вторая выработка общего ключа:

-устройство абонента А вычисляет значение числа

xA2 = H(ID : yA1), где H(x) – хеш-функция, ID – идентификатор

устройства;

- абонент А отправляет yA2 = g x A2 mod p абоненту B;

66

- абонент B отправляет yB2 = g xB2 mod p абоненту А;

-абоненты А и B вычисляют K2 = g xA2 xB 2 mod p .

3. Кража второго общего секретного ключа:

-атакующий вычисляет xA2 = H(ID: yA1);

-атакующий вычисляет K2 = yB2 xA2 mod p .

Таким образом, атакующий раскроет t из t + 1 разделяемых секретных ключей.

Рис. 2.20. Схема модифицированного алгоритма генерации ключей по схеме Эль-Гамаля

67

Рис. 2.21. Схема выработки общего секретного ключа DH

2.6. Защита от клептографических атак

Можно перечислить общие рекомендации по защите от недекларированных возможностей в реализации криптосистемы:

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

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

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

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

68

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

Выводы

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

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

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

69

Контрольные вопросы

1)Что такое клептографическая атака на криптоалгоритм?

2)Какие криптоалгоритмы могут являться объектом клептографической атаки?

3)Приведите пример клептографической атаки на криптоалгоритм RSA.

4)Как можно защититься от клептографической атаки?

5)Опишите клептографическую атаку на криптосистему ЭльГамаля.

6)Опишите возможную клептографическую атаку на генератор ПСЧ.

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]