Аутентификация

Методы аутентификации

Режим аутентификации id ключа в команде Ген-ция сессион. ключа Разреш. внешней аут-ции Разреш. внутренней аут-ции Шаблоны настроек SE
Аутентификация по паролю * - + - AT/VERIFY
Внешняя аутентификация * - + - AT/VERIFY (+HT)
Внутренняя аутентификация * - - + AT/CALC (+HT)
Взаимная аутентификация
по симметричной схеме
- * + - KAT/CALC|VERIFY
Взаимная аутентификация
по несимметричной схеме
- * + - KAT/CALC|VERIFY

Легенда:
+ обязательный элемент
* опциональный элемент
- применение невозможно

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

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

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

Далее описываются протоколы аутентификации для различных режимов:

 

 

7.2.1 Аутентификация по паролю

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

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

Терминал Команда Карта
ввод пароля P    
VERIFY (P) →  
    проверка пароля P = P’

 

 

7.2.2 Внешняя аутентификация

Карта устанавливает – владеет ли терминал требуемым секретом. Терминал получает от карты сгенерированное ею случайное число, шифрует его или вычисляет ЭП. Карта проверяет корректность результата.

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

При использовании симметричного алгоритма:

Терминал Команда Карта
  GET CHALLENGE () →  
    генерирует СЧ R
  Response (R) →  
  ← СЧ R  
C = EncK(R)    
  EXTERNAL AUTHENTICATE (C) →  
    C ?= EncK(R)

Enc – шифрование
Dec – расшифрование
K- ключ аутентификации

 

При использовании асимметричного криптоалгоритма:

Терминал Команда Карта
  GET CHALLENGE () →  
    генерирует СЧ R
  Response (R) →  
  ← СЧ R  
C = EncKc(H(R))    
  EXTERNAL AUTHENTICATE (C) →  
    H(R) ?= Dec(C)

Enc – вычисление ЭП на закрытом ключе Kс
Dec – проверка ЭП на открытом ключе Kp
H – вычисление хэша

 

 

7.2.3 Внутренняя аутентификация

Терминал устанавливает – владеет ли карта требуемым секретом. Терминал генерирует случайное число, которое карта шифрует или вычисляет на нем ЭП. Терминал проверяет корректность результата.

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

При использовании симметричного алгоритма:

Терминал Команда Карта
генерирует СЧ R    
  INTERNAL AUTHENTICATE (R) →  
    C=EncK(R)
  Response(C) →  
  ← С  
С ?= EncK(R)    

Enc – шифрование
Dec – расшифрование
K- ключ аутентификации

 

При использовании асимметричного криптоалгоритма:

Терминал Команда Карта
генерирует СЧ R    
  INTERNAL AUTHENTICATE (R) →  
    C=EncKc(H(R))
  Response(C)  
H(R) ?= DecKp(С)    

Enc – вычисление ЭП на закрытом ключе Kс
Dec – проверка ЭП на открытом ключе Kp
H – вычисление хэша

 

 

7.2.4 Взаимная аутентификация, симметричная схема

Данная схема должна применяться только в случае использования криптоалгоритма ГОСТ 28147-89.

Два субъекта проверяют друг друга – владеют ли они требуемым секретом (ключ К). В качестве субъектов аутентификации могут выступать две аналогичные карты. Стороны обмениваются случайными числами, на основе них генерируют сессионный ключ Kses и проверочные криптограммы U и Q и обмениваются проверочными криптограммами.

При необходимости, в контексте устанавливается сессионный ключ Kses.

Недостатком схемы является выдача собственной проверочной криптограммы до проверки криптограммы ответной части.

Полная версия предоставляется по индивидуальному запросу: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

 

7.2.5 Взаимная аутентификация, несимметричная схема

Стороны обмениваются случайными числами, на основе них генерируют сессионный ключ Kses и проверочные криптограммы Q и U. Карта проверяет криптограмму ответной стороны, после чего передает ей собственную криптограмму.

При необходимости, в контексте устанавливается сессионный ключ Kses.

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

Полная версия предоставляется по индивидуальному запросу: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

 

7.2.6 Алгоритм диверсификации ключей ГОСТ 28147-89 (функция Фd)

Для диверсификации ключа необходимо подать команду MSE в режиме SET, указав шаблон CRT, в котором фигурирует данный ключ и передав в тэге 94 данные для диверсификации (например, серийный номер) (см. п. 9.7.1).

Для указанного ключа должен быть установлен признак "Требование диверсификации ключа" (см. п. 5.3.1, таблица " Флаги назначения ключа")

В результате выполнения команды в памяти ОС порождается объект - диверсифицированный ключ.

Полная версия предоставляется по индивидуальному запросу: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

 

 

7.2.7 Алгоритм диверсификации ключей DES

При описании алгоритма диверсификации используются следующие обозначения:
K - диверсифицированный ключ (64 бит);
МК - мастер-ключ (64 бит);
N - параметр диверсификации (последовательность байт длиной до 32 байт);
E(a,K) - результат зашифрования блока a на ключе K по алгоритму DES в режиме простой замены,
H(a) - результат вычисления хэш-функции по алгоритму SHA-1.

Диверсифицированный (производный) ключ аутентификации K, загружаемый в память карты, вырабатывается по следующему алгоритму:
Вычисляется h =H(N)
Вычисляется h' , взятое как первые 64 бита от величины h
Вычисляется K =E(h',MK)

 

 

7.2.8 Алгоритм диверсификации ключей 3DES

При описании алгоритма диверсификации используются следующие обозначения:
K - диверсифицированный ключ (128 бит);
МК - мастер-ключ (128 бит);
N - параметр диверсификации (последовательность байт длиной до 32 байт);
E(a,K) - результат зашифрования блока a на ключе K по алгоритму 3DES в режиме простой замены,
H(a) - результат вычисления хэш-функции по алгоритму SHA-1.
a||b - результат конкатенации последовательностей бай a и b.

Диверсифицированный (производный) ключ аутентификации K, загружаемый в память карты, вырабатывается по следующему алгоритму:
Вычисляется h1 =H(N)
Вычисляется h1', взятое как первые 64 бита от величины h1
Вычисляется K1 =E(h1',MK)
Вычисляется K2 =E(K1,MK)
Вычисляется K = K1 || K2

 

 

.