Протокол для работы с кредитными картами CyberCash

         

Динамическая аутентификация данных


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

Рис. 4.6.4.12. Схема динамической аутентификации данных

ICC, которая поддерживает аутентификацию динамических данных, должна содержать следующие информационные элементы.

  • Индекс общедоступного ключа сертификационного центра. Этот элемент состоит из одного байта, который указывает, какой из общедоступных ключей сертификационного центра и алгоритм, доступный терминалу, следует использовать с данной картой ICC.

  • Сертификат общедоступного ключа эмитента. Этот элемент переменной длины записывается в ICC эмитентом карты. Когда терминал проверяет этот элемент, он аутентифицирует общедоступный ключ и сопутствующие данные ICC.

  • Остаток общедоступного ключа эмитента.

  • Показатель общедоступного ключа эмитента.

  • Остаток общедоступного ключа ICC.

  • Показатель общедоступного ключа ICC.

  • С

    екретный ключ ICC. Элемент переменной длины, используемый для формирования подписанных динамических прикладных данных.

ICC, которые поддерживают аутентификацию динамических прикладных данных, должны сформировать следующий информационный элемент.

Подписанные динамические прикладные данные. Этот информационный элемент переменной длины формируется ICC с помощью секретного ключа, который соответствует общедоступному ключу, аутентифицированному в сертификате общедоступного ключа ICC.

Чтобы поддерживать аутентификацию динамических данных, каждый терминал должен запоминать большое число общедоступных ключей сертификационного центра, и ставить им в соответствие информацию, которая должна использоваться с этими ключами.
Терминал способен найти любой такой ключ, заданный RID и индексом общедоступного ключа сертификационного центра, полученных от ICC. ICC, поддерживающая аутентификацию динамических данных должна иметь пару ключей, один из которых является секретным, служащим для цифровой подписи, другой - общедоступный для верификации. Общедоступный ключ ICC запоминается ИС картой в сертификате общедоступного ключа, сформированном эмитентом карты. Общедоступный ключ эмитента сертифицирован центром сертификации. Как следствие для верификации подписи ICC терминал должен сначала верифицировать два сертификата, для того чтобы получить и аутентифицировать общедоступный ключ ICC, который далее служит для проверки корректности динамической подписи ICC. Процедура цифровой подписи использует данные, представленные в таблицах 4.6.4.23 и 4.6.4.24. Модуль общедоступного ключа сертификационного центра содержит NCC байт, где NCC ? 248. Показатель общедоступного ключа сертификационного центра равен 2, 3 или 216+1. Модуль общедоступного ключа эмитента содержит NЭ байт, где NЭ < 248 и NЭ < NCC. Если NЭ > (NCC - 36), модуль общедоступного ключа эмитента делится на две части, одна состоит из NCC - 36 старших байт модуля (левые цифры), а вторая часть содержит остальные NЭ - (NCC - 36) младших байт модуля (остаток общедоступного ключа эмитента). Показатель общедоступного ключа эмитента равен 2, 3 или 216+1. Модуль общедоступного ключа ICC содержит NIC байт, где NIC ? 128 и NIC < NЭ. Если NIC > (NЭ - 42), модуль общедоступного ключа ICC делится на две части, одна - состоит из NЭ - 42 старших байт модуля (левые цифры общедоступного ключа ICC) и остальных NIC - (NЭ - 42) младших байт модуля (остаток общедоступного ключа ICC). Показатель общедоступного ключа ICC равен 2, 3 или 216+1. Для осуществления аутентификации динамических данных терминал сначала извлекает и аутентифицирует общедоступный ключ ICC (аутентификация общедоступного ключа ICC). Вся информация, необходимая для аутентификации общедоступного ключа ICC представлена в таблице 4.6.4.25 и хранится в памяти ICC.


За исключением RID, который может быть получен из AID, эта информация извлекается с помощью команды READ RECORD. Если что-то из этой информации отсутствует, аутентификация терпит неудачу. Таблица 4.6.4.23. Данные общедоступного ключа эмитента, которые должны быть подписаны сертификационным центром.

