- •1. Основные принципы и понятия используемые при защите информации.
- •2.Перестановочный шифр.
- •Пример (шифр Древней Спарты)
- •3.Подстановочный шифр.
- •4. Понятие потокового шифра,основные характеристики потокового шифра.Вариант потокового шифра в системе gsm(стандарт а5/1).
- •Классификация поточных шифров
- •Синхронные поточные шифры
- •Самосинхронизирующиеся поточные шифры
- •Достоинства госТа
- •Критика госТа
- •Возможные применения
- •9. Схема Deffie-Hellmana
- •10. Основные принципы несимметричных алгоритмов. Алгоритм упаковки рюкзака
- •11 Алгоритм rsa
- •12. Алгоритм Эль Гамаля
- •14. Электронная подпись rsa
- •15. Электронная подпись Эль Гамаля
- •16. Понятие многоуровневой защиты информации. Вариант ее реализации.
- •17. Китайская теорема об остатках
- •18. Метод множителей Лагранжа
- •19. Система выработки общего ключа
- •20. Слепая подпись
- •21. Протокол аутентификации без разглашения
- •Принцип работы
- •Сравнение с некоторыми типами алгоритмов
- •22. Протокол ssl
- •История и развитие
- •Применение
- •Основные цели протокола в порядке приоритетности
- •Аутентификация и обмен ключами
- •25. Квантовая криптография
- •26. Криптография на эллиптических кривых. Основные принципы и свойства.
- •27. Правовые аспекты защиты информации
- •28. Стенография( тайнопись). Основные принципы и методы.
- •29. Безопасность сенсорных сетей. Протоколы установки группового ключа
- •30. Безопасность rfid. Проблемы анонимности и защиты покупателя
- •31. Безопасность Windows nt/2000/xp
- •33. Защита информации от несанкционированного использования и копирования.
Принцип работы
Введем обозначения, необходимые для рассуждения:
-
q и N = 2q + 1 выбираются так, что N и q простые. N должно быть достаточно большим, чтобы дискретное логарифмирование по модулю N было практически неосуществимо.
-
Вся арифметика выполняется по модулю N (поле ).
-
g — генератор мультипликативной группы
-
k — параметр, получаемый на обоих сторонах, например, k = H(N, g) в ревизии 6а (в ревизии 6 k было постоянным и равно 3).
-
s — соль
-
I — идентификатор пользователя в системе сервера (username).
-
p — пароль пользователя, соответствующий I.
-
H() — криптографическая хеш-функция, например, SHA-256
-
x — секретный ключ, x = H(s, p).
-
v — верификатор пароля на стороне сервера, v = gx.
-
u — произвольный параметр для кодирования.
-
a,b — секретные одноразовые числа
Понятия пароля и верификатора соответствуют общепринятым понятиям секретного и открытого ключей, с двумя оговорками: пароль, как правило, меньше секретного ключа, так как его помнит пользователь, а память у него небольшого размера; в свою очередь, верификатор по математическим свойствам схож с открытым ключом, так как он легко получается из пароля, а обратная операция является вычислительно неразрешимой. Однако вместо того, чтобы быть общеизвестным, верификатор хранится сервером в тайне. Способ аутентификации, который предполагает хранение сервером верификатора, но не пароля, называется основанным на верификации(verifier-based).
Из исходных параметров вычисляются A,B (см. ниже). Сервер хранит пароли, используя следующую формулу:
-
x = H(s, p) (s выбирается произвольным образом)
-
v = gx (вычисление верификатора пароля)
После этого сервер хранит пару (I, s, v) в своей базе данных. Аутентификация происходит по следующей схеме:
-
Клиент -> Сервер: I, A = ga (идентифицируется, a — произвольное)
-
Сервер -> Клиент: s, B = kv + gb (посылает сохраненное s, произвольное b)
На обоих сторонах: u = H(A, B) На стороне клиента:
-
x = H(s, p) (пользователь вводит пароль)
-
S = (B — kgx)(a + ux) (вычисляется ключ сессии)
-
K = H(S) (K — это искомый ключ для шифрования)
На стороне сервера:
-
S = (Avu)b (вычисление ключа сессии)
-
K = H(S) (K — это искомый ключ для шифрования)
Теперь обе стороны имеют общий секретный ключ K. Для завершения аутентификации, им необходимо свериться, что их ключи совпадают. Один из возможных способов:
Клиент -> Сервер: M = H(H(N) xor H(g), H(I), s, A, B, K) и проверка на стороне сервера
Сервер -> Клиент: H(A, M, K) и проверка на стороне клиента
Сравнение с некоторыми типами алгоритмов
Речь пойдет о простых типах алгоритмов аутентификации и их уязвимостях в сравнении с данным, что покажет преимущества SRP.
Самый простой способ аутентификации — передача незашифрованного пароля от клиента к серверу, после чего сервер сравнивает полученный пароль или его хеш с элементом базы данных. Очевидный недостаток — уязвимость к прослушиванию.
Модифицируя первый алгоритм, получаем аутентификацию с запросом и подтверждением (challenge-responce), где обмен происходит так:
-
Клиент — Сервер: username+r, где r — произвольный текст
-
Сервер — Клиент: с, где с — произвольный текст (challenge)
после этого клиент вычисляет хеш от трех величин: r, c, password, и посылает его обратно. Данный метод уязвим к перебору, так как злоумышленник, имея r, c, hash, может подобрать пароль клиента.
Анализируя первые два алгоритма, можно прийти к третьему, который защищен и от перебора по словарю. Семейство таких протоколов называется EKE. Суть этого алгоритма в том, что обе стороны генерируют свои открытые ключи для асимметричного шифрования, и обмениваются или с помощью симметричного алгоритма, используя известный обоим пароль пользователя как ключ. Данное семейство протоколов имеет широкое распространение, с разными реализованными модификациями, добавляющими некоторые свойства:
-
При получении пароля злоумышленник не может расшифровать обмен данными, который уже состоялся, либо при получении сессионного ключа какого-либо сеанса он не может узнать пароль пользователя (даже полным перебором), однако, по-прежнему, на сервере хранится аналог открытого текста пароля, который может быть украден для получения собственно пароля (например, DH-EKE, SPEKE).
-
При получении информации из базы данных сервера, злоумышленник не может получить из них пароль, но теряется предыдущее свойство(например, A-EKE).
-
Модификация обладает свойствами 1 и 2 за счет введения дополнительного раунда обмена ключами, однако претерпевает сильную потерю в производительности из-за значительных дополнительных вычислений.
Для того, чтобы избежать всех указанных уязвимостей и получить алгоритм с хорошей скоростью работы, была разработана концепция AKE(Asymmetric key exchange), отличающаяся от предыдущих прежде всего тем, что при передаче данных отсутствует всякое шифрование, которое избавляет систему от ненужных затрат вычислительной мощности и возможных уязвимостей определенных алгоритмов шифрования. Одной из реализаций AKE и является SRP.