Команды
Команды всегда инициируются прикладным уровнем терминала TAL (Terminal Application Layer), который посылает инструкции ICC через транспортный уровень TTL (Terminal Transport Layer). Команда содержит последовательность из 5 байт: CLA, INS, P1, P2 и P3.
Имя байта | Назначение |
CLA | Класс команды (1 байт). |
INS | Код инструкции (1 байт). |
P1 и P2 | Cодержат дополнительные специфические параметры (по 1 байту). |
Р3 | Указывает либо длину посылаемых в команде данных, либо максимальную длину данных, которые должны быть присланы в отклике от ICC (зависит от кода INS). |
Эти 5 байт вместе с байтами данных образуют командный блок протокольной информации C-TPDU для Т=0.
Получив команду, ICC откликается отправкой процедурного или статусных байтов. Процедурный байт указывает TTL, какая операция является следующей. Отклик терминала на процедурный байт представлен в таблице 4.6.4.10.
Таблица 4.6.4.10. Отклик терминала на процедурный байт
Значение процедурного байта | Действие терминала |
Байт равен INS | Все остальные байты данных будут переданы TTL, или TTL будет готов принять все остальные байты от ICC |
Байт равен дополнению INS | Следующий байт данных будет передан TTL или TTL будет готов принять следующий байт от ICC |
60 | TTL введет дополнительное время выдержки (Work Waiting Time) |
61 | TTL будет ждать следующий процедурный байт, затем пошлет ICC команду GET RESPONSE с максимальной длиной "xx", где хх равно значению второго процедурного байта |
6C | TTL будет ждать следующий процедурный байт, после чего немедленно повторно пошлет ICC предыдущий командный заголовок, используя длину "xx", где хх равно значению второго процедурного байта |
Во всех случаях после реализации операции TTL ждет прихода процедурного байта или статусного сообщения.
Командное сообщение, посылаемое от прикладного уровня, и сообщение-отклик ICC называются APDU (Application Protocol Data Unit). Формат APDU показан на рисунке 4.6.4.8.
Рис. 4.6.4.8. Структура командного APDU.
Все поля заголовка имеют по одному байту.
Поле данных содержит Lc байт.
Lc | Число байт в поле данные (0 или 1 байт) |
Le | Максимальное число байт в поле данных отклика (0 или 1 байт) |
CLA | INS | Назначение |
8х | 1Е | APPLICATION BLOCK (Заблокировать приложение) |
8х | 18 | APPLICATION UNBLOCK (Разблокировать приложение) |
8х | 16 | CARD BLOCK (Заблокировать карту) |
0х | 82 | EXTERNAL AUTHENTICATE (Внешняя аутентификация) |
8х | АЕ | GENERATE APPLICATION CRYPTOGRAM (Сформировать прикладную криптограмму) |
0х | 84 | GET CHALLENGE (Получить вызов) |
8х | СА | GET DATA (Получить данные) |
8х | А8 | GET PROCESSING OPTIONS (Получить опции обработки) |
0х | 88 | INTERNAL AUTHENTICATE (Внутренняя аутентификация) |
8х | 24 | PERSONAL IDENTIFICATION NUMBER (PIN) CHANGE/UNBLOCK - изменение/разблокировка персонального идентификатора |
0х | В2 | READ RECORD (Прочесть запись) |
0х | А4 | SELECT (Выбор) |
0х | 20 | VERIFY (Проверка) |
8х | Dx | RFU для платежных систем |
8х | Ex | RFU для платежных систем |
9х | Xx | RFU производителя для кодирования INS собственника |
Ех | xx | RFU эмитента для кодирования INS собственника |
SW1 | SW2 | Значение |
90 | 00 | Нормальная обработка Процесс завершился успешно |
62 63 63 | 83 00 Сх | Обработка с предупреждением Состояние постоянной памяти не изменилось; выбранный файл некорректен Состояние постоянной памяти изменилось; аутентификация не прошла Состояние постоянной памяти изменилось; счетчик задан "x" (0-15) |
69 69 69 6А 6А 6А | 83 84 85 81 82 83 | Контроль ошибок Команда не разрешена; метод аутентификации блокирован Команда не разрешена; запрошенные данные некорректны Команда не разрешена; условия использования не выполнены Неверные параметры Р1 Р2; функция не поддерживается Неверные параметры Р1 Р2; файл не найден Неверные параметры Р1 Р2; запись не найдена |
Таблица 4.6.4.12А. Сводные данные по командам/откликам
Команда | CLA | INS | P1 | P2 | Lc | Данные | Le |
APPLICATION BLOCK | 8C/84 | 1E | 00 | 00 | Число байт данных | Код аутенти-фикации сообщения (MAC) | - |
APPLICATION UNBLOCK | 8C/84 | 18 | 00 | 00 | Число байт данных | Компонент MAC | - |
CARD BLOCK | 8C/84 | 16 | 00 | 00 | Число байт данных | Компонент MAC | - |
EXTERNAL AUTHENTICATE | 00 | 82 | 00 | 00 | 8-16 | Issue Authentication Data | - |
GENERATE APPLICATION CRYPTOGRAM | 80 | AE | Парам. ссылки | 00 | Перемен. | Данные транзакции | 00 |
GET DATA | 80 | CA | 9F369F139F17 | 9F369F139F17 | - | - | 00 |
GET PROCESSING OPTIONS | 80 | A8 | 00 | 00 | Перемен. | Processing Option Data Object List (PDOL) | 00 |
INTERNAL AUTHENTICATE | 00 | 88 | 00 | 00 | Длина аутент. данных | Аутентиф. данные | 00 |
PIN CHANGE/UNBLOCK | 8C/84 | 24 | 00 | 00, 01 или 02 | Число байт данных | PIN данные | - |
READ RECORD | 00 | B2 | Номер записи | Парам.ссылки | - | - | 00 |
SELECT | 00 | A4 | Парам. ссылки | Опции выбора | 05-10 | Имя файла | 00 |
VERIFY | 00 | 20 | 00 | Квали-фикатор | Перемен | PIN данные транзакции | - |
GET CHALLENGE | 00 | 84 | 00 | 00 | - | - | 00 |
Заголовок (Prologue) | Данные | Эпилог | ||
Адрес узла (NAD) | Управляющий протокольный байт (PCB) | Длина (LEN) | APDU или управляющая информация (INF) | EDC (код детектирования ошибки) |
1 байт | 1 байт | 1 байт | 0-254 байта | 1 байт |
b8 | 0 |
b7 | Номер по порядку |
b6 | Цепочка (есть еще данные) |
b5-b1 | Зарезервировано на будущее |
Кодирование PCB R-блоков
b8 | 1 |
b7 | 0 |
b6 | 0 |
b5 | Номер по порядку |
b4-b1 | 0 - Отсутствие ошибки 1 - EDC и/или ошибка четности 2 - другие ошибки остальные коды зарезервированы |
b8 | 1 |
b7 | 1 |
b6 | 0 - запрос 1 - отклик |
b5-b1 | 0 - запрос повторной синхронизации 1 - запрос размера поля данных 2 - запрос абортирования 3 - расширение BWT-запроса 4 - VPP-ошибка остальные коды зарезервированы |