Имя поляДлина
(байт)
Описание
Формат сертификата1Шестнадцатеричное число 0х02
Идентификационный номер эмитента4Левые 3-8 цифр от PAN (дополняемые справа кодами 0хF)
Дата истечения времени действия сертификата2Дата ММГГ, после которой сертификат становится недействительным
Серийный номер сертификата3Двоичное число, уникальное для данного сертификата, присваиваемое центром сертификации
Индикатор хэш-алгоритма1Индицирует алгоритм, используемый для вычисления результирующего хэша цифровой подписи
Индикатор алгоритма общедоступного ключа эмитента1Индицирует алгоритм вычисления цифровой подписи, который должен использоваться совместно с общедоступным ключом эмитента
Длина общедоступного ключа эмитента1Идентифицирует длину модуля общедоступного ключа эмитента в байтах
Длина показателя общедоступного ключа эмитента1Идентифицирует длину показателя общедоступного ключа эмитента в байтах
Общедоступный ключ эмитента или левые цифры этого ключаNCC - 36Если NЭ ? NCC - 36, это поле состоит из полного общедоступного ключа эмитента дополненного справа NCC -36 - NЭ байт с кодом 0хBB.
Если NЭ > NCC - 36, это поле состоит из NCC - 36 старших байтов общедоступного ключа эмитента
Остаток общедоступного ключа эмитента0 или
NЭ -NCC + 36
Это поле присутствует только если NЭ > NCC - 36 и состоит из NЭ - NCC + 36 младших байт общедоступного ключа эмитента
Показатель общедоступного ключа эмитента1 или 3Показатель общедоступного ключа эмитента равен 2, 3 или 216+1
Таблица 4.6.4.24. Данные общедоступного ключа ICC, которые должны быть подписаны эмитентом карты
Имя поляДлина
(байт)
Описание
Формат сертификата1Шестнадцатеричное число 0х04
PAN (Primary Application Number) приложения10PAN дополненный справа кодами 0хF
Дата истечения времени действия сертификата2Дата ММГГ, после которой сертификат становится недействительным
Серийный номер сертификата3Двоичное число, уникальное для данного сертификата, присваиваемое эмитентом
Индикатор хэш-алгоритма1Индицирует алгоритм, используемый для вычисления результирующего хэша цифровой подписи
Индикатор алгоритма общедоступного ключа ICC1Индицирует алгоритм вычисления цифровой подписи, который должен использоваться совместно с общедоступным ключом ICC
Длина общедоступного ключа ICC1Идентифицирует длину модуля общедоступного ключа ICC в байтах
Длина показателя общедоступного ключа ICC1Идентифицирует длину показателя общедоступного ключа ICC в байтах
Общедоступный ключ ICC или левые цифры этого ключаNЭ - 42Если NIC ? NЭ - 42, это поле состоит из полного общедоступного ключа ICC дополненного справа NЭ - 42 - NIC байт с кодом 0хBB.Если NIC > NЭ - 42, это поле состоит из NЭ - 42 старших байтов общедоступного ключа ICC
Остаток общедоступного ключа ICC0 илиNIC - NЭ + 42Это поле присутствует, только если NIC > NЭ - 42 и состоит из NЭ - NCС + 42 младших байт общедоступного ключа ICC
Показатель общедоступного ключа ICC1 или 3Показатель общедоступного ключа ICC равен 2, 3 или 216+1
Данные, подлежащие аутентификацииПеременнаяСтатические данные, подлежащие аутентификации согласно спецификации ICC для платежных систем
Таблица 4.6.4.25. Информационные объекты, необходимые для аутентификации общедоступного ключа
Метка (Tag)Длина
(байт)
Описание
-5Зарегистрированный идентификатор провайдера приложения (RID)
0х8F1Индекс общедоступного ключа центра сертификации
0х90NCCСертификат общедоступного ключа эмитента
0х92NЭ - NCC + 36Остаток общедоступного ключа эмитента (если имеется)
0х9F321 или 3Показатель общедоступного ключа эмитента
0х9F46Сертификат общедоступного ключа ICC
0х9F48NIC - NЭ + 42Остаток общедоступного ключа ICC (если он имеется)
0х9F471 или 3Показатель общедоступного ключа ICC
-ПеременнаяДанные, подлежащие аутентификации



