OCRA — различия между версиями

Материал из Power Security Support Wiki
Перейти к: навигация, поиск
(Новая страница: «==Основное== ORCA (OATH Challenge-Response Algorithm) это развитие алгоритма HOTP. В общих чертах – это алго…»)
(нет различий)

Версия 13:50, 26 июня 2012

Основное

ORCA (OATH Challenge-Response Algorithm) это развитие алгоритма HOTP. В общих чертах – это алгоритм генерации одноразового значения на основании случайного значения (запроса), то есть вместо счетчика событий на вход подается случайное значение, полученное с сервера. В дополнение аутентификации клиента здесь добавлены такие возможности как взаимная аутентификация, подпись транзакций

Требования, предъявляемые к реализации

  1. Алгоритм должен поддерживать аутентификацию на основе запрос-ответ (что собственно и является основной целью данного алгоритма)
  2. Алгоритм должен поддерживать подпись данных на основе симметричного ключа
  3. Алгоритм должен поддерживать аутентификацию сервера, для возможности подтвердить, что клиент взаимодействует с доверенным сервером
  4. Длина и формат запроса должны быть настраиваемыми
  5. Длина и формат ответа должны быть настраиваемыми
  6. Запрос может генерироваться с проверкой целостности, с вставкой контрольного бита. Это позволит убедиться в том, что запрос введен верно
  7. Каждый токен (генератор) программный или аппаратный должен иметь уникальный секрет (ключ), значение которого генерируется случайным образом или рассчитывается по специальным алгоритма генерации колючей.
  8. Алгоритм может поддерживать дополнительные атрибуты, такие штамп времени или информация о сессии.

Математика процесса

Если описывать алгоритм, то можно использовать следующее представление:

OCRA = CryptoFunction(K, DataInput)

где, К — общий секрет DataInput — структура данных, названная выше случайным значением CryptoFunction — функция расчета


DataInput

DataInput = {OCRASuite | 00 | C | Q | P | S | T}

где, 00 – разделитель С – беззнаковый 8-байтный счетчик, синхронезированный между обоими частниками (клиент и сервер). Опциональный параметр Q – 128-байтный запрос, если он короче, то значение дополняется нулями P – хэш-функция (поддерживается SHA-1 RFC 3174, SHA-256 и SHA-512 SHA2) от PIN-кода, который известен обеим сторонам (клиент и сервер) S – строка, длиной до 512 байт, описывающая параметры о сессии T – 8-байтное значение временных интервалов (секунд, минут, часов, дней – зависит от конкретной реализации), прошедших с 1 января 1 1970 (UT), используется для простановки штампа времени

При расчете значения, состояние счетчика (С) на стороне клиента всегда увеличивается на 1, а на стороне сервера только в случае успешного прохождения аутентификации (подтверждения транзакции)

CryptoFunction

По умолчанию, в качестве функции используется HOTP-SHA1-6, то есть алгоритм HOTP на базе SHA1 c длиной значения 6 цифр. Рассматривается семейство HOTP-функций, как расширение HOTP:

  1. HOTP-H-t , где варьируются H – алгоритм хэш-функции, t – длина значения, то есть обрезки
  2. HOTP-H-t, если t=0, то обрезка не выполняется и в качестве значения используется полное значение [‘i-функции.

Рекомендуемые варианты:

  1. HOTP-SHA1-4
  2. HOTP-SHA1-6
  3. HOTP-SHA1-8
  4. HOTP-SHA256-6
  5. HOTP-SHA512-6