Терминал считывает индекс общедоступного ключа центра сертификации. Используя этот индекс и RID, терминал может идентифицировать и извлечь из памяти модуль и показатель общедоступного ключа сертификационного центра и сопряженную с ним информацию. Если терминал не сможет найти нужные данные, сертификация не состоится. Если сертификат общедоступного ключа эмитента имеет длину отличную от длины модуля общедоступного ключа сертификационного центра, аутентификация динамических данных не проходит. Для того чтобы получить восстановленные данные, представленные в таблице 4.6.4.26, используется сертификат общедоступного ключа эмитента и общедоступный ключ центра сертификации. Если хвостовик восстановленных данных не равен 0хBC, аутентификация динамических данных не проходит. Проверяется заголовок восстановленных данных и, если он не равен 0х6А, аутентификация отвергается. Проверяется код формата сертификата и, если он не равен 0х02, аутентификация отвергается. Объединяются слева направо информационные элементы со второго по десятый (см. табл. 4.6.4.26), добавляется остаток общедоступного ключа эмитента (если он имеется) и показатель этого ключа. Для полученной строки применяется соответствующий алгоритм хэширования. Сравнивается вычисленный хэш и восстановленное значение поля результата хэширования. При несовпадении аутентификация не проходит. Таблица 4.6.4.26. Формат восстановленных данных из сертификата общедоступного ключа эмитента.
Имя поляДлина
(байт)
Описание
Заголовок восстановленных данных1Шестнадцатеричное число 0х6А
Формат сертификата1Шестнадцатеричное число 0х02
Идентификационное число эмитента4Левые 3-8 цифр из PAN, дополненные справа кодами 0хF
Дата истечения времени действия сертификата2Дата ММГГ, после которой сертификат становится недействительным
Серийный номер сертификата3Двоичное число, уникальное для данного сертификата, присваиваемое центром сертификации
Индикатор хэш-алгоритма1Индицирует алгоритм, используемый для вычисления результирующего хэша цифровой подписи
Индикатор алгоритма общедоступного ключа эмитента1Индицирует алгоритм вычисления цифровой подписи, который должен использоваться совместно с общедоступным ключом эмитента
Длина общедоступного ключа эмитента1Идентифицирует длину модуля общедоступного ключа эмитента в байтах
Длина показателя общедоступного ключа эмитента1Идентифицирует длину показателя общедоступного ключа эмитента в байтах
Общедоступный ключ эмитента или левые цифры этого ключаNCC - 36Если NЭ ? NСС - 36, это поле состоит из полного общедоступного ключа эмитента, дополненного справа NСС - 36 - NЭ байтами с кодом 0хBB.
Если NЭ > NСС - 36, это поле состоит из NСС - 36 старших байтов общедоступного ключа эмитента
Результат хэширования20Хэш общедоступного ключа эмитента и сопряженных данных
Хвостовик восстановленных данных1Шестнадцатеричное число 0хВС



Проверяется то, что идентификационный номер эмитента соответствуют 3-8 цифрам PAN. Если соответствия нет, аутентификация отвергается. Проверяется срок действия сертификата и, если он истек, аутентификация отвергается. Проверяется то, что объединение RID, индекса общедоступного ключа центра сертификации и серийного номера сертификата корректно. Если индикатор алгоритма общедоступного ключа эмитента не распознан, аутентификация не проходит. Если все вышеперечисленные проверки прошли успешно, осуществляется объединение левых цифр общедоступного ключа эмитента и остатка этого ключа (если он имеется). Это делается для получения модуля общедоступного ключа эмитента. После данной процедуры система переходит к извлечению общедоступного ключа ICC. Если сертификат общедоступного ключа ICC имеет длину, отличную от длины модуля общедоступного ключа эмитента, авторизация не проходит. Для того чтобы получить данные, специфицированные в таблице 4.6.4.27, используется сертификат общедоступного ключа ICC и общедоступный ключ эмитента. Если хвостовик восстановленных данных не равен 0хВС, аутентификация не проходит. Если при проверке код заголовка восстановленных данных не равен 0х6А, аутентификация не проходит. Если код формата сертификата не равен 0х04, аутентификация также не проходит. Таблица 4.6.4.27. Формат восстановленных данных из сертификата общедоступного ключа ICC.
Имя поляДлина(байт)Описание
Заголовок восстановленных данных1Шестнадцатеричное число 0х6А
Формат сертификата1Шестнадцатеричное число 0х04
PAN приложения10PAN, дополненный справа кодами 0хF
Дата истечения времени действия сертификата2Дата ММГГ, после которой сертификат становится недействительным
Серийный номер сертификата3Двоичное число, уникальное для данного сертификата, присваиваемое центром сертификации
Индикатор хэш-алгоритма1Индицирует алгоритм, используемый для вычисления результирующего хэша цифровой подписи
Индикатор алгоритма общедоступного ключа ICC1Индицирует алгоритм вычисления цифровой подписи, который должен использоваться совместно с общедоступным ключом ICC
Длина общедоступного ключа ICC1Идентифицирует длину модуля общедоступного ключа ICC в байтах
Длина показателя общедоступного ключа ICC1Идентифицирует длину показателя общедоступного ключа ICC в байтах
Общедоступный ключ ICC или левые цифры общедоступного ключа ICCNЭ - 42Если NIC ? NЭ - 42, это поле состоит из полного общедоступного ключа ICC, дополненного справа NЭ - 42 - NIC байтами с кодом 0хBB.
Если NIC > NЭ - 42, это поле состоит из NЭ - 42 старших байтов общедоступного ключа ICC
Результат хэширования20Хэш общедоступного ключа ICC и сопряженных с ним данных
Хвостовик восстановленных данных1Шестнадцатеричное число 0хВС



Объединяются слева направо поля из таблицы 4.6.4.27, начиная со второго до десятого, добавляется остаток общедоступного ключа ICC (если имеется), показатель общедоступного ключа ICC и данные, подлежащие аутентификации. Это объединение хэшируется согласно указанному алгоритму. Результат сравнивается со значением поля результат хэширования. При несовпадении аутентификация не проходит. Восстановленный PAN должен быть равен PAN приложения (ICC). После этого проверяется срок пригодности сертификата. Если все выше перечисленные проверки оказались успешными, система переходит к последующим тестам. После получения общедоступного ключа ICC терминал выдает команду INTERNAL AUTHENTICATE для объединения информационных элементов DDOL (Dynamic Data Authentication Data Object List). ICC может нести в себе DDOL, но терминал имеет значение DDOL по умолчанию, специфицированное платежной системой на случай отсутствия этих данных в ICC. DDOL должен содержать непредсказуемое число, формируемое терминалом (тэг 0х9F37, четыре двоичных байта). ICC генерирует цифровую подпись для данных, специфицированных в таблице 4.6.4.28 с использованием секретного ключа (SIC) ICC. Результат называется подписанными динамическими данными приложения. Таблица 4.6.4.28. Динамические данные приложения, которые должны быть подписаны
Имя поляДлина
(байт)
Описание
Формат подписанных данных1Шестнадцатеричное число 0х05
Индикатор хэш-алгоритма1Индицируется алгоритм хэширования, используемый для получения результата
Длина динамических данных ICC1Идентифицирует длину LDD динамических данных ICC в байтах
Динамические данные ICCLDDДинамические данные, сформированные и/или записанные в ICC
Символы заполнителяNIC - LDD - 25 (NIC - LDD - 25) байтов заполнителя, содержащего коды 0хBB
Динамические данные терминалаПеременнаяОбъединение информационных элементов, специфицированных DDOL
Длина динамических данных ICC LDD удовлетворяет условию 0 ? LDD ? NIC - 25. 3-9 самых левых байтов динамических данных ICC включают в себя 1 байт длины динамического числа ICC, за которым следует 2-8 байт значения этого числа (тэг 9F4C, 2-8 двоичных байтов). Динамическое число ICC формируется ICC. Кроме данных, перечисленных в таблице 4.6.4.28, для аутентификации динамических данных необходимы информационные объекты: Подписанные динамические данные приложения (NIC байтов; тэг 9F4B) и DDOL (тэг 9F49). Если подписанные динамические данные приложения имеют длину отличную от длины модуля общедоступного ключа ICC, аутентификация не проходит. Чтобы получить восстановленные данные, описанные в таблице 4.6.4.29 для подписанных динамических данных приложения используется общедоступный ключ ICC.


Если хвостовик восстановленных данных не равен 0хBC, аутентификация не проходит. Таблица 4.6.4.29. Формат данных, полученных из подписанных динамических данных приложения
Имя поляДлина
(байт)
Описание
Заголовок восстановленных данных1Шестнадцатеричное число 0х6А
Формат подписанных данных1Шестнадцатеричное число 0х05
Индикатор алгоритма хэширования1Индицируется алгоритм хэширования, используемый для получения результата при вычислении цифровой подписи
Длина динамических данных ICC1Идентифицирует длину динамических данных ICC в байтах
Динамические данные ICCLDDДинамические данные, сформированные и/или записанные в ICC
Символы заполнителяNIC - LDD - 25(NIC - LDD - 25) байтов заполнителя, содержащего коды 0хBB
Результат хэширования20Хэш динамических данных приложения и сопряженной информации
Хвостовик восстановленных данных1Шестнадцатеричное число 0хВС
Далее проверяется заголовок восстановленных данных, если его код не равен 0х6А, аутентификация не проходит. Проверяется код формата подписанных данных и, если он не равен 0х05, аутентификация не проходит. Производится объединение слева направо шести информационных элементов из таблицы 4.6.4.29 (начиная с поля формата подписанных данных). Производится хэширование этого объединения, после чего полученный результат сравнивается со значением поля результата хэширования и, если совпадения нет, аутентификация не проходит. Если все предыдущие шаги оказались успешными, аутентификация динамических данных завершается успехом.

Содержание раздела