PayBox.kz - Агрегатор интернет магазинов для платежных систем
Модуль безопасности платежных системhsm ps, и...
Transcript of Модуль безопасности платежных системhsm ps, и...
Модуль безопасности
платежных систем
Руководство разработчика
1991–2018 ОАО «ИнфоТеКС», Москва, Россия
ФРКЕ.00185-01 90 03
Этот документ входит в комплект поставки программного обеспечения, и на него распространяются все условия лицензионного
соглашения.
Ни одна из частей этого документа не может быть воспроизведена, опубликована, сохранена в электронной базе данных или передана
в любой форме или любыми средствами, такими как электронные, механические, записывающие или иначе, для любой цели без
предварительного письменного разрешения ОАО «ИнфоТеКС».
ViPNet® является зарегистрированным товарным знаком ОАО «ИнфоТеКС».
Все названия компаний и продуктов, которые являются товарными знаками или зарегистрированными товарными знаками,
принадлежат соответствующим владельцам.
ОАО «ИнфоТеКС»
127287, г. Москва, Старый Петровско-Разумовский проезд, дом 1/23, строение 1
Тел: (495) 737-61-96 (горячая линия), 737-61-92, факс 737-72-78
Сайт компании «ИнфоТеКС»: http://www.infotecs.ru
Электронный адрес службы поддержки: [email protected]
Аннотация
Настоящий документ содержит описание форматов и параметров
командных и ответных сообщений в хостовом режиме работы платежного
приложения «Модуль безопасности платежных систем» (далее – хостовых
команд).
Хостовый режим работы платежного приложения – режим работы
платежного приложения, при котором командные и ответные сообщения
передаются между платежным приложением, функционирующим на ViPNet
HSM PS, и подключенным к ViPNet HSM PS компьютером хост-системы.
Описание хостового режима работы содержится в настоящем документе,
предназначенном для разработчиков хост-систем.
Консольный режим работы работы платежного приложения – режим
работы платежного приложения, при котором осуществляется
администрирование платежным приложением и выполнение команд
(консольных команд) посредством веб-интерфейса платежного приложением.
Описание консольного режима работы платежного приложения содержится в
документе «ViPNet HSM PS. Руководство администратора».
Модуль безопасности платежных систем. Руководство разработчика | 4
Оглавление
Аннотация....................................................................................................................................................... 3
1. Назначение и условия применения программы ........................................................................... 11
2. Характеристика программы ........................................................................................................... 13
3. Обращение к программе ................................................................................................................. 14
4. Входные и выходные данные ........................................................................................................ 17
4.1. Общие сведения .............................................................................................................................. 17
Типы ключей ViPNet HSM PS ...................................................................................................................... 17
Локальный мастер-ключ (Local Master Key – LMK)................................................................................. 18
Зональный мастер-ключ (Zone Master Key – ZMK) .................................................................................. 18
Зональный ключ шифрования PIN (Zone PIN Key – ZPK) ........................................................................ 18
Терминальный мастер-ключ (Terminal Master Key – TMK) ..................................................................... 18
Терминальный ключ шифрования PIN (Terminal PIN Key – TPK) ........................................................... 18
Терминальный ключ аутентификации (Terminal Authentication Key – TAK) ......................................... 19
Ключ проверки PIN (PIN Verification Key – PVK) ...................................................................................... 19
Ключ проверки карты (Card Verification Key – CVK) ............................................................................... 19
Массив LMK ................................................................................................................................................. 19
Тестовые LMK ............................................................................................................................................. 21
Варианты LMK ............................................................................................................................................ 23
Коды типов ключей ..................................................................................................................................... 24
Ключевая схема ............................................................................................................................................ 27
Шифрование ключей с использованием формата ключевого блока ....................................................... 29
Поддерживаемые криптоалгоритмы ....................................................................................................... 40
Режимы шифрования .................................................................................................................................. 41
Целостность ключей ................................................................................................................................... 41
Обозначения, используемые в описании команд: ...................................................................................... 41
Поддержка формата ключевого контейнера .......................................................................................... 42
4.2. Лицензии .......................................................................................................................................... 43
Список лицензий ........................................................................................................................................... 43
4.3. Перечни команд .............................................................................................................................. 44
Список команд по алфавиту ....................................................................................................................... 44
Перечень команд по функционалу .............................................................................................................. 49
4.4. Команды лицензии «Процессинг» (Processing License – LIC001) .............................................. 56
4.4.1. Перечень команд лицензии «Процессинг» ....................................................................................... 56
4.4.2. Описание команд лицензии «Процессинг» ....................................................................................... 59
Команды управления симметричными ключами ...................................................................................... 59
Модуль безопасности платежных систем. Руководство разработчика | 5
Генерация ключа (A0) ................................................................................................................................. 59
Формирование ключа из зашифрованных компонент (A4) ..................................................................... 66
Импорт ключа (A6) ...................................................................................................................................... 69
Экспорт ключа (A8) ..................................................................................................................................... 74
Перешифрование TMK, TPK или PVK из-под «старого» LMK под «новый» (AA).............................. 79
Перешифрование TAK из-под «старого» LMK под «новый» (AC) ........................................................ 81
Перешифрование TAK из-под LMK под ZMK (МG) ............................................................................... 83
Перешифрование TAK из-под ZMK под LMK (МI) ................................................................................. 85
Перешифрование TMK, TPK или PVK из-под LMK под другой TMK, TPK или PVK (AE) ............... 87
Перешифрование TAK из-под LMK под TMK (AG) ................................................................................ 89
Перешифрование ключа из-под «старого» LMK под «новый» (BW) ..................................................... 91
Перешифрование ZPK из-под ZMK под LMK (FA) ................................................................................. 96
Перешифрование TMK, TPK или PVK из-под ZMK под LMK (FC) ...................................................... 98
Перешифрование TMK, TPK или PVK из-под LMK под ZMK (FE) .................................................... 100
Генерация ZEK/ZAK (FI) .......................................................................................................................... 102
Перешифрование ZEK/ZAK из-под ZMK под LMK (FK) ...................................................................... 104
Перешифрование ZEK/ZAK из-под LMK под ZMK (FM) ..................................................................... 106
Генерация Watchword Key (FO) ............................................................................................................... 108
Перешифрование Watchword Key из-под ZMK под LMK (FS) ............................................................. 110
Перешифрование Watchword Key из-под LMK под ZMK (FQ) ............................................................ 112
Перешифрование ZPK из-под LMK под ZMK (GC) ............................................................................... 114
Перешифрование ZMK из-под «старого» LMK под «новый» (GE) ...................................................... 116
Генерация TAK (HA) ................................................................................................................................. 118
Генерация TMK, TPK или PVK (HC) ....................................................................................................... 120
Генерация ZPK (IA) ................................................................................................................................... 122
Перешифрование ZPK из-под «старого» LMK под «новый» (KC) ....................................................... 124
Генерация MAC за сообщение (МA) ....................................................................................................... 126
Проверка MAC за сообщение (МC) ......................................................................................................... 127
Проверка и переформирование MAC (МE) ............................................................................................. 128
Генерация MAC (MAB) за большое бинарное сообщение (МQ) .......................................................... 130
Генерация MAC (MAB) за большое сообщение (МS)............................................................................ 132
Генерация MAC за бинарные данные (МK) ............................................................................................ 135
Проверка MAC за бинарные данные (МM) ............................................................................................. 137
Проверка и переформирование MAC за бинарные данные (МO) ......................................................... 139
Перешифрование блока секретных данных в специфичном формате карты (P0) ............................... 141
Команды управления ассиметричными ключами ............................................................................... 144
Генерация пары секретный/открытый ключ RSA (EI) ........................................................................... 144
Модуль безопасности платежных систем. Руководство разработчика | 6
Загрузка секретного ключа RSA (EK) ..................................................................................................... 147
Перешифрование секретного ключа RSA (EM) ...................................................................................... 149
Импорт открытого ключа RSA (EO) ........................................................................................................ 152
Проверка открытого ключа RSA (EQ) ..................................................................................................... 156
Проверка сертификата и импорт открытого ключа RSA (ES) ............................................................... 158
Перешифрование открытого ключа RSA (EU) ....................................................................................... 163
Генерация ЦП RSA (EW) .......................................................................................................................... 166
Проверка ЦП RSA (EY) ............................................................................................................................. 169
Импорт ключа DES на открытом ключе RSA (GI) ................................................................................. 171
Экспорт ключа DES на открытом ключе RSA (GK)............................................................................... 176
Операции с PIN ...................................................................................................................................... 179
Зашифрование чистого PIN (BA) ............................................................................................................. 179
Расшифрование зашифрованного PIN (NG) ............................................................................................ 181
Проверка терминального PIN сравнением (BC) ..................................................................................... 183
Проверка PIN сравнением (BE) ................................................................................................................ 185
Перешифрование PIN из-под «старого» LMK под «новый» (BG) ........................................................ 187
Генерация PIN-offset IBM-методом (для выбранного пользователем PIN) (BK) ................................ 188
Загрузка таблицы PIN для проверки «слабых» PIN (BM) ...................................................................... 193
Перешифрование PIN из-под TPK под ZPK (CA) .................................................................................. 195
Перешифрование PIN из-под одного ZPK под другой (CC) .................................................................. 197
Генерация и проверка VISA PVV (для пользовательского PIN) (CU) .................................................. 199
Проверка терминального PIN IBM-методом (DA) ................................................................................. 204
Проверка терминального PIN с использованием VISA метода (DC) ................................................... 208
Генерация PIN-offset IBM-методом из зашифрованного под LMK PIN (DE) ..................................... 211
Генерация VISA PVV (PIN Verification Value) (для PIN, зашифрованного под LMK) (DG) ............. 215
Генерация и проверка PIN Offset IBM-методом (для нового пользовательского PIN) (DU) ............. 219
Проверка PIN IBM-методом (EA) ............................................................................................................ 225
Получение PIN IBM-методом (EE) .......................................................................................................... 229
Проверка PIN-блока с использованием VISA метода (EC) ................................................................... 233
Генерация VISA PVV (для выбранного пользователем PIN) (FW) ...................................................... 235
Генерация случайного PIN (JA)................................................................................................................ 239
Перешифрование PIN из-под TPK под LMK (JC) .................................................................................. 242
Перешифрование PIN из-под ZPK под LMK (JE) ................................................................................... 245
Перешифрование PIN из-под LMK под ZPK (JG) .................................................................................. 247
Перешифрование PIN, зашифрованного под LMK, со сменой номера счета (Account Number) (QK)
............................................................................................................................................................. 249
Перешифрование PIN (ZE) ....................................................................................................................... 251
Модуль безопасности платежных систем. Руководство разработчика | 7
Процессинг по чиповым картам (EMV) ............................................................................................... 253
Проверка ARQC и/или генерация ARPC (EMV 3.1.1) (KQ) .................................................................. 253
Проверка Data Authentication Code (DAC) и Dynamic Number (DN) (KS) ........................................... 258
Генерация секретного сообщения (Secure Message) (EMV 3.1.1) (KU) ................................................ 261
Проверка ARQC и/или генерация ARPC (EMV 4.x) (KW) .................................................................... 269
Генерация секретного сообщения (EMV 4.x) (KY) ................................................................................ 274
Разное ……………………………………………………………………………………………………………………………………………….281
Генерация проверочной величины ключа (BU) ...................................................................................... 281
Перешифрование таблицы децимализации (LO) .................................................................................... 285
Генерация CVV/CVC (CW) ....................................................................................................................... 287
Проверка CVV/CVC (CY) ......................................................................................................................... 290
Генерация проверочной величины ключа (KA) ...................................................................................... 293
Зашифрование блока данных (М0) .......................................................................................................... 295
Расшифрование блока данных (М2) ........................................................................................................ 300
Генерация MAC (М6) ................................................................................................................................ 304
Проверка MAC (М8) .................................................................................................................................. 308
Вычисление значения Хэш-функции за блок данных (GМ) .................................................................. 312
Проведение диагностики (NC) ................................................................................................................. 313
Статус HSM (NO) ....................................................................................................................................... 314
Проверка динамического CVV/CVC (PM) .............................................................................................. 316
Перешифрование KEYVAL (RW) ............................................................................................................ 322
4.5. Команды лицензии «Печать PIN-конвертов» (PIN and Key Printing License - LIC002) ......... 324
4.5.1. Перечень команд лицензии «Печать PIN-конвертов» ................................................................. 324
4.5.2. Описание команд лицензии «Печать PIN-конвертов» ................................................................. 324
Генерация и печать компонент (A2) ........................................................................................................ 324
Генерация ключа и печать в виде Split компонент (NE) ........................................................................ 329
Печать данных (OA) .................................................................................................................................. 333
Загрузка шаблонов печати PIN (PA) ........................................................................................................ 335
Печать PIN (PE) .......................................................................................................................................... 336
4.6. Команды лицензии «Предперсонализация карт» (Card Data Preparation License - LIC003) .. 339
4.6.1. Перечень команд лицензии «Предперсонализация карт» ............................................................ 339
4.6.2. Описание команд лицензии «Предперсонализация карт» ............................................................ 341
Генерация подписи данных статической аутентификации (HK) .......................................................... 341
Генерация RSA пары (секретный/открытый ключ) эмитента (VISA) (IU) .......................................... 343
Проверка самоподписанного сертификата корневого УЦ (VISA) (IW) ............................................... 346
Проверка сертификата открытого ключа эмитента (VISA) (IY) ........................................................... 348
Генерация RSA пары (секретный/открытый ключ) эмитента (MasterCard) (JM) ................................ 352
Модуль безопасности платежных систем. Руководство разработчика | 8
Проверка самоподписанного сертификата корневого УЦ (MasterCard) (JO) ...................................... 355
Проверка сертификата открытого ключа эмитента (MasterCard) (JQ) ................................................. 357
Экспорт ключа под KEK (K8)................................................................................................................... 361
Генерация RSA пары (секретный/открытый ключ) и сертификата эмитента (KE) ............................. 363
Проверка сертификата открытого ключа эмитента (KG) ...................................................................... 368
Генерация мастер-ключей карты (KI) ...................................................................................................... 372
Проверка самоподписанного сертификата корневого УЦ (KK) ........................................................... 375
Генерация подписи данных статической аутентификации (SDA) (KM) .............................................. 377
Генерация RSA пары (секретный/открытый ключ) и сертификата карты (KO) .................................. 380
Диверсификация данных для записи на карту (SI) ................................................................................. 388
Зашифрование данных транзакции (XK) ................................................................................................. 390
Генерация случайного числа (YO) ........................................................................................................... 393
Диверсификация ключа (YS) .................................................................................................................... 394
Экспорт ключа под KEK (YW) ................................................................................................................. 397
Зашифрование данных (YY) ..................................................................................................................... 399
Импорт ключа под KEK (ZA) ................................................................................................................... 401
Расшифрование данных (ZC) .................................................................................................................... 403
Генерация или проверка МАС (ZK) ......................................................................................................... 405
Сборка сертификата открытого ключа карты (ICC) из элементов (ZU) ............................................... 408
Генерация ключевой пары карты (ICC) (ZW) ......................................................................................... 411
Генерация производных ключей карты (ZY) .......................................................................................... 415
4.7. Команды лицензии «Персонализация карт» (Card Data Personalization License - LIC004) .... 419
4.7.1. Перечень команд лицензии «Персонализация карт» .................................................................... 419
4.7.2. Описание команд лицензии «Персонализация карт» ................................................................... 419
Установление защищенного соединения с чип-картой (IC) .................................................................. 419
Подготовка защищенного сообщения для чип-карты (IE) .................................................................... 424
4.8. Команды лицензии «Поддержка 3-D Secure» (Support of 3-D Secure License – LIC006) ....... 432
4.8.1. Перечень команд лицензии «Поддержка 3-D Secure» .................................................................. 432
4.8.2. Описание команд лицензии «Поддержка 3-D Secure» ................................................................. 433
Проверка Truncated Application Cryptogram (MasterCard CAP) (K2) .................................................... 433
Генерация ключа для вычисления HMAC (L0) ....................................................................................... 438
Генерация HMAC за блок данных (LQ) .................................................................................................. 442
Проверка HMAC за блок данных (LS) ..................................................................................................... 445
Импорт ключа вычисления HMAC из-под ZMK (LU) ........................................................................... 448
Экспорт ключа вычисления HMAC под ZMK (LW) .............................................................................. 453
Перешифрование ключа вычисления HMAC из-под «старого» LMK под «новый» (LY) .................. 456
4.9. Команды лицензии «Поддержка CUP» (Support of China Union Pay License – LIC007) ........ 460
Модуль безопасности платежных систем. Руководство разработчика | 9
4.9.1. Перечень команд лицензии «Поддержка CUP» ............................................................................ 460
4.9.2. Описание команд лицензии «Поддержка CUP» ........................................................................... 460
Проверка ARQC и генерация ARPC (CUP) (JS) ..................................................................................... 460
Генерация секретных сообщений (CUP) (JU) ......................................................................................... 464
4.10. Команды лицензии «Поддержка American Express » (Support of American Express License
08.х– LIC008) ................................................................................................................................. 469
4.10.1. Перечень команд лицензии «Поддержка American Express» ..................................................... 469
4.10.2. Описание команд лицензии «Поддержка American Express» .................................................... 469
Вычисление Card Security Codes (RY режим 3) ...................................................................................... 469
Проверка Card Security Codes (RY режим 4) ........................................................................................... 472
4.11. Команды лицензии «Поддержка НСПК «МИР» (Support of NSPK “MIR” License 09.х–
LIC009) ........................................................................................................................................... 475
4.11.1. Перечень команд лицензии «Поддержка НСПК «МИР» ........................................................... 475
4.11.2. Описание команд лицензии «Поддержка НСПК «МИР» ........................................................... 478
Расшифрование зашифрованных счетчиков (K0) ................................................................................... 478
Проверка криптограммы MSTC (SSSM) ................................................................................................. 480
Приложение 1 Стандартные коды ошибок .............................................................................................. 483
Приложение 2 Форматы сертификатов ................................................................................................... 484
Формат эмитента ПС «Мир» .................................................................................................................... 484
Формат запроса сертификата эмитента ПС «Мир» ................................................................................ 484
Формат сертификата УЦ ПС «Мир» ........................................................................................................ 486
Формат сертификата эмитента ................................................................................................................. 488
Формат сертификата карты «Мир» .......................................................................................................... 490
Формат сертификата карты «Мир» для шифрования PIN ..................................................................... 492
Формат самоподписанного сертификата (запроса) эмитента Visa ....................................................... 495
Формат самоподписанного сертификата (запроса) эмитента (MasterCard) ......................................... 498
Формат самоподписанного сертификата (запроса) эмитента American Express ................................ 500
Формат эмитента Visa ............................................................................................................................... 503
Формат эмитента MasterCard .................................................................................................................... 507
Формат эмитента American Express ......................................................................................................... 509
Формат сертификата карты ICC ............................................................................................................... 513
Формат самоподписанного сертификата УЦ (Visa) ............................................................................... 515
Формат самоподписанного сертификата УЦ (MasterCard) .................................................................... 518
Формат самоподписанного сертификата УЦ (American Express) ......................................................... 520
Приложение 3 Таблицы «слабых» DES-ключей ..................................................................................... 522
Приложение 4 Форматы PIN-блоков ....................................................................................................... 524
Общие сведения ......................................................................................................................................... 524
Модуль безопасности платежных систем. Руководство разработчика | 10
Формат 01 ................................................................................................................................................... 525
Формат 02 ................................................................................................................................................... 526
Формат 03 ................................................................................................................................................... 526
Формат 04 ................................................................................................................................................... 527
Формат 05 ................................................................................................................................................... 529
Формат 34 ................................................................................................................................................... 530
Формат 35 ................................................................................................................................................... 531
Формат 41 ................................................................................................................................................... 533
Формат 42 ................................................................................................................................................... 534
Формат 47 ................................................................................................................................................... 536
Модуль безопасности платежных систем. Руководство разработчика | 11
1. Назначение и условия применения программы
Платежное приложение «Модуль безопасности платежных систем»
(далее – ПП) предназначено для поддержки платежных транзакций в
национальной системе платежных карт и международных платежных системах,
в том числе:
• обработка платежных транзакций в соответствии с зарубежными
протоколами и криптографическими алгоритмами1;
• защита чувствительной информации платежных систем при ее
хранении в базах данных хост-систем в соответствии с российскими
протоколами и криптографическими алгоритмами;
• поддержка эмиссии карт с магнитной полосой и с чипом стандарта
EMV, а также платежных карт «МИР» (генерация секретных величин
и электрическая персонализация);
• поддержка PKI международных платежных систем (VISA, MasterCard,
China Union Pay, American Express) и НСПК «МИР»;
• печать PIN-кодов и компонентов ключей в PIN-конверты;
• поддержка функций работы с платежными приложениями
терминального оборудования (создание ключей для терминальной
сети);
• поддержка скрипто-процессинга при встречной работе с
международными (VSDC, MChip, CUP, AMEX) и отечественными
платежными приложениями банковских карт.
Функции ПП определяются набором лицензий. Доступны следующие
лицензии:
• базовая лицензия «Процессинг» (LIC001) – диагностика и настройка
1 При работе в режиме совместимости с международными платежными системами обеспечиваются функциональные возможности, протокол взаимодействия и системы команд, аналогичные модулю Thales payShield 9000.
Модуль безопасности платежных систем. Руководство разработчика | 12
параметров ПП, сервис зарубежных криптографических операций,
веб-интерфейс удаленного управления ПП, процессинг по картам с
магнитной полосой и с чипом НСПК «МИР», платежных систем VISA,
MasterCard, American Express;
• лицензия «Печать PIN-конвертов» (LIC002) – печать PIN-кодов и
компонентов ключей;
• лицензия ПП для банков-эмитентов «Предперсонализация карт»
(LIC003) – поддержка эмиссии карт с магнитной полосой и с чипом,
поддержка PKI;
• лицензия ПП «Персонализация» (LIC004) – поддержка электрической
персонализации карт с чипом;
• лицензия ПП «Поддержка 3-D Secure» (LIC006) – поддержка функций
аутентификации пользователя в протоколе 3-D Secure;
• лицензия ПП «Поддержка CUP» (LIC007) – поддержка процессинга по
картам платежной системы China Union Pay;
• лицензия ПП «Поддержка American Express» (LIC008) – поддержка
специфичных функций процессинга по картам платежной системы
American Express;
• лицензия ПП «Поддержка НСПК «МИР» (LIC010) – поддержка
отечественной криптографии в операциях НСПК «МИР»;
• лицензия ПП «Поддержка формата ключевого контейнера» (LIC011) –
поддержка работы с форматом Key block в LIC001, LIC003, LIC004,
LIC006-LIC009 команд, допускающих данную функциональность.
Для получения доступа к функциям, определяемым соответствующей
лицензией ПП, требуется ее активация.
Описание процедуры активации лицензии, а также порядок работы
администратора ПП с веб-интерфейсом ПП (консольный режим ПП) приведены
в документе «ViPNet HSM PS. Руководство администратора».
Для выполнения режимов лицензии «Печать PIN-конвертов» требуется
Модуль безопасности платежных систем. Руководство разработчика | 13
подключение принтера к ViPNet HSM PS.
2. Характеристика программы
ПП, функционирующее в составе специализированного ПО ViPNet HSM
PS, обеспечивает производительность до 6200 операций в секунду в режиме
перешифрования PIN-блоков.
Загрузка и контроль целостности ПО ПП, а также резервирование
ключевой и служебной информации ПП выполняется средствами
специализированного ПО ViPNet HSM PS (подробнее см. в документе
«Программно-аппаратный комплекс ViPNet HSM. Правила пользования»).
ПП поддерживает выполнение хостовых команд в следующих режимах:
• Неавторизованном, не требующем аутентификации
администраторов ПП.
• Аутентифицированном, требующем аутентификации одного
администратора ПП.
• Авторизованном, требующем аутентификации двух
администраторов ПП.
Порядок создания учетных записей администраторов ПП, записи
устройств аутентификации для них и проведения их аутентификации, а также о
режимах работы ViPNet HSM PS приведены в документе «ViPNet HSM PS.
Руководство администратора»2.
Требование к состоянию авторизации приведено в описании каждой
команды (см. Раздел 4 настоящего документа).
2 Порядок работы с учетными записями администраторов ПП аналогичен порядку работы с учетными записями администраторов прикладного сервиса, приведенному в данном документе.
Модуль безопасности платежных систем. Руководство разработчика | 14
3. Обращение к программе
ViPNet HSM PS функционирует как периферийное оборудование,
подключенное к компьютеру хост-системы.
ViPNet HSM PS предназначен для выполнения криптографических
преобразований в безопасном окружении. Преобразования выполняются по
запросам от хост-компьютера, подключенного к ViPNet HSM PS по сети
Ethernet.
Обычно ViPNet HSM PS используется в режиме реального времени
онлайновыми системами для управления ключами, работы с PIN-кодами,
вычисления MAC-функций.
Прикладная программа посылает команды в ViPNet HSM PS и получает
от него ответы. Каждая команда и ответ состоят из переменного числа полей.
Для кодирования символов используется ASCII. ViPNet HSM PS можно
настроить на работу по протоколам TCP и UDP. Порядок настройки ViPNet HSM
PS приведен в документе «ViPNet HSM PS. Руководство администратора».
ViPNet HSM PS возвращает код ответа (норма или ошибка) хост-
компьютеру в каждом ответном сообщении. Разработчик ПО для хост-
компьютера должен предусмотреть обработку всех возможных видов ошибок
соответствующим образом.
В ViPNet HSM PS существует область хранения асимметричных ключей,
которые могут использоваться ViPNet HSM PS в процессе работы. Указание в
команде использования ключей из локального хранилища уменьшает объем
данных для передачи в команде и таким образом уменьшает время обмена
данными с ViPNet HSM PS.
ViPNet HSM PS позволяет печатать данные (например, PIN-конверты) на
подключенном к нему принтере. Для этого ViPNet HSM PS требуется
информация о формате печатаемых данных, поэтому перед командой печати
прикладная программа должна послать ViPNet HSM PS команду с форматом
печатаемых данных.
Модуль безопасности платежных систем. Руководство разработчика | 15
Протокол TCP/IP
ViPNet HSM PS использует протокол TCP для передачи данных, при этом
он функционирует как TCP-сервер.
Отправка команд
Таблица 1 представляет форму команды, которую ожидает ViPNet HSM
PS.
Таблица 1 – Формат командного сообщения
Поле Размер Описание
Длина 2 байта Длина поля «Команда»
Команда N байт Команда HSM PS
В рамках одной TCP-сессии можно послать несколько команд, каждая из
которых должна быть в форме, описанной в Таблица 1.
Пример команды диагностики (NC):
00 06 31 32 33 34 4E 43
где длина заголовка сообщения установлена в 4, и используется заголовок
1234.
Возвращаемый результат
Когда ViPNet HSM PS получает команду от TCP-клиента, команда
обрабатывается ПП, и ответ возвращается TCP-клиенту. Таблица 2 представляет
форму ответа.
Таблица 2 – Формат ответного сообщения
Поле Размер Описание
Длина 2 байта Длина поля «Ответ»
Ответ N байт Ответ ViPNet HSM PS
Результат возвращается клиенту на каждую команду.
Пример ответа на команду диагностики (NC):
00 21 31 32 33 34 4E 43 30 30 32 36
38 36 30 34 37 34 34 34 39 31 32 34
Модуль безопасности платежных систем. Руководство разработчика | 16
32 32 30 30 30 37 2D 45 30 30 30
Протокол UDP
Клиент отправляет датаграмму в ViPNet HSM PS на заданный в
настройках порт. ViPNet HSM PS, функционирующий как UDP-сервер,
обрабатывает датаграмму (с помощью ПП) и возвращает клиенту ответ также в
виде датаграммы.
UDP-протокол функционирует без установки соединения. Если ViPNet
HSM PS определяет ошибку в полученной датаграмме, она не обрабатывается.
UDP-клиент на хост-компьютере должен реализовать механизм тайм-аутов: при
отсутствии ответа от ViPNet HSM PS в течение заданного тайм-аута необходимо
повторно произвести отправку датаграммы.
Таблица 1 и Таблица 2 представляют аналог формата команд и ответов.
Модуль безопасности платежных систем. Руководство разработчика | 17
4. Входные и выходные данные
4.1. Общие сведения
Типы ключей ViPNet HSM PS
ПП обеспечивает функции управления мастер-ключами, сессионными
ключами и ключами платежных транзакций. Иерархия ключей представлена на
Рис. 1 и Рис. 2.
Local Master Key
Zone Master Key
ZPK TMK TAK PVK CVK
Рис. 1 – Иерархия сетевых ключей
Local Master Key
Terminal Master Key
TMK TPK TAK PVK
Рис. 2 – Иерархия ключей локальной сети
Модуль безопасности платежных систем. Руководство разработчика | 18
Локальный мастер-ключ (Local Master Key – LMK)
LMK располагаются в хранилище ViPNet HSM PS. Все остальные ключи
и конфиденциальные данные для локального хранения в хост-системе
шифруются под LMK.
Зональный мастер-ключ (Zone Master Key – ZMK)
ZMK – ключ шифрования ключей при межхостовом обмене между
участниками платежной системы. Используется для шифрования нижестоящих
по уровню иерархии ключей при их передаче. ZMK при локальном хранении в
хост-системе зашифрован под LMK.
Зональный ключ шифрования PIN (Zone PIN Key – ZPK)
ZPK – ключ шифрования PIN-блока при межхостовом обмене,
например, между эквайрером и эмитентом. При передаче взаимодействующим
сторонам шифруется под ZMK, при локальном хранении в хост-системе – под
соответствующую пару LMK.
Терминальный мастер-ключ (Terminal Master Key – TMK)
TMK – ключ шифрования ключей при обмене между терминальным
оборудованием и эмитентом терминала (эквайрером). Используется для
шифрования нижестоящих по уровню иерархии ключей или «новых» ключей
TMK при их передаче. При локальном хранении в хост-системе зашифрован
под соответствующую пару LMK.
Терминальный ключ шифрования PIN (Terminal PIN Key – TPK)
TPK – ключ шифрования PIN-блока при обмене между терминальным
оборудованием и эмитентом терминала (эквайрером). При передаче
взаимодействующим сторонам шифруется под TMK, при локальном хранении
в хост-системе – под соответствующую пару LMK.
Модуль безопасности платежных систем. Руководство разработчика | 19
Терминальный ключ аутентификации (Terminal Authentication Key –
TAK)
TAK – ключ формирования Message Authentication Code (MAC) за
данные при обмене между терминальным оборудованием и эмитентом
терминала (эквайрером). При передаче шифруется под TMK или ZMK, при
локальном хранении в хост-системе – под соответствующую пару LMK.
Ключ проверки PIN (PIN Verification Key – PVK)
PVK – ключ, используемый для генерации и проверки проверочной
величины PIN (PIN Verification Value – PVV). При передаче шифруется под
TMK или ZMK, при локальном хранении в хост-системе – под
соответствующую пару LMK.
Ключ проверки карты (Card Verification Key – CVK)
CVK – ключ, используемый для генерации и проверки проверочной
величины карты (Card Verification Value – CVV или Card Verification Code –
CVC). При локальном хранении в хост-системе шифруется под
соответствующую пару LMK.
Массив LMK
Массив LMK (Local Master Key), массив локальных мастер-ключей,
представляет собой один из наборов ключей:
− набор 64-битных DES3-ключей (LMK-DES);
− набор 256-битных ГОСТ4-ключей (LMK-ГОСТ);
− набор 192-битных DES-ключей (LMK-DES Keyblock);
3 Используются для шифрования в соответствии с алгоритмом DES или 3DES.
4 Используются для шифрования в соответствии с алгоритмом ГОСТ Р 34.12-2015 («Магма»)
Модуль безопасности платежных систем. Руководство разработчика | 20
− набор 256-битных AES ключей (LMK-AES Keyblock);
LMK располагаются в хранилище ViPNet HSM PS и используются для
защиты ключевой и чувствительной информации при ее хранении в хост-
системе, подключенной к ViPNet HSM PS.
Ключи LMK-DES используются (и нумеруются) попарно, ключи
LMK-ГОСТ – единично, для шифрования ключей различных типов. Например,
номер ключа LMK-DES 04-05 означает пару ключей с номерами 04 и 05, а номер
0405 для LMK-ГОСТ означает один ключ, который используется для тех же
целей, что и одноименная пара LMK-DES. В дальнейшем употребляется общее
выражение «пара LMK» в значении для LMK-DES или LMK-ГОСТ,
приведенном выше.
Ключи LMK-DES Keyblock и LMK-AES Keyblock используются для
шифрования ключей различного назначения в формате ключевого блока
Keyblock HSM (далее – Keyblock LMK).
Формат ключевого блока включает ряд характеристик, в частности,
атрибут «Назначение ключа» (Key Usage) (см. Таблица 13). Формат ключевого
блока Keyblock HSM с использованием LMK-AES Keyblock соответствует
стандарту ASC X9 TR 31-2018 с расширенным набором значений атрибута
«Назначение ключа».
Для каждого значения атрибута формируется свой ключ LMK-DES
Keyblock или LMK-AES Keyblock.
Например, значение атрибута «52» означает назначение ключа LMK-DES
Keyblock или LMK-AES Keyblock для зашифрования Зональных мастер-ключей
(ZMK).
В дальнейшем употребляется выражение «Назначение ключа» в
значении для LMK-DES Keyblock или LMK-AES Keyblock, приведенном выше.
Модуль безопасности платежных систем. Руководство разработчика | 21
Тестовые LMK
Для технологических режимов могут быть использованы тестовые LMK.
Тип LMK задается при генерации LMK (консольная команда GK), процедура
генерации LMK описана в документе «ViPNet HSM PS. Руководство
администратора».
Таблица 3 представляет значения тестовых LMK-DES.
Таблица 3 – Тестовые LMK-DES
LMK Значение LMK Значение
00 01 01 01 01 01 01 01 01 01 79 02 CD 1F D3 6E F8 BA
02 20 20 20 20 20 20 20 20 03 31 31 31 31 31 31 31 31
04 40 40 40 40 40 40 40 40 05 51 51 51 51 51 51 51 51
06 61 61 61 61 61 61 61 61 07 70 70 70 70 70 70 70 70
08 80 80 80 80 80 80 80 80 09 91 91 91 91 91 91 91 91
10 A1 A1 A1 A1 A1 A1 A1 A1 11 B0 B0 B0 B0 B0 B0 B0 B0
12 C1 C1 01 01 01 01 01 01 13 D0 D0 01 01 01 01 01 01
14 E0 E0 01 01 01 01 01 01 15 F1 F1 01 01 01 01 01 01
16 1C 58 7F 1C 13 92 4F EF 17 01 01 01 01 01 01 01 01
18 01 01 01 01 01 01 01 01 19 01 01 01 01 01 01 01 01
20 02 02 02 02 02 02 02 02 21 04 04 04 04 04 04 04 04
22 07 07 07 07 07 07 07 07 23 10 10 10 10 10 10 10 10
24 13 13 13 13 13 13 13 13 25 15 15 15 15 15 15 15 15
26 16 16 16 16 16 16 16 16 27 19 19 19 19 19 19 19 19
28 1A 1A 1A 1A 1A 1A 1A 1A 29 1C 1C 1C 1C 1C 1C 1C 1C
30 23 23 23 23 23 23 23 23 31 25 25 25 25 25 25 25 25
32 26 26 26 26 26 26 26 26 33 29 29 29 29 29 29 29 29
34 2A 2A 2A 2A 2A 2A 2A 2A 35 2C 2C 2C 2C 2C 2C 2C 2C
36 2F 2F 2F 2F 2F 2F 2F 2F 37 31 31 31 31 31 31 31 31
38 01 01 01 01 01 01 01 01 39 01 01 01 01 01 01 01 01
Таблица 4 содержит значения тестовых LMK-ГОСТ.
Модуль безопасности платежных систем. Руководство разработчика | 22
Таблица 4 – Тестовые LMK-ГОСТ LMK Значение
0001 01 01 01 01 01 01 01 01 79 02 CD IF D3 6E F8 BA
01 01 01 01 01 01 01 01 79 02 CD IF D3 6E F8 BA
0203 20 20 20 20 20 20 20 20 31 31 31 31 31 31 31 31
20 20 20 20 20 20 20 20 31 31 31 31 31 31 31 31
0405 40 40 40 40 40 40 40 40 51 51 51 51 51 51 51 51
40 40 40 40 40 40 40 40 51 51 51 51 51 51 51 51
0607 61 61 61 61 61 61 61 61 70 70 70 70 70 70 70 70
61 61 61 61 61 61 61 61 70 70 70 70 70 70 70 70
0809 80 80 80 80 80 80 80 80 91 91 91 91 91 91 91 91
80 80 80 80 80 80 80 80 91 91 91 91 91 91 91 91
1011 A1 A1 A1 A1 A1 A1 A1 A1 B0 B0 B0 B0 B0 B0 B0 B0
A1 A1 A1 A1 A1 A1 A1 A1 B0 B0 B0 B0 B0 B0 B0 B0
1213 C1 C1 01 01 01 01 01 01 D0 D0 01 01 01 01 01 01
C1 C1 01 01 01 01 01 01 D0 D0 01 01 01 01 01 01
1415 E0 E0 01 01 01 01 01 01 F1 F1 01 01 01 01 01 01
E0 E0 01 01 01 01 01 01 F1 F1 01 01 01 01 01 01
1617 1C 58 7F 1C 13 92 4F EF 01 01 01 01 01 01 01 01
1C 58 7F 1C 13 92 4F EF 01 01 01 01 01 01 01 01
1819 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
2021 02 02 02 02 02 02 02 02 04 04 04 04 04 04 04 04
02 02 02 02 02 02 02 02 04 04 04 04 04 04 04 04
2223 07 07 07 07 07 07 07 07 10 10 10 10 10 10 10 10
07 07 07 07 07 07 07 07 10 10 10 10 10 10 10 10
2425 13 13 13 13 13 13 13 13 15 15 15 15 15 15 15 15
13 13 13 13 13 13 13 13 15 15 15 15 15 15 15 15
2627 16 16 16 16 16 16 16 16 19 19 19 19 19 19 19 19
16 16 16 16 16 16 16 16 19 19 19 19 19 19 19 19
2829 1A 1A 1A 1A 1A 1A 1A 1A 1C 1C 1C 1C 1C 1C 1C 1C
1A 1A 1A 1A 1A 1A 1A 1A 1C 1C 1C 1C 1C 1C 1C 1C
Модуль безопасности платежных систем. Руководство разработчика | 23
LMK Значение
3031 23 23 23 23 23 23 23 23 25 25 25 25 25 25 25 25
23 23 23 23 23 23 23 23 25 25 25 25 25 25 25 25
3233 26 26 26 26 26 26 26 26 29 29 29 29 29 29 29 29
26 26 26 26 26 26 26 26 29 29 29 29 29 29 29 29
3435 2A 2A 2A 2A 2A 2A 2A 2A 2C 2C 2C 2C 2C 2C 2C 2C
2A 2A 2A 2A 2A 2A 2A 2A 2C 2C 2C 2C 2C 2C 2C 2C
3637 2F 2F 2F 2F 2F 2F 2F 2F 31 31 31 31 31 31 31 31
2F 2F 2F 2F 2F 2F 2F 2F 31 31 31 31 31 31 31 31
3839 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
Таблица 5 представляет тестовые значения для всех LMK-DES Keyblock.
Таблица 5 – Тестовые LMK-DES Keyblock
LMK 01 23 45 67 89 AB CD EF 80 80 80 80 80 80 80 80
FE DC BA 98 76 54 32 10
Таблица 6 представляет тестовые значения для всех LMK-AES Keyblock.
Таблица 6 – Тестовые LMK-AES Keyblock
LMK 9B 71 33 3A 13 F9 FA E7 2F 9D 0E 2D AB 4A D6 78
47 18 01 2F 92 44 03 3F 3F 26 A2 DE 0C 8A A1 1A
Варианты LMK
При шифровании ключей под LMK-DES используются «варианты»
LMK (от 0 до 9). Под «вариантом» понимаются диверсифицированные в
соответствии с номером «варианта» ключи LMK-DES.
Модуль безопасности платежных систем. Руководство разработчика | 24
Коды типов ключей
Ключам, шифруемым под LMK-DES, присваивается трехзначный код
типа ключа, определяющий пару (ключ) LMK-DES, под которую шифруется
ключ, а также «вариант» ключа шифрования.
Таблица 7 содержит различные типы симметричных ключей.
Таблица 7 – Типы симметричных ключей
Тип
ключа
Код
типа
ключа
Имя ключа
ZMK 000 Zone Master Key
KML 200 Master Load Key
ZPK 001 Zone PIN encryption
PVK 002 PIN Verification Key
TMK 002 Terminal Master Key
TPK 002 Terminal PIN Key
GK 102 Key Encryption / Wrapping Key (Generic)
GK 202 Key Encryption / Wrapping Key (Generic)
IKEY 302 Initial Key (DUKPT)
CVK 402 Card Verification Key
CSCK 402 Card Security Code Key
GK 502 Key Encryption / Wrapping Key (Generic)
GK 602 Key Encryption / Wrapping Key (Generic)
GK 72 Key Encryption / Wrapping Key (Generic)
GK 802 Key Encryption / Wrapping Key (Generic)
GK 902 Key Encryption / Wrapping Key (Generic)
TAK 003 Terminal Authentication Key
GK 004 Key Encryption / Wrapping Key (Generic)
GK 005 Key Encryption / Wrapping Key (Generic)
WWK 006 Watchword Key
KEK 107 Key Encryption Key
KMC 207 Master Personalization Key
SK-ENC 307 Session Key for cryptograms and encrypting card
messages
SK-MAC 407 Session Key for authenticating card messages
SK-DEK 507 Session Key for encrypting secret card data
KD-
PERSO
507 KD Personalization Key
ZAK 008 Zone Authentication Key
Модуль безопасности платежных систем. Руководство разработчика | 25
Тип
ключа
Код
типа
ключа
Имя ключа
BDK 009 Base Derivation Key Type 1
IMK-AC 109 EMV Key, Master Key for AC generation
IMK-SMI 209 EMV Key, Master Key for Secure Messaging for Integrity
and Authentication
IMK-SMC 309 EMV Key, Master Key for Secure Messaging for
Confidentiality
IMK-DAC 409 EMV Key, Master Key for Data Authentication Code
Generation
IMK-DN 509 EMV Key, Master Key for ICC Dynamic Number
Generation
BDK2 609 Base Derivation Key Type 2
IMK-CVC3 709 DCVV Master Key
BDK3 809 Base Derivation Key Type 3
ZEK 00A Zone Encryption Key
DEK 00B Data Encryption Key
TEK 30B Terminal Encryption Key
RSA-SK 00C RSA Private Key
HMAC 10C HMAC Key
RSA-PK 00D RSA Public Key
GK 00E Key Encryption / Wrapping Key (Generic)
Модуль безопасности платежных систем. Руководство разработчика | 26
Таблица 8 представляет типы ключей и соответствующие пары и
варианты LMK.
Таблица 8 – Типы ключей и соответствующие LMK-DES
Вариант
→
0 1 2 3 4 5 6 7 8 9
↓ LMK ↓ Г Э И Г Э И Г Э И Г Э И Г Э И Г Э И Г Э И Г Э И Г Э И Г Э И
Пара Код
04-05 00 ZMK KML
А Н А Н Н А Н
06-07 01 ZPK
Н А Н
14-15 02 PVK
TPK
TMK
IKEY CSCK
CVK
Н А Н Н А Н Н А Н
16-17 03 TAK
Н А Н
18-19 04
20-21 05 KML
Н А Н
22-23 06 WWK
Н А Н
24-25 07 KEK KMC SK-ENC SK-MAC SK-DEK
KD-PERSO
Н А Н Н А Н
26-27 08 ZAK
Н А Н
28-29 09 BDK IMK-AC IMK-SMI IMK-SMC IMK-DAC IMK-DN BDK2 IMK-CVC3 BDK3
Н А Н Н А Н Н А Н Н А Н Н А Н Н А Н Н А Н Н А Н Н А Н
30-31 0A ZEK
Н А Н
32-33 0B DEK TEK
Н Н А
34-35 0C RSA-SK HMAC
А Н А Н
36-37 0D RSA-PK
А А
38-39 0E
Где:
Г=Генерация;
Э=Экспорт;
И=Импорт;
А – Авторизация требуется;
Н – Авторизация не требуется.
Модуль безопасности платежных систем. Руководство разработчика | 27
Ключевая схема
Таблица 9 содержит допустимые значения параметра «Ключевая схема».
Таблица 9 – Значения параметра «Ключевая схема»
Значение
параметра
Описание
(Нет)/Z Шифрование DES-ключа одинарной длины, используя
методы ANSI X9.17. Используется для шифрования
ключей под варианты LMK, а также может быть
использован для импорта или экспорта ключей
U Шифрование ключа DES двойной длины, используя
метод варианта; используется для шифрования ключей
под вариант LMK.
T Шифрование ключа DES тройной длины, используя
метод варианта; используется для шифрования ключей
под вариант LMK.
X Шифрование ключа двойной длины, используя методы
ANSI X9.17; разрешено для шифрования выходных
данных в хостовых командах KI, K8 и консольных
командах IK, KE.
Y Шифрование ключа тройной длины, используя методы
ANSI X9.17; разрешено для шифрования выходных
данных в хостовых командах KI, K8 и консольных
командах IK, KE.
R Шифрование DES ключей с одиночной, двойной и
тройной длины, а также AES ключей 128-, 192- и 256-
битовой длины методом Keyblock X9 TR-31
S Шифрование DES ключей с одиночной, двойной и
тройной длины, а также AES ключей 128-, 192- и 256-
битовой длины методом Keyblock HSM
Параметр «Ключевая схема» указывается во входных и/или выходных
данных команды непосредственно перед шифрограммой ключа.
Формат поля: 1 A + n H
Модуль безопасности платежных систем. Руководство разработчика | 28
Метод ANSI X9.17
Каждая часть (64 бита) DES-ключа двойной или тройной длины
шифруется отдельно с использованием режима ECB. Эта схема доступна только
для команд экспорта и импорта ключей при условии установленного флага
«Разрешить экспорт ANSI X9.17» в консольном режиме «Настройки» [1].
Параметры этой схемы:
X – для DES-ключа двойной длины
Y – для DES-ключа тройной длины
Вариантный метод
Каждая часть (64 бита) DES-ключа двойной или тройной длины
шифруется отдельно с использованием режима ECB. Для второй или третьей
части (в зависимости от длины ключа: двойной или тройной) применяется свой
вариант шифрования. Существует пять вариантов шифрования каждого ключа.
Эта схема применима для шифрования ключей под LMK и для экспорта и
импорта ключей.
LMK-DES представляют собой ключи двойной длины, состоящие из
левой и правой половины. Каждая половина состоит из 16 шестнадцатеричных
символов. Другие ключи, такие как ZMK, могут иметь двойную или тройную
длину. Ключи тройной длины состоят из трех частей: левой, средней и правой.
Каждая часть состоит из 16 шестнадцатеричных символов. Вариант
применяется к правой части двойного ключа и к средней части тройного ключа.
Параметры этой схемы:
U – для DES-ключа двойной длины
T – для DES-ключа тройной длины
Варианты для ключей двойной длины:
Ключ 1 (левая часть) из 2 – A6
Ключ 2 (правая часть) из 2 – 5A
Модуль безопасности платежных систем. Руководство разработчика | 29
Варианты для ключей тройной длины:
Ключ 1 (левая часть) из 3 – 6A
Ключ 2 (средняя часть) из 3 – DE
Ключ 3 (правая часть) из 3 – 2B
Пример 1:
Ключ шифрования ключа двойной длины:
XXXX XXXX XXXX XXXX YYYY YYYY YYYY YYYY
Ключ двойной длины:
AAAA AAAA AAAA AAAA BBBB BBBB BBBB BBBB
− Вариант A6 применяется к первым двум шестнадцатеричным
символам Y для шифрования A;
− Вариант 5A применяется к первым двум шестнадцатеричным
символам Y для шифрования B.
Пример 2:
Ключ шифрования ключа двойной длины:
XXXX XXXX XXXX XXXX YYYY YYYY YYYY YYYY
Ключ тройной длины:
AAAA AAAA AAAA AAAA BBBB BBBB BBBB BBBB CCCC CCCC CCCC CCCC
− Вариант 6A применяется к первым двум шестнадцатеричным
символам Y для шифрования A;
− Вариант DE применяется к первым двум шестнадцатеричным
символам Y для шифрования B;
− Вариант 2B применяется к первым двум шестнадцатеричным
символам Y для шифрования С.
Применение варианта состоит в сложении по «исключающему ИЛИ»
(XOR) первых двух символов Y и варианта.
Шифрование ключей с использованием формата ключевого блока
Таблица 10 представляет формат ключевого блока (Keyblock HSM и
Keyblock X9 TR-31).
Модуль безопасности платежных систем. Руководство разработчика | 30
Таблица 10 – Формат ключевого блока
Тэг (ключевая
схема)
Заголовок Опциональные
блоки
заголовка
Зашифрован-
ные ключевые
данные
Данные
аутентифика-
ции
ключевого
блока
1 байт 16 ASCII
символов
ASCII символы,
переменной длины
В представлении
ASCII
16 ASCII
Символов
Тэг не включается в данные аутентификации. Для хранения ключей в
хост-системе под LMK-DES Keyblock или LMK-AES Keyblock используется
формат Keyblock HSM (тэг "S"). Экспортируемые ключи передаются в хост-
систему в формате Keyblock X9 TR-31; для таких ключей предназначен тэг "R".
При использовании LMK-DES Keyblock ключевые данные шифруется с
использованием 3-DES Cipher Block Chaining (CBC), используя байты 0-7
заголовка в качестве вектора инициализации (IV). Ключ шифрования будет
вариантом LMK-DES.
При использовании LMK-AES Keyblock ключевые данные
зашифровываются в соответствии с ASC X9 TR 31-2018.
Таблица 11 представляет формат ключевых данных.
Таблица 11 – Формат ключевых данных
Поле Длина Примечания
Длина ключа 2 байта Содержит длину зашифровываемого
ключа в битах; длина записывается как
16-битное число; например, если длина
ключа 192 бита для 3-DES ключа, поле
будет иметь значение X’00C0.
Ключ Переменная, зависит от
зашифровываемого ключа
Содержит ключевые данные в бинарном
формате, 192-битный (тройной длины)
3-DES ключ будет занимать 24 байта
Модуль безопасности платежных систем. Руководство разработчика | 31
Поле Длина Примечания
Паддинг
(дополнение)
Переменная Содержит заполнение случайным
числом, используется для дополнения
блока ключевых данных до длины,
кратной длине блока алгоритма
шифрования. Для зашифрования на AES
ключе блок ключевых данных должен
быть кратен 16 байтам, таким образом,
поле заполнения будет занимать 6, 22, 38
байт. Поле заполнения может
использоваться для маскировки
истинной длины ключа в ключевом
блоке, при необходимости.
Аутентификация ключевого блока
Данные аутентификации ключевого блока обеспечивают целостность
ключевого блока, они рассчитываются по заголовку, опциональным блокам
заголовка и ключевым данным.
При использовании LMK-DES Keyblock данные аутентификации
ключевого блока вычисляются с использованием 3-DES CBC-MAC с нулевым
значением IV. (Не требуется заполнение, поскольку данные, подлежащие
аутентификации, всегда кратно 8 байтам). Самые левые 4 байта результата
будут использоваться в качестве данных аутентификации.
При использовании LMK-AES Keyblock данные аутентификации
вычисляются в соответствии с ASC X9 TR 31-2018.
Заголовок ключевого блока
Таблица 12 представляет формат байта заголовка ключевого блока
Keyblock HSM длиной 16 (ASCII).
Модуль безопасности платежных систем. Руководство разработчика | 32
Таблица 12 – Формат заголовка ключевого блока
Байты Поле Примечание
0 ID Версии «0» для ключевого блока LMK-DES Keyblock
«D» для ключевого блока LMK-AES Keyblock
«D» для ключевого блока LMK-AES Keyblock
1 — 4 Длина ключевого блока Полная длина ключевого блока
5 — 6 Назначение Например, для шифрования ключа, для
шифрования данных
7 Алгоритм Например, DES, 3-DES, AES
8 Режим использования Например, только зашифрование
9 — 10 Номер версии ключа Например, версия ключа или признак
компоненты ключа
11 Экспортируемость Например, экспортируемость под доверенным
ключом
12 — 13 Количество
опциональных блоков
Количество опциональных блоков
14 — 15 «00» Обнуление
Длина ключевого блока (байт 1-4)
Байты 1-4 заголовка содержат длину всего ключевого блока: заголовок,
опциональные блоки заголовка, зашифрованные ключевые данные и данные
аутентификации. Длина ключевого блока расчитывается после закодирования
и представляет собой 4 цифры (ASCII). Например, если полная длина
ключевого блока 112 символов (байт), то значение в байте 1 - «0», в байте 2 и 3
- «1», и значение в байте 4 - «2» (т.е. X’30313132).
Назначение ключей - Key Usage (байт 5-6)
Байты 5-6 заголовка определяют исходное назначение ключа (Key
Usage), содержащегося в ключевом блоке. Таблица 13 определяет
поддерживаемые коды и обозначения «Key block HSM» поля «Назначение
ключей» для схем «S» и «R».
Модуль безопасности платежных систем. Руководство разработчика | 33
Таблица 13 - Значения поля «Назначение ключей»
Значение
поля
«Назначение
ключа»
(Key Usage)
HEX TR-31 Тип/
Алгоритм Описание
01 X’3031 DES, 3DES Watchword Key (WWK)
02 X’3032 RSA RSA Public Key (RSA-PK)
03 X’3033 RSA RSA Private Key (RSA-
SK)
B0 X’4230 B0 3DES Base Derivation Key Type
1 (BDK)
41 X’3431 B0 3DES Base Derivation Key Type
2 (BDK2)
42 X’3432 B0 3DES Base Derivation Key Type
3 (BDK3)
B1 X’4231 B1 DES, 3DES DUKPT Initial Key (IKEY)
C0 X’4330 C0 DES, 3DES Card Verification Key
(CVK)
11 X’3131 C0 DES, 3DES Card Security Code Key
(American Express CSC)
12 X’3132 C0 DES, 3DES Card Security Code Key
(Mastercard CVC)
13 X’3133 C0 DES, 3DES Card Security Code Key
(Visa CVV)
D0 X’4430 D0 AES, DES,
3DES
Data Encription Key
(Generic)
21 X’3231 D0 AES, DES,
3DES
Data Encription Key
(DEK)
22 X’3232 D0 AES, DES,
3DES Data Encription Key (ZEK)
23 X’3233 D0 AES, DES,
3DES Data Encription Key (TEK)
E0 X’4530 E0 DES, 3DES EMV Key, Master Key for
AC generation (IMK-AC)
E1 X’4531 E1 DES, 3DES
EMV Key, Master Key for
Secure Messaging for
Confidentiality
(IMK-SMC)
Модуль безопасности платежных систем. Руководство разработчика | 34
Значение
поля
«Назначение
ключа»
(Key Usage)
HEX TR-31 Тип/
Алгоритм Описание
E2 X’4532 E2 DES, 3DES
EMV Key, Master Key for
Secure Messaging for
Integrity and
Authentication (IMK-SMI)
E3 X’4533 E3 DES, 3DES
EMV Key, Master Key for
Data Authentication Code
Generation (IMK-DAC)
E4 X’4534 E4 DES, 3DES
EMV Key, Master Key for
ICC Dynamic Number
Generation (IMK-DN)
E5 X’4535 E5 DES, 3DES EMV/Chip card Master
Key: Card Personalisation
E6 X’4536 E6 DES, 3DES EMV Key (Other)
31 X’3331 E6 DES, 3DES Master Load Key
32 X’3332 E6 DES, 3DES DCVV Master Key (IMK-
CVC3)
I0 X’4930 I0 - Initialization Value
(Вектор инициализации)
K0 X’4B30 K0 AES, DES,
3DES
Key Encryption / Wrapping
Key (Generic)
51 X’3531 K0 DES, TDES TMK — терминальный
мастер-ключ
52 X’3533 K0 DES, TDES ZMK — зональный
мастер-ключ
M1 X’4D31 M1 DES
ISO 9797-1 MAC
algorithm 1
M3 X’4D33 M3 3DES
ISO 9797-1 MAC
algorithm 3
M5 X’4D33 M5 AES AES CBC MAC
M6 X’4D33 M6 AES AES CMAC
61 X’3631 HMAC
HMAC Key (с
использованием SHA-1)
Модуль безопасности платежных систем. Руководство разработчика | 35
Значение
поля
«Назначение
ключа»
(Key Usage)
HEX TR-31 Тип/
Алгоритм Описание
63 X’3633 HMAC
HMAC Key (с
использованием SHA-
256)
P0 X’5030 P0 DES, 3DES PIN Encryption Key
(Generic)
71 X’3731 P0 DES, 3DES Terminal PIN Key (TPK)
72 X’3732 P0 DES, TDES Zone PIN encryption
(ZPK)
V0 X’5630 V0 DES, 3DES PIN Verification Key
(PVK)
V1 X’5631 V1 DES, 3DES PIN Verification Key (IBM
3624 algorithm)
V2 X’5632 V2 DES, 3DES PIN Verification Key (Visa
PVV algorithm)
Алгоритм – Algorithm (байт 7)
Байт 7 заголовка определяет криптографичекий алгоритм (Algorithm),
который используется для зашифрования ключа в ключевом блоке. Ошибка!
Источник ссылки не найден. содержит поддерживаемые значения поля
«Алгоритм»
Таблица 14 - Значения поля «Алгоритм»
Значение HEX Алгоритм
“A” X’41 AES
“D” X’44 DES
“T” X’54 3-DES
“H” X’48 HMAC
“R” X’52 RSA
Модуль безопасности платежных систем. Руководство разработчика | 36
Режим использования – Mode of Use (байт 8)
Байт 8 заголовка определяет операции, которые может реализовывать
зашифрованный ключ. Таблица 15 содержит поддерживаемые значения поля
«Режим использования»
Таблица 15 - Значения поля «Режим использования» (Mode of Use)
Значение HEX Описание
“B” X’42 Ключ может быть использован для операций
зашифрования и расшифрования
“C” X’43 Ключ может быть использован для операций
вычисления MAC (генерации и проверки)
“D” X’44 Ключ может быть использован только для операции
расшифрования
“E” X’45 Ключ может быть использован только для операции
зашифрования
“G” X’47 Ключ может быть использован только для операции
генерации MAC
“N” X’4E Нет специального режима использования
“S” X’53 Ключ может быть использован только для операции
формирования цифровой подписи
“V” X’56 Ключ может быть использован только для операции
проверки цифровой подписи
“X” X’58 Ключ может быть использован для формирования
нового ключа (диверсификации)
Номер версии ключа –Key Version Number (байты 9-10)
Байты 9-10 заголовка определяют номер версии ключа или номер
компоненты ключа. Таблица 16 содержит поддерживаемые значения поля
«Номер версии ключа»
Модуль безопасности платежных систем. Руководство разработчика | 37
Таблица 16 - Значения поля «Номер версии ключа»
Значение HEX Номер версии ключа
(байт 9) (байт 10)
“0” “0” X’3030 Поле не используется
“c” Любой
16-
ричный
X’6300 “c” в 9 байте указывает, что это компонента ключа.
10 байт – номер компоненты
Любая комбинация
16-ричных символов
Номер версии ключа или компоненты
Примечание - если байт 9 установлен в значение "c", то байт 10 обозначает
номер компоненты. Например, если байт 9-10 = "c2" (X’6332) означает, что
ключ в ключевом блоке — вторая компонента ключа. Однако, это не дает
информации об общем количестве компонент.
Экспортируемость – Exportability (байт 11)
Байт 11 заголовка определяет условия, при которых может быть
экспортирован ключ, содержащийся в ключевом блоке.
Доверенными форматами считаются Keyblock HSM и Keyblock X9
TR-31. Другие форматы ключа считаются недоверенными. Таблица 17
содержит поддерживаемые значения поля «Экспортируемость».
Таблица 17 - Значения поля «Экспортируемость»
Значение HEX Описание
“E” X’45 Может быть экспортирован в доверенный формат
ключевого блока, при условии, что ключ экспорта
также упакован в доверенном формате
“N” X’4E Экспорт не разрешен
При экспорте ключа в формате Keyblock HSM и Keyblock X9 TR-31,
байт 11 в экспортируемом ключевом блоке определяет допустимые свойства
экспортируемости зашифрованного ключа.
Модуль безопасности платежных систем. Руководство разработчика | 38
Таким образом, если полученный байт 11 имеет значение "E", то в
дальнейшем "доверенный" экспорт допускается, если "N", то дальнейший
экспорт не допускается.
Количество опциональных блоков (байт 12-13)
Байты 12-13 заголовка определяют количество опциональных блоков
заголовка в ключевом блоке. Значение "00" (X’3030) определяет отсутствие
опциональных блоков.
Опциональные блоки заголовка
Количество опциональных блоков определяется одноименным полем
заголовка (байты 12-13). Максимальное количество опциональных блоков в
заголовке ключевого блока – 9. Максимальная длина опционального блока
заголовка – 251 символ.
Опциональный блок имеет следующую структуру:
Байты Поле Описание
0-1 Идентификатор Идентификатор опционального блока заголовка
2-3 Длина Длина опционального блока заголовка в байтах,
представленная в виде шестнадцаритичного
значения в ASCII-кодировке. Например, если длина
равна 24 (десятичная), то это представляется как X'18
и кодируется как X'3138; если дополнительный блок
заголовка не содержит данных, то поле длины
содержит значение X'04 (кодируется как X'3034).
4-n Данные Данные опционального блока заголовка
Общая длина всех опциональных блоков заголовка должна быть кратной
длине блока шифрования (8 байтов в случае 3-DES), которая достигается (если
необходимо) путем включения блока заполнения (padding), который должен
быть последним опциональным блоком заголовка. Таблица 18 содержит
описание идентификаторов для допустимых титов опциональных блоков.
Модуль безопасности платежных систем. Руководство разработчика | 39
Таблица 18 – Типы опциональных блоков заголовка
Идентификатор HEX Имя поля Описание
‘CT’ X’4354 Сертификат
открытого ключа
Если ключевой блок содержит
ассиметричный секретный ключ,
то вместе с ним в качестве
опционального блока может
быть добавлен соответствующий
сертификат открытого ключа в
видк бинарного объекта
(подробнее в ASC X9 TR 31-
2018)
‘HM’ X’484D Алгоритм Хэш-
функции для
HMAC
Например:
‘10’ – SHA-1
‘21’ – SHA-256
‘KC’ X’4B43 Проверочная
величина ключа
Проверочная величина ключа,
зашифрованного в формате
ключевого блока
‘KP’ X’4B50 Проверочная
величина ключа
защиты
Проверочная величина ключа
защиты ключевого блока
‘KS’ X’4B53 Идентификатор
набора ключей
Опционально может
использоваться для
идентификации ключа в системе
‘KV’ X’4B56 Версия ключевого
блока
Используется для определения
версии набора значений полей
keyblock и того, что ключевой
блок содержит предварительные
значения, еще не одобренные
ANSI. Это поле должно
содержать 4 печатных символа
ASCII.
‘PB’ X’5042 Блок заполнения Используется для дополнения
общей длины опциональных
блоков заголовка до кратности
длине блока шифрования; поле
данных заполняется
считываемыми (случайными)
символами ASCII; если
используется, блок заполнения
должен быть последним
дополнительным блоком
заголовка.
‘TS’ X’5453 Штамп времени Дата и время (в формате UTC)
формирования ключевого блока
Модуль безопасности платежных систем. Руководство разработчика | 40
Идентификатор HEX Имя поля Описание
‘00’ X’3030 Статус ключа Допустимые значения:
«E» (Истек)
«L» (рабочий)
«P» (в режиме ожидания)
«R» (отменен)
«T» (тестовый)
‘01’ X’3031 Шифрование Алгоритм и режим,
использующиеся для
шифрования ключа в ключевом
блоке. Допустимое значение ‘00’
(текущий механизм)
‘02’ X’3032 Аутентификация Алгоритм и режим,
использующиеся для
аутентификации (контроля
целостности) в ключевом блоке.
Допустимое значение ‘00’
(текущий механизм)
‘03’ X’3033 Дата/время начала
срока действия
Дата и время, с которых
ключевой блок начинает
действовать; формат:
ГГГГ:ММ:ДД:ЧЧ
‘04’ X’3034 Дата/время
окончания срока
действия
Дата и время, с которых
ключевой блок перестает
действовать; формат:
ГГГГ:ММ:ДД:ЧЧ
‘05’ X’3034 Текст Любая комбинация печатных
символов. Нулевая длина
данного поля недопустима
Поддерживаемые криптоалгоритмы
Платежное приложение «Модуль безопасности платежных систем»
обеспечивает поддержку следующих криптографических алгоритмов и
стандартов:
− ГОСТ 28147-89;
− DES/3DES в соответствии c NIST FIPS 46-3/NIST Special Publication
800-67 и ISO/IEC 10116 (ECB, CBC);
− AES в соответствии c NIST FIPS 197;
− RSA в соответствии RFC 3447;
− SHA-1 в соответствии c RFC 3174 и NIST FIPS 180-4;
Модуль безопасности платежных систем. Руководство разработчика | 41
− SHA-256 в соответствии ISO/IEC 10118-2 (Dedicated Hash Function 4) и
в NIST FIPS 180-4;
− MAC в соответствии с ISO/IEC 9797-1 (MAC Algorithm 1, 3) с
использованием DES, 3DES;
− HMAC в соответствии с ISO/IEC 9797-2 (MAC Algorithm 2) и NIST
FIPS 198-1 с использованием SHA-1.
Режимы шифрования
Шифрование по алгоритму DES (3DES) производится в режиме
Electronic Code Book (ECB), если не указано иное.
Шифрование ключей под LMK по алгоритму ГОСТ Р 34.12-2015
(«Магма») производится в режиме простой замены (ГОСТ Р 34.13-2015).
Выходной контейнер ключа, зашифрованного под LMK-ГОСТ, содержит
помимо самой шифрограммы также имитовставку за ключ под LMK-ГОСТ.
Целостность ключей
ПП осуществляет проверку целостности ключей.
Для проверки целостности DES-ключей используются биты четности.
Проверка ключей, зашифрованных под LMK-ГОСТ, выполняется по
имитовставке.
Целостность ключей в формате ключевого блока (Keyblock)
выполняется по данным аутентификации.
Обозначения, используемые в описании команд:
L Длина зашифрованного PIN. Вычисляется увеличением на 1
длины чистого PIN, задаваемой настройками (пункт меню
«Настройка» Web-интерфейса удаленного управления
платежным приложением).
m Длина заголовка сообщения. Устанавливается настройками
(пункт меню «Настройка» Web-интерфейса удаленного
управления платежным приложением).
Модуль безопасности платежных систем. Руководство разработчика | 42
n Поле переменной длины
А Буквенно-цифровые символы
H Шестнадцатиричные символы ('0'...'9', 'A'...'F')
N Числовое поле ('0'...'9')
C Контрольный символ
B Бинарные данные (X'00...X'FF)
D Двоично-десятичный (BCD) символ ('0' ... '9').
Например:
32 H – означает, что длина поля 32 шестнадцатиричных символа
m A – означает, что «длина заголовка сообщения» m алфавитно-цифровых
символов
Поддержка формата ключевого контейнера
Для работы с форматом key block необходима активация лицензии
«Поддержка формата ключевого контейнера» (Support of keyblock Licence 11.1
– LIC011). LIC011 обеспечивает возможность работы с форматом key block в
LIC001, LIC002, LIC003, LIC004, LIC006-LIC009 для команд, допускающих
данную функциональность.
Модуль безопасности платежных систем. Руководство разработчика | 43
4.2. Лицензии
Список лицензий
Таблица 19 содержит перечень лицензий, доступных в Платёжном
приложении «Модуль безопасности платёжных систем».
Таблица 19 - Перечень лицензий
Код Название Описание
LIC001 Лицензия «Процессинг»
(Processing Licence 01.1)
Базовая лицензия для работы с
платежным приложением.
LIC002 Лицензия «Печать PIN-конвертов»
(PIN and Key Printing Licence 02.1)
Лицензия для печати ПИН-
кодов владельцев карт и
компонентов ключей в ПИН-
конверты.
LIC003 Лицензия «Предперсонализация
карт»
(Card Data Preparation Licence 03.1)
Лицензия для подготовки
данных для персонализации
карт с магнитной полосой или
с чипом. Также включает в
себя поддержку работы с
EMV-сертификатами.
LIC004 Лицензия «Персонализация карт»
(Card Data Personalization Licence
04.1)
Лицензия для записи данных
на карты.
LIC006 Лицензия «Поддержка 3D Secure»
(Support of 3D Secure Licence 06.1)
Лицензия для реализации
процедуры аутентификации,
включая вычисление CAP,
MAC и HMAC.
LIC007 Лицензия «Поддержка China Union
Pay» (Support of China Union Pay
Licence 07.1)
Лицензия для работы с
чиповыми картами China
Union Pay.
LIC008 Лицензия «Поддержка АmExp»
Support of AmExp Licence 08.1)
Лицензия для работы с
чиповыми картами American
Express.
LIC009 Лицензия «Поддержка НСПК
«МИР» (Support of NSPK “MIR”
License 09.х)
Лицензия для работы с
чиповыми картами «МИР».
LIC011 Лицензия «Поддержка формата
ключевого контейнера»
(Support of keyblock Licence 11.1)
LIC011 не содержит
отдельного перечня команд.
Активация лицензии LIC011
обеспечивает возможность
Модуль безопасности платежных систем. Руководство разработчика | 44
работы с форматом key block в
LIC001, LIC002, LIC003,
LIC004, LIC006-LIC009 для
команд, допускающих данную
функциональность.
4.3. Перечни команд
Список команд по алфавиту
Таблица 20 - Перечень команд по алфавиту20 содержит перечень
команд, реализованных Платёжным приложением «Модуль безопасности
платёжных систем», выстроенный в алфавитном порядке.
Таблица 20 - Перечень команд по алфавиту
Команда
(ответ)
Функция Страница
A0 (A1) Генерация ключа 59
A2 (A3,
AZ)
Генерация и печать компонент 324
A4 (A5) Формирование ключа из зашифрованных
компонент
66
A6 (A7) Импорт ключа 69
A8 (A9) Экспорт ключа 74
AA (AB) Перешифрование TMK, TPK или PVK из-под
«старого» LMK под «новый»
79
AC (AD) Перешифрование TAK из-под «старого» LMK под
«новый»
81
AE (AF) Перешифрование TMK, TPK или PVK из-под
LMK под другой TMK, TPK или PVK
87
AG (AH) Перешифрование TAK из-под LMK под TMK 89
BA (BB) Зашифрование чистого PIN 179
BC (BD) Проверка терминального PIN сравнением 183
BE (BF) Проверка PIN сравнением 185
BG (BH) Перешифрование PIN из-под «старого» LMK под
«новый»
187
BK (BL) Генерация PIN-offset IBM-методом (для
выбранного пользователем PIN)
188
BM (BN) Загрузка таблицы PIN для проверки «слабых» PIN 193
BU (BV) Генерация проверочной величины ключа 281
Модуль безопасности платежных систем. Руководство разработчика | 45
Команда
(ответ)
Функция Страница
BW (BX) Перешифрование ключа из-под «старого» LMK
под «новый»
91
CA (CB) Перешифрование PIN из-под TPK под ZPK 195
CC (CD) Перешифрование PIN из-под одного ZPK под
другой
197
CU (CV) Генерация и проверка VISA PVV (для
пользовательского PIN)
199
CW (CX) Генерация CVV/CVC 287
CY (CZ) Проверка CVV/CVC 290
DA (DB) Проверка терминального PIN IBM-методом 204
DC (DD) Проверка терминального PIN с использованием
VISA метода
208
DE (DF) Генерация PIN-offset IBM-методом из
зашифрованного под LMK PIN
211
DG (DH) Генерация VISA PVV (PIN Verification Value) (для
PIN, зашифрованного под LMK)
215
DU (DV) Генерация и проверка PIN Offset IBM-методом
(для нового пользовательского PIN)
219
EA (EB) Проверка PIN IBM-методом 225
EC (ED) Проверка PIN-блока с использованием VISA
метода
233
EE (EF) Получение PIN IBM-методом 229
EI (EJ) Генерация пары секретный/открытый ключ RSA 144
EK (EL) Загрузка секретного ключа RSA 147
EM (EN) Перешифрование секретного ключа RSA 149
EO (EP) Импорт открытого ключа RSA 152
EQ (ER) Проверка открытого ключа RSA 156
ES (ET) Проверка сертификата и импорт открытого ключа
RSA
158
EU (EV) Пересчет MAC за открытый ключ RSA 163
EW (EX) Генерация ЦП RSA 166
EY (EZ) Проверка ЦП RSA 169
FA (FB) Перешифрование ZPK из-под ZMK под LMK 96
FC (FD) Перешифрование TMK, TPK или PVK из-под
ZMK под LMK
98
FE (FF) Перешифрование TMK, TPK или PVK из-под
LMK под ZMK
100
FI (FJ) Генерация ZEK/ZAK 102
Модуль безопасности платежных систем. Руководство разработчика | 46
Команда
(ответ)
Функция Страница
FK (FL) Перешифрование ZEK/ZAK из-под ZMK под
LMK
104
FM (FN) Перешифрование ZEK/ZAK из-под LMK под
ZMK
106
FO (FP) Генерация Watchword Key 108
FQ (FR) Перешифрование Watchword Key из-под LMK под
ZMK
112
FS (FT) Перешифрование Watchword Key из-под ZMK под
LMK
110
FW (FX) Генерация VISA PVV (для выбранного
пользователем PIN)
235
GC (GD) Перешифрование ZPK из-под LMK под ZMK 114
GE (GF) Перешифрование ZMK из-под «старого» LMK
под «новый»
116
GI (GJ) Импорт ключа DES на открытом ключе RSA 171
GK (GL) Экспорт ключа DES на открытом ключе RSA 176
GM (GN) Вычисление значения Хэш-функции за блок
данных
312
HA (HB) Генерация TAK 118
HC (HD) Генерация TMK, TPK или PVK 120
HK (HL) Генерация подписи данных статической
аутентификации
341
IA (IB) Генерация ZPK 122
IC (ID) Установление защищенного соединения с
чип-картой
419
IE (IF) Подготовка защищенного сообщения для
чип-карты
424
IU (IV) Генерация RSA пары (секретный/открытый ключ)
эмитента (VISA)
343
IW (IX) Проверка самоподписанного сертификата
корневого УЦ (VISA)
346
IY (IZ) Проверка сертификата открытого ключа эмитента
(VISA)
348
JA (JB) Генерация случайного PIN 239
JC (JD) Перешифрование PIN из-под TPK под LMK 242
JE (JF) Перешифрование PIN из-под ZPK под LMK 245
JG (JH) Перешифрование PIN из-под LMK под ZPK 247
Модуль безопасности платежных систем. Руководство разработчика | 47
Команда
(ответ)
Функция Страница
JM (JN) Генерация RSA пары (секретный/открытый ключ)
эмитента (MasterCard)
352
JO (JP) Проверка самоподписанного сертификата
корневого УЦ (MasterCard)
355
JQ (JR) Проверка сертификата открытого ключа эмитента
(MasterCard)
357
JS (JT) Проверка ARQC и генерация ARPC (CUP) 460
JU (JV) Генерация секретных сообщений (CUP) 464
K0 (K1) Расшифрование зашифрованных счетчиков 478
K2 (K3) Проверка Truncated Application Cryptogram
(MasterCard CAP)
433
K8 (K9) Экспорт ключа под KEK 361
KA (KB) Генерация проверочной величины ключа 293
KC (KD) Перешифрование ZPK из-под «старого» LMK под
«новый»
124
KE (KF) Генерация RSA пары (секретный/открытый ключ)
и сертификата эмитента
363
KG (KH) Проверка сертификата открытого ключа эмитента 368
KI (KJ) Генерация мастер-ключей карты 372
KK (KL) Проверка самоподписанного сертификата
корневого УЦ
375
KM (KN) Генерация подписи данных статической
аутентификации (SDA)
377
KO (KP) Генерация RSA пары (секретный/открытый ключ)
и сертификата карты
380
KQ (KR) Проверка ARQC и/или генерация ARPC (EMV
3.1.1)
253
KS (KT) Проверка Data Authentication Code (DAC) и
Dynamic Number (DN)
258
KU (KV) Генерация секретного сообщения (Secure
Message) (EMV 3.1.1)
261
KW (KX) Проверка ARQC и/или генерация ARPC (EMV
4.x)
269
KY (KZ) Генерация секретного сообщения (EMV 4.x) 274
L0 (L1) Генерация ключа для вычисления HMAC 438
LO (LP) Перешифрование таблицы децимализации 285
LQ (LR) Генерация HMAC за блок данных 442
LS (LT) Проверка HMAC за блок данных 445
Модуль безопасности платежных систем. Руководство разработчика | 48
Команда
(ответ)
Функция Страница
LU (LV) Импорт ключа вычисления HMAC из-под ZMK 448
LW (LX) Экспорт ключа вычисления HMAC под ZMK 453
LY (LZ) Перешифрование ключа вычисления HMAC
из-под «старого» LMK под «новый»
456
М0 (M1) Зашифрование блока данных 295
М2 (M3) Расшифрование блока данных 300
M6 (M7) Генерация MAC 304
M8 (M9) Проверка MAC 308
MA (MB) Генерация MAC за сообщение 126
MC (MD) Проверка MAC за сообщение 127
ME (MF) Проверка и переформирование MAC 128
MG (MH) Перешифрование TAK из-под LMK под ZMK 83
MI (MJ) Перешифрование TAK из-под ZMK под LMK 85
MK (ML) Генерация MAC за бинарные данные 135
MM (MN) Проверка MAC за бинарные данные 137
MO (MP) Проверка и переформирование MAC за бинарные
данные
139
MQ (MR) Генерация MAC (MAB) за большое бинарное
сообщение
130
MS (MT) Генерация MAC (MAB) за большое сообщение 132
NC (ND) Проведение диагностики 313
NE (NF,
NZ)
Генерация ключа и печать в виде Split компонент 329
NG (NH) Расшифрование зашифрованного PIN 181
NO (NP) Cnfnec HSM 314
OA
(OB,OZ)
Печать данных 333
P0 (P1) Перешифрование блока секретных данных в
специфичном формате карты
141
PA (PB) Загрузка шаблонов печати PIN 335
PE (PF, PZ) Печать PIN 336
PM (PN) Проверка динамического CVV/CVC 316
QK (QL) Перешифрование PIN, зашифрованного под LMK,
со сменой номера счета (Account Number)
249
RW (RX) Перешифрование KEYVAL 322
RY (RZ)
режим 3
Вычисление Card Security Codes 469
Модуль безопасности платежных систем. Руководство разработчика | 49
Команда
(ответ)
Функция Страница
RY (RZ)
режим 4
Проверка Card Security Codes 472
SI (SJ) Диверсификация данных для записи на карту 388
SSSM (ST) Проверка криптограммы MSTC 480
XK (XL) Зашифрование данных транзакции 390
YO (YP) Генерация случайного числа 393
YS (YT) Диверсификация ключа 394
YW (YX) Экспорт ключа под KEK 397
YY (YZ) Зашифрование данных 399
ZA (ZB) Импорт ключа под KEK 401
ZC (ZD) Расшифрование данных 403
ZE (ZF) Перешифрование PIN 251
ZK (ZL) Генерация или проверка МАС 405
ZU (ZV) Сборка сертификата открытого ключа карты
(ICC) из элементов
408
ZW (ZX) Генерация ключевой пары карты (ICC) 411
ZY (ZZ) Генерация производных ключей карты 415
Перечень команд по функционалу
Таблица 21 содержит перечень команд, реализованных Платёжным
приложением «Модуль безопасности платёжных систем», выстроенный по
функциональному признаку.
Таблица 21 – Перечень команд по функционалу
Функция Команда
(ответ)
Страница
Команды управления симметричными ключами
Генерация ключа A0 (A1) 59
Генерация и печать компонент A2 (A3, AZ) 324
Генерация ключа и печать в виде Split
компонент
NE (NF, NZ) 329
Печать данных OA (OB,OZ) 333
Формирование ключа из зашифрованных
компонент
A4 (A5) 66
Импорт ключа A6 (A7) 69
Экспорт ключа A8 (A9) 74
Модуль безопасности платежных систем. Руководство разработчика | 50
Функция Команда
(ответ)
Страница
Генерация TMK, TPK или PVK HC (HD) 120
Генерация TAK HA (HB) 118
Перешифрование TMK, TPK или PVK из-под
LMK под другой TMK, TPK или PVK
AE (AF) 87
Перешифрование TAK из-под LMK под TMK AG (AH) 89
Перешифрование ZPK из-под ZMK под LMK FA (FB) 96
Перешифрование TMK, TPK или PVK из-под
ZMK под LMK
FC (FD) 98
Перешифрование TMK, TPK или PVK из-под
LMK под ZMK
FE (FF) 100
Генерация ZEK/ZAK FI (FJ) 102
Перешифрование ZEK/ZAK из-под ZMK под
LMK
FK (FL) 104
Перешифрование ZEK/ZAK из-под LMK под
ZMK
FM (FN) 106
Генерация Watchword Key FO (FP) 108
Перешифрование Watchword Key из-под LMK
под ZMK
FQ (FR) 112
Перешифрование Watchword Key из-под ZMK
под LMK
FS (FT) 110
Перешифрование ZPK из-под LMK под ZMK GC (GD) 114
Генерация ZPK IA (IB) 122
Перешифрование TAK из-под LMK под ZMK MG (MH) 83
Перешифрование TAK из-под ZMK под LMK MI (MJ) 85
Перешифрование блока секретных данных в
специфичном формате карты
P0 (P1) 141
Зашифрование блока данных М0 (M1) 295
Расшифрование блока данных М2 (M3) 300
Команды генерации PIN и PIN-offset
Загрузка таблицы PIN для проверки «слабых»
PIN
BM (BN) 193
Генерация PIN-offset IBM-методом из
зашифрованного под LMK PIN
DE (DF) 211
Генерация PIN-offset IBM-методом (для
выбранного пользователем PIN) (BK)
BK (BL) 188
Генерация VISA PVV (PIN Verification Value)
(для PIN, зашифрованного под LMK)
DG (DH) 215
Модуль безопасности платежных систем. Руководство разработчика | 51
Функция Команда
(ответ)
Страница
Генерация и проверка PIN Offset
IBM-методом (для нового пользовательского
PIN)
DU (DV) 219
Получение PIN IBM-методом EE (EF) 229
Генерация случайного PIN JA (JB) 239
Генерация VISA PVV (для выбранного
пользователем PIN) (FW)
FW (FX) 110
Команды проверки PIN
Проверка терминального PIN сравнением BC (BD) 183
Проверка PIN сравнением BE (BF) 185
Проверка терминального PIN IBM-методом DA (DB) 204
Проверка терминального PIN с
использованием VISA метода
DC (DD) 208
Проверка PIN IBM-методом EA (EB) 225
Проверка PIN-блока с использованием VISA
метода
EC (ED) 233
Команды обработки «чистого» PIN
Зашифрование чистого PIN BA (BB) 179
Расшифрование зашифрованного PIN NG (NH) 181
Команды перешифрования PIN
Перешифрование PIN из-под TPK под ZPK CA (CB) 195
Перешифрование PIN из-под одного ZPK под
другой
CC (CD) 197
Перешифрование PIN из-под TPK под LMK JC (JD) 242
Перешифрование PIN из-под ZPK под LMK JE (JF) 245
Перешифрование PIN из-под LMK под ZPK JG (JH) 247
Перешифрование PIN, зашифрованного под
LMK, со сменой номера счета (Account
Number)
QK (QL) 249
Перешифрование PIN ZE (ZF) 251
Команды изменения PIN
Генерация и проверка VISA PVV (для
пользовательского PIN)
CU (CV) 199
Команды печати PIN
Печать PIN PE (PF, PZ) 336
Модуль безопасности платежных систем. Руководство разработчика | 52
Функция Команда
(ответ)
Страница
Команды форматов печати
Загрузка шаблонов печати PIN PA (PB) 335
Команды перешифрования из-под «старого» LMK под «новый»
Перешифрование TMK, TPK или PVK из-под
«старого» LMK под «новый»
AA (AB) 79
Перешифрование TAK из-под «старого» LMK
под «новый»
AC (AD) 81
Перешифрование PIN из-под «старого» LMK
под «новый»
BG (BH) 187
Перешифрование ключа из-под «старого»
LMK под «новый»
BW (BX) 91
Перешифрование ZMK из-под «старого»
LMK под «новый»
GE (GF) 116
Перешифрование ZPK из-под «старого» LMK
под «новый»
KC (KD) 124
Перешифрование PIN, зашифрованного под
LMK, со сменой номера счета (Account
Number)
QK (QL) 249
Команды работы с CVV/CVC
Генерация CVV/CVC CW (CX) 287
Проверка CVV/CVC CY (CZ) 290
Проверка динамического CVV/CVC PM (PN) 316
Команды предперсонализации
Генерация подписи данных статической
аутентификации
HK (HL) 341
Генерация RSA пары (секретный/открытый
ключ) эмитента (VISA)
IU (IV) 343
Проверка самоподписанного сертификата
корневого УЦ (VISA)
IW (IX) 346
Проверка сертификата открытого ключа
эмитента (VISA)
IY (IZ) 348
Генерация RSA пары (секретный/открытый
ключ) эмитента (MasterCard)
JM (JN) 352
Проверка самоподписанного сертификата
корневого УЦ (MasterCard)
JO (JP) 355
Модуль безопасности платежных систем. Руководство разработчика | 53
Функция Команда
(ответ)
Страница
Проверка сертификата открытого ключа
эмитента (MasterCard)
JQ (JR) 357
Экспорт ключа под KEK K8 (K9) 361
Генерация RSA пары (секретный/открытый
ключ) и сертификата эмитента
KE (KF) 363
Проверка сертификата открытого ключа
эмитента
KG (KH) 368
Генерация мастер-ключей карты KI (KJ) 372
Проверка самоподписанного сертификата
корневого УЦ
KK (KL) 375
Генерация подписи данных статической
аутентификации (SDA)
KM (KN) 377
Генерация RSA пары (секретный/открытый
ключ) и сертификата карты
KO (KP) 380
Диверсификация данных для записи на карту SI (SJ) 388
Зашифрование данных транзакции XK (XL) 390
Генерация случайного числа YO (YP) 393
Диверсификация ключа YS (YT) 394
Экспорт ключа под KEK YW (YX) 397
Зашифрование данных YY (YZ) 399
Импорт ключа под KEK ZA (ZB) 401
Расшифрование данных ZC (ZD) 403
Генерация или проверка МАС ZK (ZL) 405
Сборка сертификата открытого ключа карты
(ICC) из элементов
ZU (ZV) 408
Генерация ключевой пары карты (ICC) ZW (ZX) 411
Генерация производных ключей карты ZY (ZZ) 415
Команды персонализации
Установление защищенного соединения с
чип-картой
IC (ID) 419
Подготовка защищенного сообщения для
чип-карты
IE (IF) 424
Команды поддержки China Union Pay (CUP)
Проверка ARQC и генерация ARPC (CUP) JS (JT) 460
Генерация секретных сообщений (CUP) JU (JV) 464
Команды поддержки American Express
Модуль безопасности платежных систем. Руководство разработчика | 54
Функция Команда
(ответ)
Страница
Вычисление Card Security Codes RY (RZ)
режим 3
469
Проверка Card Security Codes RY (RZ)
режим 4
472
Команды поддержки чиповых карт стандарта EMV
Проверка ARQC и/или генерация ARPC
(EMV 3.1.1)
KQ (KR) 253
Проверка Data Authentication Code (DAC) и
Dynamic Number (DN)
KS (KT) 258
Генерация секретного сообщения (Secure
Message) (EMV 3.1.1)
KU (KV) 261
Проверка ARQC и/или генерация ARPC (EMV
4.x)
KW (KX) 269
Генерация секретного сообщения (EMV 4.x) KY (KZ) 274
Команды поддержки 3-D Secure
Проверка Truncated Application Cryptogram
(MasterCard CAP)
K2 (K3) 433
Команды RSA
Генерация пары секретный/открытый ключ
RSA
EI (EJ) 144
Загрузка секретного ключа RSA EK (EL) 147
Перешифрование секретного ключа RSA EM (EN) 149
Импорт открытого ключа RSA EO (EP) 152
Проверка открытого ключа RSA EQ (ER) 156
Проверка сертификата и импорт открытого
ключа RSA
ES (ET) 158
Пересчет MAC за открытый ключ RSA EU (EV) 163
Генерация ЦП RSA EW (EX) 166
Проверка ЦП RSA EY (EZ) 169
Импорт ключа DES на открытом ключе RSA GI (GJ) 171
Экспорт ключа DES на открытом ключе RSA GK (GL) 176
Вычисление значения Хэш-функции за блок
данных
GM (GN) 312
Команды HMAC
Генерация ключа для вычисления HMAC L0 (L1) 438
Генерация HMAC за блок данных LQ (LR) 442
Модуль безопасности платежных систем. Руководство разработчика | 55
Функция Команда
(ответ)
Страница
Проверка HMAC за блок данных LS (LT) 445
Импорт ключа вычисления HMAC из-под
ZMK
LU (LV) 448
Экспорт ключа вычисления HMAC под ZMK LW (LX) 453
Перешифрование ключа вычисления HMAC
из-под «старого» LMK под «новый»
LY (LZ) 456
Команды MAC
Генерация MAC M6 (M7) 304
Проверка MAC M8 (M9) 308
Генерация MAC за сообщение MA (MB) 126
Проверка MAC за сообщение MC (MD) 127
Проверка и переформирование MAC ME (MF) 128
Генерация MAC за бинарные данные MK (ML) 83
Проверка MAC за бинарные данные MM (MN) 85
Проверка и переформирование MAC за
бинарные данные
MO (MP) 135
Генерация MAC (MAB) за большое бинарное
сообщение
MQ (MR) 137
Генерация MAC (MAB) за большое
сообщение
MS (MT) 132
Разное
Генерация проверочной величины ключа BU (BV) 281
Генерация проверочной величины ключа KA (KB) 293
Перешифрование таблицы децимализации LO (LP) 442
Проведение диагностики NC (ND) 313
Перешифрование KEYVAL RW (RX) 322
Статус HSM NO (NP) 314
Поддержка платежного приложения «МИР»
Расшифрование зашифрованных счетчиков K0 (K1) 478
Поддержка мобильного приложения
Проверка криптограммы MSTC SSSM (ST) 480
Модуль безопасности платежных систем. Руководство разработчика | 56
4.4. Команды лицензии «Процессинг» (Processing License – LIC001)
4.4.1. Перечень команд лицензии «Процессинг»
Таблица 22 - Перечень команд лицензии "Прецессинг" содержит
перечень команд лицензии «Процессинг» (LIC001).
Таблица 22 - Перечень команд лицензии "Прецессинг"
Команда
(ответ)
Функция
A0 (A1) Генерация ключа
A4 (A5) Формирование ключа из зашифрованных компонент
A6 (A7) Импорт ключа
A8 (A9) Экспорт ключа
AA (AB) Перешифрование TMK, TPK или PVK из-под «старого»
LMK под «новый»
AC (AD) Перешифрование TAK из-под «старого» LMK под «новый»
AE (AF) Перешифрование TMK, TPK или PVK из-под LMK под
другой TMK, TPK или PVK
AG (AH) Перешифрование TAK из-под LMK под TMK
BA (BB) Зашифрование чистого PIN
BC (BD) Проверка терминального PIN сравнением
BE (BF) Проверка PIN сравнением
BG (BH) Перешифрование PIN из-под «старого» LMK под «новый»
BK (BL) Генерация PIN-offset IBM-методом (для выбранного
пользователем PIN)
BM (BN) Загрузка таблицы PIN для проверки «слабых» PIN
BU (BV) Генерация проверочной величины ключа
BW (BX) Перешифрование ключа из-под «старого» LMK под
«новый»
CA (CB) Перешифрование PIN из-под TPK под ZPK
CC (CD) Перешифрование PIN из-под одного ZPK под другой
CU (CV) Генерация и проверка VISA PVV (для пользовательского
PIN)
CW (CX) Генерация CVV/CVC
CY (CZ) Проверка CVV/CVC
DA (DB) Проверка терминального PIN IBM-методом
DC (DD) Проверка терминального PIN с использованием VISA
метода
DE (DF) Генерация PIN-offset IBM-методом из зашифрованного под
LMK PIN
Модуль безопасности платежных систем. Руководство разработчика | 57
Команда
(ответ)
Функция
DG (DH) Генерация VISA PVV (PIN Verification Value) (для PIN,
зашифрованного под LMK)
DU (DV) ГГенерация и проверка PIN Offset IBM-методом (для
нового пользовательского PIN) (DU)
EA (EB) Проверка PIN IBM-методом
EC (ED) Проверка PIN-блока с использованием VISA метода
EE (EF) Получение PIN IBM-методом
EI (EJ) Генерация пары секретный/открытый ключ RSA
EK (EL) Загрузка секретного ключа RSA
EM (EN) Перешифрование секретного ключа RSA
EO (EP) Импорт открытого ключа RSA
EQ (ER) Проверка открытого ключа RSA
ES (ET) Проверка сертификата и импорт открытого ключа RSA
EU (EV) Пересчет MAC за открытый ключ RSA
EW (EX) Генерация ЦП RSA
EY (EZ) Проверка ЦП RSA
FA (FB) Перешифрование ZPK из-под ZMK под LMK
FC (FD) Перешифрование TMK, TPK или PVK из-под ZMK под
LMK
FE (FF) Перешифрование TMK, TPK или PVK из-под LMK под
ZMK
FI (FJ) Генерация ZEK/ZAK
FK (FL) Перешифрование ZEK/ZAK из-под ZMK под LMK
FM (FN) Перешифрование ZEK/ZAK из-под LMK под ZMK
FO (FP) Генерация Watchword Key
FQ (FR) Перешифрование Watchword Key из-под LMK под ZMK
FS (FT) Перешифрование Watchword Key из-под ZMK под LMK
FW (FX) Генерация VISA PVV (для выбранного пользователем PIN)
GC (GD) Перешифрование ZPK из-под LMK под ZMK
GE (GF) Перешифрование ZMK из-под «старого» LMK под «новый»
GI (GJ) Импорт ключа DES на открытом ключе RSA
GK (GL) Экспорт ключа DES на открытом ключе RSA
GM (GN) Вычисление значения Хэш-функции за блок данных
HA (HB) Генерация TAK
HC (HD) Генерация TMK, TPK или PVK
JA (JB) Генерация случайного PIN
JC (JD) Перешифрование PIN из-под TPK под LMK
JE (JF) Перешифрование PIN из-под ZPK под LMK
Модуль безопасности платежных систем. Руководство разработчика | 58
Команда
(ответ)
Функция
JG (JH) Перешифрование PIN из-под LMK под ZPK
JQ (JR) Проверка сертификата открытого ключа эмитента
(MasterCard)
K0 (K1) Расшифрование зашифрованных счетчиков
KA (KB) Генерация проверочной величины ключа
KC (KD) Перешифрование ZPK из-под «старого» LMK под «новый»
KQ (KR) Проверка ARQC и/или генерация ARPC (EMV 3.1.1)
KS (KT) Проверка Data Authentication Code (DAC) и Dynamic
Number (DN)
KU (KV) Генерация секретного сообщения (Secure Message) (EMV
3.1.1)
KW (KX) Проверка ARQC и/или генерация ARPC (EMV 4.x)
KY (KZ) Генерация секретного сообщения (EMV 4.x)
LO (LP) Перешифрование таблицы децимализации
М0 (M1) Зашифрование блока данных
М2 (M3) Расшифрование блока данных
M6 (M7) Генерация MAC
M8 (M9) Проверка MAC
MA (MB) Генерация MAC за сообщение
MC (MD) Проверка MAC за сообщение
ME (MF) Проверка и переформирование MAC
MG (MH) Перешифрование TAK из-под LMK под ZMK
MI (MJ) Перешифрование TAK из-под ZMK под LMK
MK (ML) Генерация MAC за бинарные данные
MM (MN) Проверка MAC за бинарные данные
MO (MP) Проверка и переформирование MAC за бинарные данные
MQ (MR) Генерация MAC (MAB) за большое бинарное сообщение
MS (MT) Генерация MAC (MAB) за большое сообщение
NC (ND) Проведение диагностики
NE (NF,
NZ)
Генерация ключа и печать в виде Split компонент
NG (NH) Расшифрование зашифрованного PIN
NO (NP) Статуст HSM
OA
(OB,OZ)
Печать данных (OA)
P0 (P1) Перешифрование блока секретных данных в специфичном
формате карты
RW (RX) Перешифрование KEYVAL
Модуль безопасности платежных систем. Руководство разработчика | 59
4.42. Описание команд лицензии «Процессинг»
Команды управления симметричными ключами
Генерация ключа (A0)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется
(см. примечание).
Требуется, если ключ
экспортируется не под
Keyblock
(см. примечание).
Функция: Генерация случайного ключа с зашифрованием под LMK и,
опционально, под ZMK или TMK (для передачи другой стороне).
Примечания:
1) Необходимость авторизации
определяется по Таблице 8 для
конкретной операции (генерация или
экспорт) и типа ключа: А – требуется,
Н – не требуется
3) Необходимость авторизации
определяется по операции экспорта в
соответствии с таблицей:
Ключевая схема
(ZMK)
Авторизация
Нет экспорта Не требуется
‘S’ (HSM Keyblock) Не требуется
‘R’ (TR-31
Keyblock)
Не требуется
‘U’, ‘T’ (Variant) Требуется (в
соответствии с
таблицей 8)
‘Z’, ‘X’, ‘Y’ (X9.17) Требуется (в
соответствии с
таблицей 8)
2) Под TMK могут экспортироваться
только:
• 002 (TPK/TMK);
• 003 (TAK);
4) Под Keyblock TMK (Key Usage =
‘51’) могут экспортироваться только
Keyblock с Key Usage:
• ‘P0’, ‘71’ (TPK)
• ‘M1’, ‘M3’, ‘M5’, ‘M6’ (TAK)
• ‘23’ (TEK)
• ‘51’ (TMK)
Модуль безопасности платежных систем. Руководство разработчика | 60
• 30B (TEK);
• 302 (IKEY).
ZMK (или TMK) Keyblock
(экспортирующий ключ) должен иметь
следующие значения полей:
Заголовок ZMK
Keyblock
Значение
Key Usage ‘K0’, ‘51’ или
‘52’
Algorithm ‘D’*, ‘T’ или
‘A’
Mode of Use ‘B’, ‘E’ или ‘N’
* Экспорт в формате Keyblock
невозможен для ключа ZMK (или TMK)
одинарной длины
5) Экспортироваться в формате Keyblock ZMK/TMK могут:
• DES-ключи двойной или тройной длины
• AES-ключи
6) Производится автоматическая проверка сформированного ключа по
таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘A0’.
Режим 1 H Режимы команды:
‘0’ : Генерация ключа;
‘1’ : Генерация ключа и
зашифрование под ZMK (или TMK).
Тип ключа 3 H Для вариантных LMK:
Тип генерируемого ключа
(см. Таблица 7 и Таблица 8)Ошибка!
Источник ссылки не найден.
Для Keyblock LMK:
Поле игнорируется. Должно быть
присвоено значение ‘FFF’
Модуль безопасности платежных систем. Руководство разработчика | 61
Поле Длина и
тип
Описание
Командное сообщение
Ключевая схема (LMK) 1 A Схема шифрования ключей под LMK
(см. Таблица 9)Ошибка! Источник
ссылки не найден.
Разделитель 1 A Значение ‘;’. Опционально. Только,
если режим ‘1’. Если присутствует,
то должно быть следующее поле.
Флаг ZMK/TMK 1 N Опционально. Только, если есть
Разделитель.
‘0’ : ZMK (значение по умолчанию,
если поле отсутствует);
‘1’ : TMK.
ZMK (или TMK) Если режим = ‘1’
Zone Master Key (или Terminal Master
Key).
16 / 32 H
или
1 A + 32/48
H
Для вариантных LMK:
ZMK, зашифрованный под LMK 04-
05 или TMK, зашифрованный под
LMK 14-15 вариант 0.
или
1 A + n A
Для Keyblock LMK:
ZMK или TMK в формате Keyblock
HSM. Значения полей ключевого
блока:
Key Usage Algorithm Mode of Use
‘K0’, ‘51’
или ‘52’
‘D’, ‘T’
или ‘A’
‘B’, ‘E’ или
‘N’
Ключевая схема (ZMK или
TMK)
1 A Если режим = ‘1’
Схема шифрования ключей под ZMK
или TMK (см. Таблица 9).
Значения «R» и «S» доступны только
при активированной лицензии
«Поддержка формата ключевого
контейнера» (LIC011)
Модуль безопасности платежных систем. Руководство разработчика | 62
Поле Длина и
тип
Описание
Командное сообщение
Разделитель 1 A Значение ‘#’. Требуется при
генерации Keyblock. Если
представлено, то должны быть поля,
приведенные ниже
При
мен
яет
ся т
ольк
о д
ля г
енер
аци
и и
эксп
ор
та в
фо
рм
ате
Key
blo
ck
Использование ключа
(Key Usage)
2 A Значение поля Key Usage для
включения в заголовок Keyblock. (см.
Таблица 13 типу ключа). Значение
представлено, если присутствует
поле Разделитель.
Алгоритм (Algorithm) 2 A Значения поля Algorithm для
заголовка Keyblock составляет
алгоритм (см. Таблица 14) и длина
ключа (цифра справа). Значение
представлено, если присутствует
поле Разделитель. Возможные
значения:
‘D1’ – DES ключ одинарной длины
‘T2’ – DES ключ двойной длины
‘T3' – DES ключ тройной длины
‘A1’ – 128-битный AES ключ
‘A2’ – 192-битный AES ключ
‘A3’ – 256-битный AES ключ
Режим использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock (см.
Таблица 15). Представлено, если
присутствует поле Разделитель.
Номер версии ключа
(Key Version Number)
2 N Значения поля Key Version Number
для включения в заголовок Keyblock
(см. Таблица 16). Возможные
значения от ‘00’ до ‘99’.
Представлено, если присутствует
поле Разделитель.
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
включения в заголовок Keyblock (см.
Таблица 17). Представлено, если
присутствует поле Разделитель.
Модуль безопасности платежных систем. Руководство разработчика | 63
Поле Длина и
тип
Описание
Командное сообщение
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения от
‘00’ до ‘08’. Представлено, если
присутствует поле Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока. Допустимое значение (см.
Таблица 18), кроме ‘PB’.
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля идентификатора
и длины). Возможные значения от
X’04’ до X’FF’. Если значение X’04’,
то следующее поле не представлено.
Опциональный блок n A Опциональный блок данных
Разделитель 1 A Значение ‘&’. Представлено, только
если сгенерированный ключ должен
быть экспортирован. Если
представлено, то должно
присутствовать следующее поле
Модифицированная
экспортируемость
1 A Символ, устанавливаемый в поле
«Экспортируемость» (11 байт)
экспортируемого ключа. Значение =
‘N’ (см. Таблица 17). Представлено,
если присутствует поле Разделитель.
Разделитель
1 A Значение ‘&’. Представлено, только
если сгенерированный ключ должен
быть экспортирован. Если
представлено, то должно
присутствовать следующее поле
Использование ключа
(Key Usage)
2 A Значение поля Key Usage для
включения в заголовок Keyblock (см.
значение TR-31, Таблица 13 по типу
ключа). Значение представлено, если
присутствует поле Разделитель.
Модуль безопасности платежных систем. Руководство разработчика | 64
Поле Длина и
тип
Описание
Командное сообщение П
ри
мен
яет
ся т
ольк
о д
ля г
енер
аци
и к
лю
ча
по
д V
aria
nt
LM
K с
эксп
орто
м в
фор
мат
е T
R-3
1
Режим использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock (см.
Таблица 15 по типу ключа). Значение
представлено, если присутствует
поле Разделитель.
Номер версии ключа
(Key Version Number)
2 N Значения поля Key Version Number
для включения в заголовок Keyblock.
Возможные значения от ‘00’ до ‘99’.
Представлено, если присутствует
поле Разделитель
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
включения в заголовок Keyblock (см.
Таблица 17). Представлено, если
присутствует поле Разделитель.
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения от
‘00’ до ‘02’. Представлено, если
присутствует поле Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока. Допустимые значения: ‘CT’,
‘HM’, ‘IK’, ‘KC’, ‘KP’, ‘KS’, ‘KV’,
‘PB’, ‘TS’. (см. Таблица 18)
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля идентификатора
и длины) для включения в заголовок
TR-31. Возможные значения от X’04’
до X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок
n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 65
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘A1’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK или TMK;
98 – команда недоступна;
C0 – "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
Ключ (под LMK) 16 H
или
1 A + 32/48 H
Для вариантных LMK:
Ключ, зашифрованный под LMK в
соответствии с ключевой схемой
(см. Таблица 9).
1 A + n A Для Keyblock LMK:
Ключ, зашифрованный под Keyblock
LMK
Ключ (под ZMK или
TMK)
16 H
или
1 A + 32/48 H
Только, если режим = ‘1’
Ключ, зашифрованный под ZMK или
TMK.
или
1 A + n A
Проверочная
величина ключа
6 H Проверочная величина ключа.
Модуль безопасности платежных систем. Руководство разработчика | 66
Формирование ключа из зашифрованных компонент (A4)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется
(см.
примечание)
Требуется, если
ключ
экспортируется
не под Keyblock
(см. примечание).
Функция: Формирование ключа из зашифрованных компонент.
Примечание: Производится автоматическая проверка сформированного ключа
по таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений
Код команды 2 А ‘A4’.
Число компонент 1 N Число компонент ключа от ‘2’ до
‘9’.
Тип ключа 3 H Для вариантных LMK:
Тип генерируемого ключа (см.
Таблица 7).
Для Keyblock LMK:
Это поле игнорируется, должно быть
установлено значение «FFF».
Ключевая схема (LMK) 1 A Схема шифрования ключа под
LMK (см. Таблица 9).
1 компонента ключа 16 H
или
1 A + 32/48
H
Зашифрованная компонента 1.
или
1 A + n A
… … …
Модуль безопасности платежных систем. Руководство разработчика | 67
Поле Длина и тип Описание
n компонента ключа 16 H
или
1 A + 32/48 H
Зашифрованная компонента n.
или
1 A + n A
ко
мп
он
енто
в в
фор
мат
е key
blo
ck
Разделитель 1 A Значение ‘#’. Требуется при
создании Keyblock. Если
представлено, то должны быть
поля, приведенные ниже.
Номер версии ключа
(Key Version Number)
2 N Значения поля Key Version Number
для включения в заголовок
Keyblock. Возможные значения от
‘00’ до ‘99’. Представлено, если
присутствует поле Разделитель
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения от
‘00’ до ‘08’. Представлено, если
присутствует поле Разделитель.
При
мен
яет
ся т
ольк
о п
ри
об
ъед
ин
ени
и
Для каждого необязательного блока должны быть указаны следующие три
поля. Если число дополнительных блоков = '00', то не должно
присутствовать ни одно из следующих трех полей.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока. Значение поля см. Таблица
18, кроме ‘PB’.
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля
идентификатора и длины).
Возможные значения от X’04’ до
X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок
данных
n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 68
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘A5’.
Код ошибки 2 А 00 – нет ошибок;
03 – недопустимое число компонент;
10 – ошибка четности компоненты;
68 – команда недоступна;
C0 – "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1
Ключ (под LMK) 16 H
или
1 A + 32/48 H
Сформированный ключ, зашифрованный
под LMK в соответствии с ключевой
схемой (см. Таблица 9)
или
1 A + n A
Проверочная
величина ключа
6 H Проверочная величина ключа.
Модуль безопасности платежных систем. Руководство разработчика | 69
Импорт ключа (A6)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется
(см. примечание)
Требуется, если ключ
экспортируется не
под Keyblock
(см. примечание).
Функция: Импорт ключа, зашифрованного под ZMK.
Примечания:
1) Необходимость авторизации
определяется по Таблице 8 для
конкретной операции (импорт) и типа
ключа: А – требуется, Н – не
требуется
2) Команда не выполняет импорт
ключа ZMK
3) Необходимость авторизации определяется
по операции импорта в соответствии с
таблицей:
Ключевая схема
(ZMK)
Авторизация
‘S’ (HSM Keyblock) Не требуется
‘R’ (TR-31
Keyblock)
Не требуется
‘U’, ‘T’ (Variant) Требуется (в
соответствии с
таблицей 8)
‘Z’, ‘X’, ‘Y’ (X9.17) Требуется (в
соответствии с
таблицей 8)
4) Если импортируется ключ ZMK, то
Keyblock должен иметь следующие
значения полей:
Заголовок ZMK
Keyblock
Значение
Key Usage ‘K0’, ‘52’
Algorithm ‘D’*, ‘T’
Mode of Use ‘B’, ‘D’ или ‘N’
* Импорт в формате Keyblock невозможен
для ключа ZMK одинарной длины
5) Производится автоматическая проверка импортированного ключа по таблице
"слабых" DES-ключей. (см. Приложение 3).
Формат:
Модуль безопасности платежных систем. Руководство разработчика | 70
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘A6’.
Тип ключа 3 H Для вариантных LMK:
Тип импортируемого ключа (см. Таблица 7).
Для Keyblock LMK:
Поле игнорируется, должно быть
установлено значение ‘FFF’
ZMK 16 H
или
1 A + 32/48 H
Для вариантных LMK:
Шифрограмма ZMK под LMK 04-05.
или
1 A + n A
Для Keyblock LMK:
ZMK должен соответствовать следующим
параметрам:
Key Usage Algorithm Mode of Use
‘K0’, ‘52’ ‘D’, ‘T’, ‘A’ ‘B’, ‘D’, ‘N’
Импортируемый ключ Ключ, зашифрованный под ZMK. Ключ
может быть в формате X9.17, Variant, TR-31
Keyblock или HSM Keyblock.
Форматы TR-31 Keyblock и HSM Keyblock
доступны только при активированной
лицензии «Поддержка формата ключевого
контейнера» (LIC011) .
16 H
или
1 A + 32/48 H
или
1 A + n A
Для вариантных LMK:
Ключ может быть в формате X9.17
Для Keyblock LMK: Ключ может быть в
формате X9.17, но если используется
формат TR-31 Keyblock или HSM Keyblock,
то ключ под ZMK должен иметь следующие
параметры:
Key Usage Algorithm Mode of Use
Любое
допустимое
значение
‘D’, ‘T’ или
‘A’
Любое
допустимое
значение
Модуль безопасности платежных систем. Руководство разработчика | 71
Поле Длина и тип Описание
Значения определяются типом ключа
(см. Таблица 13 и Таблица 15).
Ключевая схема (LMK)
1 A Схема шифрования ключа под LMK
(см. Таблица 9).
Разделитель 1 А Значение ‘#’. Опционально. Только если
импортируемый ключ в формате TR-31.
Если представлено, то должны быть поля,
приведенные ниже
То
лько
TR
-31
Key
blo
ck Z
MK
→ K
eyb
lock
LM
K
Использование
ключа (Key Usage)
2 А Значение поля Key Usage для включения в
заголовок импортируемого Keyblock (см.
Таблица 13 по типу ключа). Значение
представлено, если присутствует поле
Разделитель.
Число
опциональных
блоков
2 N Число опциональных блоков Keyblock.
Возможные значения от ‘00’ до ‘06’.
Представлено, если присутствует поле
Разделитель.
Для каждого опционального блока должны быть представлены следующие три
поля. Если значение поля ‘Число опциональных блоков’=’00’, то следующие три
не представлены.
Идентификатор
опционального
блока
2 A Идентификатор опционального блока.
Допустимые значения: ‘KS’, ‘KV’, ‘PB’
(см. Таблица 18)
Длина
опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и длины).
Возможные значения от X’04’ до X’FF’.
Если значение X’04’, то следующее поле
не представлено.
Опциональный
блок
n A Опциональный блок данных
Разделитель 1 A Значение ‘#’. Опционально. Только если
импортируемый ключ не в формате
Keyblock. Если представлено, то должны
быть поля, приведенные ниже
Модуль безопасности платежных систем. Руководство разработчика | 72
Поле Длина и тип Описание
Использование
ключа (Key Usage)
2 A Значение поля Key Usage для включения в
заголовок импортируемого Keyblock (см.
Таблица 13 по типу ключа). Значение
представлено, если присутствует поле
Разделитель.
Режим
использования
(Mode of Use)
1 A Значения поля Mode of Use для включения
в заголовок Keyblock (см. Таблица 15).
Представлено, если присутствует поле
Разделитель.
Номер версии
ключа (Key
Version Number)
2 N Значения поля Key Version Number для
включения в заголовок Keyblock.
Возможные значения6 от ‘00’ до ‘99’.
Представлено, если присутствует поле
Разделитель
То
лько
Var
ian
t Z
MK
→K
eyb
lock
LM
K
Экспортируемость
(Exportability)
1 А Значения поля Exportability для включения
в заголовок Keyblock (Возможные
значения ‘N’ или ‘S’см. Таблица 17).
Представлено, если присутствует поле
Разделитель.
Число
опциональных
блоков
2 N Число опциональных блоков Keyblock.
Возможные значения от ‘00’ до ‘08’.
Представлено, если присутствует поле
Разделитель.
Для каждого опционального блока должны быть представлены следующие три
поля. Если значение поля ‘Число опциональных блоков’=’00’, то следующие три
не представлены.
Идентификатор
опционального
блока
2 A Идентификатор опционального блока (см.
Таблица 18, любое допустимое значение,
кроме ‘PB’)
Длина
опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и длины).
Возможные значения от X’04’ до X’FF’.
Если значение X’04’, то следующее поле
не представлено.
Опциональный
блок
n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 73
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘A7’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка четности ключа;
10 – ошибка четности ZMK;
98 – команда недоступна;
C0 – "слабый" DES-ключ
или стандартный код ошибки
(см. Приложение 1).
Ключ (под LMK) Импортированный ключ,
зашифрованный под LMK
16 H
или
1 A + 32/48 H
Ключ, зашифрованный под LMK в
соответствии с ключевой схемой
(см. Таблица 9).
или
1 A + n A
Ключ, зашифрованный под Keyblock
LMK
Проверочная
величина ключа
6 H Проверочная величина ключа.
Модуль безопасности платежных систем. Руководство разработчика | 74
Экспорт ключа (A8)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется (см.
примечание)
Если ключ
экспортируется
не под Keyblock
(см. примечание).
Функция: Экспорт ключа с зашифрованием под ZMK или TMK.
Примечания:
1) Необходимость авторизации
определяется по Таблице 6 для
конкретной операции (экспорт) и
типа ключа: А – требуется, Н –
не требуется
2) Под TMK могут
экспортироваться только:
• 002 (TPK/TMK);
• 003 (TAK);
• 30B (TEK);
• 302 (IKEY).
3) Необходимость авторизации определяется
по операции экспорта в соответствии с
таблицей:
Ключевая схема
(ZMK)
Авторизация
‘S’(HSM Keyblock) Не требуется
‘R’ (TR-31 Keyblock) Не требуется
‘U’, ‘T’ (Variant) Требуется (в
соответствии с
таблицей 8)
‘Z’, ‘X’, ‘Y’ (X9.17) Требуется (в
соответствии с
таблицей 8)
Под Keyblock TMK (Key Usage = ‘51’) могут
экспортироваться только Keyblock с Key
Usage:
• ‘P0’, '71' (TPK)
• 'M1', 'M3', ‘M5’, ‘M6’ (TAK)
• ‘23’ (TEK)
Keyblock ZMK (или TMK) должен иметь
следующие значения полей:
Заголовок ZMK
Keyblock
Значение
Key Usage ‘K0’, ‘51’ или ‘52’
Algorithm ‘D’*, ‘T’ или ‘A’
Mode of Use ‘B’, ‘E’ или ‘N’
* Импорт в формате Keyblock невозможен для
ключа ZMK или TMK одинарной длины
Модуль безопасности платежных систем. Руководство разработчика | 75
4) Для экспорта в формат Keyblock необходимо использовать 3 DES
или AES ZMK или TMK.
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘A8’.
Тип ключа 3 H Тип экспортируемого ключа
Для вариантных LMK: (см. Таблица 7).
Для Keyblock LMK: Поле игнорируется,
должно быть присвоено значение ‘FFF’
Разделитель 1 A Для вариантных LMK:
Значение ‘;’. Опционально
Флаг ZMK/TMK 1 N Опционально. Только, если
присутствует разделитель:
‘0’: ZMK (значение по умолчанию, если
поле отсутствует);
‘1’: TMK.
ZMK (TMK) 16 H
или
1 A + 32/48
H
Для вариантных LMK:
Шифрограмма ZMK под LMK 04-05
(или TMK под LMK 14-15).
или
1 A + n A
Для Keyblock LMK:
Значения полей ZMK (TMK)
следующее:
Key Usage Algorithm Mode of
Use
‘K0’, ‘51’
или ‘52’
‘D’, ‘T’
или ‘A’
‘B’, ‘D’
или ‘N’
Ключ 16 H
или
Для вариантных LMK:
Модуль безопасности платежных систем. Руководство разработчика | 76
Поле Длина и
тип
Описание
1 A + 32/48
H
или
Ключ, зашифрованный под LMK (номер
LMK определяется типом ключа
(см. Таблица 7).
1 A + n A Для Keyblock LMK: значения
определяются типом ключа (Таблица 13 и
Таблица 15). ‘Ключ’ должен иметь
следующие параметры:
Key Usage Algorithm Mode of
Use
Любое
допустимое
значение
‘D’, ‘T’
или ‘A’
Любое
допустимое
значение
Ключевая схема (ZMK или
TMK)
1 A Схема шифрования ключа под ZMK или
TMK (см. Таблица 9).
Значения «R» и «S» доступны только
при активированной лицензии
«Поддержка формата ключевого
контейнера» (LIC011)
Key
blo
ck L
MK
→ K
eyb
lock
ZM
K Разделитель 1А Значение ‘&’. Опционально. Только
если ключ экспортируется в формате
Keyblock. Если представлено, то
должны быть поля, приведенные ниже
Экспортируемость
(Exportability)
1А Значения поля Exportability для
включения в заголовок Keyblock (см.
Таблица 18 - допустимое значение ‘N’).
Представлено, если присутствует поле
Разделитель.
Разделитель 1 A Значение ‘&’. Опционально. Только
если ключ экспортируется в формате
TR-31. Если представлено, то должны
быть поля, приведенные ниже
Модуль безопасности платежных систем. Руководство разработчика | 77
Поле Длина и
тип
Описание
Использование ключа
(Key Usage)
2 A Значение поля Key Usage для включения
в заголовок TR-31. Любое, допустимое
TR-31, значение (см. Таблица 13 по типу
ключа). Значение представлено, если
присутствует поле Разделитель.
Режим использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок TR-31 (см.
Таблица 15. по типу ключа). Значение
представлено, если присутствует поле
Разделитель
Var
iant
LM
K →
Key
blo
ck Z
MK
(то
льк
о T
R-3
1)
Номер версии ключа
(Key Version Number)
2 N Значения поля Key Version Number для
включения в заголовок TR-31.
Возможные значения от ‘00’ до ‘99’.
Представлено, если присутствует поле
Разделитель
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
включения в заголовок TR-31 (см.
Таблица 17). Представлено, если
присутствует поле Разделитель.
Число опциональных
блоков
2 N Число опциональных блоков TR-31.
Возможные значения от ‘00’ до ‘02’.
Представлено, если присутствует поле
Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального блока 2 A Идентификатор опционального блока
для включения в заголовок TR-31 (см.
Таблица 18. Допустимые значения: ‘CT’,
‘HM’, ‘IK’, ‘KC’, ‘KP’, ‘KS’, ‘KV’, ‘PB’,
‘TS’)
Длина опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и
длины). Возможные значения от X’04’
до X’FF’. Если значение X’04’, то
следующее поле не представлено.
Модуль безопасности платежных систем. Руководство разработчика | 78
Поле Длина и
тип
Описание
Опциональный блок
n A Опциональный блок данных
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘A9’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK или TMK;
11 – ошибка четности ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Ключ (под ZMK или
TMK)
16 H
или
1 A + 32/48 H
Ключ, зашифрованный под ZMK или
TMK в соответствии с ключевой схемой
(см. Таблица 9)
или
1 A + n A
Проверочная
величина ключа 6 H Проверочная величина ключа.
Модуль безопасности платежных систем. Руководство разработчика | 79
Перешифрование TMK, TPK или PVK из-под «старого» LMK под
«новый» (AA)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ключей TMK, TPK или PVK из-под «старого» LMK
14-15 под «новый».
Примечания: Команда может быть заменена универсальной командой BW.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘AA’.
TMK, TPK или PVK
16 H
или
1 A + 32/48 H
Шифрограмма TMK, TPK или PVK под
«старый» LMK.
Разделитель 1 A
Опционально. Если представлено, то
должны быть следующие поля. Значение
‘; ’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Ключевая схема
(LMK) 1 A
Опционально. Схема шифрования ключа
под LMK (см. Таблица 9) или ‘0’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 80
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘AB’.
Код ошибки
2 А 00 – нет ошибок;
10 – ошибка четности TMK, TPK
или PVK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
TMK, TPK или PVK
16 H
или
1 A + 32/48 H
TMK, TPK или PVK, перешифрованный
из-под «старого» LMK 14-15 под
«новый» в соответствии с ключевой
схемой (см. Таблица 9).
Модуль безопасности платежных систем. Руководство разработчика | 81
Перешифрование TAK из-под «старого» LMK под «новый» (AC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ключа TAK из-под «старого» LMK 16-17 под
«новый».
Примечания: Команда может быть заменена универсальной командой BW.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘AC’.
TAK
16 H
или
1 A + 32/48 H
Шифрограмма TAK под «старый» LMK.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля.
Значение ‘; ’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Ключевая схема
(LMK)
1 A Опционально. Схема шифрования ключа
под LMK (см. Таблица 9) или ‘0’.
Тип проверочной
величины ключа
1 A Опционально. Метод вычисления
проверочной величины:
‘0’: 16 цифр KCV;
‘1’: 6 цифр KCV.
Модуль безопасности платежных систем. Руководство разработчика | 82
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘AD’.
Код ошибки 2 А
00 – нет ошибок;
10 – ошибка четности TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
TAK 16 H
или
1 A + 32/48 H
TAK, перешифрованный из-под
«старого» LMK 16-17 под «новый»).
Модуль безопасности платежных систем. Руководство разработчика | 83
Перешифрование TAK из-под LMK под ZMK (МG)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование TAK из зашифрованного под LMK в
зашифрованный под ZMK. Вывод в хост полученной шифрограммы
и проверочного значения.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MG’.
ZMK
16 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
TAK
16 H
или
1 A + 32/48 H
TAK, зашифрованный под LMK 16-17.
Разделитель
1 А Опционально. Если представлен, то
должны быть представлены следующие
три поля. Значение ‘; ’.
Ключевая схема ZMK
1A Опционально. Схема шифрования
ключей под ZMK (см. Таблица 9) или '0'.
По умолчанию '0'.
Зарезервировано 1 A Опционально. Если представлено, то ‘0’.
Тип проверочной
величины ключа
(KCV)
1 A Опционально. Метод вычисления
проверочной величины ключа:
‘0’ – 16 цифр KCV (режим обратной
совместимости);
‘1’ – 6 цифр KCV.
Модуль безопасности платежных систем. Руководство разработчика | 84
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MH’.
Код ошибки 2 A 00 – нет ошибок;
10 – ошибка четности ZMK;
11 – ошибка четности TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
TAK 16 H
или
1 A + 32/48 H
TAK, зашифрованный под ZMK.
Проверочная
величина ключа
16 / 6 H Результат зашифрования 64 бинарных
‘0’ на TAK.
16 / 6 H в зависимости от заданной
опции.
Модуль безопасности платежных систем. Руководство разработчика | 85
Перешифрование TAK из-под ZMK под LMK (МI)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование TAK из зашифрованного под ZMK в
зашифрованный под LMK. Вывод в хост полученной шифрограммы
и проверочного значения.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MI’.
ZMK 16 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
TAK 16 H
или
1 A + 32/48 H
TAK, зашифрованный под ZMK.
Разделитель 1 А Опционально. Если представлен, то
должны быть представлены следующие
три поля. Значение ‘; ’.
Зарезервировано 1A Опционально. Если представлено, то ‘0’.
Ключевая схема LMK 1 A Опционально. Схема шифрования
ключей под LMK (см. Таблица 9)
(или '0').
Тип проверочной
величины ключа
(KCV)
1 A Опционально. Метод вычисления
проверочной величины ключа:
‘0’ – 16 цифр KCV (режим обратной
совместимости);
‘1’ – 6 цифр KCV.
Модуль безопасности платежных систем. Руководство разработчика | 86
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MJ’.
Код ошибки 2 A 00 – нет ошибок
10 – ошибка четности ZMK
11 – ошибка четности TAK
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
TAK 16 H
или
1 A + 32/48 H
TAK, зашифрованный под LMK 16-17.
Проверочная
величина ключа
16 / 6 H Результат зашифрования 64 бинарных
‘0’ на TAK.
16 / 6 H в зависимости от заданной
опции.
Модуль безопасности платежных систем. Руководство разработчика | 87
Перешифрование TMK, TPK или PVK из-под LMK под другой
TMK, TPK или PVK (AE)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ключа TMK, TPK или PVK из-под LMK 14-15 под
другой TMK (TPK или PVK).
Примечания: Команда используется для замены существующего ключа с
помощью другого аналогичного ключа.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘AE’.
Текущий TMK, TPK
или PVK
16 H
или
1 A + 32/48H
Текущий TMK, TPK или PVK,
зашифрованный под LMK 14-15.
TMK, TPK или PVK
(«новый»)
16 H
или
1 A + 32/48 H
TMK, TPK или PVK («новый»),
зашифрованный под LMK 14-15.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘;’.
Ключевая схема
(TMK)
1 A Опционально. Схема шифрования ключа
под LMK (см. Таблица 9)
или ‘0’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Зарезервировано 1 A
Зарезервировано. Если представлено,
то ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 88
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘AF’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности текущего TMK,
TPK или PVK;
11 – ошибка четности TMK, TPK или
PVK («нового»);
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
«Новый» ключ,
зашифрованный под
текущий
16 H
или
1 A + 32/48 H
«Новый» ключ TMK, TPK или PVK,
зашифрованный под текущий TMK, TPK
или PVK.
Модуль безопасности платежных систем. Руководство разработчика | 89
Перешифрование TAK из-под LMK под TMK (AG)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование TAK из-под LMK под TMK. Используется для
загрузки ключа в терминал
Примечания: Команда может быть заменена командой A8.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘AG’.
TMK 16 H
или
1 A + 32/48 H
TMK, зашифрованный под LMK 14-15.
TAK 16 H
или
1 A + 32/48 H
TAK, зашифрованный под LMK 16-17.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘;’.
Ключевая схема
(TMK)
1 A Опционально. Схема шифрования ключа
под TMK (см. Таблица 9) или ‘0’.
Зарезервировано 1 A Зарезервировано. Если представлено, то
‘0’.
Зарезервировано 1 A
Зарезервировано. Если представлено, то
‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 90
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘AH’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности TMK;
11 – ошибка четности TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
TAK 16 H
или
1 A + 32/48 H
Ключ, зашифрованный под TMK в
соответствии с ключевой схемой (см.
Таблица 9).
Модуль безопасности платежных систем. Руководство разработчика | 91
Перешифрование ключа из-под «старого» LMK под «новый» (BW)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001
LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование ключей из-под «старого» LMK под «новый».
Примечание: Возможно перешифрование из-под «старого» Variant LMK под
«новый» Keyblock LMK. Обратная операция невозможна.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BW’.
Код типа ключа 2 N Указывает «старый» LMK, под
который зашифрован ключ:
‘00’ : LMK 04-05;
‘01’ : LMK 06-07;
‘02’ : LMK 14-15;
‘03’ : LMK 16-17;
‘04’ : LMK 18-19;
‘05’ : LMK 20-21;
‘06’ : LMK 22-23;
‘07’ : LMK 24-25;
‘08’ : LMK 26-27;
‘09’ : LMK 28-29;
‘0A’ : LMK 30-31;
‘0B’ : LMK 32-33;
‘10’ : LMK 04-05 вариант 1;
‘42’ : LMK 14-15 вариант 4;
‘FF’ : Используется тип ключа,
определенный после разделителя.
Модуль безопасности платежных систем. Руководство разработчика | 92
Поле Длина и тип Описание
Командное сообщение
или
2 H
Для «старого» Keyblock LMK:
Поле зарезервировано, должно иметь
значение ‘FF’
Флаг длины ключа 1 N Длина «старого» LMK-DES, если в
поле «Ключ» не указан параметр
«Ключевая схема»:
‘0’ : ключ DES одинарной длины;
‘1’ : ключ DES двойной длины;
‘2’ : ключ DES тройной длины.
или
1 H
Для «старого» Keyblock LMK:
Поле зарезервировано, должно иметь
значение ‘F’
Ключ Ключ, зашифрованный под «старый»
LMK.
16 / 32 H
или
1 A + 32/48 H
Для «старого» Variant LMK:
Ключ, зашифрованный под «старый»
LMK (в соответствии с кодом типа
ключа).
или
1 A + n A
Для «старого» Keyblock LMK:
Ключ, зашифрованный под «старый»
Keyblock LMK
Разделитель 1 A Опционально. Только если
представлено следующее поле.
Значение ‘; ’.
Тип ключа 3 H Для «старого» Variant LMK:
Если Код типа ключа = ‘FF’, то это 3-
символьный Тип ключа для
перешифрования (см. Таблица 7).
Для «старого» Keyblock LMK:
Поле зарезервировано, должно иметь
значение ‘FFF’
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие 3 поля.
Значение ‘; ’.
Модуль безопасности платежных систем. Руководство разработчика | 93
Поле Длина и тип Описание
Командное сообщение
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Ключевая схема (LMK) 1 A Опционально. Схема шифрования
ключа под LMK (см. Таблица 9) или
‘0’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Разделитель 1 A Значение ‘#’. Опционально. Должно
быть представлено, если ключ
перешифровывается из-под Variant
LMK под текущий Keyblock LMK.
Если представлено, то должны
присутствовать следующие поля
Только «
стар
ый
» V
aria
nt
LM
K →
«те
ку
щи
й»
Key
blo
ck L
MK
Использование
ключа (Key Usage)
2 A Значение поля Key Usage для
включения в заголовок
импортируемого Keyblock.
Представлено, если присутствует поле
Разделитель. Таблица 13 содержит
возможные значения поля по типу
ключа.
Режим
использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock.
Должно быть совместимо с типом
ключа. Представлено, если
присутствует поле Разделитель.
Таблица 15 содержит возможные
значения поля по типу ключа.
Номер версии
ключа (Key
Version Number)
2 N Значения поля Key Version Number для
включения в заголовок Keyblock.
Возможные значения6 от ‘00’ до ‘99’.
Представлено, если присутствует поле
Разделитель
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
включения в заголовок Keyblock.
Представлено, если присутствует поле
Разделитель. Возможные значения ‘N’
или ‘S’
Модуль безопасности платежных систем. Руководство разработчика | 94
Поле Длина и тип Описание
Командное сообщение
Число
опциональных
блоков
2 N Число опциональных блоков Keyblock.
Возможные значения от ‘00’ до ‘08’.
Представлено, если присутствует поле
Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального
блока
2 A Идентификатор опционального блока.
Любое допустимое значение, кроме
‘PB’
Длина
опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и
длины). Возможные значения от X’04’
до X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный
блок
n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 95
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BX’.
Код ошибки 2 А 00 – нет ошибок;
04 – недопустимый код типа ключа;
05 – недопустимый тип флага длины
ключа;
10 – ошибка четности ключа;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
Ключ Ключ, перешифрованный из-под
«старого» LMK под текущий
16 H
или
1 A + 32/48 H
Ключ, перешифрованный из-под
«старого» LMK 16-17 под «текущий».
или
1 A + n A
Keyblock LMK с ключом, зашифрованным
под текущий LMK
Модуль безопасности платежных систем. Руководство разработчика | 96
Перешифрование ZPK из-под ZMK под LMK (FA)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ZPK из-под ZMK под LMK. Используется для
получения ZPK от другой стороны.
Примечания: Команда может быть заменена командой A6.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FA’.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
ZPK 16 H
или
1 A + 32/48 H
ZPK, зашифрованный под ZMK.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля.
Значение ‘;’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Ключевая схема
(LMK)
1 A Опционально. Схема шифрования ключа
под LMK (см. Таблица 9) или ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 97
Поле Длина и тип Описание
Командное сообщение
Тип проверочной
величины ключа
1 A Опционально. Метод вычисления
проверочной величины ключа: ‘0’: 16
цифр KCV (режим обратной
совместимости)
‘1’: 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘FB’
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
ZPK 16 H
или
1 A + 32/48 H
Ключ, зашифрованный под LMK 06-07.
Проверочная
величина ключа
16/6 H Результат зашифрования 64 бинарных
нулей под ZPK.
в зависимости от выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 98
Перешифрование TMK, TPK или PVK из-под ZMK под LMK (FC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование TMK, TPK или PVK из-под ZMK под LMK.
Используется для получения ключей от другой стороны.
Примечания: Команда может быть заменена командой A6.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FC’.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
TMK, TPK или PVK 16 H
или
1 A + 32/48 H
TMK, TPK или PVK, зашифрованный под
ZMK.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля.
Значение ‘; ’.
Зарезервировано 1 A Зарезервировано. Если представлено, то
‘0’.
Ключевая схема
(LMK)
1 A Опционально. Схема шифрования ключа
под LMK (см. Таблица 9) или ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 99
Поле Длина и тип Описание
Командное сообщение
Тип проверочной
величины ключа
1 A
Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим обратной
совместимости)
‘1’: 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FD’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
11 - ошибка четности TMK, TPK или
PVK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
TMK, TPK или PVK 16 H
или
1 A + 32/48 H
Ключ TMK, TPK или PVK,
зашифрованный под LMK 14-15.
Проверочная
величина ключа
16/6 H Результат зашифрования 64 бинарных
нулей под TMK, TPK или PVK в
зависимости от выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 100
Перешифрование TMK, TPK или PVK из-под LMK под ZMK (FE)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование TMK, TPK или PVK из-под LMK под ZMK.
Используется для получения ключей от другой стороны.
Примечания: Команда может быть заменена командой A8.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FE’.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
TMK, TPK или PVK 16 H
или
1 A + 32/48 H
TMK, TPK или PVK, зашифрованный
под LMK 14-15.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля.
Значение ‘; ’.
Ключевая схема
(ZMK)
1 A Опционально. Схема шифрования ключа
под ZMK (см. Таблица 9) или ‘0’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Тип проверочной
величины ключа
1 A Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим обратной
совместимости).
Модуль безопасности платежных систем. Руководство разработчика | 101
Поле Длина и тип Описание
‘1’: 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FF’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
11 - ошибка четности TMK, TPK или
PVK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
TMK, TPK или PVK 16 H
или
1 A + 32/48 H
Ключ TMK, TPK или PVK,
зашифрованный под ZMK.
Проверочная
величина ключа
16/6 H Результат зашифрования 64 бинарных
нулей под TMK, TPK или PVK в
зависимости от выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 102
Генерация ZEK/ZAK (FI)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Генерация ZEK или ZAK.
Примечания:
1. Команда может быть заменена командой A0.
2. Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна
быть выполнена соответствующая консольная настройка
(пункт меню «Настройка» WEB-интерфейса удаленного
управления платежным приложением).
3. Производится автоматическая проверка сформированного ключа по
таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FI’.
Флаг 1 N Генерация ключа:
‘0’: Генерация ключа ZEK;
‘1’ : Генерация ключа ZAK.
ZMK 16 / 32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
Разделитель 1 A Опционально. Если присутствует, то
должны быть следующие 3 поля.
Значение ‘; ’.
Ключевая схема
(ZMK)
1 A Опционально. Схема шифрования
ключей под ZMK (см. Таблица 9) или
‘0’
Модуль безопасности платежных систем. Руководство разработчика | 103
Поле Длина и тип Описание
Командное сообщение
Ключевая схема
(LMK)
1 A Опционально. Схема шифрования
ключей под LMK (см. Таблица 9) или
‘0’
Тип проверочной
величины ключа
1 A
Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим обратной
совместимости);
‘1’: 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FJ’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
98 – команда недоступна;
C0 - "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
ZEK или ZAK для
передачи
16 H
или
1 A + 32/48 H
ZEK или ZAK, зашифрованный под
ZMK (ZEK, если флаг ‘0’; ZAK, если
флаг ‘1’).
ZEK для хранения 16 H
или
1 A + 32/48 H
ZEK, зашифрованный под LMK 30-31
(только, если флаг ‘0’).
ZAK для хранения 16 H
или
1 A + 32/48 H
ZAK, зашифрованный под LMK 26-27
(только, если флаг ‘1’).
Проверочная величина
ключа
16 / 6 H Результат зашифрования 64 бинарных
нулей под ZEK или ZAK в зависимости
от выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 104
Перешифрование ZEK/ZAK из-под ZMK под LMK (FK)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ZEK или ZAK из-под ZMK под LMK.
Примечания: Команда может быть заменена командой A6.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FK’.
Флаг 1 N Перешифрование:
‘0’: ключа ZEK;
‘1’: ключа ZAK.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
ZEK/ZAK 16 H
или
1 A + 32/48 H
ZEK или ZAK, зашифрованный под
ZMK (ZEK, если флаг ‘0’; ZAK, если
флаг ‘1’).
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘; ’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Ключевая схема (LMK) 1 A Опционально. Схема шифрования ключа
под LMK (см. Таблица 9).
или ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 105
Поле Длина и тип Описание
Командное сообщение
Тип проверочной
величины ключа
1 A Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим обратной
совместимости);
‘1’: 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FL’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
ZEK 16 H
или
1 A + 32/48 H
ZEK, зашифрованный под LMK 30-31
(только, если флаг ‘0’).
ZAK 16 H
или
1 A + 32/48 H
ZAK, зашифрованный под LMK 26-27
(только, если флаг ‘1’).
Проверочная величина
ключа
16/6 H Результат зашифрования 64 бинарных
нулей под ZEK или ZAK в зависимости
от выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 106
Перешифрование ZEK/ZAK из-под LMK под ZMK (FM)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ZEK или ZAK из-под LMK под ZMK.
Примечания: Команда может быть заменена командой A8.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FM’.
Флаг 1 N Перешифрование:
‘0’: ключа ZEK;
‘1’: ключа ZAK.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
ZEK 16 H
или
1 A + 32/48 H
ZEK, зашифрованный под LMK 30-31
(только, если флаг ‘0’).
ZAK 16 H
или
1 A + 32/48 H
ZAK, зашифрованный под LMK 26-27
(только, если флаг ‘1’).
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘; ’.
Ключевая схема (ZMK) 1 A Опционально. Схема шифрования ключа
под ZMK (см. Таблица 9) или ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 107
Поле Длина и тип Описание
Командное сообщение
Зарезервировано 1 A Зарезервировано. Если представлено, то
‘0. ’
Тип проверочной
величины ключа
1 A
Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим обратной
совместимости);
‘1’: 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FN’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
11 – ошибка четности ZEK/ZAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
ZEK/ZAK 16 H
или
1 A + 32/48 H
ZEK или ZAK, зашифрованный под
ZMK (ZEK, если флаг ‘0’; ZAK, если
флаг ‘1’).
Проверочная величина
ключа
16/6 H Результат зашифрования 64 бинарных
нулей под ZEK или ZAK в зависимости
от выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 108
Генерация Watchword Key (FO)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Генерация ключа Watchword Key (WWK).
Примечания:
Данная команда может быть заменена командой A0.
Для генерации 16-цифровой проверочной величины ключа требуется
установка флага «Режим обратной совместимости по KCV с Thales
8000» в консольном режиме (пункт меню «Настройка»
Web-интерфейса удаленного управления платежным приложением).
В противном случае, при выборе длины ключа 16, формируется
6-цифровая проверочная величина, дополненная ‘00’ до нужной
длины.
Производится автоматическая проверка сформированного ключа по
таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FO’.
Разделитель 1 А Опционально. Если представлены
следующие три поля. Значение ‘; ’.
Если опция не требуется, то допустимо
заполнить значением ‘0’.
Зарезервировано 1 А Опционально. Если представлено, то ‘0’.
Ключевая схема (LMK) 1 A Опционально. Ключевая схема, под
которую зашифрован ключ под LMK
(см. Таблица 9).
Модуль безопасности платежных систем. Руководство разработчика | 109
Поле Длина и тип Описание
Командное сообщение
Тип проверочной
величины ключа
(KCV)
1 А Опционально. Метод вычисления
проверочной величины ключа:
‘0’ – 16 цифр KCV (режим обратной
совместимости);
‘1’ – 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FP’.
Код ошибки 2 А 00 – нет ошибок;
98 – команда недоступна;
C0 – "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
WWK 16 H
или
1 A + 32/48 H
Watchword Key, зашифрованный под
LMK 22-23.
Проверочная величина
ключа
16 / 6 H Результат зашифрования 64 бинарных
‘0’ на WWK.
16 / 6 H в зависимости от заданной
опции.
Модуль безопасности платежных систем. Руководство разработчика | 110
Перешифрование Watchword Key из-под ZMK под LMK (FS)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ключа Watchword Key (WWK) из-под ZMK под
LMK.
Примечания: Данная команда может быть заменена командой A6.
Для генерации 16-цифровой проверочной величины ключа требуется
установка флага «Режим обратной совместимости по KCV с Thales
8000» в консольном режиме (пункт меню «Настройка»
Web-интерфейса удаленного управления платежным приложением).
В противном случае, при выборе длины ключа 16, формируется
6-цифровая проверочная величина, дополненная ‘00’ до нужной
длины.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FS’.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
WWK 16 H
или
1 A + 32/48 H
Watchword Key, зашифрованный под
ZMK.
Разделитель 1 А Опционально. Если представлены
следующие три поля. Значение ‘; ’.
Если опция не требуется, то допустимо
заполнить значением ‘0’.
Зарезервировано 1 А Опционально. Если представлено, то ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 111
Поле Длина и тип Описание
Командное сообщение
Ключевая схема (LMK) 1 A Опционально. Ключевая схема, под
которую зашифрован ключ под LMK
(см. Таблица 9).
Тип проверочной
величины ключа
(KCV)
1 А Опционально. Метод вычисления
проверочной величины ключа:
‘0’ – 16 цифр KCV (режим обратной
совместимости);
‘1’ – 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FT’
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
11 – импортируемый ключ равен нулю;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
WWK 16 H
или
1 A + 32/48 H
Watchword Key, зашифрованный под
LMK 22-23.
Проверочная величина
ключа
16/6 H Результат зашифрования 64 бинарных
‘0’ на WWK.
16 / 6 H в зависимости от заданной
опции.
Модуль безопасности платежных систем. Руководство разработчика | 112
Перешифрование Watchword Key из-под LMK под ZMK (FQ)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование Watchword Key (WWK) из-под LMK под ZMK.
Примечания: Команда может быть заменена командой A8.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FQ’.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
WWK 16 H
или
1 A + 32/48 H
WWK, зашифрованный под LMK 22-23.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘; ’.
Ключевая схема (ZMK) 1 A Опционально. Схема шифрования ключа
под ZMK (см. Таблица 9) или ‘0’.
Зарезервировано 1 A Зарезервировано. Если представлено, то
‘0’.
Тип проверочной
величины ключа
1 A
Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим обратной
совместимости);
‘1’: 6 цифр KCV.
Модуль безопасности платежных систем. Руководство разработчика | 113
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FR’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
11 – ошибка четности WWK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
WWK 16 H
или
1 A + 32/48 H
WWK, зашифрованный под ZMK.
Проверочная величина
ключа
16/6 H Результат зашифрования 64 бинарных
нулей под WWK в зависимости от
выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 114
Перешифрование ZPK из-под LMK под ZMK (GC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ZPK из-под LMK под ZMK. Используется для
передачи ключа другой стороне.
Примечания: Команда может быть заменена командой A8.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘GC’.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
ZPK 16 H
или
1 A + 32/48 H
ZPK, зашифрованный под LMK 06-07.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘; ’.
Ключевая схема (ZMK) 1 A Опционально. Схема шифрования ключа
под ZMK (см. Таблица 9) или ‘0’.
Зарезервировано 1 A Зарезервировано. Если представлено,
то ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 115
Поле Длина и тип Описание
Командное сообщение
Тип проверочной
величины ключа
1 A
Опционально. Метод вычисления
проверочной величины ключа:
‘0’ : 16 цифр KCV (режим обратной
совместимости);
‘1’ : 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘GD’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
11 – ошибка четности ZPK;
98 – команда недоступна;
или стандартный код ошибки (см.
Приложение 1).
ZPK 16 H
или
1 A + 32/48 H
ZPK, зашифрованный под ZMK в
соответствии с ключевой схемой (см.
Таблица 9).
Проверочная величина
ключа
16/6 H Результат зашифрования 64 бинарных
нулей под ZPK в зависимости от
выбранной опции.
Модуль безопасности платежных систем. Руководство разработчика | 116
Перешифрование ZMK из-под «старого» LMK под «новый» (GE)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ключа ZMK из-под «старого» LMK 04-05 под
«новый».
Примечания: Команда может быть заменена универсальной командой BW.
Если необходимо использовать ZMK двойной длины (без указания
параметра «Ключевая схема»), то предварительно должна быть
выполнена соответствующая консольная настройка (пункт меню
«Настройка» WEB-интерфейса удаленного управления платежным
приложением).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘GE’.
ZMK 16/32 H
или
1 A + 32/48 H
Шифрограмма ZMK под «старый» LMK.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘;’.
Зарезервировано 1 A Зарезервировано. Если представлено, то
‘0’.
Ключевая схема (LMK) 1 A Опционально. Схема шифрования ключа
под LMK (см. Таблица 9) или ‘0’.
Зарезервировано
1 A
Зарезервировано. Если представлено,
то ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 117
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘GF’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
ZMK
16/32 H
или
1 A + 32/48 H
ZMK, перешифрованный из-под
«старого» LMK 04-05 под «новый».
Модуль безопасности платежных систем. Руководство разработчика | 118
Генерация TAK (HA)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Генерация TAK и зашифрование под TMK и LMK 16-17.
Примечание: производится автоматическая проверка сформированного ключа
по таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘HA’.
TMK 16 H
или
1 A + 32/48 H
TMK, зашифрованный под LMK 14-15.
Разделитель 1 A Опционально. Если присутствует, то
должны быть следующие 3 поля.
Значение ‘; ’.
Ключевая схема (TMK) 1 A Опционально. Схема шифрования
ключей под TMK (см. Таблица 9)
или ‘0’.
Ключевая схема (LMK) 1 A Опционально. Схема шифрования
ключей под LMK (см. Таблица 9) или
‘0’.
Зарезервировано
1 A Опционально. Если представлено, то ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 119
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘HB’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности TMK;
98 – команда недоступна;
C0 - "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
TAK под TMK 16 H
или
1 A + 32/48 H
TAK, зашифрованный под TMK.
TAK под LMK
16 H
или
1 A + 32/48 H
TAK, зашифрованный под LMK 16-17.
Модуль безопасности платежных систем. Руководство разработчика | 120
Генерация TMK, TPK или PVK (HC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Генерация случайного ключа и зашифрование под текущим ключом
TMK (TPK или PVK) и под LMK 14-15.
Примечание: производится автоматическая проверка сформированного ключа
по таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘HС’.
Текущий TMK, TPK
или PVK
16 H
или
1 A + 32/48 H
Текущий TMK, TPK или PVK
зашифрованный под LMK 14-15.
Разделитель 1 A Опционально. Если присутствует, то
должны быть следующие 3 поля.
Значение ‘; ’.
Ключевая схема (TMK) 1 A Опционально. Схема шифрования
ключей под TMK (см. Таблица 9)
или ‘0’.
Ключевая схема (LMK) 1 A Опционально. Схема шифрования
ключей под LMK (см. Таблица 9)
или ‘0’.
Зарезервировано 1 A Опционально. Если представлено,
то ‘0’
Модуль безопасности платежных систем. Руководство разработчика | 121
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘HD’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности TMK, TPK или
PVK;
98 – команда недоступна;
C0 – "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
Новый ключ под
текущим ключом
16 H
или
1 A + 32/48 H
Новый TMK, TPK или PVK,
зашифрованный под текущим TMK, TPK
или PVK.
Новый ключ под LMK 16 H
или
1 A + 32/48 H
Новый TMK, TPK или PVK,
зашифрованный под LMK 14-15.
Модуль безопасности платежных систем. Руководство разработчика | 122
Генерация ZPK (IA)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Генерация ZPK и зашифрование под ZMK для передачи другой
стороне и LMK для хранения в БД.
Примечания: Команда может быть заменена командой A0.
Если необходимо использовать ZMK-DES двойной длины (без
указания параметра «Ключевая схема»), то предварительно должна
быть выполнена соответствующая консольная настройка (пункт
меню «Настройка» WEB-интерфейса удаленного управления
платежным приложением).
Производится автоматическая проверка сформированного ключа по
таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘IA’.
ZMK 16/32 H
или
1 A + 32/48 H
ZMK, зашифрованный под LMK 04-05.
Разделитель 1 A Опционально. Если присутствует, то
должны быть следующие 3 поля.
Значение ‘; ’.
Ключевая схема (ZMK) 1 A Опционально. Схема шифрования
ключей под ZMK (см. Таблица 9)
или ‘0’.
Ключевая схема (LMK) 1 A Опционально. Схема шифрования
ключей под LMK (см. Таблица 9) или ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 123
Поле Длина и тип Описание
Командное сообщение
Тип проверочной
величины ключа
1 A Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим обратной
совместимости);
‘1’: 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘IB’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZMK;
98 – команда недоступна;
C0 – "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
ZPK под ZMK 16 H
или
1 A + 32/48 H
ZPK, зашифрованный под ZMK.
ZPK под LMK 16 H
или
1 A + 32/48 H
ZPK, зашифрованный под LMK 06-07
Проверочная величина
ключа
16/6 H 16 / 6 H в зависимости от заданной
опции.
Модуль безопасности платежных систем. Руководство разработчика | 124
Перешифрование ZPK из-под «старого» LMK под «новый» (KC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование ключа ZPK из-под «старого» LMK 06-07 под
«новый».
Примечания: Команда может быть заменена универсальной командой BW.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KC’.
ZPK 16 H
или
1 A + 32/48 H
Шифрограмма ZPK под «старый» LMK.
Разделитель 1 A Опционально. Если представлено, то
должны быть следующие поля. Значение
‘; ’.
Зарезервировано
1 A
Зарезервировано.
Если представлено, то ‘0’.
Ключевая схема
(LMK)
1 A
Опционально. Схема шифрования ключа
под LMK (см. Таблица 9) или ‘0’.
Зарезервировано
1 A
Зарезервировано.
Если представлено, то ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 125
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KD’.
Код ошибки 2 А
00 – нет ошибок;
10 – ошибка четности ZPK;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
ZPK
16 H
или
1 A + 32/48 H
ZPK, перешифрованный из-под
«старого» LMK 06-07 под «новый».
Модуль безопасности платежных систем. Руководство разработчика | 126
Генерация MAC за сообщение (МA)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Вычисление MAC за данные с использованием ключа TAK в
соответствии с ANSI X9.9.
Примечание: Команда может быть заменена командой ‘M6’.
Алгоритм MAC ANSI X9.9 применяется с использованием нулевого
паддинга. Максимальное значение поля данных не должно
превышать 2 Кбайт.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MA’.
TAK 16 H
или
1 A + 32/48 H
TAK зашифрованный под LMK 16-17.
Данные 0 - n Данные, за которые вычисляется MAC,
n = 2K.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MB’.
Код ошибки 2 A 00 – нет ошибок;
10 – ошибка четности TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 8 H Вычисленный MAC.
Модуль безопасности платежных систем. Руководство разработчика | 127
Проверка MAC за сообщение (МC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Проверка MAC за данные на ключе TAK в соответствии с ANSI X9.9.
Примечание: Команда может быть заменена командой ‘M8’.
Алгоритм MAC ANSI X9.9 применяется с использованием нулевого
паддинга. Максимальное значение поля данных не должно
превышать 2 Кбайт
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MC’.
TAK 16 H
или
1 A + 32/48 H
TAK зашифрованный под LMK 16-17.
MAC 8 H Проверяемый MAC
Данные 0 - n Данные, за которые был вычислен
проверяемый MAC, n = 2K.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MD’.
Код ошибки 2 A
00 – нет ошибок;
01 – ошибка проверки MAC;
10 – ошибка четности TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 128
Проверка и переформирование MAC (МE)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Вычисление MAC за данные на исходном ключе TAK в соответствии
с ANSI X9.9 и сравнение с принятым. В случае успеха,
переформирование MAC на новом ключей TAK.
Примечание: Алгоритм MAC ANSI X9.9 применяется с использованием
нулевого паддинга. Максимальное значение поля данных не должно
превышать 2 Кбайт.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ME’.
Исходный TAK 16 H
или
1 A + 32/48 H
Исходный TAK, зашифрованный под
LMK 16-17.
Новый TAK 16 H
или
1 A + 32/48 H
Новый TAK, зашифрованный под
LMK 16-17.
MAC 8 H MAC, вычисленный на исходном ключе.
Данные 0 - n Данные, за которые проверяется и
вычисляется MAC, n = 2K.
Модуль безопасности платежных систем. Руководство разработчика | 129
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MF’.
Код ошибки 2 A 00 – нет ошибок;
01 – ошибка проверки MAC;
10 – ошибка четности исходного TAK;
11 – ошибка четности нового TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 8 H MAC, вычисленный на новом TAK
Модуль безопасности платежных систем. Руководство разработчика | 130
Генерация MAC (MAB) за большое бинарное сообщение (МQ)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Вычисление MAC для большого бинарного сообщения на ключе
ZAK. MAC формируется в соответствии с ANSI X9.9.
Примечание: для вычисления 8-значного MAC (8 hex) следует использовать
команду ‘M6’.
Алгоритм MAC ANSI X9.9 применяется с использованием нулевого
паддинга. Максимальное значение поля данных не должно
превышать 2 Кбайт
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MQ’.
Номер блока
сообщения
1 N '0’: единственный блок одноблочного
сообщения;
'1’: первый блок многоблочного
сообщения;
'2’: промежуточный блок многоблочного
сообщения;
'3': последний блок многоблочного
сообщения.
ZAK 16 H
или
1 A + 32/48 H
ZAK зашифрованный под LMK 26-27.
IV 16 H Вектор инициализации, значение
которого представлено только для
номера блока сообщения '2' или '3'.
Длина сообщения 3 H Длина сообщения в байтах.
Блок сообщения n B Чистый текст блока сообщения.
Модуль безопасности платежных систем. Руководство разработчика | 131
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘MR’.
Код ошибки 2 A 00 – нет ошибок;
02 – ZAK не единичной длины;
05 – недопустимый номер блока
сообщения;
10 – ошибка четности ZAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAB
16 H
Используется как IV для следующего
блока, когда номер блока сообщения '1'
или '2'.
Используется как аутентификатор
сообщения, когда номер блока
сообщения '0' или '3'.
Модуль безопасности платежных систем. Руководство разработчика | 132
Генерация MAC (MAB) за большое сообщение (МS)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Вычисление MAC для большого сообщения на ключе TAK или ZAK.
Для ключа одинарной длины схемы «DES» MAC формируется в
соответствии с ANSI X9.9, для ключа двойной длины схемы «DES»
– в соответствии с ANSI X9.19 MAC.
Примечание: для вычисления 8-значного MAC (8 hex) следует использовать
команду ‘M6’.
Алгоритм вычисления MAC применяется с использованием
нулевого паддинга
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MS’.
Номер блока
сообщения
1 N '0': единственный блок; одноблочного
сообщения
'1’: первый блок многоблочного
сообщения;
'2’: промежуточный блок многоблочного
сообщения;
'3’: последний блок многоблочного
сообщения.
Тип ключа
1 N
'0’: TAK;
'1’: ZAK.
Длина ключа 1 N '0': единичная длина ключа DES;
'1': двойная длина ключа DES.
Тип сообщения 1 N '0': данные сообщения в бинарном виде;
'1': данные сообщения в
шестнадцатеричном виде.
Модуль безопасности платежных систем. Руководство разработчика | 133
Поле Длина и тип Описание
Командное сообщение
Ключ 16 H
или
1 A + 32/48 H
'Ключ, зашифрованный под
соответствующей парой LMK:
TAK под LMK 16-17;
ZAK под LMK 26-27.
IV 16 H Вектор инициализации, значение
которого представлено только для
номера блока сообщения '2' или '3'.
Длина сообщения 4 H Длина сообщения (длина следующего
поля, если в сообщении бинарные
данные; половина длины следующего
поля, если в сообщении
шестнадцатеричные данные).
Блок сообщения n B или H Блок сообщения или в бинарном, или в
шестнадцатеричном виде.
Модуль безопасности платежных систем. Руководство разработчика | 134
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MT’.
Код ошибки 2 A 00 – нет ошибок;
03 – недопустимый код типа сообщения;
04 – недопустимый код типа ключа;
05 – недопустимый номер блока
сообщения;
06 – недопустимый код длины ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAB
16 H
Используется как IV для следующего
блока, когда номер блока сообщения '1'
или '2'.
Используется как аутентификатор
сообщения, когда номер блока
сообщения '0' или '3'.
Модуль безопасности платежных систем. Руководство разработчика | 135
Генерация MAC за бинарные данные (МK)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Вычисление MAC за бинарные данные на ключе TAK в соответствии
с ANSI X9.9 и сравнение с принятым.
Примечание: Команда может быть заменена командой ‘M6’.
Алгоритм MAC ANSI X9.9 применяется с использованием
нулевого паддинга.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MK’.
TAK 16 H
или
1 A + 32/48 H
TAK зашифрованный под LMK 16-17.
Длина данных 3 H '001' … '320' указывает длину данных
Данные n B Данные, за которые вычисляется MAC, n
= 800 байт.
Модуль безопасности платежных систем. Руководство разработчика | 136
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ML’.
Код ошибки 2 A 00 – нет ошибок;
10 – ошибка четности TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC
8 H Вычисленный MAC.
Модуль безопасности платежных систем. Руководство разработчика | 137
Проверка MAC за бинарные данные (МM)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Вычисление MAC за бинарные данные на ключе TAK в соответствии
с ANSI X9.9 и сравнение с принятым.
Примечание: Команда может быть заменена командой ‘M8’.
Алгоритм MAC ANSI X9.9 применяется с использованием нулевого
паддинга.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MM’.
TAK 16 H
или
1 A + 32/48 H
TAK зашифрованный под LMK 16-17.
MAC 8 H Проверяемый MAC.
Длина данных 3 H '001' … '320' указывает длину данных.
Данные n B Данные, за которые был вычислен
проверяемый MAC,
n = 800 байт.
Модуль безопасности платежных систем. Руководство разработчика | 138
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MN’.
Код ошибки
2 A
00 – нет ошибок;
01 – ошибка проверки MAC;
10 – ошибка четности TAK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 139
Проверка и переформирование MAC за бинарные данные (МO)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Вычисление MAC за бинарные данные на исходном ключе TAK в
соответствии с ANSI X9.9 и сравнение с принятым. В случае успеха,
переформирование MAC на новом ключе TAK.
Примечание: Команда может быть заменена командой ‘MY’.
Алгоритм MAC ANSI X9.9 применяется с использованием нулевого
паддинга.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘MO’.
Исходный TAK 16 H
или
1 A + 32/48 H
Исходный TAK, зашифрованный под
LMK 16-17.
Новый TAK 16 H
или
1 A + 32/48 H
Новый TAK, зашифрованный под
LMK 16-17.
MAC 8 H MAC, вычисленный на исходном ключе.
Длина данных 3 H '001' … '320' указывает длину данных.
Данные n B Данные, за которые проверяется и
вычисляется MAC, n = 800 байт.
Модуль безопасности платежных систем. Руководство разработчика | 140
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘MP’.
Код ошибки 2 A 00 – нет ошибок;
01 – ошибка проверки MAC;
10 – ошибка четности исходного TAK;
11 – ошибка четности нового TAK;
68 – команда отключена
или стандартный код ошибки (см.
Приложение 1).
MAC 8 H MAC, вычисленный на новом TAK.
Модуль безопасности платежных систем. Руководство разработчика | 141
Перешифрование блока секретных данных в специфичном
формате карты (P0)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование блока секретных данных с одного ключа на другой.
Оба ключа в виде шифрограмм под LMK подаются на вход команды.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘P0’.
Режим расшифрования
/ зашифрования
2 H 00 = ECB / ECB;
01 = ECB / CBC;
10 = CBC / ECB;
11 = CBC / CBC.
Тип ключа
расшифрования
3 H 002, 102, 202, 302, 402, 502, 602, 702, 802
или 902.
Ключ расшифрования 32 H
или
1 A + 32/48 H
Ключ расшифрования зашифрованный
под LMK 14-15, вариант указан в поле
'Тип ключа расшифрования'.
IV расшифрования 8 B Вектор инициализации для
расшифрования (представлен только
если 'Режим расшифрования /
зашифрования' = 10 или 11).
Вариант зашифрования 3 H 002, 102, 202, 302, 402, 502, 602, 702, 802
или 902.
Ключ зашифрования 32 H
или
1 A + 32/48 H
Ключ зашифрования зашифрованный
под LMK 14-15, вариант указан в
'Вариант зашифрования'.
IV зашифрования 8 B Вектор инициализации для
зашифрования (представлен только если
'Режим расшифрования / зашифрования'
= 01 или 11).
Модуль безопасности платежных систем. Руководство разработчика | 142
Поле Длина и тип Описание
Командное сообщение
Длина заголовка 2 H Длина следующего заголовка
информации.
Заголовок n H Заголовок, предваряющий выходные
данные для PIN Try Limits, счетчика и
других будущих значений.
Разделитель 1 A Значение '; '.
Длина
конфиденциальных
данных
3 H Длина конфиденциальных данных
(следующем поле).
Конфиденциальные
данных
n B Конфиденциальные данные блоками по
8 байт.
Разделитель 1 A Значение ';'.
Длина трейлера 2 H Длина трейлера в следующем поле.
Трейлер n H Трейлер, дополняющий выходной блок
данных до кратности 8 байт.
Модуль безопасности платежных систем. Руководство разработчика | 143
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘P1’.
Код ошибки 2 A 00 – нет ошибок;
10 – ошибка четности ключа
расшифрования;
11 – ошибка четности ключа
зашифрования;
13 – ошибка LMK, сообщите
администратору;
15 – недопустимые входные данные
50 – недопустимый режим
расшифрования / зашифрования
53 – недопустимая длина ключа
расшифрования;
54 – недопустимая длина ключа
зашифрования;
58 – недопустимый вариант
зашифрования;
80 – ошибка длины заголовка
81 – ошибка длины конфиденциальных
данных;
82 – ошибка длины трейлера
или стандартный код ошибки (см.
Приложение 1).
Зашифрованные
конфиденциальные
данные
n B Зашифрованные на ключе зашифрования
конфиденциальные данные.
Модуль безопасности платежных систем. Руководство разработчика | 144
Команды управления ассиметричными ключами
Генерация пары секретный/открытый ключ RSA (EI)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется Требуется
Функция: Генерация пары секретный/открытый ключ RSA.
Примечания: Если во входных данных присутствует открытая экспонента, то
она должна иметь нечетное значение (т.е. наименее значимый бит
должен быть равен 1).
Для LMK Keyblock закрытый ключ RSA создается в формате
Keyblock со следующими атрибутами:
Поле Значение
Использование ключа (Key Usage) '03'
Алгоритм (Algorithm) 'R'
Режим использования (Mode of Use) Определяется параметром «Тип
ключа» Указывается после
разделителя '#'
Экпортируемость (Exportability) Значение 'N' Указывается после
разделителя '#'
Длина ключа (Key Length) Определяется параметром «Длина
ключа»
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EI’.
Код типа ключа
1 N
Указатель типа ключа:
‘0’: Только подпись;
‘1’: Управление ключами
(экспорт/импорт);
‘2’: Подпись и управление ключами;
‘3’: Integrated Chip Card (ICC) ключ.
Длина ключа 4 N Длина модуля в битах.
Модуль безопасности платежных систем. Руководство разработчика | 145
Поле Длина и
тип
Описание
‘0320’…’2048’.
Кодирование открытого
ключа
2 N Правило кодирование открытого
ключа:
‘01’: DER кодирование для ASN.1
Public Key (беззнаковое
представление INTEGER).
Длина открытой
экспоненты
4 N Опционально. Должно присутствовать,
если открытая экспонента подается на
вход. Указывает длину открытой
экспоненты в битах.
Открытая экспонента n B Опционально. Должно быть нечетное
значение. Если не указано, то
полагается 65537.
Только д
ля с
озд
ани
я с
екр
етн
ого
кл
юч
а R
SA
Key
blo
ck
Разделитель 1 A Значение ‘#’. Требуется при генерации
Keyblock. Если представлено, то
должны быть поля, приведенные ниже
Номер версии
ключа (Key Version
Number)
2 N Значения поля Key Version Number для
включения в заголовок Keyblock.
Возможные значения от ‘00’ до ‘99’.
Представлено, если присутствует поле
Разделитель
Число
опциональных
блоков
2 N Число опциональных блоков Keyblock.
Возможные значения от ‘00’ до ‘08’.
Представлено, если присутствует поле
Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального
блока
2 A Идентификатор опционального блока.
Любое допустимое значение, кроме
‘PB’ (см. Таблица 18).
Длина
опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и
длины). Возможные значения от X’04’
до X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 146
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EJ’.
Код ошибки 2 А 00 – нет ошибок;
03 - недопустимый код кодирования
открытого ключа;
04 – ошибка длины ключа;
05 – недопустимый тип ключа;
06 – ошибка длины открытой
экспоненты;
08 – представлена четная экспонента;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Открытый ключ n B Открытый ключ, закодированный
указанным способом.
Длина секретного
ключа
4 N Для вариантного LMK:
Длина (в байтах) следующего поля.
или
4 H
Для Keyblock LMK:
Это поле зарезервировано, должно быть
установлено в «FFFF».
Секретный ключ
n B
Для вариантного LMK:
Секретный ключ, зашифрованный под
LMK 34-35.
или
1 A + n B
Для Keyblock LMK: закрытый ключ
шифруется под LMK.
Модуль безопасности платежных систем. Руководство разработчика | 147
Загрузка секретного ключа RSA (EK)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Загрузка секретного ключа RSA (зашифрованного под LMK) в
энергонезависимую память HSM.
Внимание: При повторном выполнении команды c тем же индексом ключа ключ
в памяти HSM будет перезаписан.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EK’.
Индекс ключа 2 N ‘00’…’20’: индекс загружаемого в
память HSM ключа (используется,
если требуется хранить несколько
ключей).
Длина секретного ключа 4 N Длина (в байтах) следующего поля.
или
4 H
Это поле зарезервировано, должно
быть установлено в «FFFF».
Секретный ключ n B Секретный ключ RSA, загружаемый в
память HSM, зашифрованный под
LMK 34-35.
или
1 A + n B
Для ключевого блока LMK закрытый
ключ должен содержать следующее:
Key
Usage
Algorithm Mode of Use
‘O3’ ‘R’ ‘S’, ‘D’ или N’
Модуль безопасности платежных систем. Руководство разработчика | 148
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EL’.
Код ошибки 2 А 00 – нет ошибок;
03 - недопустимый индекс ключа;
04 – недостаточно памяти для хранения
ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 149
Перешифрование секретного ключа RSA (EM)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование секретного ключа RSA из-под «старого» LMK под
«новый».
Примечание:
Для LMK Keyblock закрытый ключ RSA создается в формате
Keyblock со следующими атрибутами:
Поле Значение
Использование ключа (Key Usage) '03'
Алгоритм (Algorithm) 'R'
Mode of Use (Режим использования) Определяется параметром «Тип
ключа»
Экпортируемость (Exportability) 'N'
Длина ключа (Key Length) Определяется параметром «Длина
ключа»
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EM’.
Длина секретного
ключа
4 N Для вариантного LMK:
Длина (в байтах) следующего поля.
или
4 H
Для Keyblock LMK:
Это поле зарезервировано и установлено
в «FFFF».
Секретный ключ n B Для вариантного LMK:
Секретный ключ RSA, загружаемый в
память HSM, зашифрованный под
LMK 34-35.
Модуль безопасности платежных систем. Руководство разработчика | 150
Поле Длина и тип Описание
или
1 A + n B
Для Keyblock LMK:
Секретный ключ должен содержать
следующее:
Key Usage Algorithm Mode of Use
‘O3’ ‘R’ ‘S’, ‘D’ или N’
Пр
и т
ран
сляц
ии
из
вар
иан
тно
го L
MK
в K
eyblo
ck L
MK
Разделитель 1 A Значение ‘#’. Требуется при создании
Keyblock. Если представлено, то должны
быть поля, приведенные ниже.
Номер версии
ключа
2 N Значения поля Key Version Number для
включения в заголовок Keyblock.
Возможные значения от ‘00’ до ‘99’.
Представлено, если присутствует поле
Разделитель
Число
опциональных
блоков
2 N Число опциональных блоков Keyblock.
Возможные значения от ‘00’ до ‘08’.
Представлено, если присутствует поле
Разделитель.
Для каждого необязательного блока должны быть указаны следующие три
поля. Если число дополнительных блоков = '00', то не должно
присутствовать ни одно из следующих трех полей.
Идентификатор
опционального
блока
2 A Идентификатор опционального блока.
Любое допустимое значение, кроме ‘PB’
(см. Таблица 18).
Длина
опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и
длины). Возможные значения от X’04’
до X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный
блок данных
n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 151
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EN’.
Код ошибки 2 А 00 – нет ошибок;
98 – команда недоступна;
или стандартный код ошибки (см.
Приложение 1).
Длина секретного
ключа
4 N Для вариантного LMK:
Длина (в байтах) следующего поля.
или
4 H
Для Keyblock LMK:
Это поле зарезервировано и установлено
в «FFFF».
Секретный ключ
n B
Для вариантного LMK:
Секретный ключ RSA,
перешифрованный под «новый»
LMK 34-35.
или
1 A + n B
Для Keyblock LMK:
Секретный ключ, перешифрованных под
«новый» LMK
Модуль безопасности платежных систем. Руководство разработчика | 152
Импорт открытого ключа RSA (EO)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется Требуется
Функция: Импорт открытого ключа RSA с генерацией MAC.
Примечание: Для LMK Keyblock закрытый ключ RSA создается в формате
Keyblock со следующими атрибутами:
Поле Значение
Использование ключа
(Key Usage)
'02'
Алгоритм
(Algorithm)
'R'
Mode of Use
(Режим использования)
Указывается после разделителя '#'
Экпортируемость
(Exportability)
Указывается после разделителя '#'
Длина ключа
(Key Length)
Определяется по входному ключу
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений.
Код команды 2 А ‘EO’.
Кодирование открытого ключа 2 N Правило кодирование открытого
ключа:
‘01’: DER кодирование для ASN.1
Public Key (беззнаковое
представление INTEGER).
Открытый ключ n B DER, закодированный в формат
ASN.1
Данные аутентификации
n B
Опционально. Дополнительные
данные, которые могут быть
включены в данные для
Модуль безопасности платежных систем. Руководство разработчика | 153
Поле Длина и
тип
Описание
вычисления MAC (не должны
включать в себя ";").
Разделитель 1 A Значение ‘#’. Требуется при
создании Keyblock. Если
представлено, то должны быть
поля, приведенные ниже.
Режим использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock.
Представлено, если присутствует
поле Разделитель. Таблица 15
содержит возможные значения
поля по типу ключа.
Номер версии ключа (Key
Version Number)
2 N Значения поля Key Version
Number для включения в
заголовок Keyblock. Возможные
значения от ‘00’ до ‘99’.
Представлено, если присутствует
поле Разделитель
При
мен
яет
ся т
ольк
о п
ри
исп
ользо
ван
ии
LM
K
Key
blo
ck
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
включения в заголовок Keyblock.
Представлено, если присутствует
поле Разделитель. Таблица 17
содержит возможные значения
поля.
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения
от ‘00’ до ‘08’. Представлено,
если присутствует поле
Разделитель.
Для каждого необязательного блока должны быть указаны следующие три
поля. Если число дополнительных блоков = '00', то не должно
присутствовать ни одно из следующих трех полей.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока. Любое допустимое
значение, кроме ‘PB’ (см.
Таблица 18).
Модуль безопасности платежных систем. Руководство разработчика | 154
Поле Длина и
тип
Описание
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля
идентификатора и длины).
Возможные значения от X’04’ до
X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок
данных
n A Опциональный блок данных
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EP’.
Код ошибки 2 А 00 – нет ошибок;
03 - недопустимый код кодирования
открытого ключа;
04 – ошибка кодирования открытого
ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытой ключ и
данные аутентификации с
использованием LMK 36-37.
Открытый ключ
Открытый ключ
n B Открытый ключ кодируется DER в
формате ASN.1
или
1 A + n B Открытый ключ хранится (без
шифрования) в формате блокировки
(включая MAC).
Модуль безопасности платежных систем. Руководство разработчика | 155
Модуль безопасности платежных систем. Руководство разработчика | 156
Проверка открытого ключа RSA (EQ)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка открытого ключа RSA.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EQ’.
MAC 4 B MAC, вычисленный за открытой ключ и
данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ, закодированный в DER
в формате ASN.1
Данные
аутентификации
n B Опционально. Дополнительные данные,
которые могут быть включены в данные
для вычисления MAC (не должны
включать в себя ";").
Открытый ключ 1 A + n B Для ключевого блока LMK открытый
ключ должен соответствовать
следующему:
Key
Usage
Algorithm Mode of Use
‘O2’ ‘R’ ‘S’, ‘B’, ‘E’, ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 157
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ER’.
Код ошибки
2 А
00 – нет ошибок;
01 – отрицательный результат проверки
MAC;
04 – ошибка кодирования открытого
ключа
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 158
Проверка сертификата и импорт открытого ключа RSA (ES)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка сертификата и импорт открытого ключа RSA,
содержащегося в сертификате.
Примечание: Команда может (опционально) проверить, соответствует ли
открытый ключ, содержащийся в сертификате, закрытому ключу,
зашифрованному под LMK.
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений.
Код команды 2 А ‘ES’.
MAC 4 B MAC, вычисленный за открытый
ключ и данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ, закодированный в
DER в формате ASN.1.
Данные аутентификации n B Опционально. Дополнительные
данные, которые могут быть
включены в данные для вычисления
MAC (не должны включать в себя
";").
Разделитель 1 A Значение ‘; ’.
Открытый ключ 1 A + n B Для ключевого блока LMK
закрытый ключ должен
соответствовать следующим
значениям:
Key
Usage
Algorithm Mode of Use
Модуль безопасности платежных систем. Руководство разработчика | 159
Поле Длина и
тип
Описание
Командное сообщение
‘O2’ ‘R’ ‘S’, ‘B’, ‘N’
Размер сертификата 4 N Размер сертификата (в байтах).
Смещение Хэш 4 N Смещение первого байта в данных
сертификата для расчета Хэш.
Длина Хэш 4 N Длина (в байтах) данных
сертификата, за которые
вычисляется Хэш.
Смещение подписи 4 N Смещение первого байта подписи,
содержащейся в сертификате.
Длина подписи 4 N Длина (в байтах) подписи,
содержащейся в сертификате.
Сертификат n B Проверяемый сертификат.
Разделитель 1 A Значение ‘; ’. Используется для
обозначения конца сертификата.
Идентификатор Хэш 2 N Идентификатор алгоритма
вычисления Хэш.
Алгоритм подписи 2 N Идентификатор алгоритма подписи.
Идентификатор режима
паддинга
2 N Идентификатор режима паддинга,
используемого при генерации
подписи сертификата:
‘01’: PKCS #1 v1.5 method
(EME-PKCS1-v1_5).
Кодирование открытого ключа 2 N Правило кодирования открытого
ключа, содержащегося в
сертификате (позволяет сделать
вывод о длине открытого ключа).
Смещение открытого ключа 4 N Смещение первого байта открытого
ключа, содержащейся в
сертификате.
Данные аутентификации n B Опционально. Дополнительные
данные, которые могут быть
Модуль безопасности платежных систем. Руководство разработчика | 160
Поле Длина и
тип
Описание
Командное сообщение
включены в данные для вычисления
MAC (не должны включать в себя
";").
Разделитель 1 A Значение ‘; ’. Используется для
указания конца данных
аутентификации.
Длина секретного ключа Опционально. Присутствует, если
представлено следующее поле.
4 N Длина (в байтах) следующего поля.
или
4 H
Это поле игнорируется и должно
быть установлено в ‘FFFF’.
Секретный ключ Опционально. Секретный ключ,
который должен соответствовать
открытому ключу, содержащемуся в
сертификате.
n B Зашифрован под LMK 34-35.
или
1 A + n B
Для ключевого блока LMK
закрытый ключ должен содержать
следующее:
Key
Usage
Algorithm Mode of Use
‘O3’ ‘R’ ‘S’, ‘D’, ‘N’
Разделитель 1 A Значение ‘#’. Требуется при
генерации Keyblock, если
представлены поля, приведенные
ниже
Режим использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock.
Представлено, если присутствует
поле Разделитель. Таблица 15
содержит возможные значения поля
по типу ключа.
Модуль безопасности платежных систем. Руководство разработчика | 161
Поле Длина и
тип
Описание
Командное сообщение П
ри
мен
яет
ся т
ольк
о п
ри
исп
ользо
ван
ии
LM
K K
eyblo
ck
Номер версии ключа
(Key Version Number)
2 N Значения поля Key Version Number
для включения в заголовок
Keyblock. Возможные значения от
‘00’ до ‘99’. Представлено, если
присутствует поле Разделитель.
Таблица 16 содержит возможные
значения поля.
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
включения в заголовок Keyblock.
Представлено, если присутствует
поле Разделитель. Таблица 17
содержит возможные значения поля.
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения от
‘00’ до ‘08’. Представлено, если
присутствует поле Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля, если значение поля ‘Число опциональных блоков’ отлично от ’00’.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока.
Любое допустимое значение, кроме
‘PB’ (см. Таблица 18).
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля
идентификатора и длины).
Возможные значения от X’04’ до
X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 162
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ET’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
MAC;
02 – отрицательный результат проверки
сертификата;
03 - недопустимый тип кодирования
открытого ключа;
04 – ошибка кодирования открытого
ключа;
05 – недопустимый; идентификатор
алгоритма Хэш;
06 – недопустимый идентификатор
алгоритма подписи;
07 – недопустимый идентификатор
режима паддинга;
74 – неверный синтаксис информации;
76 – ошибка длины открытого ключа;
77 – ошибка блока открытых данных;
78 – ошибка длины секретного ключа;
79 – ошибка идентификатора объекта
алгоритма Хэш;
80 – ошибка длины сертификата;
98 – команда недоступна
или стандартный код ошибки
(Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ и
данные аутентификации с
использованием LMK 36-37.
Открытый ключ
Импортированный открытый ключ
n B Открытый ключ кодирутся DER в
формате ASN.1
или
1 A + n B
Открытый ключ хранится (без
шифрования) в формате Keyblock
(включая MAC).
Модуль безопасности платежных систем. Руководство разработчика | 163
Пересчет MAC за открытый ключ RSA (EU)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Пересчет MAC за открытый ключ RSA с использованием «нового»
LMK.
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EU’.
MAC 4 B MAC, вычисленный за открытой
ключ и данные аутентификации с
использованием «старого» LMK
36-37.
Открытый ключ n B Открытый ключ, закодированный в
DER в формате ASN.1.
Данные аутентификации n B Опционально. Дополнительные
данные, которые могут быть
включены в данные для вычисления
MAC (не должны включать в себя ";").
Открытый ключ 1 A + n B Для ключевого блока LMK открытый
ключ должен соответствовать
следующему:
Key
Usage
Algorithm Mode of Use
‘O2’ ‘R’ ‘S’, ‘B’, ‘E’, ‘N’
Разделитель 1 A Значение ‘#’. Требуется при
генерации Keyblock. Если
представлено, то должны быть поля,
приведенные ниже
Модуль безопасности платежных систем. Руководство разработчика | 164
Поле Длина и
тип
Описание
Только
пр
и п
ерев
од
е и
з «ст
аро
го» V
aria
nt
LM
K к
«н
ово
му»
Key
blo
ck L
MK
Режим использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock.
Представлено, если присутствует
поле Разделитель. Таблица 15
содержит возможные значения поля
по типу ключа.
Номер версии ключа
(Key Version Number)
2 N Значения поля Key Version Number
для включения в заголовок Keyblock.
Возможные значения от ‘00’ до ‘99’.
Представлено, если присутствует
поле Разделитель. Таблица 16
содержит возможные значения поля.
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
включения в заголовок Keyblock.
Представлено, если присутствует
поле Разделитель. Таблица 17
содержит возможные значения поля.
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения от
‘00’ до ‘08’. Представлено, если
присутствует поле Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока.
Любое допустимое значение, кроме
‘PB’ (см. Таблица 18).
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля идентификатора
и длины). Возможные значения от
X’04’ до X’FF’. Если значение X’04’,
то следующее поле не представлено.
Опциональный блок n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 165
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EV’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
MAC;
04 – ошибка кодирования открытого
ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытой ключ и
данные аутентификации с
использованием «нового» LMK 36-37.
Открытый ключ 1 A + n B Открытый ключ хранится (без
шифрования) в формате Keyblock
(включая MAC).
Модуль безопасности платежных систем. Руководство разработчика | 166
Генерация ЦП RSA (EW)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация подписи сообщения с использованием секретного ключа.
Примечание: Минимальная длина ключа при использовании алгоритма
вычисления Хэш-функции SHA-1 (‘01’) - 368 битов, SHA-256
(‘06’) - 496 битов.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EW’.
Идентификатор Хэш 2 N Идентификатор алгоритма Хэш:
‘01’: SHA-1;
‘06’: SHA-256.
Идентификатор
подписи
2 N Идентификатор алгоритма подписи:
‘01’: RSA.
Идентификатор
режима паддинга
2 N Идентификатор режима паддинга,
используемого при генерации подписи:
‘01’: PKCS #1 v1.5 method
(EME-PKCS1-v1_5).
Длина данных 4 N Длина (в байтах) данных для подписи.
Данные сообщения n B Данные для подписи.
Разделитель 1 A Значение ‘; ’.
Используется для указания конца поля
данных.
Модуль безопасности платежных систем. Руководство разработчика | 167
Поле Длина и тип Описание
Командное сообщение
Индекс секретного
ключа
2 N Индекс, указывающий расположение
секретного ключа:
‘00’…’20’: индекс ключа в
долговременной памяти HSM;
‘99’: использование ключа, подаваемого
во входных данных команды.
Длина секретного
ключа
Опционально. Представлено, если
индекс секретного ключа – ‘99’.
4 N Длина (в байтах) следующего поля
или
4 H
Это поле игнорируется и должно быть
установлено в «FFFF».
Секретный ключ Опционально. Представлено, если
индекс секретного ключа – ‘99’.
n B
Секретный ключ RSA, зашифрованный
под LMK 34-35.
или
1 A + n B
Для ключевого блока LMK закрытый
ключ должен соответствовать
следующему:
Key
Usage
Algorithm Mode of Use
‘O3’ ‘R’ ‘S’, ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 168
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EX’.
Код ошибки 2 А 00 – нет ошибок;
03 - недопустимый тип секретного
ключа;
04 – недопустимый индекс секретного
ключа;
05 – недопустимый идентификатор
алгоритма Хэш;
06 – недопустимый идентификатор
алгоритма подписи;
07 – недопустимый идентификатор
режима паддинга;
74 – неверный синтаксис информации;
76 – ошибка длины Хэш;
78 – ошибка длины секретного ключа;
79 – ошибка идентификатора объекта
алгоритма Хэш;
80 – ошибка длины сообщения;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Длина подписи 4 N Длина (в байтах) подписи.
Подпись n B Подпись.
Модуль безопасности платежных систем. Руководство разработчика | 169
Проверка ЦП RSA (EY)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка подписи сообщения с использованием открытого ключа.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EY’.
Идентификатор Хэш 2 N Идентификатор алгоритма Хэш:
‘01’: SHA-1;
‘06’: SHA-256.
Идентификатор
подписи
2 N Идентификатор алгоритма подписи:
‘01’: RSA.
Идентификатор
режима паддинга
2 N Идентификатор режима паддинга,
используемого при генерации подписи
сертификата:
‘01’: PKCS #1 v1.5 method
(EME-PKCS1-v1_5).
Длина подписи 4 N Длина подписи (в байтах)
Подпись n B Подпись для проверки
Разделитель 1 A Значение ‘; ’.
Указывает на конец подписи.
Длина данных 4 N Длина (в байтах) данных для подписи
Данные сообщения n B Данные для проверки подписи.
Разделитель 1 A Значение ‘; ’. Используется для указания
конца поля данных.
MAC 4 B Для вариантных LMK;
MAC, вычисленный за открытой ключ и
данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ, закодированный в DER
в формате ASN.1.
Данные
аутентификации
n B
Опционально. Дополнительные данные,
которые могут быть включены в данные
Модуль безопасности платежных систем. Руководство разработчика | 170
Поле Длина и тип Описание
для вычисления MAC (не должны
включать в себя ";").
Открытый ключ 1 A + n B Для Keyblock LMK:
Открытый ключ должен соответствовать
следующему:
Key
Usage
Algorithm Mode of Use
‘O2’ ‘R’ ‘S’, ‘B’, ‘N’
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EZ’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
MAC;
02 – отрицательный результат проверки
подписи;
04 – ошибка кодирования открытого
ключа;
05 – недопустимый идентификатор
алгоритма Хэш;
06 – недопустимый идентификатор
алгоритма подписи;
07 – недопустимый идентификатор режима
паддинга;
74 – неверный синтаксис информации;
76 – ошибка длины открытого ключа;
77 – ошибка блока данных;
79 – ошибка идентификатора объекта
алгоритма Хэш;
80 – ошибка длины сообщения;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 171
Импорт ключа DES на открытом ключе RSA (GI)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование ключа DES с открытого ключа RSA под LMK.
Примечания:
1) Производится автоматическая проверка сформированного
ключа по таблице "слабых" DES-ключей (см. Приложение 3).
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений.
Код команды 2 А ‘GI’.
Идентификатор алгоритма
расшифрования
2 A Идентификатор алгоритма,
используемого для
расшифрования ключа:
‘01’: RSA.
Идентификатор режима паддинга 2 N Идентификатор режима
паддинга, используемого в
процессе расшифрования:
‘01’: PKCS#1 v1.5 method
(EME-PKCS1-v1_5).
Тип ключа 4 N
или
Указывает LMK и вариант
шифрования импортируемого
ключа. Формат ‘PPVV’, где ‘P’
обозначает номер LMK, а ‘V’ –
номер варианта.
4 H Для Keyblock LMK:
Это поле игнорируется, должно
быть установлено значение
«FFFF».
Модуль безопасности платежных систем. Руководство разработчика | 172
Поле Длина и
тип
Описание
Командное сообщение
Длина блока данных 4 N Длина (в байтах) блока данных.
Блок данных n B Блок данных, состоящий из
зашифрованного ключа.
Разделитель 1 A Значение ‘; ’.
Указывает конец блока данных.
Флаг секретного ключа 2 N Флаг, указывающий
расположение секретного ключа:
‘00’…’20’: индекс ключа в
долговременной памяти HSM;
‘99’: использование ключа,
подаваемого во входных данных
команды.
Длина секретного ключа Опционально. Представлено, если
индекс секретного ключа – ‘99’.
4 N
или
Длина (в байтах) следующего
поля.
4 H Это поле игнорируется, должно
быть установлено значение
‘FFFF’.
Секретный ключ Опционально. Представлено, если
индекс секретного ключа – ‘99’.
n B
или
Секретный ключ RSA для
расшифрования импортируемого
ключа, зашифрован на паре
ключей 34-35.
1 A + n B Для Keyblock LMK секретный
ключ должен соответствовать
следующему:
Key
Usage
Algorithm Mode of Use
‘O3’ ‘R’ ‘D’, ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 173
Поле Длина и
тип
Описание
Командное сообщение Т
олько п
ри
им
порте
клю
ча
DE
S/3
DE
S Разделитель 1 A Значение ‘; ’. Только если
присутствуют следующие поля.
Зарезервировано 1 A Игнорируется, если значение
поля ‘0’.
Ключевая схема LMK 1 A Ключевая схема для
зашифрования импортируемого
ключа под LMK.
Тип проверочной
величины ключа
1 A Опционально. Метод вычисления
проверочной величины ключа:
‘0’: 16 цифр KCV (режим
обратной совместимости);
‘1’: 6 цифр KCV.
Им
порт
клю
ча
DE
S /
3-D
ES
в ф
ор
мат
key
blo
ck
Разделитель 1 A Значение ‘#’. Требуется при
генерации Keyblock. Если
представлено, то должны быть
поля, приведенные ниже
Использование ключа 2 A Значение поля Key Usage для
заголовка Keyblock (см. по типу
ключа Таблица 13).
Представлено, если присутствует
поле Разделитель.
Режим использования 1 A Значения поля Mode of Use для
заголовка Keyblock (см. по типу
ключа Таблица 15).
Представлено, если присутствует
поле Разделитель.
Номер ключевой версии 2 N Значения поля Key Version
Number для заголовка Keyblock
(см. Таблица 16). Возможные
значения от ‘00’ до ‘99’.
Представлено, если присутствует
поле Разделитель.
Модуль безопасности платежных систем. Руководство разработчика | 174
Поле Длина и
тип
Описание
Командное сообщение
Экспортируемость 1 А Значения поля Exportability для
заголовка Keyblock (см.
Таблица 17). Представлено, если
присутствует поле Разделитель.
я.
Число опциональных
блоков
2 N Количество опциональных
блоков, указанных ниже,
допустимо от ’00’ до‘08’.
Представлено, если присутствует
поле Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опциональого блока
2 A Идентификатор опционального
блока. (см. Таблица 18 - любое
допустимое значение, кроме
‘PB’)
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля
идентификатора и длины).
Возможные значения от X’04’ до
X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 175
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘GJ’.
Код ошибки 2 А 00 – нет ошибок;
04 – отсутствие секретного ключа с
указанным индексом;
05 – недопустимый тип ключа;
06 – недопустимый идентификатор
алгоритма; шифрования
07 – недопустимый идентификатор режима
паддинга;
49 – ошибка расшифрования секретного
ключа;
55 – недопустимая длина зашифрованного
ключа
76 – несоответствие длины блока данных
секретному ключу;
77 – ошибка чистого блока данных;
78 – ошибка длины секретного ключа C0
– "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
Ко
гда
им
порти
рует
ся к
лю
ч D
ES
/3-D
ES
Initialization
value
16 H Признак инициализации DES ключа.
Опционально, только когда тип Key
Block –‘01’
Ключ DES Импортированный ключ DES,
зашифрованный под LMK
16 H
или
1 A + 32/48 H
или
Для вариантных LMK:
Соответcвует заданному типу ключа.
1 A + n A Для LMK KeyBlock ключ зашифрован
под LMK
Проверочная
величина ключа
16/6 H Результат зашифрования 64 бинарных
нулей на ключе.
16 или 6 H в соответствии с заданным
типом проверочной величины. Если тип
не задан, то 16 H.
Модуль безопасности платежных систем. Руководство разработчика | 176
Экспорт ключа DES на открытом ключе RSA (GK)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование ключа DES из-под LMK под открытый ключа RSA.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘GK’.
Идентификатор
алгоритма
зашифрования
2 A Идентификатор алгоритма,
используемого для зашифрования
ключа:
‘01’: RSA.
Идентификатор
режима паддинга
2 N Идентификатор режима паддинга,
используемого в процессе
расшифрования:
‘01’: PKCS#1 v1.5 method
(EME-PKCS1-v1_5).
Тип ключа 4 N
или
Для вариантных LMK:
Указывает LMK и вариант шифрования
импортируемого ключа. Формат ‘PPVV’,
где ‘P’ обозначает номер LMK, а ‘V’ –
номер варианта.
4 H Для Keyblock LMK:
Это поле игнорируется, должно быть
установлено значение «FFFF».
Флаг ключа DES 1 N Для вариантных LMK:
Флаг, указывающий длину ключа DES:
‘0’: ключ одинарной длины;
‘1’: ключ двойной длины;
‘2’: ключ тройной длины
Модуль безопасности платежных систем. Руководство разработчика | 177
Поле Длина и тип Описание
Командное сообщение Э
ксп
орт
клю
ча
DE
S/3
-DE
S k
ey
1 A Для Keyblock LMK:
Это поле игнорируется, должно быть
установлено значение «F».
Ключ DES (под
LMK)
Экспортируемый ключ DES,
зашифрованный под соответствующий
LMK
16/32 H
или
1 A + 32/48 H
или
Для вариантных LMK:
Ключ может быть зашифрован под
парой соответствущих LMK (см.
Таблица 8).
1 A + n A Для Key Block LMK:
Ключ, зашифрованный под
соответствующий LMK
MAC 4 B Для вариантных LMK:
AC, вычисленный за открытой ключ и
данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ, закодированный в DER в
формате ASN.1.
Данные
аутентификации
n B
или
Опционально. Дополнительные данные,
которые могут быть включены в данные
для вычисления MAC (не должны
включать в себя ";").
Открытый ключ 1 A + n B Для ключевого блока LMK открытый
ключ должен соответствовать
следующему:
Key Usage Algorithm Mode of Use
‘02’ ‘R’ ‘E’, ‘B’, ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 178
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘GL’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка проверки MAC;
02 – ошибка проверки проверочной
величины ключа;
05 – недопустимый тип DES ключа;
06 – недопустимый идентификатор
алгоритма шифрования;
07 – недопустимый идентификатор
режима паддинга;
10 – ошибка четности DES ключа;
49 – ошибка расшифрования секретного
ключа;
56 – недопустимый флаг DES ключа;
82 – недопустимая длина проверочной
величины ключа;
или стандартный код ошибки (см.
Приложение 1).
Длина
зашифрованного
ключа
4 N Длина (в байтах) следующего поля.
Зашифрованный ключ n B Ключ, зашифрованный под открытым
ключом RSA.
Модуль безопасности платежных систем. Руководство разработчика | 179
Операции с PIN
Зашифрование чистого PIN (BA)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется Требуется
Функция: Зашифрование чистого PIN под LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BA’.
PIN L H Чистый PIN, выравненный по левому краю
и дополненный X’F до максимальной
длины (задается консольной настройкой).
Номер счета (Account
Number)
12 N 12-значный поле, состоящее из 12 самых
правых цифр номера счета, за
исключением контрольной цифры.
Модуль безопасности платежных систем. Руководство разработчика | 180
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BB’.
Код ошибки 2 А 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN PIN, зашифрованный под LMK.
L N Для вариантных LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым идут
32 шестнадцатеричных символа.
или
1 A + 32 H
Модуль безопасности платежных систем. Руководство разработчика | 181
Расшифрование зашифрованного PIN (NG)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется Требуется
Функция: Расшифрование PIN, зашифрованного на LMK. Вывод в хост чистого
PIN, дополненнного «F».
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘NG’.
Номер аккаунта 12 N 12 правых цифр номера аккаунта,
исключая контрольный разряд.
PIN PIN, для которого требуется
сгенерировать PVV, зашифрованный под
LMK.
L N Для вариантного LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым идут
32 шестнадцатеричных символа.
Модуль безопасности платежных систем. Руководство разработчика | 182
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘NH’.
Код ошибки 2 A 00 – нет ошибок;
17 – вывод "чистого" PIN запрещен;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN L H Чистый PIN, выравненный по левому
краю и дополненный 'F'.
Модуль безопасности платежных систем. Руководство разработчика | 183
Проверка терминального PIN сравнением (BC)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка PIN, полученного от ATM (терминала), методом сравнения
с PIN, хранимым в БД.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BC’.
TPK 16 H
или
1 A + 32/48 H
TPK для расшифрования PIN,
зашифрованный под LMK 14-15.
или
1 A + n A
Для ключевого блока LMK «TPK» должен
соответствовать следующему:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’ ‘D’, ‘T’ ‘B’, ‘D’ или N’
PIN-блок 16 H PIN-блок для проверки, зашифрованный
под TPK.
Код формата
PIN-блока
2 N Один из допустимых кодов формата
PIN-блока (см. Приложение 4).
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной цифры,
выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Модуль безопасности платежных систем. Руководство разработчика | 184
Поле Длина и тип Описание
PIN PIN, зашифрованный под LMK
L N
Для вариантного LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым
следуют 32 шестнадцатеричных разряда.
или
1 A + 32 H
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BD’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
PIN;
10 – ошибка четности TPK;
23 – недопустимый формат PIN-блока;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 185
Проверка PIN сравнением (BE)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка PIN, полученного от внешнего источника, методом
сравнения с PIN, хранимым в БД.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BE’.
ZPK 16 H
или
1 A + 32/48 H
ZPK для расшифрования PIN,
зашифрованный под LMK 06-07.
или
1 A + n A
Для ключевого блока LMK ZPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘72’ ‘D’, ‘T’ ‘B’, ‘D’, N’
PIN-блок 16 H PIN-блок для проверки, зашифрованный
под ZPK.
Код формата
PIN-блока
2 N Один из допустимых кодов формата
PIN-блока (см. Приложение 4).
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
PIN PIN, зашифрованный под LMK, из БД.
L N Для вариантного LMK 3-DES:
Модуль безопасности платежных систем. Руководство разработчика | 186
Поле Длина и тип Описание
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым
следуют 32 шестнадцатеричных разряда.
или
1 A + 32 H
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BF’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
PIN;
10 – ошибка четности ZPK;
23 – недопустимый формат PIN-блока;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 187
Перешифрование PIN из-под «старого» LMK под «новый» (BG)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование PIN блока из зашифрованного под «старый» LMK в
зашифрованный под «новый» LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BG’.
Номер счета (Account
Number)
12 N 12-значный поле, состоящее из 12 самых
правых цифр номера счета, за
исключением контрольной цифры.
PIN L N PIN, зашифрованный под «старый»
LMK.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BH’.
Код ошибки 2 А 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN
L N PIN, зашифрованный под «новый» LMK.
Модуль безопасности платежных систем. Руководство разработчика | 188
Генерация PIN-offset IBM-методом (для выбранного пользователем
PIN) (BK)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация PIN-offset с использованием IBM 3624 метода. PIN (для
которого требуется сформировать PIN-offset) подается на вход в виде
зашифрованного PIN-блока.
Примечания: Если используется ключ PVK двойной или тройной длины, то
ошибка 02 возвращается в качестве предупреждения, генерация
PIN-offset при этом продолжается с использованием TDES вместо
DES.
Данная команда также может опционально проверить PIN,
подаваемый на вход по «Таблице исключаемых PIN» («Excluded PIN
Table»), чтобы исключить «слабый» PIN.
Внимание: Выполнение данной команды зависит от следующих настроек
безопасности (консольный режим «Настройка»):
• «Таблица децимализации зашифрована»: (флаг
установлен/флаг не установлен)
Если флаг установлен, то таблица децимализации, подаваемая на
вход, должна быть зашифрована (с помощью консольной команды
«Зашифрование таблицы децимализации» – ED) и состоять из 16
шестнадцаритичных символов.
Если флаг не установлен, то таблица децимализации, подаваемая на
вход, должна быть не зашифрована и состоять из 16 десятичных
символов (для Variant LMK или 3-DES Keyblock LMK) или 'L' + 32
шестнадцаритичных символов (для AES Keyblock LMK).
Модуль безопасности платежных систем. Руководство разработчика | 189
• «Включить проверку таблицы децимализации»: (флаг
установлен/флаг не установлен)
Если флаг установлен, то выполняется проверка таблицы
децимализации, подаваемой на вход: таблица децимализации
должна содержать не менее 8 различных цифр, и каждая цифра
должна повторяться не более 4 раз.
Если флаг не установлен, то проверка таблицы децимализации не
выполняется.
• «Включить проверку слабых PIN»: (флаг установлен/флаг не
установлен)
Если флаг установлен, то выполняется проверка PIN по «Таблице
исключаемых PIN» («Excluded PIN Table»), чтобы исключить
«слабый» PIN. Если найдено совпадение, то выдается ошибка 86.
Если флаг не установлен, то проверка PIN не выполняется.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BK’.
Тип ключа PIN-блока 3 H Тип ключа, на котором зашифрован
PIN-блок для варианта LMK:
‘001’: ZPK (зашифрованный под LMK
06-07 вариант 0);
‘002’: TPK (зашифрованный под LMK
14-15 вариант 0).
Это поле игнорируется, должно быть
установлено значение «FFF».
Ключ PIN-блока Ключ, под которым шифруются PIN-
блоки
16 H
или
1 A + 32/48 H
Для варианта LMK «PIN-код блока»
является либо ZPK, либо TPK, как
указано выше
Модуль безопасности платежных систем. Руководство разработчика | 190
Поле Длина и тип Описание
Командное сообщение
или
1 A + n A
Для ключевого блока LMK «PIN Block
Key» должен соответствовать
следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, 71’, 72’ ‘D’, ‘T’ ‘B’, ‘D’, N’
PVK 16 H
или
1 A + 32/48 H
PVK, зашифрованный под LMK 14-15
вариант 0.
или
1 A + n A
Для ключевого блока LMK «PVK»
должен соответствовать следующим
значениям:
Key Usage Algorithm Mode of Use
‘V1’ ‘D’, ‘T’ ‘C’, ‘G’, N’
PIN-блок 16 H PIN-блок, для которого требуется
сформировать PIN-offset,
зашифрованный под ZPK или TPK.
Код формата
PIN-блока
2 N Один из возможных форматов
PIN-блоков (см. Приложение 4).
Если в консольных настройках
установлен флаг «Запретить уязвимые
PIN-блоки», то формат PIN-блока
должен быть 01 (ISO format 0) или 47
(ISO format 3).
Минимальная длина
PIN
2 N Минимальная длина PIN.
Номер счета (Account
Number)
12 N 12 правых цифр Account Number, за
исключением контрольной цифры.
Таблица
децимализации
16 N
16 N, если открытая таблица
децимализации
или
16 H
16 H, если шифрованная под LMK
таблица децимализации.
16 H, если 3-DES Keyblock LMK
Модуль безопасности платежных систем. Руководство разработчика | 191
Поле Длина и тип Описание
Командное сообщение
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK при
использовании шифрованной таблицы
децимализации
Данные проверки PIN 12 A
или
1 A + 16 H
Определяемые пользователем данные,
состоящие из шестнадцатеричных
символов и символа N, который
указывает, где вставить последние 5
цифр номера счета;
или
Определяемые пользователем данные,
состоящие из ASCII символа 'Р' и
следующих 16 шестнадцатеричных
символов, которые подаются на вход
алгоритма генерации PIN.
Разделитель 1 А Значение ‘*’.
Число исключаемых
PIN
2 N
Только, если представлены поля для
исключаемых PIN.
‘00’… ‘99’: число исключаемых PIN в
представленной таблице исключаемых
PIN.
Длина исключаемых
PIN
2 N ‘4’… ‘12’: длина каждого из
исключаемых PIN в представленной
таблице исключаемых PIN.
Только, если число исключаемых
PIN> ‘00’.
Таблица
исключаемых PIN
n N Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых
PIN» на значение поля «Длина
исключаемых PIN».
Модуль безопасности платежных систем. Руководство разработчика | 192
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BL’.
Код ошибки 2 А 00 – нет ошибок;
03 – некорректное число исключаемых
PIN;
10 – ошибка четности ключа TPK или
ZPK;
11 – ошибка четности PVK;
23 – недопустимый формат PIN-блока;
81 – несоответствие длины PIN;
86 – PIN найден в таблице исключаемых
PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN Offset
12 H
Результирующая величина
сгенерированного PIN-offset, выравненная
по левому краю и дополненная ‘F’.
Модуль безопасности платежных систем. Руководство разработчика | 193
Загрузка таблицы PIN для проверки «слабых» PIN (BM)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Загрузка в память HSM таблицы PIN для проверки «слабых» PIN.
Примечание: Таблица загружается в энергонезависимую память HSM и
сохраняется после потери питания. В общей сложности может быть
загружено до 9 таблиц с максимальным числом PIN в каждой
таблице – 99. Длина PIN в каждой таблице одинаковая (от 4 до 12).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BM’.
Число «слабых» PIN 2 N ‘00’ … ’99’. Число PIN в таблице.
Длина «слабых» PIN 2 N ‘04’ … ’12’. Длина каждого из PIN в
таблице.
Таблица «слабых»
PIN
n N Таблица «слабых» PIN. Длина каждой
записи таблицы соответствует значению
поля «Длина «слабых» PIN». Число
записей в таблице соответствует
значению поля «Число «слабых» PIN».
Модуль безопасности платежных систем. Руководство разработчика | 194
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BN’.
Код ошибки 2 А 00 – нет ошибок;
41 – ошибка памяти;
86 – PIN найден в таблице исключаемых
PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 195
Перешифрование PIN из-под TPK под ZPK (CA)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование PIN блока из зашифрованного под TPK в
зашифрованный под ZPK с задаваемым опционально переводом из
одного формата PIN блока в другой формат.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘CA’.
TPK 16 H
или
1A + 32/48 H
TPK, под который зашифрован PIN-блок.
TPK зашифрован под LMK 14-15 вариант
0.
или
1 A + n A
Для Keyblock TPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’ ‘D’, ‘T’ ‘B’, ‘D’, N’
ZPK 16 H
или
1A + 32/48 H
ZPK, под который должен быть
перешифрован PIN-блок. ZPK
зашифрован под LMK 06-07.
или
1 A + n A
Для Keyblock ZPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘72’ ‘D’, ‘T’ ‘B’, ‘E’, N’
‘B0’, ‘41’ ‘T’ ‘X’, ‘N
Максимальная длина
PIN
2 N Значение ‘12’.
Исходный PIN-блок 16 H Исходный PIN-блок, зашифрованный под
TPK
Модуль безопасности платежных систем. Руководство разработчика | 196
Поле Длина и тип Описание
Командное сообщение
Код формата
исходного PIN-блока
2 N Код формата исходного PIN-блока
(см. Приложение 4).
Код формата
возвращаемого
PIN-блока
2 N Код формата возвращаемого PIN-блока
(см. Приложение 4).
Номер счета (Account
Number)
12 N
или
18 H
Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘CB’.
Код ошибки 2 А 00 – нет ошибок
10 – ошибка четности исходного TPK
11 – ошибка четности ZPK
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1)
Длина PIN 2 N Длина возвращаемого PIN.
Возвращаемый
PIN-блок
16 H Возвращаемый PIN-блок,
зашифрованный под ZPK.
Формат возвращаемого
PIN-блока
2 N Аналогично командному сообщению.
Модуль безопасности платежных систем. Руководство разработчика | 197
Перешифрование PIN из-под одного ZPK под другой (CC)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование PIN блока из-под зашифрованного под ZPK в
зашифрованный под другой ZPK с задаваемым опционально
переводом из одного формата PIN блока в другой формат.
Примечание: Если ZPK один и тот же, то меняется только формат PIN-блока.
Если формат PIN-блока один и тот же, то меняется только ключ.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘CC’.
Исходный ZPK 16 H
или
1 A + 32/48 H
ZPK, под который зашифрован PIN-блок.
ZPK зашифрован под LMK 06-07.
или
1 A + n A
Исходный ZPK должен содержать
следующие значения:
Key Usage Algorithm Mode of Use
‘P0’, ‘72’ ‘D’, ‘T’ ‘B’, ‘D’, N’
Текущий ZPK 16 H
или
1 A + 32/48 H
ZPK, под который должен быть
перешифрован PIN-блок. ZPK
зашифрован под LMK 06-07.
или
1 A + n A
Текущий ZPK должен содержать
следующие значения:
Key Usage Algorithm Mode of Use
‘P0’, ‘72’ ‘D’, ‘T’ ‘B’, ‘E’, N’
Максимальная длина
PIN
2 N Значение ‘12’.
Модуль безопасности платежных систем. Руководство разработчика | 198
Поле Длина и тип Описание
Командное сообщение
Исходный PIN-блок 16 H Исходный PIN-блок, зашифрованный
под исходный ZPK.
Код формата
исходного PIN-блока
2 N Код формата исходного PIN-блока
(см. Приложение 4).
Код формата
возвращаемого
PIN-блока
2 N Код формата возвращаемого PIN-блока
(см. Приложение 4).
Номер счета (Account
Number)
12 N или 18 H
Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘CD’.
Код ошибки 2 А
Длина PIN 2 N Длина возвращаемого PIN.
Возвращаемый
PIN-блок
16 H Возвращаемый PIN-блок,
зашифрованный под текущий ZPK.
Формат возвращаемого
PIN-блока
2 N Аналогично командному сообщению.
Модуль безопасности платежных систем. Руководство разработчика | 199
Генерация и проверка VISA PVV (для пользовательского PIN) (CU)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка VISA PVV. В случае успеха, генерация PVV с
использованием пользовательского PIN. Текущий и новый PIN
шифруются в виде PIN-блока.
Примечания: По требованиям VISA параметр PVKI (PIN Verification Key
Indicator) l должен находиться в диапазоне от 0 до 6.
Данная команда также может опционально проверить PIN,
подаваемый на вход по «Таблице исключаемых PIN» («Excluded PIN
Table»), чтобы исключить «слабый» PIN.
Внимание: Выполнение данной команды зависит от настройки безопасности
(консольный режим «Настройка»): «Включить проверку слабых
PIN»: (флаг установлен/флаг не установлен)
• Если флаг установлен, то выполняется проверка PIN по
глобальной «Таблице исключаемых PIN» («Excluded PIN
Table») и локальной «Таблице исключаемых PIN» (если она
присутствует), подаваемой на вход команды. Если найдено
совпадение, то выдается ошибка 86.
• Если флаг не установлен, то проверка PIN по глобальной
«Таблице исключаемых PIN» не выполняется. Проверка
выполняется по локальной «Таблице исключаемых PIN» (если
она присутствует). Если найдено совпадение, то выдается
ошибка 86.
• В случае проверки по глобальной «Таблице исключаемых PIN»
проверка осуществляется только по таблицам с PIN
соответствующей длины.
Модуль безопасности платежных систем. Руководство разработчика | 200
• Перед проверкой по локальной «Таблице исключаемых PIN»
осуществляется проверка соответствия значения поля «Длина
исключаемого PIN» длине проверяемого PIN.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘CU’.
Тип ключа 3 H Тип ключа, на котором зашифрован
PIN-блок:
‘001’: ZPK (зашифрованный под LMK
06-07);
‘002’: TPK (зашифрованный под LMK
14-15).
Это поле игнорируется, должно быть
установлнено значение «FFF»
Ключ PIN-блока 16 H
или
1 A + 32/48 H
ZPK или TPK (зашифрованный под
LMK).
или
1 A + n A
Для Ketblock LMK должно содержать
следующие значения:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’,
‘72’
‘D’, ‘T’ ‘B’, ‘D’, N’
PVK 32 H
или
1 A + 32 H
PVK, зашифрованный под LMK 14-15
вариант ‘0’.
или
1 A + n A
Для Keyblock LMK «PVK» является
двустрочным ключом и должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘V2’ ‘T’ ‘C’, N’
Модуль безопасности платежных систем. Руководство разработчика | 201
Поле Длина и тип Описание
Командное сообщение
Текущий PIN-блок 16 H Текущий PIN-блок, зашифрованный под
ZPK или TPK.
Код формата PIN-блока 2 N Один из возможных форматов
PIN-блоков (см. Приложение 4).
Если в консольных настройках
установлен флаг «Запретить уязвимые
PIN-блоки», то формат PIN-блока
должен быть 01 (ISO format 0) или 47
(ISO format 3).
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
PVKI 1 N Значение между ‘0’ и ‘6’.
Текущий PVV 4 N PVV для текущего PIN.
Новый PIN-блок 16 H Новый PIN-блок, зашифрованный под
ZPK или TPK.
Разделитель 1 А Значение ‘*’.
Только, если представлены поля для
исключаемых PIN.
Число исключаемых
PIN
2 N ‘00’ … ‘99’: число исключаемых PIN в
представленной таблице исключаемых
PIN.
Длина исключаемых
PIN
2 N ‘4’ … ‘12’: длина каждого из
исключаемых PIN в представленной
таблице исключаемых PIN.
Только, если число исключаемых PIN>
‘00’.
Модуль безопасности платежных систем. Руководство разработчика | 202
Поле Длина и тип Описание
Командное сообщение
Таблица исключаемых
PIN
n N Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых
PIN» на значение поля «Длина
исключаемых PIN».
Модуль безопасности платежных систем. Руководство разработчика | 203
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘CV’.
Код ошибки 2 А 00 – нет ошибок
01 – ошибка проверки PIN
10 – ошибка четности ключа PIN-блока
11 – ошибка четности PVK
27 – PVK не двойной длины
69 – недопустимый формат PIN-блока
81 – несоответствие длины PIN-блока
86 – PIN обнаружен в таблице
исключаемых PIN
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1)
Новый PVV 4 N PVV, вычисленный для нового PIN.
Модуль безопасности платежных систем. Руководство разработчика | 204
Проверка терминального PIN IBM-методом (DA)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка PIN, полученного от локального ATM (или PIN pad), с
использованием IBM 3624 method.
Примечание: В команде может быть использована открытая или
зашифрованная таблица децимализации.
Открытая таблица децимализации должна состоять из 16 цифр, при
этом, должна содержать не менее 8 различных цифр, и каждая цифра
может повторяться не более 4 раз. Если требование не выполняется,
выдается ошибка 25. Проверка включается установкой
соответствующего флага (консольный режим «Настройки»).
Внимание: Выполнение данной команды зависит от следующих настроек
безопасности (консольный режим «Настройка»):
• «Таблица децимализации зашифрована»: (флаг
установлен/флаг не установлен)
Если флаг установлен, то таблица децимализации, подаваемая на
вход, должна быть зашифрована (с помощью консольной команды
«Зашифрование таблицы децимализации» – ED) и состоять из 16
шестнадцаритичных символов (для Variant LMK или 3-DES
Keyblock LMK) или 'L' + 32 шестнадцаритичных символов (для AES
Keyblock LMK).
Если флаг не установлен, то таблица децимализации, подаваемая на
вход, должна быть не зашифрована и состоять из 16 десятичных
символов.
• «Включить проверку таблицы децимализации»: (флаг
установлен/флаг не установлен)
Модуль безопасности платежных систем. Руководство разработчика | 205
Если флаг установлен, то выполняется проверка таблицы
децимализации, подаваемой на вход: таблица децимализации
должна содержать не менее 8 различных цифр, и каждая цифра
должна повторяться не более 4 раз.
Если флаг не установлен, то проверка таблицы децимализации не
выполняется.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘DA’.
TPK 16 H
или
1 A + 32/48 H
TPK, под который зашифрован PIN-блок.
TPK зашифрован под LMK 14-15.
или
1 A + n A
Для Keyblock LMK TPK должен
содержать следующие значения:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
PVK 16 H
или
1 A + 32/48 H
PVK для формирования PVV. Каждый
PVK из пары зашифрован под
LMK 14-15.
или
1 A + n A
Для Keyblock LMK PVK должен
содержать следующие значения:
Key Usage Algorithm Mode of Use
‘V1’ ‘D’, ‘T’ ‘C’, ‘V’, ‘N’
Максимальная длина
PIN
2 N Значение ‘12’.
PIN-блок 16 H PIN-блок, зашифрованный под TPK.
Код формата PIN-блока 2 N Код формата PIN-блока
(см. Приложение 4).
Проверочная длина 2 N Минимальная длина PIN.
Модуль безопасности платежных систем. Руководство разработчика | 206
Поле Длина и тип Описание
Командное сообщение
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Таблица
децимализации
16 N
16 N, если открытая таблица
децимализации
или
16 H
16 H, если шифрованная под LMK
таблица децимализации.
16 H, если 3-DES Keyblock LMK
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK при
использовании шифрованной таблицы
децимализации
Данные для проверки
PIN
(PIN Validation Data)
12 A Пользовательские данные, состоящие из
шестнадцатиричных символов и символа
N, который определяет, куда вставлять
последние 5 цифр Account Number.
Offset 12 H Значение PIN-offset, выравненное слева
и дополненное ‘F’.
Модуль безопасности платежных систем. Руководство разработчика | 207
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘DB’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка проверки PIN;
02 – PVK не одинарной длины;
10 – ошибка четности TPK;
11 – ошибка четности PVK;
23 – недопустимый формат PIN-блока;
27 – PVK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 208
Проверка терминального PIN с использованием VISA метода (DC)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка PIN, полученного от локального ATM (или PIN pad), с
использованием VISA PVV Method.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘DC’.
TPK 16 H
или
1 A + 32/48 H
TPK, под который зашифрован PIN-блок.
TPK зашифрован под LMK 14-15.
или
1 A + n A
Для Keyblock LMK PVK должен
содержать следующие значения:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
PVK 32 H
или
1 A + 32 H
PVK для формирования PVV. PVK
зашифрован под LMK 14-15.
или
1 A + n A
Для Keyblock LMK PVK является
ключом двойной длины и должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘V2’ ‘T’ ‘C’, ‘V’, ‘N’
PIN-блок 16 H PIN-блок, зашифрованный под TPK.
Код формата PIN-блока 2 N Код формата PIN-блока (см.
Приложение 4).
Номер счета (Account
Number)
12 N
или
Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
Модуль безопасности платежных систем. Руководство разработчика | 209
Поле Длина и тип Описание
18 H исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
PVKI 1 N PVKI (значение между ‘0’ и ‘6’).
PVV 4 N PVV для PIN.
Модуль безопасности платежных систем. Руководство разработчика | 210
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘DD’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка проверки PIN;
10 – ошибка четности TPK;
11 – ошибка четности PVK;
23 – недопустимый формат PIN-блока;
27 – PVK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 211
Генерация PIN-offset IBM-методом из зашифрованного под LMK
PIN (DE)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация PIN-offset с использованием IBM 3624 метода. PIN (для
которого требуется сгенерировать PIN-offset) подается на вход
зашифрованным под LMK.
Примечания: Если используется ключ PVK двойной или тройной длины, то
ошибка 02 возвращается в качестве предупреждения, генерация
PIN-offset при этом продолжается с использованием TDES вместо
DES.
Данная команда также может опционально проверить PIN,
подаваемый на вход по «Таблице исключаемых PIN» («Excluded PIN
Table»), чтобы исключить «слабый» PIN.
Внимание: Выполнение данной команды зависит от следующих настроек
безопасности (консольный режим «Настройка»):
• «Таблица децимализации зашифрована»: (флаг
установлен/флаг не установлен)
Если флаг установлен, то таблица децимализации, подаваемая на
вход, должна быть зашифрована (с помощью консольной команды
«Зашифрование таблицы децимализации» – ED) и состоять из 16
шестнадцаритичных символов (для Variant LMK или 3-DES
Keyblock LMK) или 'L' + 32 шестнадцаритичных символов (для AES
Keyblock LMK).
Если флаг не установлен, то таблица децимализации, подаваемая на
вход, должна быть не зашифрована и состоять из 16 десятичных
символов.
Модуль безопасности платежных систем. Руководство разработчика | 212
• «Включить проверку таблицы децимализации»: (флаг
установлен/флаг не установлен)
Если флаг установлен, то выполняется проверка таблицы
децимализации, подаваемой на вход: таблица децимализации
должна содержать не менее 8 различных цифр, и каждая цифра
должна повторяться не более 4 раз.
Если флаг не установлен, то проверка таблицы децимализации не
выполняется.
• «Включить проверку слабых PIN»: (флаг установлен/флаг не
установлен)
Если флаг установлен, то выполняется проверка PIN по «Таблице
исключаемых PIN» («Excluded PIN Table»), чтобы исключить
«слабый» PIN. Если найдено совпадение, то выдается ошибка 86.
Если флаг не установлен, то проверка PIN не выполняется.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘DE’.
PVK 16 H
или
1 A + 32/48 H
Ключ PVK, зашифрованный под LMK
14-15.
или
1 A + n A
Для Keyblock LMK PVK должен
содержать следующие значения:
Key Usage Algorithm Mode of Use
‘V1’ ‘D’, ‘T’ ‘C’, ‘G’, ‘N’
PIN PIN, для которого требуется
сгенерировать PIN-offset, зашифрованный
под LMK.
L N Для вариантных LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
Модуль безопасности платежных систем. Руководство разработчика | 213
Поле Длина и тип Описание
Командное сообщение
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым идут
32 шестнадцатеричных символа.
Длина PIN-offset 2 N Длина PIN-offset.
Номер счета (Account
Number)
12 N 12 правых цифр Account Number, за
исключением контрольной цифры.
Таблица
децимализации
16 N
16 N, если открытая таблица
децимализации
или
16 H
16 H, если шифрованная под LMK
таблица децимализации.
16 H, если 3-DES Keyblock LMK
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK при
использовании шифрованной таблицы
децимализации
Данные проверки PIN 12 A
или
1 A + 16 H
Определяемые пользователем данные,
состоящие из шестнадцатеричных
символов и символа N, который
указывает, где вставить последние
пять цифр номера счета
или
Определяемые пользователем данные,
состоящие из ASCII символа 'Р' и
следующих 16 шестнадцатеричных
символов, которые подаются на вход
алгоритма генерации PIN.
Разделитель 1 А Значение ‘*’.
Только, если представлены поля для
исключаемых PIN.
Модуль безопасности платежных систем. Руководство разработчика | 214
Поле Длина и тип Описание
Командное сообщение
Число исключаемых
PIN
2 N ‘00’ … ‘99’: число исключаемых PIN в
представленной таблице исключаемых
PIN.
Длина исключаемых
PIN
2 N ‘4’ … ‘12’: длина каждого из
исключаемых PIN в представленной
таблице исключаемых PIN.
Только, если число исключаемых
PIN> ‘00’.
Таблица исключаемых
PIN
n N Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых
PIN» на значение поля «Длина
исключаемых PIN».
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘DF’.
Код ошибки 2 А 00 – нет ошибок;
02 – PVK не единичной длины;
10 – ошибка четности ключа PVK;
81 – ошибка длины PIN;
86 – PIN найден в таблице исключаемых
PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Offset 12 H Результирующая величина
сгенерированного PIN-offset,
выравненная по левому краю и
дополненная ‘F’.
Модуль безопасности платежных систем. Руководство разработчика | 215
Генерация VISA PVV (PIN Verification Value) (для PIN,
зашифрованного под LMK) (DG)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация 4-значного VISA PVV. PIN, для которого требуется
вычислить PVV, подается на вход зашифрованным под LMK.
Примечания: PIN, зашифрованный под LMK, представляет собой не чистый
PIN, а PIN, криптографически замешанный с Account Number.
Данная команда также может опционально проверить PIN,
подаваемый на вход по «Таблице исключаемых PIN» («Excluded PIN
Table»), чтобы исключить «слабый» PIN.
Внимание: Выполнение данной команды зависит от следующих настроек
безопасности (консольный режим «Настройка»):
• «Включить проверку слабых PIN»: (флаг установлен/флаг не
установлен)
Если флаг установлен, то выполняется проверка PIN по «Таблице
исключаемых PIN» («Excluded PIN Table»), чтобы исключить
«слабый» PIN. Если найдено совпадение, то выдается ошибка 86.
Если флаг не установлен, то проверка PIN не выполняется.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘DG’.
PVK 32 H
или
1 A + 32 H
PVK, зашифрованный под LMK 14-15
вариант ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 216
Поле Длина и тип Описание
Командное сообщение
или
1 A + n A
Для Keyblock LMK PVK является
двустрочным ключом и должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘V2’ ‘T’ ‘C’, ‘G’, ‘N’
PIN PIN, для которого требуется
сгенерировать PVV, зашифрованный
под LMK.
L N
Для вариантных LMK 3 DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK – 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым
идут 32 шестнадцатеричных символа.
Номер счета (Account
Number)
12 N 12 правых цифр Account Number, за
исключением контрольной цифры.
PVKI 1 N Значение между ‘0’ и ‘6’.
Разделитель 1 А Значение ‘*’.
Только, если представлены поля для
исключаемых PIN.
Число исключаемых
PIN
2 N ‘00’ … ‘99’: число исключаемых PIN в
представленной таблице исключаемых
PIN.
Модуль безопасности платежных систем. Руководство разработчика | 217
Поле Длина и тип Описание
Командное сообщение
Длина исключаемых
PIN
2 N ‘4’ … ‘12’: длина каждого из
исключаемых PIN в представленной
таблице исключаемых PIN.
Только, если число исключаемых
PIN> ‘00’.
Таблица исключаемых
PIN
n N Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых
PIN» на значение поля «Длина
исключаемых PIN».
Модуль безопасности платежных систем. Руководство разработчика | 218
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘DH’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ключа PVK;
27 – PVK не двойной длины;
81 – ошибка длины PIN;
86 – PIN найден в таблице
исключаемых PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PVV 4 N Результирующая величина
сгенерированного PVV.
Модуль безопасности платежных систем. Руководство разработчика | 219
Генерация и проверка PIN Offset IBM-методом (для нового
пользовательского PIN) (DU)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка PIN-Offset IBM-методом. В случае успеха, генерация
PIN-offset для нового PIN пользователя с использованием IBM 3624
метода. PIN (для которого требуется сгенерировать PIN-offset)
подается на вход зашифрованным под LMK. Текущий и новый PIN
шифруются в виде PIN-блока.
Примечания:
Данная команда также может опционально проверить PIN,
подаваемый на вход по «Таблице исключаемых PIN» («Excluded PIN
Table»), чтобы исключить «слабый» PIN.
Если используется ключ PVK двойной длины, то ошибка 02
возвращается в качестве предупреждения, генерация PIN-offset при
этом продолжается с использованием TDES вместо DES
Внимание: Выполнение данной команды зависит от настройки безопасности
(консольный режим «Настройка»):
«Таблица децимализации зашифрована»: (флаг установлен/флаг не
установлен)
• Если флаг установлен, то таблица децимализации, подаваемая
на вход, должна быть зашифрована (с помощью консольной
команды «Зашифрование таблицы децимализации» – ED) и
состоять из 16 шестнадцаритичных символов (для Variant LMK
или 3-DES Keyblock LMK) или 'L' + 32 шестнадцаритичных
символов (для AES Keyblock LMK).
Модуль безопасности платежных систем. Руководство разработчика | 220
• Если флаг не установлен, то таблица децимализации,
подаваемая на вход, должна быть не зашифрована и состоять
из 16 десятичных символов.
«Включить проверку таблицы децимализации»: (флаг
установлен/флаг не установлен)
• Если флаг установлен, то выполняется проверка таблицы
децимализации, подаваемой на вход: таблица децимализации
должна содержать не менее 8 различных цифр, и каждая цифра
должна повторяться не более 4 раз.
• Если флаг не установлен, то проверка таблицы децимализации
не выполняется.
«Включить проверку слабых PIN»: (флаг установлен/флаг не
установлен)
• Если флаг установлен, то выполняется проверка PIN по
глобальной «Таблице исключаемых PIN» («Excluded PIN
Table») и локальной «Таблице исключаемых PIN» (если она
присутствует), подаваемой на вход команды. Если найдено
совпадение, то выдается ошибка 86.
• Если флаг не установлен, то проверка PIN по глобальной
«Таблице исключаемых PIN» не выполняется. Проверка
выполняется по локальной «Таблице исключаемых PIN» (если
она присутствует). Если найдено совпадение, то выдается
ошибка 86.
• В случае проверки по глобальной «Таблице исключаемых
PIN» проверка осуществляется только по таблицам с PIN
соответствующей длины.
• Перед проверкой по локальной «Таблице исключаемых PIN»
осуществляется проверка соответствия значения поля «Длина
исключаемого PIN» длине проверяемого PIN.
Модуль безопасности платежных систем. Руководство разработчика | 221
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘DU’.
Тип ключа 3 H Тип ключа, на котором зашифрован
PIN-блок:
‘001’: ZPK (зашифрованный под LMK
06-07);
‘002’: TPK (зашифрованный под LMK
14-15).
Это поле игнорируется, должно быть
установлено значение "FFF"
Ключ PIN-блока
16 H
или
1 A + 32/48 H
ZPK или TPK (зашифрованный под LMK).
или
1 A + n A
Для Keyblock LMK Ключ PIN-блока должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’, ‘72’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
PVK
16 H
или
1 A + 32 H
PVK, зашифрованный под LMK 14-15
вариант ‘0’.
или
1 A + n A
Для Keyblock PVK должен соответствовать
следующим значениям:
Key Usage Algorithm Mode of Use
‘V1’ ‘D’, ‘T’ ‘C’, ‘N’
Текущий PIN-блок
16 H
Текущий PIN-блок, зашифрованный под
ZPK или TPK.
Модуль безопасности платежных систем. Руководство разработчика | 222
Поле Длина и тип Описание
Командное сообщение
Код формата
PIN-блока
2 N
Один из возможных форматов PIN-блоков
(см. Приложение 4).
Если в консольных настройках установлен
флаг «Запретить уязвимые PIN-блоки», то
формат
PIN-блока должен быть 01 (ISO format 0)
или 47 (ISO format 3).
Минимальная длина
PIN
2 N Минимальная длина PIN.
Номер счета
(Account Number)
12 N
или
18 H
Для всех форматов PIN-блока, кроме 04, это
12-значный поле, состоящее из 12 самых
правых цифр номера счета, за исключением
контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной цифры,
выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Таблица
децимализации
16 N
16 N, если открытая таблица
децимализации
или
16 H
16 H, если шифрованная под LMK таблица
децимализации.
16 H, если 3-DES Keyblock LMK
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK при
использовании шифрованной таблицы
децимализации
Данные проверки
PIN
12 A
Определяемые пользователем данные,
состоящие из шестнадцатеричных
символов и символа N, который указывает,
где вставить последние 5 цифр номера
счета.
Текущий Offset 12 H Значение PIN-offset, выравненное слева и
дополненное ‘F’.
Новый PIN-блок
16 H Новый PIN-блок, зашифрованный под ZPK
или TPK.
Модуль безопасности платежных систем. Руководство разработчика | 223
Поле Длина и тип Описание
Командное сообщение
Разделитель 1 А Значение ‘*’.
Только, если представлены поля для
исключаемых PIN
Число исключаемых
PIN
2 N ‘00’ … ‘99’: число исключаемых PIN в
представленной таблице исключаемых PIN
Длина исключаемых
PIN
2 N ‘4’ … ‘12’: длина каждого из исключаемых
PIN в представленной таблице
исключаемых PIN.
Только, если число исключаемых PIN>
‘00’.
Таблица
исключаемых PIN
n N Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых PIN»
на значение поля «Длина исключаемых
PIN».
Модуль безопасности платежных систем. Руководство разработчика | 224
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘DV’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка проверки PIN;
02 – предупреждение: PVK не одинарной
длины;
10 – ошибка четности ключа PIN-блока;
11 – ошибка четности PVK;
23 – недопустимый формат PIN-блока;
81 – несоответствие длины PIN-блока;
86 – PIN найден в таблице исключаемых
PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Новый Offset
12 H
Результирующая величина нового
PIN-offset, выравненная по левому краю и
дополненная ‘F’.
Модуль безопасности платежных систем. Руководство разработчика | 225
Проверка PIN IBM-методом (EA)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка PIN, полученного через систему обмена, с использованием
IBM 3624 method.
Примечание: В команде может быть использована открытая или
зашифрованная таблица децимализации.
Открытая таблица децимализации должна состоять из 16 цифр, при
этом, должна содержать не менее 8 различных цифр, и каждая цифра
может повторяться не более 4 раз. Если требование не выполняется,
выдается ошибка 25. Проверка включается установкой
соответствующего флага (консольный режим «Настройки»).
Внимание: Выполнение данной команды зависит от следующих настроек
безопасности (консольный режим «Настройка»):
«Таблица децимализации зашифрована»: (флаг установлен/флаг не
установлен)
• Если флаг установлен, то таблица децимализации, подаваемая
на вход, должна быть зашифрована (с помощью консольной
команды «Зашифрование таблицы децимализации» – ED) и
состоять из 16 шестнадцаритичных символов (для Variant
LMK или 3-DES Keyblock LMK) или 'L' + 32
шестнадцаритичных символов (для AES Keyblock LMK).
• Если флаг не установлен, то таблица децимализации,
подаваемая на вход, должна быть не зашифрована и состоять
из 16 десятичных символов.
«Включить проверку таблицы децимализации»: (флаг
установлен/флаг не установлен)
Модуль безопасности платежных систем. Руководство разработчика | 226
• Если флаг установлен, то выполняется проверка таблицы
децимализации, подаваемой на вход: таблица децимализации
должна содержать не менее 8 различных цифр, и каждая цифра
должна повторяться не более 4 раз.
• Если флаг не установлен, то проверка таблицы децимализации
не выполняется.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ЕA’.
ZPK 16 H
или
1 A + 32/48 H
ZPK, под который зашифрован PIN-блок.
ZPK зашифрован под LMK 06-07.
или
1 A + n A
Для Keyblock LMK ZPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘72’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
PVK 16 H
или
1 A + 32/48 H
PVK для формирования PVV. PVK из пары
зашифрован под LMK 14-15 вариант 0.
или
1 A + n A
Для Keyblock LMK PVK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘V1’ ‘D’, ‘T’ ‘C’, ‘V’, ‘N’
Максимальная
длина PIN
2 N Значение ‘12’.
PIN-блок 16 H PIN-блок, зашифрованный под ZPK.
Код формата
PIN-блока
2 N Код формата PIN-блока
(см. Приложение 4).
Проверочная длина 2 N Минимальная длина PIN.
Номер счета
(Account Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04, это
12-значный поле, состоящее из 12 самых
Модуль безопасности платежных систем. Руководство разработчика | 227
Поле Длина и тип Описание
Командное сообщение
правых цифр номера счета, за исключением
контрольной цифры.
Для PIN-блока в формате 04, это 18-значное
поле, состоящее из номера счета, за
исключением контрольной цифры,
выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Таблица
децимализации
16 N
16 N, если открытая таблица децимализации
или
16 H
16 H, если шифрованная под LMK таблица
децимализации.
16 H, если 3-DES Keyblock LMK
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK при
использовании шифрованной таблицы
децимализации
Данные для
проверки PIN
(PIN Validation Data)
12 A Пользовательские данные, состоящие из
шестнадцатиричных символов и символа
N, который определяет, куда вставлять
последние 5 цифр номера счета (Account
Number).
Offset 12 H Значение PIN-offset, выравненное слева и
дополненное ‘F’.
Модуль безопасности платежных систем. Руководство разработчика | 228
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EB’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка проверки PIN;
10 – ошибка четности ZPK;
11 – ошибка четности PVK;
23 – недопустимый формат PIN-блока;
27 – PVK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 229
Получение PIN IBM-методом (EE)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Получение PIN (от 4 до 12 знаков) с использованием IBM 3624
method.
Примечание: В команде может быть использована открытая или
зашифрованная таблица децимализации.
Открытая таблица децимализации должна состоять из 16 цифр, при
этом, должна содержать не менее 8 различных цифр, и каждая цифра
может повторяться не более 4 раз. Если требование не выполняется,
выдается ошибка 25. Проверка включается установкой
соответствующего флага (консольный режим «Настройки»).
Внимание: Выполнение данной команды зависит от следующих настроек
безопасности (консольный режим «Настройка»):
«Таблица децимализации зашифрована»: (флаг установлен/флаг не
установлен)
• Если флаг установлен, то таблица децимализации, подаваемая
на вход, должна быть зашифрована (с помощью консольной
команды «Зашифрование таблицы децимализации» – ED) и
состоять из 16 шестнадцаритичных символов (для Variant
LMK или 3-DES Keyblock LMK) или 'L' + 32
шестнадцаритичных символов (для AES Keyblock LMK).
• Если флаг не установлен, то таблица децимализации,
подаваемая на вход, должна быть не зашифрована и состоять
из 16 десятичных символов.
«Включить проверку таблицы децимализации»: (флаг
установлен/флаг не установлен)
Модуль безопасности платежных систем. Руководство разработчика | 230
• Если флаг установлен, то выполняется проверка таблицы
децимализации, подаваемой на вход: таблица децимализации
должна содержать не менее 8 различных цифр, и каждая цифра
должна повторяться не более 4 раз.
• Если флаг не установлен, то проверка таблицы децимализации
не выполняется.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ЕE’.
PVK 16 H
или
1 A + 32/48 H
PVK, зашифрованный под LMK 14-15
вариант 0.
или
1 A + n A
Для Keyblock LMK TPK должен содержать
следующие значения:
Key Usage Algorithm Mode of Use
‘V1’ ‘D’, ‘T’ ‘C’, ‘G’, ‘N’
Offset 12 H Поле содержит offset, выравненный по
левому краю.
Проверочная длина 2 N Минимальная длина PIN.
Номер счета
(Account Number)
12 N 12-значный поле, состоящее из 12 самых
правых цифр номера счета, за исключением
контрольной цифры.
Таблица
децимализации
16 N
16 N, если открытая таблица децимализации
или
16 H
16 H, если шифрованная под LMK таблица
децимализации.
16 H, если 3-DES Keyblock LMK
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK при
использовании шифрованной таблицы
децимализации
Модуль безопасности платежных систем. Руководство разработчика | 231
Поле Длина и тип Описание
Командное сообщение
Данные для
проверки PIN
(PIN Validation Data)
12 A Пользовательские данные, состоящие из
шестнадцатиричных символов и символа N,
который определяет, куда вставлять
последние 5 цифр Account Number.
Разделитель 1 A Значение ‘*’.
Только, если представлены поля для
исключаемых PIN.
Число исключаемых
PIN
2 N ‘00’ … ‘99’: число исключаемых PIN в
представленной таблице исключаемых PIN.
Длина исключаемых
PIN
2 N ‘4’ … ‘12’: длина каждого из исключаемых
PIN в представленной таблице
исключаемых PIN.
Только, если число исключаемых PIN>
‘00’.
Таблица
исключаемых PIN
n N Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых PIN»
на значение поля «Длина исключаемых
PIN».
Модуль безопасности платежных систем. Руководство разработчика | 232
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘EF’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ZPK;
81 – несоответствие длины PIN;
86 - PIN найден в таблице исключаемых
PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN Полученный PIN, зашифрованный под
LMK.
L N Для вариантного LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым идут
32 шестнадцатеричных символа.
Модуль безопасности платежных систем. Руководство разработчика | 233
Проверка PIN-блока с использованием VISA метода (EC)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка PIN, полученного от внешнего источника, с
использованием VISA PVV Method.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘EC’.
ZPK 16 H
или
1 A + 32/48 H
ZPK, под который зашифрован PIN-блок.
ZPK зашифрован под LMK 06-07.
или
1 A + n A
Для Keyblock LMK ZPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘72’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
PVK 32 H
или
1 A + 32 H
PVK с использованием которого должна
формироваться PVV. PVK зашифрован
под LMK 14-15.
или
1 A + n A
Для Keyblock LMK ZPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘V2’ ‘T’ ‘C’, ‘V’, ‘N’
PIN-блок 16 H PIN-блок, зашифрованный под ZPK.
Код формата
PIN-блока
2 N Код формата PIN-блока
(см. Приложение 4).
Номер счета
(Account Number)
12 N
или
Для всех форматов PIN-блока, кроме 04,
это 12-значное поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Модуль безопасности платежных систем. Руководство разработчика | 234
Поле Длина и тип Описание
18 H Для PIN-блока в формате 04,
это 18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
PVKI 1 N PVKI (значение между ‘0’ и ‘6’).
PVV 4 N PVV для PIN.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ED’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка проверки PIN;
10 – ошибка четности ZPK;
11 – ошибка четности PVK;
23 – недопустимый формат PIN-блока;
27 – PVK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 235
Генерация VISA PVV (для выбранного пользователем PIN) (FW)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация 4-значного VISA PVV. PIN, для которого требуется
вычислить PVV, подается на вход зашифрованным под LMK.
Примечания: По требованиям VISA параметр PVKI (PIN Verification Key
Indicator) l должен находиться в диапазоне от 0 до 6.
Данная команда также может опционально проверить PIN,
подаваемый на вход по «Таблице исключаемых PIN» («Excluded PIN
Table»), чтобы исключить «слабый» PIN.
Внимание: Выполнение данной команды зависит от следующих настроек
безопасности (консольный режим «Настройка»):
• «Включить проверку слабых PIN»: (флаг установлен/флаг не
установлен)
• Если флаг установлен, то выполняется проверка PIN по глобальной
«Таблице исключаемых PIN» («Excluded PIN Table») и локальной
«Таблице исключаемых PIN» (если она присутствует), подаваемой на
вход команды. Если найдено совпадение, то выдается ошибка 86.
• Если флаг не установлен, то проверка PIN по глобальной «Таблице
исключаемых PIN» не выполняется. Проверка выполняется по локальной
«Таблице исключаемых PIN» (если она присутствует). Если найдено
совпадение, то выдается ошибка 86.
• В случае проверки по глобальной «Таблице исключаемых PIN»
проверка осуществляется только по таблицам с PIN соответствующей
длины.
Модуль безопасности платежных систем. Руководство разработчика | 236
• Перед проверкой по локальной «Таблице исключаемых PIN»
осуществляется проверка соответствия значения поля «Длина
исключаемого PIN» длине проверяемого PIN.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘FW’.
Тип ключа PIN-блока 3 H Тип ключа, на котором зашифрован
PIN-блок:
‘001’: ZPK (зашифрованный под
LMK 06-07);
‘002’: TPK (зашифрованный под
LMK 14-15).
Это поле игнорируется и должно быть
установлено в «FFF».
Ключ PIN-блока 16 H
или
1 A + 32/48 H
ZPK или TPK (зашифрованный под
LMK).
или
1 A + n A
Для Keyblock LMK ключ PIN-блока
должен соответствовать следующим
значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’,
‘72’
‘D’, ‘T’ ‘B’, ‘D’, ‘N’
PVK 32 H
или
1 A + 32 H
Пара PVK, каждый PVK зашифрован
под LMK 14-15 вариант ‘0’.
или
1 A + n A
Для Keyblock LMK PVK является
ключом двойной длины должен
соответствовать следующему:
Key Usage Algorithm Mode of Use
‘V2’ ‘T’ ‘C’, ‘G’, ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 237
Поле Длина и тип Описание
Командное сообщение
PIN-блок 16 H PIN-блок, зашифрованный под ZPK или
TPK.
Код формата
PIN-блока
2 H Один из возможных кодов формата
PIN-блока. (см. Приложение 4).
Номер счета (Account
Number)
12 N
или
18 H
12 правых цифр Account Number, за
исключением контрольной цифры
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
PVKI 1 N Значение между ‘0’ и ‘6’.
Разделитель
1 А
Значение ‘*’.
Только, если представлены поля для
исключаемых PIN.
Только, если представлены поля для
исключаемых PIN.
Число исключаемых
PIN
2 N
‘00’ … ‘99’: число исключаемых PIN в
представленной таблице исключаемых
PIN.
Длина исключаемых
PIN
2 N ‘4’ … ‘12’: длина каждого из
исключаемых PIN в представленной
таблице исключаемых PIN.
Только, если число исключаемых PIN>
‘00’.
Таблица
исключаемых PIN
n N Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых
PIN» на значение поля «Длина
исключаемых PIN».
Модуль безопасности платежных систем. Руководство разработчика | 238
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘FX’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ключа PVK;
23 – недопустимый формат
PIN-блока;
27 – PVK не двойной длины
81 – несоответствие длины PIN;
86 – PIN найден в таблице исключаемых
PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PVV 4 N Результирующая величина
сгенерированного PVV.
Модуль безопасности платежных систем. Руководство разработчика | 239
Генерация случайного PIN (JA)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация случайного PIN длиной от 4 до 12 цифр.
Примечание: Если длина PIN не определена, то генерируется 4-значный PIN.
Длина PIN не должна превышать максимального значения,
заданного в настройках (консольный режим «Настройка»).
Команда может опционально проверить сгенерированный PIN по
«Таблице слабых PIN».
Внимание: Выполнение данной команды зависит от настройки безопасности
(консольный режим «Настройка»): «Включить проверку слабых
PIN» (флаг установлен/флаг не установлен):
• Если флаг установлен, то выполняется проверка PIN по
глобальной «Таблице исключаемых PIN» («Excluded PIN
Table») и локальной «Таблице исключаемых PIN» (если она
присутствует), подаваемой на вход команды. Если найдено
совпадение, то выдается ошибка 86.
• Если флаг не установлен, то проверка PIN по глобальной
«Таблице исключаемых PIN» не выполняется. Проверка
выполняется по локальной «Таблице исключаемых PIN» (если
она присутствует). Если найдено совпадение, то выдается
ошибка 86.
• В случае проверки по глобальной «Таблице исключаемых PIN»
проверка осуществляется только по таблицам с PIN
соответствующей длины.
Модуль безопасности платежных систем. Руководство разработчика | 240
• Перед проверкой по локальной «Таблице исключаемых PIN»
осуществляется проверка соответствия значения поля «Длина
исключаемого PIN» длине проверяемого PIN.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JA’.
Номер счета (Account
Number)
12 N 12-значное поле, состоящее из 12 самых
правых цифр номера счета, за
исключением контрольной цифры.
Длина PIN 2 N Опционально. От 4 до 12. Если не
представлено, то генерируется PIN
длиной 4 цифры.
Разделитель 1 A Опционально. Только если представлены
следующие поля. Значение ‘; ’.
Число исключаемых
PIN
2 N ‘00’ … ‘99’: число исключаемых PIN в
представленной таблице исключаемых
PIN.
Длина исключаемых
PIN
2 N ‘4’ … ‘12’: длина каждого из
исключаемых PIN в представленной
таблице исключаемых PIN.
Только, если число исключаемых
PIN> ‘00’
Таблица
исключаемых PIN
n N
Список PIN для исключения. Длина
данного поля вычисляется умножением
значения поля «Число исключаемых
PIN» на значение поля «Длина
исключаемых PIN».
Модуль безопасности платежных систем. Руководство разработчика | 241
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JB’.
Код ошибки 2 А 00 – нет ошибок;
81 – длина PIN превышена;
86 - PIN найден в таблице исключаемых
PIN;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN PIN, зашифрованный под LMK.
L N Для вариантных LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
Для Keyblock LMK - AES: это поле
должно состоять из «J», за которым идут
32 шестнадцатеричных символа.
Модуль безопасности платежных систем. Руководство разработчика | 242
Перешифрование PIN из-под TPK под LMK (JC)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование PIN блока из зашифрованного под TPK в
зашифрованный под LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JC’.
TPK 16 H
или
1 A + 32/48 H
TPK, под который зашифрован PIN-блок.
TPK зашифрован под LMK 14-15 вариант
0, если параметр безопасности «Enforce
key type 002 для соответствия PCI HSM»
имеет значение «N» или под LMK 36-37
вариант 7 если значение имеет значение
«Y».
или
1 A + n A
Для Keyblock TPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘P0’, ‘71’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
Исходный PIN-блок 16 H Исходный PIN-блок, зашифрованный под
TPK.
Код формата
исходного PIN-блока
2 N Код формата исходного PIN-блока
(см. Приложение 4).
Код формата
возвращаемого
PIN-блока
2 N Код формата возвращаемого PIN-блока
(см. Приложение 4).
Модуль безопасности платежных систем. Руководство разработчика | 243
Поле Длина и тип Описание
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04,
это 12-значное поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Модуль безопасности платежных систем. Руководство разработчика | 244
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JD’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности исходного TPK;
23 – недопустимый формат PIN-блока;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN PIN, зашифрованный под LMK.
L N Для вариантного LMK:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым
идут 32 шестнадцатеричных символа.
Модуль безопасности платежных систем. Руководство разработчика | 245
Перешифрование PIN из-под ZPK под LMK (JE)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование PIN блока из зашифрованного под ZPK в
зашифрованный под LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JE’.
ZPK 16 H
или
1 A + 32/48 H
ZPK, под которым зашифрован PIN-блок.
ZPK зашифрован под LMK 06-07.
или
1 A + n A
Для Keyblock LMK ZPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘PO’, ‘72’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
PIN-блок 16 H Исходный PIN-блок, зашифрованный
под ZPK.
Код формата
PIN-блока
2 N Код формата PIN-блока
(см. Приложение 4).
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
Модуль безопасности платежных систем. Руководство разработчика | 246
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JF’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности исходного ZPK;
23 – недопустимый формат PIN-блока;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN PIN, зашифрованный под LMK.
L N Для вариантного LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
При использовании AES Keyblock LMK
это поле должно состоять из «J», за
которым идут 32 шестнадцатеричных
символа.
Модуль безопасности платежных систем. Руководство разработчика | 247
Перешифрование PIN из-под LMK под ZPK (JG)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование PIN блока из зашифрованного под LMK в
зашифрованный под ZPK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JG’.
ZPK 16 H
или
1 A + 32/48 H
ZPK, под которым зашифрован PIN-блок.
ZPK зашифрован под
LMK 06-07.
или
1 A + n A
Для Keyblock LMK ZPK должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘PO’, ‘72’ ‘D’, ‘T’ ‘B’, ‘E’, ‘N’
Код формата
PIN-блока
2 N Код формата PIN-блока
(см. Приложение 4).
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме 04,
это 12-значный поле, состоящее из 12
самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю и
дополненное X'F слева, если это
необходимо.
PIN PIN, зашифрованный под LMK.
L N Для вариантных LMK 3-DES:
Модуль безопасности платежных систем. Руководство разработчика | 248
Поле Длина и тип Описание
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
или
1 A + 32 H
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым идут
32 шестнадцатеричных символа.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JH’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности исходного ZPK;
23 – недопустимый формат PIN-блока;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
PIN-блок L N PIN-блок, зашифрованный под ZPK.
Модуль безопасности платежных систем. Руководство разработчика | 249
Перешифрование PIN, зашифрованного под LMK, со сменой
номера счета (Account Number) (QK)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование PIN, зашифрованного под LMK 02-03, со сменой
Account Number со «старого» на новое значение. Значение PIN
остается неизменным.
Примечание: PIN зашифрован под LMK с использованием проприетарного
алгоритма с замешиванием номера счета (Account Number). Поэтому
при смене значения Account Number шифрограмма PIN под LMK
изменяется.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘QK’.
PIN PIN, зашифрованный под LMK
L N Для вариантных LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
1 A + 32 H Для Keyblock LMK - AES:
Это поле должно состоять из «J», за
которым идут 32 шестнадцатеричных
символа.
Модуль безопасности платежных систем. Руководство разработчика | 250
Поле Длина и тип Описание
«Старый» Account
Number (Old Account
Number)
12 N или 18 H Для всех форматов PIN-блока кроме 04 –
это 12-значное поле, составленное из 12
самых правых символов от «старого»
номера счета, исключая контрольное
значение
Для PIN-блока формата 04 – это
18-значное поле, составленное из
«старого» номера счета, исключая
контрольное значение, выравнивается по
правому краю, и cлева дополняется X'F
«Новый» Account
Number (New Account
Number)
12 N или 18 H Для всех форматов PIN-блока кроме 04 –
это 12-значное поле, составленное из 12
самых правых символов «нового» номера
счета, исключая контрольное значение
Для PIN-блока формата 04 – это
18-значное поле, составленное из
«нового» номера счета, исключая
контрольное значение, выравнивается по
правому краю, и cлева дополняется X'F
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘QL’.
Код ошибки 2 А 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Выходной PIN L N PIN, зашифрованный под LMK с
использованием «нового» Account
Number
Модуль безопасности платежных систем. Руководство разработчика | 251
Перешифрование PIN (ZE)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Перешифрование PIN блока из зашифрованного под PIN ключа ZPK
в зашифрованный под LMK или ZPK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ZE’.
Флаг режима 2 A 0 = Выходной формат PIN блока не
изменяется.
1 = Выходной формат PIN блока и ключ
выбирается пользователем.
ZPK 32 H
или
1 A + 32 H
или
1 А + 48 H
ZPK, под которым зашифрован PIN-блок.
ZPK зашифрован под LMK 06-07.
PIN-блок 16 H Исходный PIN-блок, зашифрованный
под ZPK.
Код формата
исходного PIN-блока
2 N Код формата исходного PIN-блока
(см. Приложение 4).
Номер счета (Account
Number)
12 N 12 самых правых цифр номера счета, за
исключением контрольной цифры.
Флаг выходного
ключа шифрования
1 N Значение флага выходного ключа:
0 = LMK 38-39 вариант 9;
1 = ZPK только при установленном
флаге режима 1
Формат выходного
PIN-блока
2 H Формат выходного PIN-блока только
при установленном флаге режима 1.
Модуль безопасности платежных систем. Руководство разработчика | 252
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ZF’.
Код ошибки 2 А 00 – нет ошибок;
04 – недопустимый флаг режима;
05 – ключ шифрования не соответствует
флагу режима;
10 – ошибка четности исходного ZPK;
12 – ошибка соответствия ZPK;
13 – ошибка четности мастер-ключа;
15 – ошибка входных данных;
20 – ошибка данных PIN блока;
21 – неверный индекс клиента;
23 – недопустимый код формата
входного PIN-блока;
24 – невернаая длина PIN (меньше 4 или
больше 12 цифр);
25 – недопустимый код формата
выходного PIN-блока;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Выходной PIN блок 8 B PIN блок перешифрован под требуемый
ключ шифрования.
Модуль безопасности платежных систем. Руководство разработчика | 253
Процессинг по чиповым картам (EMV)
Проверка ARQC и/или генерация ARPC (EMV 3.1.1) (KQ)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: См. Примечание См. Примечание
Функция: Проверка ARQC (TC/AAC) и, опционально, генерация ARPC.
Команда может быть использована только для генерации ARPC.
Примечания: Для вывода диагностических данных требуется авторизация.
Команда поддерживает следующие CVN (Cryptogram Version
Number):
Тип карты (приложения) Идентификатор
Visa VIS (CVN 10 или 18) ‘0’
MasterCard M/Chip (CVN 10 или 11) ‘1’
American Express AEIPS (CVN 01) ‘2’
За паддинг данных, подаваемых на вход команды, ответственен хост.
В некоторых методах это означает добавление шестнадцатиричных
‘80’ в конец поля данных. Если данные кратны 8 байтам, команда не
выполняет паддинг.
Модуль безопасности платежных систем. Руководство разработчика | 254
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KQ’.
Флаг режима 1 N Режим:
‘0’ : Только проверка ARQC;
‘1’ : Проверка ARQC и генерация ARPC;
‘2’ : Только генерация ARPC;
‘3’ : Проверка ARQC и проверка
MAC за выборочные данные
(Discretionary Data). Для
идентификатора типа карты = ‘0’;
‘4’ : Проверка ARQC, и проверка
MAC за выборочные данные
(Discretionary Data) и генерация ARPC.
Для идентификатора типа карты = ‘0’.
Идентификатор типа
карты (ПП)
1 N Идентификатор типа карты (ПП):
‘0’ : Visa VIS;
‘1’ : MasterCard M/Chip;
‘2’ : American Express AEIPS.
IMK-AC Мастер-ключ эмитента для генерации и
проверки прикладной криптограммы.
32 H
или
1 A + 32 H
Для вариантных LMK:
Зашифрован под LMK 28-29 вариант 1.
или
1 A + n A
Для Keyblock LMK:
IMK-AC должен соответствовать
следующему:
Key Usage Algorithm Mode of Use
‘E0’ ‘T’ ‘N’
IMK-SMI Мастер-ключ эмитента для обеспечения
целостности секретных сообщений.
Только если флаг режима ‘3’ или ‘4’ и
идентификатор типа карты = ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 255
Поле Длина и тип Описание
Командное сообщение
32 H
или
1 A + 32 H
Для вариантных LMK:
Зашифрован под LMK 28-29 вариант 2.
или
1 A + n A
Для Keyblock LMK:
IMK-SMI должен соответствовать
следующему:
Key Usage Algorithm Mode of Use
‘E1’ ‘T’ ‘N’
PAN/PAN Sequence
No
8 B Переформатированный PAN/PAN
Sequence No.
ATC 2 B Счетчик транзакций
(Application Transaction Counter).
UN 4 B Unpredictable Number. Для типа
идентификатора типа карты = ‘0’, поле
присутствует, но не используется.
Длина данных
транзакции
2 H Длина следующего поля. От ‘1’ до ‘255’.
Только если флаг режима ‘0’, ‘1’, ‘3’ или
‘4’.
Данные транзакции n B Данные переменной длины. Только если
флаг режима ‘0’, ‘1’, ‘3’ или ‘4’. Если
данные кратны 8 байтам, то паддинг не
выполняется. Если данные не кратны 8
байтам, то выполняется паддинг ‘00’.
Разделитель 1 А Разделитель, указывающий на конец
данных транзакции. Значение ‘;’ .
Только если флаг режима ‘0’, ‘1’, ‘3’ или
‘4’.
ARQC/TC/AAC 8 B ARQC/TC/AAC для проверки и
генерации ARPC.
ARC 2 B Authorisation Response Code,
используемый для генерации ARPC.
Только если флаг режима ‘1’, ‘2’
или ‘4’.
Модуль безопасности платежных систем. Руководство разработчика | 256
Поле Длина и тип Описание
Командное сообщение
Discretionary Data
MAC
4 B MAC за выборочные данные
(Discretionary Data), возвращаемый
картой.
Только если флаг режима ‘3’ или ‘4’ и
идентификатор типа карты = ‘0’.
Длина Discretionary
Data
2 N Длина следующего поля.
Только если флаг режима ‘3’ или ‘4’ и
идентификатор типа карты =
‘0’Выборочные данные, за которые
вычисляется MAC.
Discretionary Data n B Только если флаг режима ‘3’ или ‘4’ и
идентификатор типа карты = ‘0’.
Модуль безопасности платежных систем. Руководство разработчика | 257
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KR’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат
проверки ARQC/TC/AAC;
03 – Флаг режима = ‘3’ или ‘4’, но
идентификатор типа карты ≠ ‘0’;
04 – недопустимый флаг режима
05 – некорректный идентификатор
типа карты;
06 – отрицательный результат
проверки MAC за выборочные
данные;
10 – ошибка четности IMK-AC;
11 – ошибка четности IMK-SMI;
80 – ошибка длины данных
транзакции;
81 – нулевая длина данных
транзакции;
82 – недопустимая длина
выборочных данных для
вычисления MAC;
98 – команда недоступна или
стандартный код ошибки (см.
Приложение 1).
ARPC 8 B Вычисленная криптограмма ARPC.
Только если флаг режима ‘1’, ‘2’ или
‘4’ и нет ошибок.
Диагностические
данные
8 B Вычисленная криптограмма
ARQC/TC/AAC. Только если код
ошибки = ‘01’ и HSM находится в
авторизованном состоянии.
Диагностический
MAC
8 B Вычисленный MAC за выборочные
данные. Только если флаг режима ‘3’
или ‘4’ и код ошибки = ‘06’ , а HSM
находится в авторизованном
состоянии.
Модуль безопасности платежных систем. Руководство разработчика | 258
Проверка Data Authentication Code (DAC) и Dynamic Number (DN)
(KS)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: См. Примечание См. Примечание
Функция: Data Authentication Code (DAC) или Dynamic Number (DN).
Примечания: Для вывода диагностических данных требуется авторизация.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KS’.
Флаг режима 1 H Флаг режима:
‘0’ : Проверка DAC;
‘1’ : Проверка DN с использованием
Option A ICC Master Key Derivation (для
диверсификации мастер-ключей карты)$
‘2’ : Проверка DN с использованием
Option B ICC Master Key Derivation (для
диверсификации мастер-ключей карты).
Идентификатор типа
карты (ПП)
1 H Идентификатор типа карты (ПП):
‘1’ : MasterCard M/Chip.
IMK-DAC Мастер-ключ эмитента для генерации и
проверки DAC. Только если флаг
режима ‘0’.
32 H
или
1 A + 32 H
IMK-DAC может быть зашифрован под
LMK 28-29 вариант 4.
или
1 A + n A
Значения полей IMR-DAC для
ключевого блока LMK следующие:
Key Usage Algorithm Mode of Use
‘E3’ ‘T’ ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 259
Поле Длина и тип Описание
Командное сообщение
IMK-DN Мастер-ключ эмитента для вычисления
и проверки Dynamic Number. Только
если флаг режима ‘1’..
32 H
или
1 A + 32 H
Для вариантных LMK:
Зашифрован под LMK 28-29 вариант 5.
или
1 A + n A
Значения полей IMK-DN для ключевого
блока LMK следующие:
Key Usage Algorithm Mode of Use
‘E4’ ‘T’ ‘N’
Длина PAN 2 N Только для режима ‘2’.
Длина (в байтах) следующего поля.
PAN/PAN Sequence
No
8 B
или
n B
Переформатированный PAN/PAN
Sequence No.
Для режима ‘0’ или ‘1’ поле имеет
фиксированную длину 8 байтов и
содержит переформатированный
PAN/PAN Sequence No.
Для режима ‘2’ поле имеет длину,
заданную значением предыдущего поля.
За формирование PAN/PAN Sequence No
отвечает хост.
DAC 2 B Data Authentication Code (DAC) для
проверки. Только если флаг режима ‘0’.
DN 2 B Dynamic Number для проверки.
Только если флаг режима ‘1’.
ATC 2 B Счетчик транзакций
(Application Transaction Counter)
Только если флаг режима ‘1’.
UN 4 B Unpredictable Number.
Только если флаг режима ‘1’.
Модуль безопасности платежных систем. Руководство разработчика | 260
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KT’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
DAC или DN;
04 – недопустимый флаг режима (≠ 0
или 1);
05 – некорректный идентификатор типа
карты;
10 – ошибка четности IMK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Диагностические
данные
2 B Вычисленный DAC или DN (в
зависимости от флага режима).
Только если код ошибки = ‘01’, и HSM
находится в авторизованном состоянии.
Модуль безопасности платежных систем. Руководство разработчика | 261
Генерация секретного сообщения (Secure Message) (EMV 3.1.1) (KU)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация секретного сообщения (Secure Message) с обеспечением
целостности, посылаемого эмитентом карте. Опционально, может
обеспечиваться конфиденциальность сообщения. В этом случае,
данные сообщения должны быть зашифрованы с использованием
транспортного ключа. Команда перешифровывает данные из-под
транспортного ключа под сеансовый.
Примечания: Команда также используется для смены или разблокировки PIN.
Чтобы изменить PIN, эмитент должен проверить текущий PIN, затем
принять новый PIN в стандартном формате PIN-блока. Затем
PIN-блок перешифровывается из стандартного формата PIN-блока
ATM (зашифрованного под терминальный или зональный ключ) в
специфический формат PIN-блока приложения (зашифрованного
под сессионный ключ для конфиденциальности).
Для генерации скрипта для разблокировки PIN используется режим
‘0’ (только целостность), PIN Unblock APDU представлено в поле
«Открытые данные сообщения».
Команда поддерживает следующие CVN (Cryptogram Version
Number):
Тип карты (приложения) Идентификатор
Visa VIS (CVN 10) ‘0’
MasterCard M/Chip (CVN 10 или 11) ‘1’
American Express AEIPS (CVN 01) ‘2’
Модуль безопасности платежных систем. Руководство разработчика | 262
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KU’.
Флаг режима 1 N Флаг режима:
‘0’ : Только обеспечение целостности;
‘1’ : Обеспечение целостности и
конфиденциальности с
использованием одного
мастер-ключа;
‘2’ : Обеспечение целостности и
конфиденциальности с
использованием разных
мастер-ключей;
‘3’ : Обеспечение целостности и
перевода PIN-блока из одного
формата в другой для смены PIN с
использованием одного
мастер-ключа;
‘4’ : Обеспечение целостности и
перевода PIN-блока из одного
формата в другой для смены PIN с
использованием разных
мастер-ключей.
Идентификатор типа
карты (ПП)
1 N Идентификатор типа карты (ПП):
‘0’ : Visa VIS;
‘1’ : MasterCard M/Chip;
‘2’ : American Express AEIPS.
IMK-SMI Мастер-ключ эмитента для
обеспечения целостности секретных
сообщений. Используется для
генерации MAC за сообщение.
32 H
или
1 A + 32 H
IMK-SMI может быть зашифрован под
LMK 28-29 вариант 2.
Модуль безопасности платежных систем. Руководство разработчика | 263
Поле Длина и тип Описание
Командное сообщение
или
1 A + n A
Значения полей IМК-SMI для
ключевого блока LMK следующие:
Key Usage Algorithm Mode of Use
‘E2’ ‘T’ ‘N’
PAN/PAN Sequence
No
8 B Переформатированный PAN/PAN
Sequence No.
Данные для
диверсификации
ключа целостности
8 B Используются для генерации
сессионного ключа обеспечения
целостности:
- для типа карты ‘0’ или ‘2’ (Visa или
AEIPS) это 2 байта ATC, выравненные
по правому краю и дополненные слева
6 нулевыми байтами;
- для типа карты ‘1’ (MasterCard) это 8
байтов случайного числа.
Длина открытых
данных сообщения
4 H Длина (в байтах) следующего поля.
Открытые данные
сообщения
n B Открытые данные сообщения.
Разделитель 1 А Разделитель, указывающий на конец
открытых данных сообщения.
Значение ‘;’.
IMK-SMC Мастер-ключ эмитента для
обеспечения конфиденциальности
секретных сообщений. Используется
для шифрования сообщения. Только
если флаг режима ‘2’ или ‘4’.
32 H
или
1 A + 32 H
IMK-SMC может быть зашифрован под
LMK 28-29 вариант 3.
или
1 A + n A
Значения полей IMK-SMC для
ключевого блока LMK следующие:
Key Usage Algorithm Mode of Use
‘E1’ ‘T’ ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 264
Поле Длина и тип Описание
Командное сообщение
TK Транспортный ключ, используется для
расшифрования передаваемых данных
сообщения. Только если флаг режима
‘1’ или ‘2’.
32 H
или
1 A + 32 H
TK может быть зашифрован под LMK
30-31.
или
1 A + n A
Значения полей TK для ключевого
блока следующие:
Key Usage Algorithm Mode of Use
‘D0’, ‘22’ ‘T’ ‘B’, D’, ‘N’
Данные для
диверсификации
ключа
конфиденциальности
8 B Используются для генерации
сессионного ключа обеспечения
конфиденциальности (шифрования):
Для типа карты ‘0’ или ‘2’ (Visa или
AEIPS) это 2 байта ATC, выравненные
по правому краю и дополненные слева
6 нулевыми байтами.
Для типа карты ‘1’ (MasterCard) это 8
байтов случайного числа. Только если
флаг режима ‘1’, ‘2’, ‘3’ или ‘4’.
Смещение
4 H Позиция в открытых данных
сообщения для вставки зашифрованных
данных. Значение между ‘0000’ и
длиной открытых данных сообщения.
Если смещение = n, то зашифрованный
текст вставляется после n-го байта
открытых данных (т.е. при длине
открытых данных 0039 и смещении =
‘0039’ зашифрованные данные
вставляются в конец открытых данных
сообщения).
Только если флаг режима ‘1’, ‘2’, ‘3’
или ‘4’.
В режимах ‘3’ или ‘4’ используется для
вставки нового PIN-блока
Модуль безопасности платежных систем. Руководство разработчика | 265
Поле Длина и тип Описание
Командное сообщение
Длина
зашифрованных
данных сообщения
4 H Длина (в байтах) следующего поля.
Максимальное значение – 32 байта (т.е.
‘0020’ в шестнадцатиричном виде).
Должна быть кратна 8 байтам (т.е. 8,
16, 24 или 32 байта).
Если флаг режима ‘3’ или ‘4’, то это
длина нового PIN-блока. Если тип
выходного PIN-блока = ‘42’, то это
длина конкатенации текущего и нового
PIN-блоков.
Только если флаг режима ‘1’, ‘2’, ‘3’
или ‘4’.
Зашифрованные
данные сообщения
n B Зашифрованные данные сообщения с
использованием транспортного ключа
(TK). Должны быть кратны 8 байтам.
Паддинг после расшифрования не
выполняется. Только если флаг режима
‘1’, ‘2’, ‘3’ или ‘4’.
Если тип выходного PIN-блока = ‘42’,
то это конкатенация текущего и нового
PIN-блоков.
Разделитель 1 A Разделитель, указывающий на конец
зашифрованных данных сообщения.
Значение ‘;’.
Только если флаг режима ‘1’, ‘2’, ‘3’
или ‘4’.
Тип ключа
шифрования
исходного PIN
Только если флаг режима ‘3’ или ‘4’.
1 N Тип ключа:
‘0’ : ZPK;
‘1’ : TPK.
или
1 H
Для Keyblock LMK поле игнорируется.
Можно присвоить значение ‘F’
Ключ шифрования
исходного PIN
Ключ для расшифрования исходного
PIN-блока.
Только если флаг режима ‘3’ или ‘4’.
Модуль безопасности платежных систем. Руководство разработчика | 266
Поле Длина и тип Описание
Командное сообщение
16 H
или
1 A + 32/48 H
Ключ:
ZPK, зашифрованный под LMK 06-07;
TPK, зашифрованный под LMK 14-15
вариант 0.
или
1 A + n A
Значения полей для ключевого блока
LMK
Key Usage Algorithm Mode of Use
‘PO’, ‘71’,
'72'
‘D’, ‘T’ ‘B’, ‘D’, ‘N’
Код формата
исходного PIN-блока
2 N Код формата исходного PIN-блока.
Только если флаг режима ‘3’ или ‘4’.
Код формата
выходного PIN-блока
2 N Код формата выходного PIN-блока:
‘34’ : стандартный EMV PIN-блок;
‘35’ : Mastercard Pay Now & Pay Later;
‘41’ : Visa / Amex без текущего
PIN-блока;
‘42’ : Visa / Amex с текущим
PIN-блоком;
Только если флаг режима ‘3’ или ‘4’.
Account Number 12 N
или
18 H
Только если флаг режима ‘4’.
Поле используется для перевода
PIN-блока из одного формата в другой
Для всех форматов PIN-блока, кроме
04, это 12-значный поле, состоящее из
12 самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю
и дополненное X'F слева, если это
необходимо.
Модуль безопасности платежных систем. Руководство разработчика | 267
Поле Длина и тип Описание
Командное сообщение
IMK-AC Только если флаг режима ‘3’ или ‘4’ и
код формата выходного PIN-блока =
‘41’ или ‘42’.
Мастер-ключ эмитента для генерации и
проверки прикладной криптограммы.
Требуется для создания PIN-блока для
смены PIN Visa.
32 H
или
1 A + 32 H
Для вариантного LMK:
IMK-AC может быть зашифрован под
LMK 28-29 вариант 1.
или
1 A + n A
Значения полей IMK-AC для
ключевого блока LMK следующие:
Key Usage Algorithm Mode of Use
‘E0’ ‘T’ ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 268
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KV’.
Код ошибки 2 А 00 – нет ошибок;
04 – недопустимый флаг режима (≠ 0, 1,
2, 3 или 4);
05 – некорректный идентификатор типа
карты;
06 – недопустимое смещение;
07 – недопустимое значение длины
зашифрованных данных сообщения;
08 – ошибка длины зашифрованных
данных сообщения;
09 – ошибка четности ZPK или TPK;
10 – ошибка четности IMK-SMI;
11 – ошибка четности IMK-SMС;
23 – недопустимый формат PIN-блока;
50 – Тип ключа шифрования исходного
PIN ≠ 0 или 1;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 8 B Вычисленный MAC.
Длина
перешифрованных
данных
4 H Длина (в байтах) следующего поля.
Перешифрованные
данные
n B
Перешифрованные данные сообщения.
Только если флаг режима ‘1’, ‘2’, ‘3’
или ‘4’.
Модуль безопасности платежных систем. Руководство разработчика | 269
Проверка ARQC и/или генерация ARPC (EMV 4.x) (KW)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: См. Примечание См. Примечание
Функция: Проверка ARQC (TC/AAC) и, опционально, генерация ARPC.
Команда может быть использована только для генерации ARPC.
Примечания: Для вывода диагностических данных требуется авторизация.
Диагностические данные состоят из криптограммы ARQC,
возвращаемой хосту, если проверка полученной от карты ARQC
закончилась с отрицательным результатом.
Эта команда аналогична команде KQ, но с использованием EMV
Common Session Key Derivation method для генерации сессионных
ключей.
Команда поддерживает следующие CVN (Cryptogram Version
Number):
Тип карты (приложения) Идентификатор
метода
Visa VIS (CVN 14) ‘0’
Visa VIS (CVN 18) ‘2’ или ‘3’
MasterCard M/Chip (CVN 14 или 15) (EMV CSK) ‘2’
American Express AEIPS (CVN 01) ‘2’
За паддинг данных, подаваемых на вход команды, ответственен хост.
В некоторых методах это означает добавление шестнадцатиричных
‘80’ в конец поля данных. Если данные кратны 8 байтам, команда не
выполняет паддинг.
Модуль безопасности платежных систем. Руководство разработчика | 270
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KW’.
Флаг режима 1 H Режим:
‘0’ : Только проверка ARQC;
‘1’ : Проверка ARQC и генерация ARPC
EMV 4.x Method 1;
‘2’ : Только генерация ARPC EMV 4.x
Method 1;
‘3’ : Проверка ARQC и генерация ARPC
EMV 4.x Method 2;
‘4’ : Только генерация ARPC EMV 4.x
Method 2.
Идентификатор
метода
1 N Идентификатор метода диверсификации
ключей:
‘2’ : Option A ICC Master Key Derivation
(для диверсификации мастер-ключей
карты) and EMV Common Session Key
Derivation (для диверсификации
сессионных ключей);
‘3’ : Option B ICC Master Key Derivation
(для диверсификации мастер-ключей
карты) and EMV Common Session Key
Derivation (для диверсификации
сессионных ключей).
IMK-AC Мастер-ключ эмитента для генерации и
проверки прикладной криптограммы.
32 H
или
1 A + 32 H
Может быть зашифрован под LMK 28-29
вариант 1
или
1 A + n A
Значения полей IMK-AC для ключевого
блока LMK следующие:
Key Usage Algorithm Mode of Use
‘E0’ ‘T’ ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 271
Поле Длина и тип Описание
Командное сообщение
Длина PAN 2 N Только для режима ‘2’.
Длина (в байтах) следующего поля.
Допустимые значения от ‘01’ до ‘99’.
PAN/PAN Sequence
No
8 B
или
n B
Для режима ‘2’ поле имеет
фиксированную длину 8 байтов и
содержит переформатированный
PAN/PAN Sequence No.
Для режима ‘3’ поле имеет длину,
заданную значением предыдущего поля.
За паддинг PAN/PAN Sequence No
отвечает хост.
Разделитель 1 А Разделитель, указывающий на конец
поля PAN/PAN Sequence No. Только для
режима ‘3’.
ATC 2 B Счетчик транзакций
(Application Transaction Counter).
Используется для генерации сессионных
ключей.
Для усеченной ARQC – это последнее
значение ATC из базы данных хоста.
Длина данных
транзакции
2 H Длина следующего поля. От ‘1’ до ‘255’.
Только если флаг режима ‘0’, ‘1’или ‘3’.
Данные транзакции n B Только если флаг режима ‘0’, ‘1’ или ‘3’.
Данные переменной длины. Если данные
кратны 8 байтам, то паддинг не
выполняется. Если данные не кратны 8
байтам, то выполняется паддинг ‘00’.
Разделитель 1 А Разделитель, указывающий на конец
данных транзакции. Значение ‘;’ .
Только если флаг режима ‘0’, ‘1’
или ‘3’.
ARQC/TC/AAC 8 B ARQC/TC/AAC для проверки и
генерации ARPC.
Модуль безопасности платежных систем. Руководство разработчика | 272
Поле Длина и тип Описание
Командное сообщение
ARC 2 B Authorisation Response Code,
используемый для генерации ARPC.
Только если флаг режима ‘1’ или‘2’ .
Используется для генерации ARPC для
карт VIS 1.x и M/Chip 4.x.
CSU 4 B Только если флаг режима ‘3’ или ‘4’
Длина следующего поля. Допустимые
значения ‘0’…’8’.
Длина данных
аутентификации
1 N Только если длина поля не нулевая.
Данные
аутентификации
0…8 B
Содержит дополнительные данные для
передачи карте данных аутентификации
эмитента при онлайновой транзакции.
Модуль безопасности платежных систем. Руководство разработчика | 273
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KX’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
ARQC/TC/AAC;
03 – Флаг режима = ‘3’ или ‘4’, но
идентификатор типа карты ≠ ‘0’;
04 – недопустимый флаг режима;
05 – некорректный идентификатор типа
карты;
06 – отрицательный результат проверки
MAC за выборочные данные;
10 – ошибка четности IMK-AC;
11 – ошибка четности IMK-SMI;
80 – ошибка длины данных транзакции;
81 – нулевая длина данных транзакции;
82 – недопустимая длина выборочных
данных для вычисления MAC;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
ARPC 8 B Вычисленная криптограмма ARPC.
Только если флаг режима ‘1’, ‘2’ или ‘4’
и нет ошибок.
Диагностические
данные
8 B Вычисленная криптограмма
ARQC/TC/AAC. Только если код
ошибки = ‘01’ и HSM находится в
авторизованном состоянии.
Диагностический
MAC
8 B Вычисленный MAC за выборочные
данные. Только если флаг режима ‘3’
или ‘4’ и код ошибки = ‘06’ , а HSM
находится в авторизованном состоянии.
Модуль безопасности платежных систем. Руководство разработчика | 274
Генерация секретного сообщения (EMV 4.x) (KY)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация секретного сообщения и вывод в хост МАС и
зашифрованных данных сообщения.
Примечания: Команда аналогична команде KU, для формирования MAC и
зашифрования используются сессионные ключи, полученные из
разных мастер-ключей. Для выработки сессионных ключей
используются EMV Common Session Key Derivation method.
За паддинг данных, подаваемых на вход команды, ответственен
хост. В некоторых методах это означает добавление
шестнадцатиричных ‘80’ в конец поля данных. Если данные кратны
8 байтам, команда не выполняет паддинг.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KY’.
Флаг режима 1 N Режим:
‘2’ : Целостность и
конфиденциальность;
‘4’ : Целостность и изменение PIN
‘5’ : Только целостность.
Используется поле ‘Идентификатор
метода’ для идентификации метода
диверсификации ключей.
Модуль безопасности платежных систем. Руководство разработчика | 275
Поле Длина и тип Описание
Командное сообщение
Идентификатор метода 1 N Идентификатор:
‘5’ : EMV 4.x Option A ICC Master
KEY Derivation и EMV Common
Session Key Derivation
‘6’ : EMV 4.x Option A ICC Master
KEY Derivation и EMV Common
Session Key Derivation;
‘7’ : EMV 4.x Option B ICC Master
KEY Derivation и EMV Common
Session Key Derivation.
Используется для указания паддинга и
метода диверсификации ключей.
Примечание: для флага режима = ‘5’
это поле определяет только метод
диверсификации ключа, паддинг не
имеет значения.
MK-SMI Мастер-ключ используется для
генерации MAC за сообщение
32 H
или
1 A + 32 H
Зашифрован под LMK 28-29 вариант 2.
или
1 A + n A
Значения полей MK-SMI
Key Usage Algorithm Mode of Use
‘E2’ ‘T’ ‘N’
Длина PAN
2 N Только для режима ‘7’.
Длина (в байтах) следующего поля.
Допустимые значения от ‘01’ до ‘99’.
Модуль безопасности платежных систем. Руководство разработчика | 276
Поле Длина и тип Описание
Командное сообщение
PAN/PAN Sequence No 8 B или n B Для режима ‘5’ или ‘6’ поле имеет
фиксированную длину 8 байтов и
содержит переформатированный
PAN/PAN Sequence No.
Для режима ‘7’ поле имеет длину,
заданную значением предыдущего поля.
Если PAN содержит нечетное число
цифр, то слева к полученной
последовательности хост-системой
добавляется полубайт ‘0’h.
Разделитель 1 А Разделитель, указывающий на конец
поля PAN/PAN Sequence No. Только
для режима ‘7’.
Application Cryptogram 8 B Application Cryptogram возвращенное
картой в ответе на первую
GENERATE AC команду.
Длина данных открытого
текста сообщения
4 H Длина в байтах следующего поля.
Данные открытого текста
сообщения
n B Данные открытого текста сообщения.
Разделитель 1 А Разделитель предыдущего поля.
Значение ‘;’.
MK-SMC Мастер-ключ, используемый для
зашифрования сообщения. Только для
флага режима ‘2’ или ‘4’.
32 H
или
1 A + 32 H
Зашифрован под LMK 28-29
вариант 3.
или
1 A + n A
Значения полей для ключевого блока:
Key Usage Algorithm Mode of Use
‘E1’ ‘T’ ‘N’
TK Транспортный ключ, используемый
для расшифрования прилагаемого
сообщения. Только для флага режима
= ‘2’.
Модуль безопасности платежных систем. Руководство разработчика | 277
Поле Длина и тип Описание
Командное сообщение
32 H
или
1 A + 32 H
Зашифрован под LMK 30-31.
или
1 A + n A
Значения полей для ключевого блока
Key Usage Algorithm Mode of Use
‘D0’, ‘22’ ‘T’ ‘B’, ‘D’,‘N’
Смещение 4 H Только для флага режима = ‘2’ или
‘4’. Позиция в открытом тексте
сообщения для вставки шифротекста.
Значение должно быть между ‘0000’ и
значением поля Длина данных
открытого текста сообщения.
Если флаг режима ‘4’, то используется
для указания позиции New PIN Block.
Длина шифрованного
текста сообщения
4 H Только для флага режима = ‘2’ или
‘4’. Длина в байтах следующего поля.
Данные шифрованного
текста сообщения
n B Только для флага режима = ‘2’ или ‘4’.
Шифротекст прилагаемого сообщения
зашифрован на транспортном ключе
(TK). Длина должна быть кратна 8 байт.
Для флага режима = ‘4’ используется
для New PIN Block.
Разделитель 1 A Только для флага режима = ‘2’ или
‘4’. Разделитель предыдущего поля.
Значение ‘;’.
Тип ключа зашифрования
исходного PIN
Только для флага режима = ‘4’
1 N
или
‘0’ : ZPK;
‘1’ : TPK.
1 H Для Keyblock LMK поле
игнорируется. Можно присвоить
значение ‘F’
Ключ шифрования
исходного PIN
Модуль безопасности платежных систем. Руководство разработчика | 278
Поле Длина и тип Описание
Командное сообщение
16 H
или
1 A + 32/48 H
ZPK, зашифрованный под LMK 06-07,
или
TPK, зашифрованный под LMK 14-15
или
1 A + n A
Значения полей ключевого блока
Key
Usage
Algorithm Mode of
Use
‘P0’, ‘71’,
‘72’
‘D’, ‘T’ ‘B’, ‘D’, ‘N’
Код формата исходного
PIN блока
2 N Только для флага режима = ‘4’.
Код формата исходного PIN блока.
Код формата целевого
PIN блока
2 N Только для флага режима = ‘4’.
‘34’ : Standard EMV PIN Block;
‘35’ : Europay/Mastercard Pay Now &
Pay Later;
‘41’ : Visa формат без использования
текущего PIN;
‘42’ : Visa формат c использованием
текущего PIN.
Account Number 12 N или 18 H Только для флага режима = ‘4’.
Используется для преобразования PIN
блока.
Для формата исходного PIN блока <>
‘04’, это поле длинной 12 N и
указывается 12 правых старших цифр
номера аккаунта без учета контрольной
цифры.
Для формата исходного PIN блока = ‘04’,
это поле длинной 18 H и указывается
целиком 18 цифр номера аккаунта без
учета контрольной цифры, дополненный
‘F’ слева.
IMK-AC Только для флага режима = ‘4’ и
формата целевого PIN Block = ‘41’
или ‘42’.
Модуль безопасности платежных систем. Руководство разработчика | 279
Поле Длина и тип Описание
Командное сообщение
32 H
или
1 A + 32 H
Мастер-ключ эмитента для генерации
и проверки Application Cryptograms.
или
1 A + n A
Значения полей для ключевого блока
Key
Usage
Algorithm Mode of
Use
‘E0’ ‘T’ ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 280
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KZ’.
Код ошибки 2 N 00 – нет ошибок;
04 – недопустимый флаг режима;
05 – недопустимый идентификатор
метода;
06 – недопустимое смещение;
07 – недопустимый параметр длина
шифрованного текста сообщения;
08 – ошибка длины шифрованного
текста сообщения;
09 – TK или ZPK/TPK ошибка
четности;
10 – MK-SMI ошибка четности;
11 – MK-SMC ошибка четности;
23 – недопустимый код формата PIN
блока;
50 – тип исходного ключа зашифрования
PIN не установлен в 0 или 1;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 8 B Вычисленный MAC 64 бит.
Длина перешифрованных
данных шифротекста
4 H Только для флага режима = ‘2’ или
‘4’. Длина в байтах следующего поля.
Перешифрованные
данные шифротекста
сообщения
n B Только для флага режима = ‘2’ или ‘4’.
Перешифрованный шифротекст
сообщения.
Модуль безопасности платежных систем. Руководство разработчика | 281
Разное
Генерация проверочной величины ключа (BU)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация проверочной величины ключа, зашифрованного под LMK.
Примечания: Команда проверяет тип ключа на допустимость. Если тип
недопустимый, то возвращается код ошибки. Если используется
2-цифровой код типа ключа, то поле 3-цифрового типа ключа не
представлено.
Для генерации 16-цифровой проверочной величины требуется
установка флага «Режим обратной совместимости по KCV с Thales
8000» в консольном режиме (пункт меню «Настройка»
Web-интерфейса удаленного управления платежным приложением).
В противном случае, при выборе длины ключа 16, формируется
6-цифровая проверочная величина, дополненная ‘00’ до нужной
длины.
Модуль безопасности платежных систем. Руководство разработчика | 282
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘BU’.
Код типа ключа 2 N Указывает LMK, под который
зашифрован ключ:
'00': LMK 04-05;
'01': LMK 06-07;
'02': LMK 14-15;
'03': LMK 16-17;
'04': LMK 18-19;
'05': LMK 20-21;
'06': LMK 22-23;
'07': LMK 24-25;
'08': LMK 26-27;
'09': LMK 28-29;
'0A': LMK par 30-31;
'0B': LMK 32-33;
'10': Вариант 1 LMK 04-05;
‘1C’: Вариант 1 LMK 34-35;
'42': Вариант 4 LMK 14-15.
'FF': используется для поля типа ключа,
определенного после разделителя (см.
ниже).
или
2 H
Это поле зарезервировано и должно
быть установлено в 'F'.
Модуль безопасности платежных систем. Руководство разработчика | 283
Поле Длина и тип Описание
Командное сообщение
Флаг длины ключа 1 N '0' : для DES-ключа одинарной длины
'1' : для DES-ключа двойной длины
'2' : для DES-ключа тройной длины
‘3’ : для HMAC ключа.
или
1 H
Это поле зарезервировано и должно
быть установлено в 'F'.
Ключ Ключ, для которого требуется
вычислить проверочную величину,
зашифрованный под LMK.
16/32 H
или
1 A + 32/48 H
Ключ, зашифрованный под LMK (в
соответствии с кодом типа ключа).
или
1 A + n A
Key Usage Algorithm Mode of
Use
Любое
допустимое
значение
Любое
допустимое
значение
Любое
допустимое
значение
Разделитель 1 А Опционально. ‘;’.
Только если значение поля «Код типа
ключа» = ‘FF’. Тогда должно
присутствовать следующее поле.
Тип ключа 3 H Трехзначный код зашифрованного
ключа.
Это поле зарезервировано и должно
быть установлено значение «FFF».
Разделитель 1 А Опционально. Если представлено, то
должны быть следующие три поля.
Зарезервировано 1 А Опционально. Если представлено, то ‘0’.
Зарезервировано 1 А Опционально. Если представлено, то ‘0’.
Тип проверочной
величины ключа
(KCV)
1 А Опционально. Метод вычисления KCV:
‘0’ : 16 цифр KCV (режим обратной
совместимости);
‘1’ : 6 цифр KCV.
Модуль безопасности платежных систем. Руководство разработчика | 284
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘BV’.
Код ошибки 2 А 00 – нет ошибок;
04 – неверный код типа ключа;
05 – неверный флаг длины ключа;
10 – ошибка четности ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Проверочная величина
ключа
16/6 H Проверочная величина ключа. 16 или
6 H в зависимости от заданной опции.
Модуль безопасности платежных систем. Руководство разработчика | 285
Перешифрование таблицы децимализации (LO)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование таблицы децимализации из-под «старых» LMK под
новые.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘LO’.
Таблица децимализации
(«старый» LMK)
Таблица децимализации,
зашифрованная на «старом» LMK.
16 H 16 H, если шифрованная под LMK
таблица децимализации.
16 H 16 H, если 3-DES Keyblock LMK
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK
Модуль безопасности платежных систем. Руководство разработчика | 286
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘LP’.
Код ошибки 2 A 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Таблица децимализации
(«новый» LMK)
Таблица децимализации,
зашифрованная на «новом» LMK.
16 H 16 H, если шифрованная под LMK
таблица децимализации.
16 H 16 H, если 3-DES Keyblock LMK
или
1 A + 32 H
'L' + 32 H, если AES Keyblock LMK
Модуль безопасности платежных систем. Руководство разработчика | 287
Генерация CVV/CVC (CW)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Генерация VISA CVV или MasterCard CVC.
Примечания: Команда позволяет генерировать:
• VISA CVV1 или MasterCard CVC1 для кодирования данных
магнитной полосы;
• VISA CVV2 или MasterCard CVC2 для печати на карте. В этом
случае, значение поля «Код сервиса» («Service Code») должно быть
‘000’;
• VISA iCVV или MasterCard Chip CVC для чиповых EMV-карт. В
этом случае, значение поля «Код сервиса» («Service Code») должно
быть ‘999’;
• VISA CAVV или MasterCard AAV для использования в протоколе
3-D Secure. В этом случае:
✓ Поле «Срок действия» («Expiration date») на 4-значный
Unpredictable number, вычисленный из Transaction Identifier в
соответствии с протоколом 3-D Secure;
✓ Поле «Код сервиса» («Service Code») заменяется
следующими двумя полями:
➢ Однозначным «Authentication Results Code» в
соответствии с протоколом 3-D Secure;
➢ Двузначным «Second Factor Authentication Results
Code» в соответствии с протоколом 3-D Secure;
Модуль безопасности платежных систем. Руководство разработчика | 288
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘CW’.
CVK 32 H
или
1 A + 32 H
CVK, зашифрованный под LMK 14-15
вариант ‘4’.
или
1 A + n A
Для Keyblock LMK CVK должен
содержать следующие значения:
Key Usage Algorithm Mode of Use
‘С0’, ‘12’,
‘13’
‘T’ ‘C’, ‘G’, N’
Номер счета
(Primary Account Number)
n N Номер счета карты (PAN).
Разделитель 1 A Значение ‘;’.
Срок действия
(Expiration date)
4 N Срок действия карты (или Unpredictable
Number для CAVV/AAV).
Код сервиса (Service
Code)
3 N
Service Code карты (или Authentication
Results Code
(1 цифра) + Second factor Authentication
Results Code
(2 цифры) для CAVV / AAV).
Модуль безопасности платежных систем. Руководство разработчика | 289
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘CX’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности CVK;
27 – CVK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
CVV 3 N Card Verification Value/Code.
Модуль безопасности платежных систем. Руководство разработчика | 290
Проверка CVV/CVC (CY)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка VISA CVV или MasterCard CVC.
Примечания: Команда позволяет проверять:
• VISA CVV1 или MasterCard CVC1 для кодирования данных
магнитной полосы;
• VISA CVV2 или MasterCard CVC2 для печати на карте. В этом
случае, значение поля «Код сервиса» («Service Code») должно быть
‘000’;
• VISA iCVV или MasterCard Chip CVC для чиповых EMV-карт. В
этом случае, значение поля «Код сервиса» («Service Code») должно
быть ‘999’;
• VISA CAVV или MasterCard AAV для использования в протоколе
3-D Secure. В этом случае:
✓ Поле «Срок действия» («Expiration date») на 4-значный
Unpredictable number, вычисленный из Transaction Identifier в
соответствии с протоколом 3-D Secure;
✓ Поле «Код сервиса» («Service Code») заменяется
следующими двумя полями:
➢ Однозначным «Authentication Results Code» в
соответствии с протоколом 3-D Secure;
➢ Двузначным «Second Factor Authentication Results
Code» в соответствии с протоколом 3-D Secure;
Модуль безопасности платежных систем. Руководство разработчика | 291
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘CY’.
CVK 32 H
или
1 A + 32 H
CVK, зашифрованный под LMK 14-15
вариант ‘4’.
или
1 A + n A
Для Keyblock LMK CVK должен
содержать следующие значения:
Key Usage Algorithm Mode of
Use
‘С0’, ‘12’,
‘13’
‘T’ ‘C’, ‘V’, N’
CVV 3 N CVV для проверки.
Номер счета (Primary
Account Number)
n N Номер счета карты (PAN).
Разделитель 1 A Значение ‘;’.
Срок действия
(Expiration date)
4 N Срок действия карты (или Unpredictable
Number для CAVV/AAV).
Код сервиса (Service
Code)
3 N Service Code карты (или
Authentication Results Code (1 цифра) +
Second factor Authentication Results
Code (2 цифры) для CAVV / AAV).
Модуль безопасности платежных систем. Руководство разработчика | 292
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘CZ’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
CVV;
10 – ошибка четности CVK;
27 – CVK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 293
Генерация проверочной величины ключа (KA)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC001 LIC001
Авторизация: Не требуется -
Функция: Генерация проверочной величины для одного из типов ключей: ZMK
(одинарной длины), ZPK, TMK, TPK, PVK, TAK.
Примечания: Данная команда может быть заменена командой BU.
Команда может быть использована для проверки ключа,
полученного от внешней стороны. Проверочная величина
формируется путем шифрования на ключе 64 нулевых битов.
Команда не поддерживает ZMK двойной длины.
Для генерации 16-цифровой проверочной величины требуется
установка флага «Режим обратной совместимости по KCV с Thales
8000» в консольном режиме (пункт меню «Настройка»
Web-интерфейса удаленного управления платежным приложением).
В противном случае, при выборе длины ключа 16, формируется
6-цифровая проверочная величина, дополненная ‘00’ до нужной
длины.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений.
Код команды 2 А ‘KA’.
Ключ 16 H
или
1 A + 32/48 H
Один из следующих ключей:
ZMK, ZPK, TMK, TPK, PVK или
TAK, зашифрованный под LMK.
Код типа ключа 2 N Идентификатор типа ключа:
'00' : ZMK;
'01' : ZPK;
'02' : TMK, TPK или PVK;
Модуль безопасности платежных систем. Руководство разработчика | 294
Поле Длина и тип Описание
Командное сообщение
'03' : TAK.
Разделитель 1 А Опционально. Если представлен, то
должны быть представлены
следующие три поля. Значение ‘;’.
Зарезервировано 1 А Опционально. Если представлено, то
значение ‘0’.
Зарезервировано 1 А Опционально. Если представлено, то
значение ‘0’.
Тип проверочной
величины ключа
1 A Опционально. Метод вычисления
KCV:
‘0’ : 16 цифр KCV (режим обратной
совместимости);
‘1’ : 6 цифр KCV.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KB’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Проверочная величина
ключа
16/6 H Проверочная величина ключа.
16 или 6 H в зависимости от заданной
опции.
Модуль безопасности платежных систем. Руководство разработчика | 295
Зашифрование блока данных (М0)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Зашифрование блока данных.
Примечание: Выбор режима зашифрования определяется набором
соответствующих флагов ('00' : ECB и '01' : CBC). Максимальное
значение длины данных не должно превышать 1 Кбайт.
Паддинг к данным не применяется – входные данные должны быть
кратны 8 байтам (или 16 для шестнадцатеричного представления).
Для многоблочных режимов выходные данные предыдущего блока
должны быть поданы на вход следующему блоку в качестве IV.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘M0’.
Флаг режима 2 N
Режим шифрования:
'00' : EBC;
'01' : CBC (требуется IV)
Флаг формата
входных данных 1 N
Флаг формата входных данных:
'0' : бинарный;
'1' : шестнадцатеричный;
'2' : текстовый;
Флаг формата
выходных данных
1 N
Флаг формата выходных данных:
'0' : бинарный;
'1' : шестнадцатеричный
Модуль безопасности платежных систем. Руководство разработчика | 296
Поле Длина и тип Описание
Командное сообщение
Тип ключа
3 H
Для варианта LMK тип используемого
ключа:
'00A' : ZEK (зашифрованный под
LMK 30-31 вариант 0);
'00B' : DEK (зашифрованный под
LMK 32-33 вариант 0);
'30B' : TEK (зашифрованный под
LMK 32-33 вариант 3) .
Для Keyblock LMK поле игнорируется.
Можно присвоить значение ‘FFF’
Ключ
Ключ шифрования данных,
используемый, при необходимости,
вместе IV для зашифрования данных
16 H
или
1 A + 32/48 H
Для вариантных LMK:
Используются ключи (DEK, TEK или
ZEK), зашифрованный под LMK
или
1 A + n A Для Keyblock LMK допустимы
значения полей:
Key Usage Algorithm Mode of Use
‘B0’, ‘41’,
‘42’ ‘T’
‘B’, ‘E’, ‘N’
‘D0’, ‘21’,
‘22’, ‘23’
‘D’, ‘T’,
‘A’
‘B’, ‘E’, ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 297
Поле Длина и тип Описание
Командное сообщение
IV
16 H
или
32 H
Инициализационный вектор,
используемый для шифрования. Когда
шифруется первый блок, то значение
IV назначается хостом (типичное
значение 00 00 00 00 00 00 00 00).
Для последующих блоков в качестве
входного значения IV должно
подаваться значение, возвращаемое в
ответе за предыдущий блок.
Только, если флаг режима = '01'.
При DES/3-DES поле IV имеет длину
16, при AES 32 шестнадцатиричных
символа.
Длина данных 4 H Длина следующего поля (в байтах)
Максимум: 1024 байта
Блок данных
Блок данных для зашифрования. Длина
и тип поля определяются значениями
полей Флаг режима и Флаг формата
входных данных:
n B
Флаг формата входных данных = '0'
(бинарный).
Если флаг режима = '01', то n = кратно 8.
или n H
Флаг формата входных данных = '1'
(шестнадцатеричный).
Если флаг режима = '01', то
n = кратно 16.
или n A
Флаг формата входных данных = '2'
(текст);
Если флаг режима = '01', то
n = кратно 8.
Модуль безопасности платежных систем. Руководство разработчика | 298
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘M1’.
Код ошибки
2 А
00 – нет ошибок;
02 – недопустимый флаг режима;
03 – недопустимый флаг формата
входных данных;
04 – недопустимый флаг формата
выходных данных;
05 – недопустимый тип ключа;
06 – недопустимая длина данных;
10 – ошибка четности ключа
шифрования;
35 – недопустимый формат сообщения;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
IV 16 H
или
32 H
Промежуточный IV на выходе. Должен
подаваться в качестве значения IV для
следующего блока.
Только, если флаг режима = '01'.
При DES/3-DES поле IV имеет длину 16,
при AES 32 шестнадцатиричных
символа.
Длина блока данных 4 H Длина следующего поля (в байтах)
Зашифрованный блок
данных
Сообщение для зашифрования. Длина и
тип поля определяются значениями
полей Флаг режима и Формат флага
выходных данных.
n B
или
Флаг формата выходных данных
= '0' (бинарный).
Если флаг режима = '01', то длина
должна быть кратна 8.
n H Флаг формата выходных данных
= '1' (шестнадцатеричный).
Модуль безопасности платежных систем. Руководство разработчика | 299
Поле Длина и тип Описание
Если флаг режима = '01', то длина
должна быть кратна 16.
Модуль безопасности платежных систем. Руководство разработчика | 300
Расшифрование блока данных (М2)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Расшифрование блока данных.
Примечание: Выбор режима расшифрования, который определяется набором
соответствующих флагов ('00' : ECB и '01' : CBC). Максимальное
значение поля длины сообщения не должно превышать 1 Кбайт.
Паддинг к сообщению не применяется – входной блок данных
должен быть кратен 8 (или 16 для шестнадцатеричного
представления).
Для многоблочных режимов выходные данные предыдущего блока
должны быть поданы на вход следующему блоку в качестве IV.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘M2’.
Флаг режима
2 N
Флаг режима шифрования:
'00' : ECB;
'01' : CBC (требуется IV).
Флаг формата
входных данных
1 N
Флаг формата входных данных:
'0' : бинарный;
'1' : шестнадцатеричный.
Флаг формата
выходных данных
1 N
Флаг формата выходных данных:
'0' : бинарный;
'1' : шестнадцатеричный;
'2' : текстовый.
Модуль безопасности платежных систем. Руководство разработчика | 301
Поле Длина и тип Описание
Командное сообщение
Тип ключа
3 H Для вариантов LMK тип используемого
ключа:
'00A' : ZEK (зашифрованный под
LMK 30-31 вариант 0);
'00B' : DEK (зашифрованный под
LMK 32-33 вариант 0);
'30B' : TEK (зашифрованный под
LMK 32-33 вариант 3).
Для Keyblock LMK поле игнорируется.
Можно присвоить значение ‘FFF’
Ключ
Ключ для расшифрования блока данных,
используемый вместе с IV.
16 H
или
1 A + 32/48 H
Для вариантного LMK:
DEK, TEK или ZEK
или
1 A + n A
Для Keyblock LMK допустимы значения
полей:
Key Usage Algorithm Mode of Use
‘B0’, ‘41’,
‘42’ ‘T’
‘B’, ‘E’, ‘N’
‘D0’, ‘21’,
‘22’, ‘23’
‘D’, ‘T’,
‘A’
‘B’, ‘E’, ‘N’
IV
16 H
или
32 H
Инициализационный вектор,
используемый для расшифрования.
Когда расшифровывается первый блок,
то значение IV назначается хостом
(типичное значение 00 00 00 00 00 00 00 00).
Для последующих блоков в качестве
входного значения IV должно
подаваться значение, возвращаемое в
ответе за предыдущий блок.
Только, если флаг режима = '01'.
При DES/3-DES поле IV имеет длину 16,
при AES 32 шестнадцатиричных
символа.
Модуль безопасности платежных систем. Руководство разработчика | 302
Поле Длина и тип Описание
Командное сообщение
Длина блока данных 4 H Длина следующего поля (в байтах).
Максимум 1024 байта
Зашифрованный блок
данных
n B
Блок данных для расшифрования. Длина
и тип поля определяются значениями
полей Флаг режима и Флаг формата
входных данных:
Формат выходного флага = '0'
(бинарный);
Если флаг режима = '01' или '02', то n =
кратно 8.
или n H Формат выходного флага = '1'
(шестнадцатеричный).
Если флаг режима = '01', то n = кратно 16.
Модуль безопасности платежных систем. Руководство разработчика | 303
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘M3’.
Код ошибки 2 А 00 – нет ошибок;
02 – недопустимый флаг режима;
03 – недопустимый флаг формата
входных данных;
04 – недопуcтимый флаг формата
выходных данных;
05 – недопустимый тип ключа;
06 – недопустимая длина блока данных;
10 – ошибка четности ключа
расшифрования;
35 –недопустимый формат сообщения;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
IV 16 H
или
32 H
Промежуточный IV на выходе,
который должен подаваться в качестве
значения IV для следующего блока.
Только, если флаг режима = ‘1’.
При DES/3-DES поле IV имеет длину
16, при AES 32 шестнадцатиричных
символа.
Длина блока данных 4 H Длина следующего поля (в байтах)
Расшифрованный блок
данных
n B
или
Расшифрованный блок данных. Длина
и тип поля определяются значениями
полей Флаг режима и Флаг формата
входных данных:
Флаг формата выходных данных
= '0' (бинарный).
Если флаг режима = '01', то n = кратно 8.
n H
или
Флаг формата выходных данных
= '1' (шестнадцатиричный).
Если флаг режима = '01', то n = кратно 16.
n А Флаг формата выходных данных
= '2' (текст).
Если флаг режима = '01', то n = кратно 8.
Модуль безопасности платежных систем. Руководство разработчика | 304
Генерация MAC (М6)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется-
Функция: Генерация MAC за сообщение с использованием ключа TAK или
ZAK.
Команда использует различные алгоритмы формирования MAC и
различные режимы паддинга.
Примечание: Команда формирует MAC для сообщений различных форматов.
Максимальное значение поля длины сообщения не должно
превышать 2 Кбайтов.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘M6’.
Флаг режима 1 N '0' : единственный блок одноблочного
сообщения;
'1' : первый блок многоблочного
сообщения;
'2' : промежуточный блок
многоблочного сообщения;
'3' : последний блок многоблочного
сообщения.
Флаг формата входных
данных
1 N '0' : бинарный;
'1' : шестнадцатиричный;
'2' : текстовый.
Размер MAC 1 N ‘0’ : MAC размером 8
шестнадцаричных символов;
‘1’ : MAC размером 16
шестнадцаричных символов;
‘2’ ... ’9’ : зарезервировано.
Модуль безопасности платежных систем. Руководство разработчика | 305
Поле Длина и тип Описание
Командное сообщение
Алгоритм MAC 1 N '1' : ISO 9797 MAC algorithm 1
(= ANSI X9.9, если используется
ключ одинарной длины);
'3' : ISO 9797 MAC algorithm 3
(= ANSI X9.19, если используется
ключ двойной длины).
Метод паддинга 1 N '0' : Нет паддинга. (Все сообщения
должны иметь длину, кратную 8
байтам);
'1' : ISO 9797 Padding method 1 т.е.
дополнение 0x00);
'2' : ISO 9797 Padding method 2 (т.е.
добавление 0x80 и дополнение
0x00);
‘3’ : ISO 9797 Padding method 3 (т.е.
конкатенация длины сообщения в
битах и сообщения, дополненная
0x00).
Тип ключа 3 H Для варианта LMK тип используемого
ключа:
'003' : TAK (зашифрованный под LMK
16-17);
'008' : ZAK (зашифрованный под
LMK 26-27).
Для Keyblock LMK поле игнорируется.
Можно присвоить значение ‘FFF’
Ключ Ключ аутентификации сообщения,
используемый вместе IV для генерации
MAC (TAK или ZAK), зашифрованный
под LMK
16 H
или
1 A + 32/48 H
или
Для варианта LMK, (TAK или ZAK),
зашифрованный под LMK
1 A + n A Для Keyblock LMK:
Модуль безопасности платежных систем. Руководство разработчика | 306
Поле Длина и тип Описание
Командное сообщение
Ключ должен соответствовать одному
из следующих:
Key Usage Algorithm Mode of Use
‘M1’ ‘D’ ‘C’, ‘G’,и ‘N’
‘M3’ ‘T’ ‘C’, ‘G’,и ‘N’
‘M5’, ‘M6’ ‘A’ ‘C’, ‘G’,и ‘N’
IV 16 H
или
32 H
Промежуточный IV.
Для последующего вычисления MAC
для промежуточных и последнего
блока IV от предыдущего блока
должен возвращаться в ответе.
Только, если флаг режима = 2 или 3.
При DES/3-DES поле IV имеет длину
16, при AES 32 шестнадцатиричных
символа.
Длина сообщения 4 H Длина следующего поля (в байтах).
Сообщение
n B
или
Сообщение для генерации MAC. Длина
и тип поля определяются значениями
полей Флаг режима и Флаг формата
входных данных.
Флаг формата входных данных = '0'
(бинарный).
Если флаг режима = '1' или '2', то n =
кратно 8.
n H
или
Флаг формата входных данных = '1'
(шестнадцатеричный), если флаг
режима = '1' или '2', то n = кратно 16.
n A Флаг формата входных данных = '2'
(текст).
Если флаг режима = '1' или '2', то
n = кратно 8.
Модуль безопасности платежных систем. Руководство разработчика | 307
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘M7’.
Код ошибки 2 А 00 – нет ошибок;
02 – недопустимый флаг режима;
03 – недопустимый флаг формата
входных данных;
04 – недопуcтимый алгоритм MAC;
05 – недопустимый тип ключа;
06 – недопустимая длина сообщения;
09 – недопустимый метод паддинга;
10 – ошибка четности ключа MAC;
68 – команда отключена;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
IV 16 H
или
32 H
Промежуточный IV
Должен входить во входные данные
для генерации MAC за следующий
блок данных (сообщение)
Только, если флаг ‘1’ или ‘2’.
При DES/3-DES поле IV имеет длину
16, при AES 32 шестнадцатиричных
символа.
MAC 8 H
или
16 H
Вычисленный MAC
Длина этого поля определяется
входным параметром «Размер MAC»
Только, если флаг режима = '0' или '3'.
Модуль безопасности платежных систем. Руководство разработчика | 308
Проверка MAC (М8)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка MAC для сообщения (бинарные данные,
шестнадцатиричные, текст), в том числе, многоблочного, на ключе
TAK или ZAK по алгоритмам ANSI X9.9, ANSI X9.19 и различных
методах паддинга и сравнение с принятым.
Примечание: Выбор режима вычисления MAC определяется набором
соответствующих флагов. Максимальное значение поля длины
сообщения не должно превышать 2 Кбайт.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘M8’.
Флаг режима 1 N '0' : единственный блок одноблочного
сообщения;
'1' : первый блок многоблочного
сообщения;
'2' : промежуточный блок
многоблочного сообщения;
'3' : последний блок многоблочного
сообщения.
Флаг формата входных
данных
1 N '0' : бинарный;
'1' : шестнадцатиричный;
'2' : текстовый.
Размер MAC 1 N ‘0’ : MAC размером 8
шестнадцаричных символов;
‘1’ : MAC размером 16
шестнадцаричных символов;
‘2’ ... ’9’ : зарезервировано.
Модуль безопасности платежных систем. Руководство разработчика | 309
Поле Длина и тип Описание
Командное сообщение
Алгоритм MAC 1 N '1' : ISO 9797 MAC algorithm 1
(= ANSI X9.9 если используется
ключ одинарной длины);
'3' : ISO 9797 MAC algorithm 3
(= ANSI X9.19 если используется
ключ двойной длины).
Метод паддинга 1 N
'0' : Нет паддинга. (Все сообщения
должны иметь длину, кратную 8
байтам);
'1' : ISO 9797 Padding method 1 (т.е.
дополнение 0x00);
'2' : ISO 9797 Padding method 2 (т.е.
добавление 0x80 и дополнение
0x00);
‘3’ : ISO 9797 Padding method 3 (т.е.
конкатенация длины сообщения в
битах и сообщения, дополненная
0x00).
Тип ключа 3 H Для варианта LMK тип используемого
ключа:
'003' : TAK (зашифрованный под
LMK 16-17);
'008' : ZAK (зашифрованный под
LMK 26-27).
Для Keyblock LMK поле
игнорируется. Можно присвоить
значение ‘FFF’
Ключ Ключ аутентификации сообщения,
используемой вместе IV для
генерации MAC.
16 H
или
1 A + 32/48 H
или
Для вариантов LMK тип
используемого ключа TAK или ZAK.
Модуль безопасности платежных систем. Руководство разработчика | 310
Поле Длина и тип Описание
Командное сообщение
1 A + n A
Для Keyblock LMK ключ должен
соответствовать одному из
следующих:
Key Usage Algorithm Mode of Use
‘M1’ ‘D’
‘C’, ‘V’ или
‘N’
‘M3’, ‘M5’,
‘M6’
‘T’ ‘C’, ‘V’ или
‘N’
IV 16 H
или
32 H
Промежуточный IV.
Для последующего вычисления MAC
для промежуточных и последнего
блока IV от предыдущего блока
должен возвращаться в ответе.
Только, если флаг режима = 2 или 3.
При DES/3-DES поле IV имеет длину
16, при AES 32 шестнадцатиричных
символа.
Длина сообщения 4 H Длина следующего поля (в байтах).
Максимум 2048 байт.
Сообщение
n B
или
Сообщение для генерации MAC.
Длина и тип поля определяются
значениями полей Флаг режима и
Флаг формата входных данных.
Флаг формата входных данных = '0'
(бинарный), если флаг режима = '1'
или '2', то n = кратно 8.
n H
или
Флаг формата входных данных = '1'
(шестнадцатеричный), если флаг
режима = '1' или '2', то n = кратно 16.
n A Флаг формата входных данных = '2'
(текст), если флаг режима = '1' или '2',
то n = кратно 8.
MAC 8 H
или
16 H
Проверяемый MAC
Длина данного поля определяется
значением поля 'Размер MAC'
Модуль безопасности платежных систем. Руководство разработчика | 311
Поле Длина и тип Описание
Командное сообщение
Только если Флаг режима = '1' или '3'.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘M9’.
Код ошибки 2 A 00 – нет ошибок;
01 – ошибка проверки MAC;
02 – недопустимый флаг режима;
03 – недопустимый флаг формата
входных данных;
04 – недопуcтимый алгоритм MAC;
05 – недопустимый тип ключа;
06 – недопустимая длина сообщения;
09 – недопустимый метод паддинга;
10 – ошибка четности ключа MAC;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
IV 16 H
или
32 H
Промежуточный IV.
Должен входить во входные данные
для генерации MAC за следующий
блок данных (сообщение).
Модуль безопасности платежных систем. Руководство разработчика | 312
Вычисление значения Хэш-функции за блок данных (GМ)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Вычисление значения Хэш-функции за блок данных.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘GM’.
Идентификатор
алгоритма Хэш
2 N Идентификатор алгоритма
Хэш-функции:
‘01’ : SHA-1;
‘06’: SHA-256.
Длина данных 5 N Длина блока данных для вычисления
Хэш-функции.
Блок данных n B Блок данных для вычисления
Хэш-функции.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘GN’.
Код ошибки 2 А 00 – нет ошибок;
05 – недопустимый идентификатор
алгоритма Хэш;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1)
Значение Хэш-функции n B Вычисленное значение Хэш-функции в
соответствии с алгоритмом.
Модуль безопасности платежных систем. Руководство разработчика | 313
Проведение диагностики (NC)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Выполнение диагностики. Расчет контрольного значения за LMK.
Вывод полученного контрольного значения и идентификатора
загруженного платежного приложения.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений
Код команды 2 А ‘NC’
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘ND’.
Код ошибки 2 A 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1)
Контрольное значение 16 N Контрольное значение LMK
Номер прошивки 9 A Номер прошивки в виде:
xxxx-xxxx
Модуль безопасности платежных систем. Руководство разработчика | 314
Статус HSM (NO)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Получение информации о статусе HSM.
Примечание: Режимы ‘00’ и ‘01’ доступны, все остальные резервные для
будущего использования.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘NO’.
Флаг режима 2 H Доступные значения флага:
‘00’ : возвращает информацию о
статусе;
От '01' до 'FF' : резерв для будущего
использования
Модуль безопасности платежных систем. Руководство разработчика | 315
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘NP’.
Код ошибки 2 A 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Выход режима 00
Зарезервировано
1 N Для будущего использования
Зарезервировано
1 N Для будущего использования.
Зарезервировано
2 N Для будущего использования.
Версия 9 A Номер версии в формате: xxxx-xxxx
Зарезервировано 1 N Для будущего использования.
Зарезервировано 4 A Для будущего использования.
Выход режима 01
Зарезервировано
1 N Для будущего использования.
Зарезервировано 10A Для будущего использования.
Модуль безопасности платежных систем. Руководство разработчика | 316
Проверка динамического CVV/CVC (PM)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Проверка a Dynamic Card Verification Value (dCVV) или Card
Verification Code (dCVC).
Примечания: Данные EMV "Track 2 Equivalent Data", полученные в сообщении
авторизации от бесконтактных смарт-карт, используются для
получения данных:
• PAN
• Expiration Date
• Service Code
• ATC
• DCVV
Проверка CVC3 требует IVCVC3, который представляет собой
MAC, вычисленный за статическую часть Track1 или Track1
данных с использованием DK-CVC3. IVCVC3 подается на вход
команды или может быть вычислен в процессе проверки, если
предоставляются данные соответствующего трека.
PINCVC3 - вариант стандартной схемы CVC3. Приложение для
мобильных MasterCard PayPass M/Chip генерирует PINCVC3
вместо CVC3 при вводе PIN-кода на мобильном устройстве.
Другой IV (известный как PINIVCVC3) используется в данной
проверке. Расчет PINCVC3 идентичен CVC3.
Вычисленный динамический CVV выводится в хост, если
возвращаемый код ошибки 01 и HSM находится в авторизованном
состоянии.
Модуль безопасности платежных систем. Руководство разработчика | 317
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений
Код команды 2 А ‘PM’.
ID типа карты 1 N Идентификатор типа карты:
‘0’: Visa;
‘1’: MasterCard;
‘2’: American Express.
Версия 1 N Для ID типа карты = ‘0’:
‘0’ : проверка Visa DCVV.
Для ID схемы = ‘1’:
‘0’ : проверка MasterCard PayPass
CVC3. IVCVC3 подается на
вход (PSN=0);
‘1’ : проверка MasterCard PayPass
CVC3. PSN и IVCVC3
подаются на вход;
‘2’ : проверка MasterCard PayPass
CVC3. PSN подается на вход,
IVCVC3 вычисляется по
данным магнитной полосы;
‘3’ : проверка MasterCard PayPass
PINCVC3. PSN подается на
вход, IVCVC3 вычисляется по
данным магнитной полосы.
Для ID схемы = ‘2’:
‘0’ : проверка American Express
ExpressPay согласно
ExpressPay 2.0 specifications.
MK-DCVV 32 H
или
1 A + 32/48 H
или
Для вариантных LMK:
Для ID типа карты =’0’ или ‘2’ в
качестве 'MK-DCVV’ берется
MK-AC, зашифрованный под LMK
28-29 вариант 1.
Для ID схемы =’1’ в качестве
'MK-DCVV’ берется MK-CVC3,
зашифрованный под LMK 28-29
Модуль безопасности платежных систем. Руководство разработчика | 318
Поле Длина и тип Описание
Командное сообщение
вариант 7.
1 A + n A Для Keyblock LMK:
- при cхеме ID=’0’ или ‘2’
'MK-DCVV' допустимы значения
полей:
Key Usage Algorithm Mode of Use
‘E0’ ‘T’ ‘N’
- при cхеме ID=’1’ или ‘3’ 'MK-
DCVV' допустимы значения полей:
Key
Usage
Algorithm Mode of
Use
‘E6’, ‘32’ ‘T’ ‘N’
Метод выработки ключа 1 А Метод, который используется для
выработки уникального ключа
карты из мастер-ключа:
‘A’ : EMV 4.1 Book 2 Option A
method;
‘B’ : EMV 4.1 Book 2 Option B
method.
PAN n N Primary Account Number карты.
Максимальная длина PAN для ID
типа карты 0 (Visa) – 16 цифр.
Максимальная длина PAN для ID
схемы 1 (MasterCard) – 19 цифр.
Разделитель 1 А Значение ‘;’.
PAN Sequence № 2 N Sequence Number карты.
Если значение неизвестно (не
используется), то подается ‘00’
Представлено только для:
• типа 1 версии 1;
• типа 1 версии 2;
• типа 2.
Модуль безопасности платежных систем. Руководство разработчика | 319
Поле Длина и тип Описание
Командное сообщение С
хем
а ‘0
’(V
isa
DC
VV
)
1) Expiration Date 4 N Дата истечения срока действия
карты.
2) Service Code 3 N Service Code трека 2 карты.
3) ATC 6 N Application Transaction Counter
(счетчик транзакций приложения).
Если ATC меньше 6 цифр, то
значение счетчика выравнивается
по правому краю, а слева
дополняется нулями.
4) DCVV 3 N Динамический CVV для проверки.
Схем
а ‘1
’(M
aste
rCar
d P
ayP
ass)
Версия ‘0’
или
‘1’
1) IVCVC3 5 N Определяемый эмитентом
статический элемент данных.
Максимальная длина ‘65535’ (2
байта).
Версия ‘2’
или
‘3’
1a) Длина
данных
трека
3 N Длина следующего поля.
1b)
Данные
трека
n N Статические данные трека (1 или
2).
2) Unpredictable Number
10 N
или
8 D
Случайное число, генерируемое
терминалом и передаваемое на
карту во время транзакции PayPass.
Альтернативный формат 4-байтовое
двоично-десятичное представление
(BCD). Максимальное значение
‘4294967295’ (4 байта).
3) ATC 5 N Десятичное значение Application
Transaction Counter (счетчика
транзакций приложения).
Максимальное значение ‘65535’
(2 байта).
4) CVC3/PINCVC3 5 A CVC3 или PINCVC3 для проверки.
Это поле может содержать вначале
символы ‘X’, которые указывают,
что CVC3/PINCVC3 содержит
менее 5 цифр.
Модуль безопасности платежных систем. Руководство разработчика | 320
Поле Длина и тип Описание
Командное сообщение
Символы ‘X’ не сравниваются с
расчетным значением
CVC3/PINCVC3. Например,
СVC3/PINCVC3 ‘XX123’
соответствует вычисленному ‘87123’.
Максимальное значение ‘65535’
(десятичное представление 2 байтов).
Схем
а ‘2
’(E
xpre
ssP
ay)
Длина данных
транзакции
2 H Длина следующего поля.
Принимает значения от ‘01’ (1) до
‘FF’ (255)
Данные транзакции n B Данные переменной длины.
Если данные не кратны 8 байтам,
то дополнение нулями.
Разделитель 1 A ‘;’. Разделитель, указывающий на
окончание данных транзакции.
Криптограмма 5 N Криптограмма для проверки.
Схем
а ‘3
’ (D
isco
ver
)
ATC
4 N Десятичное значение Application
Transaction Counter (счетчика
транзакций приложения)
Unpredictable Number 2 N Значение случайного числа,
генерируемое терминалом и
передаваемое на карту во время
транзакции PayPass
Extended
Unpredictable Number
6 N Значение Extended Unpredictable
Number, в формате BCD,
выравненное вправо и дополненное
нулями. Только для Version = ‘1’.
DCVV 3 N Динамический CVV для проверки.
Только для версии = ‘0’.
DCVV Plus Length 1 N Длина DCVV Plus.
Только для версии = ‘1’.
DCVV Plus n N DCVV Plus. Длина определяется по
предыдущему полю.
Только для версии = ‘1’.
Модуль безопасности платежных систем. Руководство разработчика | 321
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘PN’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат
проверки DCVV;
05 – неверный тип карты,
идентификатор версии или метода
выработки ключа;
10 – ошибка четности MK-AC;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Диагностические данные 3 N (схема 0)
или
5 N (схема 1)
Вычисленная DCVV/CVC3/
PINCVC3/Cryptogram.
Только, если код ошибки 01, и HSM в
авторизованном состоянии.
DCVV Plus Diagnostic
Data
n N Вычисление DCVV Plus. The length is
determined by the DCVV Plus Length
field in the command. Only present if
Scheme = ‘3’ and Version = ‘1’ and
Error Code ‘01’ is returned and the HSM
is in Authorized state
Модуль безопасности платежных систем. Руководство разработчика | 322
Перешифрование KEYVAL (RW)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Не требуется Не требуется
Функция: Перешифрование KEYVAL из-под LMK под ZPK. Вывод полученной
шифрограммы в хост.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений
Код команды 2 А ‘RW’
ZPK 16 H
или
1 A + 32/48 H
Используется для зашифрования
KEYVAL. ZPK должен быть
зашифрован под LMK 06-07
или
1 A + n A
Для Keyblock LMK допустимы
значения полей ‘ZPK’:
Key Usage Algorithm Mode of
Use
‘P0’, ‘72’ ‘D’, ‘T’ ‘B’, ‘E’
или ‘N’
KEYVAL 16 H
или
1 A + 32 H
KEYVAL для перешифрования,
зашифрованный под LMK 14-15
вариант 0
Модуль безопасности платежных систем. Руководство разработчика | 323
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘RX’
Код ошибки 2 A 00 – нет ошибок;
10 – ошибка четности ZPK;
11 – ошибка четности KEYVAL;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
KEYVAL 16 H KEYVAL, зашифрованный под ZPK.
Модуль безопасности платежных систем. Руководство разработчика | 324
4.5. Команды лицензии «Печать PIN-конвертов» (PIN and Key
Printing License - LIC002)
4.5.1. Перечень команд лицензии «Печать PIN-конвертов»
В Таблица 23 - Перечень команд лицензии «Печать PIN конвертов»
приведен перечень команд лицензии «Печать PIN-конвертов» (LIC002).
Таблица 23 - Перечень команд лицензии «Печать PIN конвертов»
Команда
(ответ)
Функция
A2 (A3, AZ) Генерация и печать компонент
NE (NF, NZ) Генерация ключа и печать в виде Split компонент
PA (PB) Загрузка шаблонов печати PIN
PE (PF, PZ) Печать PIN
4.55.2. Описание команд лицензии «Печать PIN-конвертов»
Генерация и печать компонент (A2)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC002 LIC002
Авторизация: Требуется Требуется
Функция: Генерация случайных компонент, печать компонент и вывод в
зашифрованном виде в хост.
Примечания: Формат печати уже должен быть загружен в HSM (команда PA).
Для ключа одинарной длины, ключ разделяется на две половины по
8 символов. ^ P и ^ Q в формате печати обозначают левую и правую
половины соответственно.
Для ключа двойной длины, ^ P и ^ Q в формате печати обозначают
первый и второй ключ соответственно.
Для ключа тройной длины, ^ P ^ Q и ^ R в формате печати
обозначают первый, второй и третий ключ, соответственно.
^ T в формате печати обозначает проверочное значение ключа.
Модуль безопасности платежных систем. Руководство разработчика | 325
Формат:
Поле Длина и
тип
Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений.
Код команды 2 А ‘A2’.
Тип ключа 3 H Тип генерируемого ключа (см.
Таблица 7).
Это поле игнорируется, должен
быть установлено значение "FFF"
Флаг проверочной величины
компоненты
1 A Опционально. Если представлен,
то указывает, возвращается ли
проверочная величина
компоненты в ответе.
Ключевая схема (LMK) 1 A Ключевая схема шифрования
компоненты ключа под LMK (см.
Таблица 9).
Поле печати 0 n A Поле в формате печати,
определенное как нулевое (не
должно содержать символ ‘; ’).
Разделитель 1 А Значение ‘; ’.
Поле печати 1 n A Поле в формате печати,
определенное как первое (не
должно содержать символ ‘; ’).
…
…
…
Последнее поле печати n A Поле в формате печати,
определенное как последнее (не
должно содержать символы ‘; ’ и
‘~’).
Разделитель 1 A Значение ‘#’. Требуется при
генерации Keyblock. Если
представлено, то должны быть
поля, приведенные ниже.
Модуль безопасности платежных систем. Руководство разработчика | 326
Поле Длина и
тип
Описание
Пр
им
еняет
ся т
ольк
о п
ри
со
здан
ии
ко
мп
он
енто
в в
фо
рм
ате
Key
blo
ck
Использование ключа (Key
Usage)
2 A Значение поля Key Usage для
заголовка импортируемого
Keyblock (см. Таблица 13 по типу
ключа). Представлено, если
присутствует поле Разделитель.
Алгоритм 2 A Алгоритм и длина ключа.
Значения поля Algorithm для
включения в заголовок Keyblock.
Представлено, если присутствует
поле Разделитель. Возможные
значения:
‘D1’ – DES ключ одинарной
длины
‘T2’ – DES ключ двойной длины
‘T3' – DES ключ тройной длины
‘A1’ – 128-битный AES ключ
‘A2’ – 192-битный AES ключ
‘A3’ – 256-битный AES ключ
Режим использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock
(см. Таблица 15 по типу ключа)
Представлено, если присутствует
поле Разделитель.
Номер версии ключа (Key
Version Number)
2 N Значения поля Key Version
Number для включения в
заголовок Keyblock. Возможные
значения от ‘c0’ до ‘c9’.
Представлено, если присутствует
поле Разделитель
Экспортируемость
(Exportability)
1 А Значения поля экспортируемость
для заголовка Keyblock (см.
Таблица 17). Представлено, если
присутствует поле Разделитель.
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения
от ‘00’ до ‘06’. Представлено,
если присутствует поле
Разделитель.
Модуль безопасности платежных систем. Руководство разработчика | 327
Поле Длина и
тип
Описание
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока (см. Таблица 18 - любое
допустимое значение, кроме ‘03’,
‘04’, ‘PB’)
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля
идентификатора и длины).
Возможные значения от X’04’ до
X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 328
Поле Длина и тип Описание
Ответное сообщение (перед печатью)
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘A3’.
Код ошибки 2 А 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Компонента ключа Компонента ключа, зашифрованная
под LMK
16 H
или
1 A + 32/48 H
Для вариантных LMK:
В соответствии с типом ключа.
или
1 A + n A
Компонента ключа, зашифрованная в
соотвествии с форматом KeyBlock
LMK
Проверочная величина
компоненты
6 H Проверочная величина компоненты
ключа. Представлена, если флаг
проверочной величины = ‘2’.
Поле Длина и тип Описание
Ответное сообщение (после печати)
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 A ‘AZ’.
Код ошибки 2 N 00 – нет ошибок;
16 – Принтер не готов/не подключен;
41 – ошибка внешнего
оборудования;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 329
Генерация ключа и печать в виде Split компонент (NE)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC001 LIC001
Авторизация: Требуется Требуется
Функция: Генерация ключа DES заданного типа и вывод на печать в виде двух
или трех компонент.
Примечание: Требуется авторизация, подключение принтера и загрузка
формата печати.
Для ключа одинарной длины, ключ разделяется на две половины по
8 символов. ^ P и ^ Q в формате печати обозначают левую и правую
половины соответственно.
Для ключа двойной длины, ^ P и ^ Q в формате печати обозначают
первый и второй ключ соответственно.
Для ключа тройной длины, ^ P ^ Q и ^ R в формате печати
обозначают первый, второй и третий ключ, соответственно.
^ T в формате печати обозначает проверочное значение ключа.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘NE’.
Тип ключа 3 H Тип генерируемого ключа
Для вариантного LMK: (см. Таблица 7).
Для Keyblock LMK поле игнорируется.
Можно присвоить значение ‘FFF’
Ключевая схема (LMK) 1 A Схема шифрования ключей под LMK
(см. Таблица 9).
Модуль безопасности платежных систем. Руководство разработчика | 330
Поле Длина и тип Описание
Командное сообщение
Поле печати 0 n A Поле печати определяется как 'Поле
печати 0' формата печати (не должно
содержать символа ';').
Разделитель 1 A Значение ';'.
Поле печати 1 n A Поле печати определяется как 'Поле
печати 1' формата печати (не должно
содержать символа ';').
… … ...
Последнее поле печати
n A
Последнее поле печати определяется в
формате печати (не должно содержать
символов ';' или '~').
Пр
им
еняет
ся т
ольк
о д
ля г
енер
аци
и и
эксп
ор
та в
фо
рм
ате
Key
blo
ck
Разделитель 1 A Значение '#'. Требуется при генерации
Keyblock. Если представлено, то
должны быть поля, приведенные ниже
Назначение ключа
(Key Usage)
2 A Значение поля Key Usage для
включения в заголовок Keyblock (см.
Таблица 13 по типу ключа).
Представлено, если присутствует поле
Разделитель
Алгоритм
(Algorithm)
2 A Алгоритм и длина ключа. Значения
поля Algorithm для включения в
заголовок Keyblock. Представлено,
если присутствует поле Разделитель.
Возможные значения:
‘D1’ – DES ключ одинарной длины
‘T2’ – DES ключ двойной длины
‘T3' – DES ключ тройной длины
‘A1’ – 128-битный AES ключ
‘A2’ – 192-битный AES ключ
‘A3’ – 256-битный AES ключ
Режим
использования
(Mode of Use)
1 A Значения поля Mode of Use для
включения в заголовок Keyblock (см.
Таблица 15). Представлено, если
присутствует поле Разделитель
Модуль безопасности платежных систем. Руководство разработчика | 331
Поле Длина и тип Описание
Командное сообщение П
ри
мен
яет
ся т
ольк
о д
ля г
енер
аци
и и
эксп
орта
в ф
орм
ате
Key
blo
ck
Номер версии
ключа (Key Version
Number)
2 N Значения поля Key Version Number для
включения в заголовок Keyblock.
Возможные значения от ‘00’ до ‘99’ (см.
Таблица 16). Представлено, если
присутствует поле Разделитель
Экспортируемость
(Exportability)
1 А Значения поля для заголовка Keyblock
(см. Таблица 17). Представлено, если
присутствует поле Разделитель.
Число
опциональных
блоков
2 N Число опциональных блоков Keyblock.
Значение ‘00’ (использование других
значений зарезервировано для
будущего использования).
Представлено, если присутствует поле
Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального
блока
2 A Идентификатор опционального блока.
Любое допустимое значение, кроме
‘PB’ (см. Таблица 18).
Длина
опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и
длины). Возможные значения от X’04’
до X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный
блок
n A Опциональный блок данных.
Модуль безопасности платежных систем. Руководство разработчика | 332
Поле Длина и тип Описание
Ответное сообщение (до печати)
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘NF’.
Код ошибки 2 A 00 – нет ошибок;
16 – принтер не готов/не подключен;
18 – формат печати не загружен;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Ключ Новый ключ, зашифрованный под
LMK..
16 H
или
1 A + 32/48 H
Ключ зашифрован под парой /
вариантом LMK, определяемой
значением поля 'Тип ключа'
или
1 A + n A
Для Keyblock LMK ключи
зашифрованы под LMK.
Контрольное значение 6 H Контрольное значение.
Поле Длина и тип Описание
Ответное сообщение (после печати)
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘NZ’.
Код ошибки 2 A 00 – нет ошибок;
16 – принтер не готов/не подключен;
41 – внутренняя ошибка оборудования
или программного обеспечения;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 333
Печать данных (OA)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC002 LIC002
Авторизация: Требуется Требуется
Функция: Печать данных с использованием подключенного к ViPNet HSM PS
принтера в соответствии с загруженным шаблоном.
Примечание: Требуется авторизация, подключение принтера и загрузка
формата печати.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘OA’.
Тип документа 1 A 'A': печать первого документа (при
размещении 2-х документов на листе)
'B': печать второго документа (при
размещении 2-х документов на листе)
'C': печать документа (при размещении
одного документа на листе).
Номер счета (Account
Number)
12 N 12 правых цифр номера счета, исключая
контрольную цифру
Print Field 0 n A Поле печати, заданное как Print Field 0 в
шаблоне формата печати (не должно
содержать символ ';').
Разделитель 1 A Значение ';'.
Print Field 1 n A Поле печати, заданное как Print Field 1 в
шаблоне формата печати (не должно
содержать символ ';').
Разделитель 1 A Значение ';'.
…
Последнее поле печати
…
n A
…
Последнее поле печати в определении
формата печати (не должно содержать
символ ';' или '~').
Модуль безопасности платежных систем. Руководство разработчика | 334
Поле Длина и тип Описание
Разделитель 1 A Значение '~'.
Поле Длина и тип Описание
Ответное сообщение (до печати)
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘OB’.
Код ошибки 2 A 00 – нет ошибок;
68 – команда отключена;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Поле Длина и тип Описание
Ответное сообщение (после печати)
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘OZ’.
Код ошибки 2 A 00 – нет ошибок;
16 – принтер не готов / не
подсоединен;
41 – внутренняя ошибка
оборудования или программного
обеспечения;
68 – команда отключена;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 335
Загрузка шаблонов печати PIN (PA)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC002 LIC002
Авторизация: Не требуется Не требуется
Функция: Загрузка шаблона печати PIN-конверта в оперативную память HSM.
Примечание: HSM может хранить не более 299 символов и констант.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений
Код команды 2 А ‘PA’.
Данные n A Данные шаблона печати.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘PB’.
Код ошибки
2 A
00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 336
Печать PIN (PE)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC002 LIC002
Авторизация: Требуется Требуется
Функция: Расшифрование PIN из-под LMK и печать PIN в PIN-конверт в
соответствии с загруженным шаблоном.
Примечание: Требуется авторизация, подключение принтера и загрузка
формата печати.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘PE’.
Тип документа 1 A 'A' : печать первого документа (при
размещении 2-х документов на листе);
'B' : печать второго документа (при
размещении 2-х документов на листе);
'C' : печать документа (при размещении
одного документа на листе).
Номер аккаунта 12 N 12 правых цифр номера аккаунта,
исключая контрольный разряд
PIN PIN, зашифрованный под LMK.
L N
Для вариантных LMK 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Для Keyblock LMK - 3-DES:
Длина зашифрованного PIN-кода
составляет L цифр, где L определяется
настройкой безопасности «Длина PIN-
кода».
Модуль безопасности платежных систем. Руководство разработчика | 337
Поле Длина и тип Описание
или
1 A + 32 H
Для Keyblock LMK – AES: это поле
должно состоять из «J», за которым идут
32 шестнадцатеричных символа.
Print Field 0 n A Поле печати определяется как Print Field
0 в определении формата печати (не
должно содержать символ ';').
Разделитель 1 A Значение ';'.
Print Field 1 n A Поле печати определяется как Print Field
0 в определении формата печати (не
должно содержать символ ';')
Разделитель 1 A Значение ';'.
…
Последнее поле печати
…
n A
…
Последнее поле печати в определении
формата печати (не должно содержать
символ ';' или '~').
Модуль безопасности платежных систем. Руководство разработчика | 338
Поле Длина и тип Описание
Ответное сообщение (до печати)
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘PF’.
Код ошибки 2 A 00 – нет ошибок;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
Контрольное значение
PIN и контрольное число
L + 12 N Заполняется '0'. Зарезервировано.
Поле Длина и тип Описание
Ответное сообщение (после печати)
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘PZ’.
Код ошибки 2 A 00 – нет ошибок;
16 – принтер не готов / не
подсоединен;
41 – внутренняя ошибка
оборудования или программного
обеспечения;
98 – команда недоступна
или стандартный код ошибки
(см. Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 339
4.6. Команды лицензии «Предперсонализация карт» (Card Data
Preparation License - LIC003)
4.66.1. Перечень команд лицензии «Предперсонализация карт»
Таблица 24 - Перечень команд лицензии «Предперсонализация карт»
показывает перечень команд лицензии «Предперсонализация карт» (LIC003).
Таблица 24 - Перечень команд лицензии «Предперсонализация карт»
Команда
(ответ)
Функция Лист
HK (HL) Генерация подписи данных статической
аутентификации
341
IU (IV) Генерация RSA пары (секретный/открытый ключ)
эмитента (VISA)
343
IW (IX) Проверка самоподписанного сертификата корневого
УЦ (VISA)
346
IY (IZ) Проверка сертификата открытого ключа эмитента
(VISA)
348
JM (JN) Генерация RSA пары (секретный/открытый ключ)
эмитента (MasterCard)
352
JO (JP) Проверка самоподписанного сертификата корневого
УЦ (MasterCard)
355
JQ (JR) Проверка сертификата открытого ключа эмитента
(MasterCard)
357
K8 (K9) Экспорт ключа под KEK 361
KE (KF) Генерация RSA пары (секретный/открытый ключ) и
сертификата эмитента
363
KG (KH) Проверка сертификата открытого ключа эмитента 368
KI (KJ) Генерация мастер-ключей карты 372
KK (KL) Проверка самоподписанного сертификата корневого
УЦ
375
KM (KN) Генерация подписи данных статической
аутентификации (SDA)
377
KO (KP) Генерация RSA пары (секретный/открытый ключ) и
сертификата карты
380
SI (SJ) Диверсификация данных для записи на карту 388
XK (XL) Зашифрование данных транзакции 390
YO (YP) Генерация случайного числа 393
Модуль безопасности платежных систем. Руководство разработчика | 340
Команда
(ответ)
Функция Лист
YS (YT) Диверсификация ключа 394
YW (YX) Экспорт ключа под KEK 397
YY (YZ) Зашифрование данных 399
ZA (ZB) Импорт ключа под KEK 401
ZC (ZD) Расшифрование данных 403
ZK (ZL) Генерация или проверка МАС 405
ZU (ZV) Сборка сертификата открытого ключа карты (ICC) из
элементов
408
ZW (ZX) Генерация ключевой пары карты (ICC) 411
ZY (ZZ) Генерация производных ключей карты 415
Модуль безопасности платежных систем. Руководство разработчика | 341
4.66.2. Описание команд лицензии «Предперсонализация карт»
Генерация подписи данных статической аутентификации (HK)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Подпись данных карты с использованием секретного ключа эмитента
с опциональной генерацией DAC (Data Authentication Code).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘HK’.
Идентификатор Хэш 2 N Идентификатор алгоритма вычисления
Хэш-функции:
‘01’ : SHA-1.
Код данных
аутентификации (DAC)
2 B В случае вычисления DAC данное поле
игнорируется.
Длина данных 4 N Длина поля данных статической
аутентификации.
Данные статической
аутентификации
n B Данные статической аутентификации
Разделитель 1 A Значение ‘;’. Указывает на конец поля
данных статической аутентификации
Индекс секретного
ключа
2 N Индекс, указывающий расположение
секретного ключа:
‘00’…’20’ : индекс ключа в
долговременной памяти HSM;
‘99’ : использование ключа,
подаваемого во входных данных
команды.
Длина секретного ключа 4 N Длина (в байтах) секретного ключа
(если индекс ключа = ‘99’).
Модуль безопасности платежных систем. Руководство разработчика | 342
Поле Длина и тип Описание
Командное сообщение
Секретный ключ n B Секретный ключ, зашифрованный под
LMK 34-35 (если индекс
ключа = ‘99’).
Разделитель 1 A Опционально. Значение “;’. Указывает
наличие следующих двух полей для
вычисления DAC.
PAN/PAN Sequence No 8 B Опционально. PAN или PAN Sequence
Number, предварительно
переформатированный в 8-байтовое
поле.
IMKDAC(LMK) 32 H
или
1 A + 32/48 H
Опционально. Мастер-ключ эмитента
для DAC, зашифрованный под LMK
28-29 вариант 6.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘HL’.
Код ошибки 2 А 00 – нет ошибок;
10 – ошибка четности IMKDAC;
13 – ошибка LMK;
49 – ошибка секретного ключа;
50 – ошибка индекса секретного
ключа;
78 – ошибка длины секретного ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Длина подписи 4 N Длина (в байтах) подписи.
Подпись n B Подпись.
Модуль безопасности платежных систем. Руководство разработчика | 343
Генерация RSA пары (секретный/открытый ключ) эмитента
(VISA) (IU)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Генерация RSA пары (секретный/открытый ключ) и
самоподписанного EMV-сертификата эмитента (запроса на
сертификацию) в формате VISA. Для применения в Visa Cash и
VSDC.
Примечание: Если функция используется для генерации RSA пары для Visa
Cash, то в качестве идентификатора алгоритма подписи должно быть
указано ‘03’. 1 байт из 11 байтов блока данных должен быть ‘60’
(Visa Service Identifier = Visa Cash), а поле открытой экспоненты
должно отсутствовать.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘IU’.
Идентификатор Хэш 2 N Идентификатор алгоритма Хэш:
‘01’ : SHA-1.
Идентификатор
алгоритма подписи
2 N Идентификатор алгоритм подписи:
‘01’ : RSA;
‘03’ : RSA с экспонентой 65535
(Visa Cash).
Длина ключа 4 N Длина модуля в битах (должна быть
кратна 8).
Минимальное значение =‘0400’.
Максимальное значение =‘2040’
Модуль безопасности платежных систем. Руководство разработчика | 344
Поле Длина и тип Описание
Командное сообщение
Блок данных 11 B Блок данных для включения в
самоподписанный сертификат (запрос):
Visa Service Identifier, Certificate Format,
Issuer Identification Number and
Certificate Expiration Date (см.
Приложение 2).
Tracking Number 3 D 6 цифр Tracking Number для включения
в самоподписанный сертификат (см.
Приложение 2).
Данные аутентификации n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Разделитель 1 A Разделитель, указывающий на конец
данных аутентификации. Значение ‘;’.
Длина открытой
экспоненты
4 N Опционально. Не должно
присутствовать, если идентификатор
алгоритма подписи ’03’.
Указывает длину открытой экспоненты
в битах.
Открытая экспонента n B Опционально. Должно быть нечетное
значение. Если не указано, то
полагается 65537.
Модуль безопасности платежных систем. Руководство разработчика | 345
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘IV’.
Код ошибки 2 А 00 – нет ошибок;
02 – ошибка длины ключа;
50 – недопустимый идентификатор
алгоритма подписи;
51 – несовместимый идентификатор
алгоритма подписи;
52 – ошибка длины открытой
экспоненты;
53 – открытая экспонента – четная;
79 – недопустимый идентификатор
Хэш-функции;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ
и данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ, закодированный в
DER в формате ASN.1.
Размер сертификата 4 N Размер самоподписанного сертификата (в
байтах).
Самоподписанный
сертификат (заявка)
n B Самоподписанный сертификат (заявка)
(см. Приложение 2).
Длина Хэш 2 N Длина следующего поля (в
шестнадцатиричных символах). Для
SHA-1 – ‘40’.
Хэш n H Значение Хэш за данные
самоподписанного сертификата.
Длина секретного ключа 4 N Длина (в байтах) следующего поля.
Секретный ключ n B Секретный ключ, зашифрованный под
LMK 34-35.
Модуль безопасности платежных систем. Руководство разработчика | 346
Проверка самоподписанного сертификата корневого УЦ (VISA)
(IW)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Проверка самоподписанного сертификата корневого
удостоверяющего центра (УЦ) в формате VISA.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘IW’.
Размер сертификата 4 N Размер самоподписанного сертификата
УЦ (в байтах).
Самоподписанный
сертификат УЦ
n B Самоподписанный сертификат УЦ
(см. Приложение 2).
Разделитель 1 A Разделитель. Значение ‘;’.
Данные
аутентификации
n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Модуль безопасности платежных систем. Руководство разработчика | 347
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘IX’.
Код ошибки 2 А 00 – нет ошибок;
02 – ошибка длины ключа;
51 – ошибка проверки Хэш (не
подписанная часть);
52 – ошибка проверки Хэш
(подписанная часть);
79 – недопустимый идентификатор
Хэш-функции;
80 – ошибка размера сертификата;
81 – недопустимый формат
сертификата;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ
и данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ, закодированный в
DER в формате ASN.1.
Срок действия 2 D Дата окончания срока действия
сертификата (ММГГ).
Модуль безопасности платежных систем. Руководство разработчика | 348
Проверка сертификата открытого ключа эмитента (VISA) (IY)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Проверка сертификата открытого ключа эмитента в формате VISA и
вывод в хост открытого ключа и вычисленного MAC.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘IY’.
MAC 4 B MAC за открытый ключ корневого УЦ и
данные аутентификации, вычисленный
с использованием
LMK 36-37.
Открытый ключ УЦ n B Открытый ключ УЦ, закодированный в
DER в формате ASN.1.
Данные аутентификации
УЦ
n A Опционально. Данные, которые могут
быть добавлены к открытому ключу УЦ
для вычисления MAC (не должны
содержать ‘;’).
Разделитель 1 A Разделитель, указывающий на конец
поля данных аутентификации. Значение
‘;’.
Размер сертификата
эмитента
4 N Размер сертификата эмитента (в
байтах).
Смещение открытого
ключа в сертификате
4 N ‘0000’ или смещение начала открытого
ключа эмитента в сертификате.
Сертификат эмитента n B Сертификат эмитента
(см. Приложение 2).
Разделитель 1 A Разделитель, указывающий на конец
поля сертификата. Значение ‘;’
Данные аутентификации
эмитента
n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Модуль безопасности платежных систем. Руководство разработчика | 349
Поле Длина и тип Описание
Командное сообщение
Разделитель 1 A Разделитель, указывающий на конец
поля данных аутентификации. Значение
‘;’.
Длина секретного ключа 4 N Опционально. Длина (в байтах)
секретного ключа.
Секретный ключ n B Опционально. Секретный ключ
эмитента, зашифрованный под
LMK 34-35.
Разделитель 1 A Разделитель, указывающий на конец
поля секретного ключа. Значение ‘;’.
Длина подписи
(отдельно)
4 N Опционально. Длина (в байтах) подписи
(отдельно).
Подпись n B Подпись за отдельные поля
сертификата эмитента, созданная с
использованием секретного ключа УЦ.
Модуль безопасности платежных систем. Руководство разработчика | 350
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘IZ’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
MAC;
02 – отрицательный результат проверки
Хэш;
03 – недопустимый формат
сертификата;
05 – недопустимый алгоритм Хэш;
09 – несовместимый идентификатор
алгоритма подписи;
49 – ошибка секретного ключа;
75 – несоответствие открытого ключа
секретному;
76 – ошибка длины открытого ключа;
77 – неверный формат подписи
(отдельной);
78 – ошибка длины секретного ключа;
79 – ошибка подписи (отдельной):
неверный Object ID;
80 – ошибка размера сертификата;
81 – ошибка длины подписи
(отдельной);
82 – неверный сертификат открытого
ключа;
83 – ошибка подписи (отдельной);
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ
эмитента и данные аутентификации с
использованием LMK 36-37.
Модуль безопасности платежных систем. Руководство разработчика | 351
Поле Длина и тип Описание
Ответное сообщение
Открытый ключ
эмитента
n B Открытый ключ, закодированный в
DER в формате ASN.1.
Длина Хэш 2 N Длина (в шестнадцатиричном формате)
следующего поля. Для SHA-1 – ‘40’.
Хэш n H
Значение Хэш-функции, вычисленное
за открытый ключ эмитента и
сопутствующие данные
(см. Приложение 2).
Модуль безопасности платежных систем. Руководство разработчика | 352
Генерация RSA пары (секретный/открытый ключ) эмитента
(MasterCard) (JM)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Генерация RSA пары (секретный/открытый ключ) и
самоподписанного EMV-сертификата эмитента (запроса на
сертификацию) в формате MasterCard.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JM’.
Идентификатор Хэш 2 N Идентификатор алгоритма Хэш:
‘01’ : SHA-1.
Идентификатор
алгоритма подписи
2 N Идентификатор алгоритма подписи:
‘01’ : RSA.
Длина ключа 4 N Длина модуля в битах (должна быть
кратна 8).
Минимальное значение =‘0400’.
Максимальное значение =‘2040’.
Блок данных 9 B Блок данных для включения в
самоподписанный сертификат (запрос):
Certificate Subject ID (4 bytes), Expiry
Date (2 bytes) and Certificate Serial
Number (3 bytes). (см. Приложение 2).
Индекс открытого
ключа эмитента
3 B Индекс открытого ключа эмитента (см.
Приложение 2).
Данные аутентификации n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Разделитель 1 A Разделитель, указывающий на конец
данных аутентификации. Значение ‘;’.
Модуль безопасности платежных систем. Руководство разработчика | 353
Поле Длина и тип Описание
Командное сообщение
Длина открытой
экспоненты
4 N Опционально. Указывает длину
открытой экспоненты в битах.
Открытая экспонента n B Опционально. Должно быть нечетное
значение. Если не указано, то
полагается 65537.
Модуль безопасности платежных систем. Руководство разработчика | 354
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘JN’.
Код ошибки 2 А 00 – нет ошибок;
02 – ошибка длины ключа;
08 – недопустимое значение открытой
экспоненты;
50 – недопустимый идентификатор
алгоритма подписи;
52 – ошибка длины открытой
экспоненты;
53 – открытая экспонента – четная;
79 – недопустимый идентификатор
Хэш-функции;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ
и данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ (DER encoded in ASN.1
format).
Размер сертификата 4 N Размер самоподписанного сертификата (в
байтах).
Самоподписанный
сертификат (заявка)
n B Самоподписанный сертификат (заявка)
(см. Приложение 2).
Длина Хэш 2 N Длина следующего поля (в
шестнадцатиричных символах). Для
SHA-1 – ‘40’.
Хэш n H Значение Хэш за данные
самоподписанного сертификата.
Длина секретного ключа 4 N Длина (в байтах) следующего поля.
Секретный ключ n B Секретный ключ, зашифрованный под
LMK 34-35.
Модуль безопасности платежных систем. Руководство разработчика | 355
Проверка самоподписанного сертификата корневого УЦ
(MasterCard) (JO)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Проверка самоподписанного сертификата корневого
удостоверяющего центра (УЦ) в формате MasterCard.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JO’.
Размер сертификата 4 N Размер самоподписанного сертификата
УЦ (в байтах).
Самоподписанный
сертификат УЦ
n B Самоподписанный сертификат УЦ
(см. Приложение 2).
Разделитель 1 A Разделитель. Значение ‘;’.
Данные
аутентификации
n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Модуль безопасности платежных систем. Руководство разработчика | 356
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JP’.
Код ошибки 2 А 00 – нет ошибок;
08 – ошибка открытого ключа;
51 – недопустимый формат
сертификата;
52 – недопустимый ID;
53 – открытая экспонента – четная;
55 – недопустимый алгоритм подписи;
56 – ошибка проверки Хэш;
79 – недопустимый идентификатор
Хэш-функции;
80 – ошибка размера сертификата;
81 – недопустимый формат
сертификата;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ
и данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ кодируется DER в
формате ASN.1.
Длина Хэш 2 N Длина следующего поля (в
шестнадцатиричных символах). Для
SHA-1 – ‘40’
Хэш n H Значение Хэш за данные
самоподписанного сертификата УЦ.
Срок действия 2 D Дата окончания срока действия
сертификата (ММГГ).
Серийный номер
сертификата
3 B Серийный номер самоподписанного
сертификата УЦ.
Модуль безопасности платежных систем. Руководство разработчика | 357
Проверка сертификата открытого ключа эмитента (MasterCard)
(JQ)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Проверка сертификата открытого ключа эмитента в формате
MasterCard и вывод в хост открытого ключа и вычисленного MAC.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JQ’.
MAC 4 B MAC за открытый ключ корневого УЦ и
данные аутентификации, вычисленный
с использованием
LMK 36-37.
Открытый ключ УЦ n B Открытый ключ УЦ (DER encoded in
ASN.1 format).
Данные аутентификации
УЦ
n A Опционально. Данные, которые могут
быть добавлены к открытому ключу УЦ
для вычисления MAC (не должны
содержать ‘;’).
Разделитель 1 A Разделитель, указывающий на конец
поля данных аутентификации. Значение
‘;’.
Размер сертификата
эмитента
4 N Размер сертификата эмитента (в
байтах).
Смещение открытого
ключа в сертификате
4 N Смещение начала открытого ключа
эмитента в сертификате.
Сертификат эмитента n B Сертификат эмитента
(см. Приложение 2).
Разделитель 1 A Разделитель, указывающий на конец
поля сертификата. Значение ‘;’.
Модуль безопасности платежных систем. Руководство разработчика | 358
Поле Длина и тип Описание
Командное сообщение
Данные аутентификации
эмитента
n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Разделитель 1 A Разделитель, указывающий на конец
поля данных аутентификации. Значение
‘;’.
Длина секретного ключа 4 N Опционально. Длина (в байтах)
секретного ключа.
Секретный ключ n B Опционально. Секретный ключ
эмитента, зашифрованный под
LMK 34-35 .
Модуль безопасности платежных систем. Руководство разработчика | 359
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JR’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
MAC;
02 – отрицательный результат проверки
Хэш;
05 – недопустимый алгоритм Хэш;
06 – недопустимый алгоритм подписи;
09 – несовместимый идентификатор
алгоритма подписи;
49 – ошибка секретного ключа;
75 – несоответствие открытого ключа
секретному;
76 – ошибка длины открытого ключа;
78 – ошибка длины секретного ключа;
80 – ошибка размера сертификата;
83 – недопустимый формат
сертификата;
84 – недопустимый ID;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ
эмитента и данные аутентификации с
использованием LMK 36-37.
Открытый ключ
эмитента
n B Открытый ключ (DER encoded in ASN.1
format).
Длина Хэш 2 N Длина (в шестнадцатиричном формате)
следующего поля. Для SHA-1 – ‘40’.
Хэш n H Значение Хэш за открытый ключ и
данные эмитента
Срок действия 2 D Дата окончания срока действия
сертификата (ММГГ)
Модуль безопасности платежных систем. Руководство разработчика | 360
Поле Длина и тип Описание
Ответное сообщение
Серийный номер
сертификата
3 B Серийный номер сертификата эмитента
Модуль безопасности платежных систем. Руководство разработчика | 361
Экспорт ключа под KEK (K8)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Экспорт ключа под KEK для передачи в систему персонализации.
Примечание: Ключевые схемы представлены в Таблица 9.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘K8’.
Тип ключа 3 H Экспортируемые ключи:
‘001’ : ZPK, зашифрованный под LMK
06-07;
'008’ : ZAK, зашифрованный под LMK
26-27;
‘00A’ : ZEK, зашифрованный под LMK
30-31.
Ключ 16 H
или
1 A + 32/48 H
Ключ соответствующего типа,
зашифрованный под LMK.
KEK 32 H
или
1 A + 32/48 H
KEK, зашифрованный под LMK 24-25
вариант 1.
Ключевая схема (KEK) 1 A Схема шифрования ключа под KEK
(см. Таблица 9).
Модуль безопасности платежных систем. Руководство разработчика | 362
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘K9’.
Код ошибки 2 А 00 – нет ошибок;
05 – недопустимый тип ключа;
10 – ошибка четности ключа;
11 – ошибка четности KEK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Ключ (KEK) 8 B
или
1 A + 16/24 B
Ключ, зашифрованный под KEK.
Проверочная величина
ключа
3 B Проверочная величина ключа.
Модуль безопасности платежных систем. Руководство разработчика | 363
Генерация RSA пары (секретный/открытый ключ) и сертификата
эмитента (KE)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Генерация RSA пары (секретный/открытый ключ) и
самоподписанного EMV-сертификата эмитента (заявки на
сертификацию) в специфицированном формате карты.
Или формирование EMV-сертификата эмитента (заявки на
сертификацию) в специфицированном формате карты по ранее
сгенерированной RSA паре (секретный/открытый ключ). В этом
случае проверяется соответствие открытого ключа закрытому.
Примечание: Тип ключа для секретного ключа будет установлен ‘2’ (подпись и
управление ключами). По умолчанию используется значение
открытой экспоненты 65537 (216 +1). Если значение открытой
экспоненты подается на вход команды, то оно должно быть ‘3’
или 65537.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KE’.
Идентификатор типа
карты
1 N Идентификатор типа карты (ПП):
‘0’ : Visa VSDC;
‘1’ : MasterCard;
‘2’ : American Express AEIPS v4.1
Флаг режима 1 N ‘0’ или ‘2’: Генерация ключевой пары и
сертификата;
‘1’ : только генерация сертификата (по
заданной ключевой паре)
Модуль безопасности платежных систем. Руководство разработчика | 364
Поле Длина и тип Описание
Командное сообщение
Идентификатор Хэш 2 N Идентификатор алгоритма Хэш:
‘01’ : SHA-1.
Идентификатор
алгоритма подписи
2 N Идентификатор алгоритма подписи:
‘01’ : RSA.
Если флаг режима ‘0’ или ‘2’, то должны быть представлены следующие 5 полей:
Длина ключа 4 N Длина модуля в битах (должна быть
кратна 8).
Минимальное значение =‘0400’.
Максимальное значение =‘2040’.
Данные аутентификации n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Разделитель 1 A Разделитель. Значение ‘;’.
Длина открытой
экспоненты
4 N Опционально. Указывает длину
открытой экспоненты в битах.
Открытая экспонента n B Опционально. Если не указано, то
полагается 65537.
Если флаг режима = ‘1’, то должны быть представлены следующие 4 поля:
Длина секретного ключа 4 N Длина (в байтах) секретного ключа.
Секретный ключ n B Секретный ключ, зашифрованный под
LMK 34-35.
Разделитель 1 А Разделитель. Значение ‘;’.
Открытый ключ n B Открытый ключ (DER encoded in ASN.1
format).
Должны быть представлены следующие поля:
Разделитель 1 А Разделитель. Значение ‘;’.
Идентификатор
эмитента (BIN)
8 H Выравненные по левому краю 3-8 цифр
PAN, дополненные справа ‘ff’.
Дата окончания срока
действия сертификата
4 N Дата окончания срока действия
сертификата в формате ММГГ.
Модуль безопасности платежных систем. Руководство разработчика | 365
Поле Длина и тип Описание
Командное сообщение
Для типа карты ‘0’ (Visa VSDC) следующие 2 поля должны быть включены в
самоподписанный сертификат (заявку) (см. Приложение 2)
Идентификатор сервиса 8 H Идентификатор, специфицирующий
сервис Visa, дополненный справа
шестнадцатиричными ‘0’.
Tracking Number 6 N 6 цифр Visa Tracking Number.
Для типа карты ‘1’ (MasterCard) следующие 2 поля должны быть включены в
самоподписанный сертификат (заявку) (см. Приложение 2).
Серийный номер
сертификата
6 H Tracking Number.
Индекс открытого
ключа эмитента
6 H Уникальный идентификатор открытого
ключа эмитента.
Для типа карты ‘2’ (American Express AEIPS v4.1) следующие 2 поля должны быть
включены в самоподписанный сертификат (заявку) (см. Приложение 2)
Идентификатор сервиса 8 H Идентификатор, специфицирующий
сервис American Express.
Tracking Number 6 N Tracking Number.
Модуль безопасности платежных систем. Руководство разработчика | 366
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KF’.
Код ошибки 2 А 00 – нет ошибок;
05 – недопустимый флаг режима или
тип карты (ПП);
06 – недопустимый идентификатор
алгоритма подписи или Хэш;
Для флага режима ‘0’ или ‘2’:
03 – ошибка длины ключа;
07 – ошибка длины открытой
экспоненты;
08 – недопустимое значение открытой
экспоненты;
Для флага режима ‘1’:
02 – ошибка кодировки открытого
ключа;
09 – несоответствие открытого и
закрытого ключа;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Если флаг режима ‘0’ или ‘2’, то должны быть представлены следующие 4 поля:
MAC 4 B MAC, вычисленный за открытый
ключ и данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ (DER encoded in
ASN.1 format).
Длина секретного ключа 4 N Длина (в байтах) следующего поля.
Секретный ключ n B Секретный ключ, зашифрованный под
LMK 34-35.
Модуль безопасности платежных систем. Руководство разработчика | 367
Поле Длина и тип Описание
Ответное сообщение
Должны быть представлены следующие поля:
Размер сертификата 4 N Размер самоподписанного
сертификата (в байтах).
Самоподписанный
сертификат (заявка)
n B Самоподписанный сертификат
(заявка), включающий подписанную и
не подписанную части. (см.
Приложение 2).
Длина Хэш 2 N Длина следующего поля (в
шестнадцатиричных символах). Для
SHA-1 – ‘40’.
Хэш n Н Значение Хэш за данные
самоподписанного сертификата.
Модуль безопасности платежных систем. Руководство разработчика | 368
Проверка сертификата открытого ключа эмитента (KG)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Проверка сертификата открытого ключа эмитента и вывод в хост
открытого ключа и вычисленного MAC.
Примечание: Полный сертификат состоит из открытой (неподписанной) части,
собственно сертификата открытого ключа эмитента, и опционально
(для Visa и American Express) отдельной подписи.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KG’.
Тип карты 1 N ‘0’ : Visa VSDC;
‘1’ : MasterCard/Europay;
‘2’: American Express AEIPS v4.1.
MAC (CA) 4 B MAC за открытый ключ корневого УЦ
и данные аутентификации,
вычисленный с использованием
LMK 36-37.
Открытый ключ УЦ n B Открытый ключ УЦ (DER encoded in
ASN.1 format).
Данные
аутентификации УЦ
n A Опционально. Данные, которые могут
быть добавлены к открытому ключу
УЦ для вычисления MAC (не должны
содержать ‘;’).
Разделитель 1 A Разделитель, указывающий на конец
поля данных аутентификации.
Значение ‘;’.
Размер сертификата
эмитента
4 N Размер сертификата эмитента (в
байтах).
Модуль безопасности платежных систем. Руководство разработчика | 369
Поле Длина и тип Описание
Командное сообщение
Сертификат эмитента n B Сертификат эмитента, включающий
подписанные и неподписанные данные
(cм. Приложение 2).
Для типов карт ‘0’ (Visa VSDA) и
‘2’ (American Express AEIPS v4.1)
сертификат также может включать
отдельную подпись.
Разделитель 1 A Разделитель. Значение ‘;’.
Данные
аутентификации
эмитента
n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Разделитель 1 A Разделитель, указывающий на конец
поля данных аутентификации.
Значение ‘;’.
Длина секретного ключа 4 N Опционально. Длина (в байтах)
секретного ключа.
Секретный ключ n B Опционально. Секретный ключ
эмитента, зашифрованный под
LMK 34-35.
Разделитель 1 A Разделитель. Значение ‘;’.
Модуль безопасности платежных систем. Руководство разработчика | 370
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KH’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат проверки
MAC;
05 – недопустимый тип карты;
06 – недопустимый алгоритм Хэш или
подписи;
07 – отрицательный результат проверки
Хэш за данные сертификата;
08 – ошибка кодирования открытого
ключа УЦ;
09 - несоответствие открытого ключа
секретному;
76 – ошибка длины открытого ключа;
78 – ошибка длины секретного ключа;
80 – ошибка размера сертификата;
81 – ошибка формата сертификата;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Для типа карты ‘0’ или ‘2’:
52 – недопустимый заголовок
расширения сертификата;
53 – ошибка формата подписи
(отдельной);
54 – ошибка длины подписи
(отдельной);
55 – ошибка подписи (отдельной).
MAC 4 B MAC, вычисленный за открытый ключ
эмитента и данные аутентификации с
использованием LMK 36-37.
Открытый ключ
эмитента
n B Открытый ключ (DER encoded in ASN.1
format).
Модуль безопасности платежных систем. Руководство разработчика | 371
Поле Длина и тип Описание
Ответное сообщение
Длина Хэш 2 N Длина (в шестнадцатиричном формате)
следующего поля. Для SHA-1 – ‘40’.
Хэш n H Значение Хэш-функции, вычисленное
за открытый ключ эмитента и
сопутствующие данные.
Идентификатор
эмитента
8 H Идентификатор эмитента (из
сертификата).
Дата окончания срока
действия сертификата
4 N Дата окончания срока действия
сертификата эмитента (ММГГ).
Серийный номер/
Tracking Number
6 H Серийный номер/ Tracking Number (из
сертификата).
Для типа карты ‘0’ (Visa VSDC) и ‘2’ (American Express AEIPS v4.1) должны
быть представлены следующие поля (см. Приложение 2):
Длина Хэш отдельной
подписи
2 N Длина следующего поля (в
шестнадцатиричных символах). Для
SHA-1 – ‘40’.
Если отдельная подпись не
представлена, то значение поля ‘00’ и
следующее поле отсутствует.
Хэш отдельной подписи n H Хэш-функция отдельной подписи.
Модуль безопасности платежных систем. Руководство разработчика | 372
Генерация мастер-ключей карты (KI)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Генерация эмитентом одного из производных ключей для Chip-card
приложений: IDKAC, IDKSME, IDKSMC, IDKDN или IDKCVC3 (IDKDCVV).
Формирование проверочных величин ключей (в зависимости от
заданного флага). Вывод в хост сформированных ключей в виде
шифрограмм под под KEK, а также проверочных величин ключей.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KI’.
Тип IMK 3 H Тип мастер-ключа эмитента:
‘109’ : IMKAC, зашифрованный под LMK
28-29 вариант 1;
‘209’ : IMKSMI, зашифрованный под
LMK 28-29 вариант 2;
‘309’ : IMKSMC, зашифрованный под
LMK 28-29 вариант 3;
‘509’ : IMKDN, зашифрованный под LMK
28-29 вариант 5;
‘709’ : IMKCVC3 или IMKDCVV,
зашифрованный под LMK 28-29
вариант 7.
IMK(LMK) 32 H
или
1 A + 32/48 H
Мастер-ключ эмитента, используемый
для диверсификации мастер-ключа карты
(в соответствии с заданным типом IMK),
зашифрованный под LMK.
Метод
диверсификации
ключей
1 A EMV-метод диверсификации ключей:
‘A’ : EMV4.1 Book 2 Option A method;
‘B’: EMV 4.1 Book 2 Option B method.
Модуль безопасности платежных систем. Руководство разработчика | 373
Поле Длина и тип Описание
Командное сообщение
Данные для
диверсификации
n N Конкатенация PAN и двух цифр
Sequence Number.
Если Sequence Number не используется,
то заменяется ‘00’.
Разделитель 1 A Разделитель. Значение ‘;’.
KEK(LMK) 32 H
или
1 A + 32/48 H
Ключ KEK, зашифрованный под LMK
24-25 вариант 1.
Ключевая схема (KEK) 1 A Схема шифрования
диверсифицированных ключей под KEK
(см. Таблица 9).
Тип проверочной
величины ключа
1 A ‘0’: KCV 6 байтов;
‘1’: KCV 3 байта.
Модуль безопасности платежных систем. Руководство разработчика | 374
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KJ’.
Код ошибки 2 А 00 – нет ошибок;
04 – некорректный метод
диверсификации ключа;
05 – недопустимый тип IMK;
06 – недопустимые данные
диверсификации для данного
метода;
10 – ошибка четности IMK;
11 – ошибка четности KEK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
IDK(KEK) 1 A + 16/24 B Диверсифицированный ключ,
зашифрованный под KEK.
Проверочная величина
ключа
6 B или 3 B Проверочная величина ключа IDK.
Модуль безопасности платежных систем. Руководство разработчика | 375
Проверка самоподписанного сертификата корневого УЦ (KK)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Требуется -
Функция: Проверка самоподписанного сертификата корневого
удостоверяющего центра (УЦ) и возврат хосту открытого ключа
вместе с вычисленным MAC и датой окончания срока действия
сертификата. Для MasterCard функция также возвращает серийный
номер сертификата и значение Хэш-функции для проверки
открытого ключа.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KK’.
Тип карты (ПП) 1 N ‘0’ : Visa VSDC;
‘1’ : MasterCard;
‘2 : American Express AEIPS V4.1.
Размер сертификата 4 N Размер самоподписанного сертификата УЦ
(в байтах).
Самоподписанный
сертификат УЦ
n B Самоподписанный сертификат УЦ,
состоящий из открытой части и
собственно сертификата открытого
ключа УЦ (cм. Приложение 2).
Разделитель 1 A Разделитель. Значение ‘;’.
Данные
аутентификации
n A Опционально. Данные, которые могут
быть добавлены для вычисления MAC
(не должны содержать ‘;’).
Модуль безопасности платежных систем. Руководство разработчика | 376
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KL’.
Код ошибки 2 А 00 – нет ошибок;
05 – недопустимый тип карты (ПП);
06 – недопустимый алгоритм Хэш или
подписи;
07 – отрицательный результат проверки
Хэш сертификата;
08 – несоответствие открытых и
подписанных данных сертификата;
80 – ошибка размера сертификата;
81 – недопустимый формат сертификата;
98 – команда недоступна
или стандартный код ошибки
(Приложение 1).
MAC 4 B MAC, вычисленный за открытый ключ и
данные аутентификации с
использованием LMK 36-37.
Открытый ключ n B Открытый ключ (DER encoded in ASN.1
format).
Дата окончания срока
действия
4 N Дата окончания срока действия
сертификата (ММГГ).
Для типа карты ‘1’ (MasterCard) должны быть представлены следующие 3 поля
(cм. Приложение 2):
Серийный номер
сертификата
6 H Серийный номер сертификата
(полученный из сертификата).
Длина Хэш для
проверки
2 N Длина (в шестнадцатиричных символах)
следующего поля. Длина должна
соответствовать идентификатору
алгоритма Хэш, указанному в сертификате.
Для SHA-1 - ‘40’.
Хэш n H Хэш для проверки открытого ключа УЦ
(включая ID сертификата, индекс
открытого ключа, модуль и экспоненту).
Модуль безопасности платежных систем. Руководство разработчика | 377
Генерация подписи данных статической аутентификации (SDA)
(KM)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Генерация подписи данных карты с использованием секретного
ключа подписи эмитента
Примечание: Опционально автоматически формируется DAC, если это
необходимо (для схемы MasterCard)
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KM’.
Идентификатор Хэш 2 N Идентификатор алгоритма, который
используется для подсчета значения
Хэш-функции за данные:
'01’ : SHA-1.
Data Authentication Code 2 B Код аутентификации данных (Data
Authentication Code). Поле всегда
представлено, но оно игнорируется при
опции подсчета DAC.
Длина данных 4 N Длина поля данных статической
аутентификации.
Данные статической
аутентификации
n B Данные статической аутентификации
(Static authentication data).
Разделитель 1 А Обязательный разделитель.
Значение ‘;’.
Индекс секретного ключа 2 N Индекс указывает местонахождение
секретного ключа подписи эмитента:
если флаг = ‘99’, то используется ключ
из входных данных команды, в
противном случае – индекс означает
загруженный в память секретный ключ
Модуль безопасности платежных систем. Руководство разработчика | 378
Поле Длина и тип Описание
Командное сообщение
Длина секретного ключа 4 N Длина (в байтах) секретного ключа
эмитента.
Только, если индекс секретного ключа
эмитента = ‘99’
Секретный ключ n B Секретный ключ эмитента,
зашифрованный под LMK 34-35.
Только, если индекс секретного ключа
эмитента = ‘99’
Разделитель 1 А Опционально. Значение ‘;’
Указывает на представление
следующих двух полей для вычисления
DAC.
Если разделитель присутствует, то должны быть представлены следующие два
поля:
MK-DAC 32 H
или
1 A + 32 H
Мастер-ключ эмитента для Data
Authentication Code, зашифрованный
под LMK 28-29 вариант 4.
PAN/PSN 16 N Конкатенация 14 правых цифр Primary
Account Number (PAN) и двузначного
Sequence Number карты. Дополняется
слева нулями при необходимости.
Модуль безопасности платежных систем. Руководство разработчика | 379
Поле Длина и
тип
Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KN’.
Код ошибки 2 А 00 – нет ошибок;
04 – недопустимый индекс секретного
ключа;
06 – недопустимый идентификатор
Хэш;
10 – ошибка четности MK-DAC;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Длина подписи 4 N Длина в байтах подписи SDA.
Цифровая подпись n B Вычисленная цифровая подпись SDA.
Модуль безопасности платежных систем. Руководство разработчика | 380
Генерация RSA пары (секретный/открытый ключ) и сертификата
карты (KO)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Генерация RSA пары (секретный/открытый ключ) и создание
сертификата открытого ключа карты, подписанного закрытым
ключом эмитента.
Или формирование сертификата открытого ключа карты в
специфицированном формате карты по ранее сгенерированной RSA
паре (секретный/открытый ключ). В этом случае проверяется
соответствие открытого ключа закрытому.
Примечание: Тип ключа для секретного ключа будет установлен ‘3’ (ICC Key).
По умолчанию используется значение открытой экспоненты 65537
(216 +1). Если значение открытой экспоненты подается на вход
команды, то оно должно быть ‘3’ или 65537.
При реализации режима ‘1’ секретный ключ (и соответствующий
открытый) может быть при необходимости модифицирован в
соответствии с требованиями системы персонализации.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘KO’.
Идентификатор типа
карты
1 N Идентификатор типа карты (ПП):
‘0’ : Visa VSDC;
‘1’ : MasterCard;
‘2’ : American Express AEIPS v4.1.
Модуль безопасности платежных систем. Руководство разработчика | 381
Поле Длина и тип Описание
Командное сообщение
Тип сертификата 1 N ‘0’ : сертификат открытого ключа
карты;
‘1’ : сертификат открытого ключа
карты для офлайновой
аутентификации PIN (шифрования
PIN).
Флаг режима 1 N ‘0’ или ‘2’: Генерация ключевой пары и
сертификата карты;
‘1’ : генерация сертификата карты (по
заданной ключевой паре) и экспорт
секретного ключа под KEK.
Флаг RSA ключей 1 N Указывает тип ключей:
‘0’ : Ключи с q > p;
‘2’ : Ключи с p > q.
Сгенерированные или полученные из
входных данных ключи RSA
проверяются согласно заданному типу
и, в случае несоответствия,
модифицируются..
Если флаг режима ‘0’ или ‘2’, то должно быть представлено следующее поле:
Длина ключа
4 N Длина модуля в битах (должна быть
кратна 8).
Минимальное значение =‘0400’.
Максимальное значение =‘2040’.
Должны быть представлены следующие поля:
Выходной формат
секретного ключа
2 N Выходной формат секретного ключа:
‘03’ : вывод в форме 5 компонент
(Китайская теорема об
остатках - CRT), зашифрованных в
режиме CBC под KEK;
‘04’ : вывод секретного ключа в виде
экспоненты (d) и модуля (n),
зашифрованных под KEK;
‘05’ : вывод секретного ключа и в виде
5 компонент CRT (формат 03), и в
виде экспоненты (d) и модуля (n),
зашифрованных под KEK
(формат ‘04’).
Модуль безопасности платежных систем. Руководство разработчика | 382
Поле Длина и тип Описание
Командное сообщение
Разделитель 1 A Опционально. Значение ‘;’.
Если представлено, то должно быть
следующее поле.
Режим паддинга 1 N Только если присутствует разделитель.
‘0’ : Дополнение ‘00’ блоков
CRT-компонент или модуля и
экспоненты до кратности 8 байтам.
Данный режим паддинга применяется
по умолчанию для модуля и
экспоненты, если режим паддинга явно
не указан
‘1’ : Дополнение 4 байтами
(8000 0000) или 8 байтами
(8000 0000 0000 0000) блоков
CRT-компонент или модуля и
экспоненты до кратности 8 байтам.
Данный режим паддинга может быть
применим для блоков
CRT-компонент или модуля и
экспоненты, кратных 4 или 8 байтам
соответственно
‘2’ : Дополнение одним байтом ‘80’ и
последующими байтами ‘00’ блоков
CRT-компонент или модуля и
экспоненты до кратности 8 байтам.
Данный режим паддинга применяется
по умолчанию для CRT-компонент, если
режим паддинга явно не указан
KEK 32 H
или
1 A + 32/48 H
KEK, зашифрованный под LMK 24-25
вариант 1.
Режим шифрования 1 N Режим шифрования секретной
экспоненты и модуля, если выходной
формат секретного ключа ‘05’, а также
CRT-компонент:
‘0’ : ECB;
‘1’ : CBC.
Только если выходной формат
секретного ключа ‘04’ или ‘05’.
Модуль безопасности платежных систем. Руководство разработчика | 383
Поле Длина и тип Описание
Командное сообщение
IV 8 B Инициализационный вектор.
Только если выходной формат
секретного ключа ‘04’ или ‘05’ и режим
шифрования = 1.
Число байтов (длина)
1 N
Число байтов, отведенных под
обозначение длины компоненты ключа
Возможные значения 0, 1 или 2. Если
значение ‘0’, то поле длины
отсутствует в выходном формате блока
компоненты. Для выходного формата
секретного ключа = ‘3’ для поля длины
по умолчанию используется 1 байт.
Только если выходной формат
секретного ключа ‘04’ или ‘05’ (для
всех видов компонент: модуль,
экспонента, CRT-компонента).
Если флаг режима ‘0’ или ‘2’, то должны быть представлены следующие 3 поля:
Длина открытой
экспоненты
4 N Опционально. Указывает длину
открытой экспоненты в битах.
Открытая экспонента n B Опционально. Если не указано, то
полагается 65537.
Разделитель 1 A Разделитель. Значение ‘;’.
Если флаг режима = ‘1’, то должны быть представлены следующие 4 поля:
Длина секретного ключа 4 N Длина (в байтах) секретного ключа
карты.
Секретный ключ n B Секретный ключ, зашифрованный под
LMK 34-35.
Разделитель 1 А Разделитель. Значение ‘;’.
Открытый ключ n B Открытый ключ (DER encoded in ASN.1
format).
Должны быть представлены следующие поля:
Идентификатор Хэш 2 N Идентификатор алгоритма Хэш:
‘01’ : SHA-1.
Идентификатор
алгоритма подписи
2 N Идентификатор алгоритма подписи:
‘01’ : RSA.
Модуль безопасности платежных систем. Руководство разработчика | 384
Поле Длина и тип Описание
Командное сообщение
PAN 20 H PAN для включения в сертификат.
Данные выравниваются по левому
краю и дополняются
шестнадцатиричными ‘F’.
Дата окончания срока
действия сертификата
4 N Дата окончания срока действия
сертификата в формате ММГГ.
Серийный номер
сертификата
6 H Tracking Number.
Длина данных 3 N Длина (в байтах) поля данных
статической аутентификации.
Только если тип сертификата = 0.
Данные статической
аутентификации
n B Данные статической аутентификации
Только если тип сертификата = 0.
Разделитель 1 А Разделитель. Значение ‘;’
Индекс секретного ключа
эмитента
2 N Индекс, указывающий расположение
секретного ключа эмитента:
= 99, если секретный ключ подается во
входных данных команды или
= индексу загруженного ключа в
памяти HSM.
Длина секретного ключа
эмитента
4 N Длина (в байтах) секретного ключа
эмитента.
Только если индекс секретного ключа
эмитента = ‘99’.
Секретный ключ
эмитента
n B Секретный ключ эмитента,
зашифрованный под LMK 34-35
Только если индекс секретного ключа
эмитента = ‘99’.
Модуль безопасности платежных систем. Руководство разработчика | 385
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘KP’.
Код ошибки 2 А 00 – нет ошибок;
04 – недопустимый индекс секретного
ключа эмитента;
05 – недопустимый тип карты (ПП),
тип сертификата или флаг режима;
06 – недопустимый идентификатор
алгоритма подписи или Хэш;
09 – недопустимое значение числа
байтов (длины);
10 – ошибка четноcти KEK;
52 – недопустимый выходной формат
секретного ключа;
53 – недопустимый режим
шифрования;
54 – недопустимый режим паддинга
Для флага режима ‘0’ или ‘2’:
03 – ошибка длины ключа;
07 – ошибка длины открытой
экспоненты;
08 – недопустимое значение открытой
экспоненты;
51 – недопустимый флаг RSA ключей;
Для флага режима ‘1’:
02 – ошибка кодировки открытого
ключа;
55 – ошибка длины секретного ключа
карты
56 – ошибка секретного ключа карты
57 – несоответствие секретного и
открытого ключа;
59 – тип секретного ключа не 3 (ICC);
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 386
Поле Длина и тип Описание
Ответное сообщение
Если выходной формат секретного ключа ‘03’ или ‘05’, то должны быть
представлены следующие 6 полей:
Длина компоненты
секретного ключа
1 B Длина (в байтах) каждого из 5
следующих полей.
p (KEK) n B Параметр p, зашифрованный под KEK.
q (KEK) n B Параметр q, зашифрованный под KEK.
d1 (KEK) n B d1 = d mod (p-1), зашифрованный под
KEK.
d2 (KEK) n B d2 = d mod (q-1), зашифрованный под
KEK.
q-1 mod p (KEK) n B q-1 mod p, зашифрованный под KEK.
Если выходной формат секретного ключа ‘04’ или ‘05’, то должны быть
представлены следующие 2 поля:
Секретная экспонента
(KEK)
n B Секретная экспонента в соответствии с
заданным форматом (см.
Приложение 2), зашифрованная под
KEK
Модуль секретного
ключа (KEK)
n B Модуль секретного ключа в
соответствии с заданным форматом
(см. Приложение 2), зашифрованный
под KEK.
Должны быть представлены следующие поля:
Размер сертификата
карты (ICC)
2 H Размер самоподписанного сертификата
(в байтах).
Сертификат карты (ICC) n B Подписанный сертификат
(См. Приложение 2).
Длина Card (ICC) Public
Key Remainder
2 H Длина (в байтах) Card (ICC) Public Key
Remainder. Может быть ‘00’, если NIC
<= NI – 425.
5 NI = Длина модуля открытого ключа эмитента (Length of the Issuer Public Key Modulus), NIC = Длина
модуля открытого ключа карты (Length of the Card (ICC) Public Key Modulus)
Модуль безопасности платежных систем. Руководство разработчика | 387
Поле Длина и тип Описание
Ответное сообщение
Card (ICC) Public Key
Remainder
n B Card (ICC) Public Key Remainder. Если
предыдущее поле нулевое (NIC <= NI –
42), то данное поле не представлено.
Длина поля экспоненты
открытого ключа карты
(ICC)
2 H Длина (в байтах) экспоненты
открытого ключа (следующее поле).
Экспонента открытого
ключа карты (ICC)
n B
Экспонента открытого ключа карты.
Модуль безопасности платежных систем. Руководство разработчика | 388
Диверсификация данных для записи на карту (SI)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Расшифрование ключа KEK или PEK на LMK. Расшифрование ключа
карты (IDK) на KEK или PIN на PEK, формирование контрольного
значения, зашифрование ключа или PIN под сессионный ключ для
записи на карту.
Примечание: Команда используются при электрической персонализации карт.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘SI’.
Заполнение 2 H Если не 00, то формируется блок
заполнения из байтов значения данного
поля для проверки зашифрованного
текста
Смещение 2 N Смещение контрольных байтов.
Длина заполнителя 2 N Длина контрольных байтов.
Флаг режима 1 H 0 - зашифрование на ключе 1;
1 - расшифрование на ключе 2;
2 - расшифрование на ключе 3.
Ключ 2 16 H Ключ 2 зашифрованный на LMK 06-07.
Представлен только если флаг режима 1.
Ключ 3 32 H Ключ 3 зашифрованный на LMK 24-25
вариант 1. Представлен только если флаг
режима 2.
Ключ 1 32 H Ключ 1 зашифрованный на LMK 24-25
вариант 2.
Серийный номер 32 H Серийный номер.
Модуль безопасности платежных систем. Руководство разработчика | 389
Поле Длина и тип Описание
Алгоритм
преобразования
серийного номера
2 N 0 = Алгоритм А;
1 = Алгоритм Б.
Длина конфиденциальных
данных
2 N Длина следующего поля в блоках по 8
байт; max 99.
Конфиденциальные
данные
n H Конфиденциальные данные.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘SJ’.
Код ошибки 2 N 00 – нет ошибок;
02 – несоответствие входных данных;
06 – неизвестный флаг режима;
07 – недопустимая длина данных;
11 – ошибка четности ключа 1;
13 – ошибка четности LMK;
15 – недопустимые входные данные
или стандартный код ошибки
(см. Приложение 1).
Длина зашифрованных
данных
2 H Длина зашифрованных данных.
Зашифрованные данные n H Зашифрованные данные.
Контрольное значение 16 H Контрольное значение.
Модуль безопасности платежных систем. Руководство разработчика | 390
Зашифрование данных транзакции (XK)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Расшифрование ключа транзакции на LMK. Зашифрование данных
транзакции на ключе транзакции.
Примечание: Команда используются при электрической персонализации карт.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘XK’
Тип шифрования под
LMK
1 N Значение поля 'Тип шифрования под
LMK':
0: не используется LMK;
1: LMK 38-39;
2: LMK 30-31;
3: LMK 06-07;
4: LMK 24-25;
5: LMK 24-25.
Вариант 1 N Опционально. Если значение поля 'Тип
ключа под LMK' не равно 0,
используется номер варианта от 1 до 8.
Если значение поля 'Тип ключа
шифрования под LMK' 3 (ключ
шифрования ZPK) вариант всегда 0.
Длина ключа шифрования 1 N 0: ключ одинарной длины;
1: ключ двойной длины.
Ключ шифрования 16 H
или
32 H
или
1 A + 32 H
Ключ шифрования, зашифрованный
под LMK в соответствии со значением
поля 'Тип шифрования под LMK'.
Модуль безопасности платежных систем. Руководство разработчика | 391
Поле Длина и тип Описание
Командное сообщение
или
1 A + 48 H
Количество блоков
данных
2 N Длина в блоках по 8 байт; max 40.
Код формата входных
данных
1 N 0: бинарные;
1: шестнадцатиричные.
Код формата выходных
данных
1 N 0: бинарные;
1: шестнадцатиричные
Флаг направления сдвига
данных
1 N 0: влево на 4;
1: вправо на 4.
Сдвиг данных 2 N 0: сдвигать;
1: не сдвигать.
Аргумент 1 N Должен быть равен 0.
Блок данных 1 n H
или
n B
Данные заданной длины в блоках.
Блок данных 2 n H Данные заданной длины в блоках.
Блок данных 3 n H Данные заданной длины в блоках.
Модуль безопасности платежных систем. Руководство разработчика | 392
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘XL’.
Код ошибки 2 N 00 – нет ошибок;
04 – недопустимая длина ключа;
05 – недопустимый тип ключа;
06 – недопустимый вариант;
10 – ошибка четности ключа;
13 – ошибка четности LMK;
15 – недопустимые входные данные;
50 – аргумент не равен 0;
53 – недопустимый флаг направления;
55 – недопустимый код формата;
56 – недопустимая длина блока
или стандартный код ошибки (см.
Приложение 1).
Зашифрованные данные n H
или
n B
Зашифрованные данные.
Модуль безопасности платежных систем. Руководство разработчика | 393
Генерация случайного числа (YO)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Генерация случайного числа с использованием ФДСЧ (не более 256
байтов).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘YO’.
Длина случайного числа
3 N
Длина в диапазоне от 001 до 256.
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘YP’.
Код ошибки 2 N 00 – нет ошибок;
01 – недопустимая длина случайного
числа.
Случайное число
n B
Случайное число длиной до 256 байт.
Модуль безопасности платежных систем. Руководство разработчика | 394
Диверсификация ключа (YS)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: В зависимости от заданного флага (CBC или ECB) производится
последовательное зашифрование по алгоритму DES двух блоков
данных на ключе диверсификации. Ключ, полученный конкатенацией
зашифрованных блоков, зашифровывается под LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘YS’.
Режим диверсификации 1 N 0 = ECB режим;
1 = CBC режим
Тип исходного ключа 3 H Тип ключа, на котором зашифрован
исходный ключ:
001 = LMK 6-7;
002 = LMK 14-15;
003 = LMK 16-17;
004 = LMK 18-19;
005 = LMK 20-21;
006 = LMK 22-23;
008 = LMK 26-27;
009 = LMK 28-29;
00A = LMK 30-31;
00E = LMK 38-39
Модуль безопасности платежных систем. Руководство разработчика | 395
Поле Длина и тип Описание
Командное сообщение
Тип производного ключа 3 H Тип производного ключа, под которым
должен быть зашифрован полученный
ключ:
002 = LMK 14-15;
003 = LMK 16-17;
004 = LMK 18-19;
005 = LMK 20-21;
006 = LMK 22-23;
009 = LMK 28-29;
00E = LMK 38-39.
Исходный ключ 32 H
или
1 A + 32 H
или
1 A + 48 H
Исходный ключ, зашифрованный под
соответствующий LMK.
Длина данных для
диверсификации #1
3 N Длина первого блока входных данных.
Если равно 0, следующие два поля не
заполняются.
IV #1 8 B Инициализационный вектор #1 (только,
если Derivation Mode = 1).
Данные для
диверсификации #1
n B Данные для диверсификации #1.
Разделитель 1 A Значение ';'.
Длина данных для
диверсификации #2
3 N Длина второго блока входных данных.
Если равно 0, следующие два поля не
заполняются.
IV #2 8 B Инициализационный вектор #2 (только,
если Derivation Mode = 1).
Длина данных для
диверсификации #2
n B Данные для диверсификации #2.
Модуль безопасности платежных систем. Руководство разработчика | 396
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘YT’.
Код ошибки 2 N 00 – нет ошибок;
02 – недопустимый режим
диверсификации;
03 – недопустимая длина ключа
диверсификации;
04 – недопустимый тип исходного
ключа;
10 – ошибка четности исходного ключа;
13 – ошибка четности LMK;
15 – недопустимые входные данные;
80 – недопустимая длина данных для
диверсификации #1;
81 – недопустимая длина данных для
диверсификации #2
или стандартный код ошибки
(см. Приложение 1).
Производный ключ 16 H
или
1 A +32 H
Производный ключ, зашифрован под
соответствующий LMK.
Модуль безопасности платежных систем. Руководство разработчика | 397
Экспорт ключа под KEK (YW)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: В зависимости от заданного флага производится расшифрование
ключа по алгоритму DES в режиме CBC или ECB, зашифрованного
под LMK, и зашифрование его под KEK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘YW’.
Режим шифрования 1 N Режим шифрования:
0 = ECB;
1 = CBC.
KEK 32 H
или
1 A + 32 H
или
1 A + 48 H
KEK, зашифрованный под LMK 24-25
вариант 1.
IV 8 B Инициализационный вектор (доступен,
только если режим шифрования = 1).
Тип ключа пользователя 3 N Тип ключа пользователя:
002 = LMK 14-15;
003 = LMK 16-17;
004 = LMK 18-19;
005 = LMK 20-21;
006 = LMK 22-23;
008 = LMK 26-27;
009 = LMK 28-29;
00A = LMK 30-31;
00E = LMK 38-39.
Модуль безопасности платежных систем. Руководство разработчика | 398
Поле Длина и тип Описание
Ключ пользователя 32 H
или 48 H
Ключ пользователя, зашифрован под
LMK с типом ключа пользователя.
Поле Длина и
тип
Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘YX’.
Код ошибки 2 N 00 – нет ошибок;
02 – недопустимый режим
шифрования;
10 – ошибка четности KEK;
13 – ошибка LMK;
50 – длина ключа пользователя и длина
KEK не соответствуют
или стандартный код ошибки
(см. Приложение 1).
Зашифрованный ключ
32 H
или
48 H
Зашифрованный ключ пользователя,
перешифрованный под KEK вариант
'Тип ключа пользователя.'
Модуль безопасности платежных систем. Руководство разработчика | 399
Зашифрование данных (YY)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: В зависимости от заданного флага производится зашифрование
данных (максимальной длины 992 байта) по алгоритму DES в
режиме CBC или ECB под ключом, поданным на вход в виде
шифрограммы под LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘YY’.
Режим шифрования 1 N Режим шифрования:
0 = ECB;
1 = CBC.
Тип ключа шифрования 3 N LMK ключа шифрования:
002 = LMK 14-15;
003 = LMK 16-17;
004 = LMK 18-19;
005 = LMK 20-21;
006 = LMK 22-23;
00E = LMK 38-39.
Ключ шифрования 32 H
или
1 A + 32 H
или
1 A + 48 H
Ключ шифрования, зашифрованный
под соответствующий LMK.
IV 8 B Инициализационный вектор
(доступен, только если режим
шифрования = 1).
Длина данных 3 N Длина данных. Максимальная длина
992 байта.
Данные
n B Данные (кратные 8 байтам) для
зашифрования.
Модуль безопасности платежных систем. Руководство разработчика | 400
Поле Длина и
тип
Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘YZ’.
Код ошибки 2 N 00 – нет ошибок;
02 – недопустимый режим
шифрования;
03 – недопустимая длина ключа
шифрования;
04 – недопустимая пара шифрования;
06 – недопустимый вариант ключа
13 – ошибка LMK;
15 – недопустимые входные данные
80 – длина данных не равна значению,
указанному в поле 'Длина данных '
или не кратна 8 или стандартный
код ошибки (см. Приложение 1).
Зашифрованные данные n B Зашифрованные данные.
Модуль безопасности платежных систем. Руководство разработчика | 401
Импорт ключа под KEK (ZA)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: В зависимости от заданного флага производится расшифрование
ключа по алгоритму DES в режиме CBC или ECB, зашифрованного
под KEK, и зашифрование его под LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ZA’.
Режим расшифрования 1 N Режим расшифрования:
0 = ECB;
1 = CBC.
KEK 32 H
или
1 A + 32 H
или
1 A + 48 H
KEK, зашифрованный под LMK 24-25
вариант 1.
IV 8 B Инициализационный вектор (доступен,
только если режим
расшифрования = 1).
Тип ключа пользователя 3 N Тип ключа пользователя:
002 = LMK 14-15;
003 = LMK 16-17;
004 = LMK 18-19;
006 = LMK 22-23;
008 = LMK 26-27;
009 = LMK 28-29;
00A = LMK 30-31;
00E = LMK 38-39.
Модуль безопасности платежных систем. Руководство разработчика | 402
Поле Длина и тип Описание
Ключ пользователя 32 H
или 48 H
Ключ пользователя, зашифрован под
LMK с типом ключа пользователя
Поле Длина и
тип
Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ZB’.
Код ошибки 2 N 00 – нет ошибок;
02 – недопустимый режим
расшифрования;
04 – ошибка длины ключа
пользователя;
05 – ошибка типа ключа пользователя;
06 – недопустимый вариант ключа;
10 – ошибка четности KEK;
13 – ошибка LMK;
50 – длина ключа пользователя и длина
KEK не соответствуют;
C0 – "слабый" DES-ключ
или стандартный код ошибки (см.
Приложение 1).
Расшифрованный ключ 32 H
или
48 H
Расшифрованный ключ пользователя,
перешифрованный под
соответствующий LMK.
Модуль безопасности платежных систем. Руководство разработчика | 403
Расшифрование данных (ZC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: В зависимости от заданного флага производится расшифрование
данных (максимальной длины 992 байта) по алгоритму DES в
режиме CBC или ECB, и зашифрование его под LMK.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ZC’.
Режим расшифрования 1 N Режим расшифрования:
0 = ECB;
1 = CBC.
Ключ расшифрования 32 H
или
1 A + 32 H
или
1 A + 48 H
Ключ расшифрования, зашифрованный
под LMK 20-21 вариант 9.
IV 8 B Инициализационный вектор (доступен,
только если режим шифрования = 1).
Длина данных 3 N Длина следующего поля в байтах.
Максимальная длина 992 байта.
Зашифрованные данные n B Зашифрованные данные (кратные
8 байтам).
Модуль безопасности платежных систем. Руководство разработчика | 404
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ZD’.
Код ошибки 2 N 00 – нет ошибок;
02 – недопустимый режим
расшифрования;
03 – недопустимая длина ключа
расшифрования;
10 – ошибка четности ключа ключа
расшифрования;
13 – ошибка LMK;
15 – недопустимые входные данные;
80 – длина зашифрованных данных не
равна значению, указанному в поле
'Длина данных ' или не кратна 8
или стандартный код ошибки (см.
Приложение 1).
Расшифрованные данные n B Расшифрованные данные.
Модуль безопасности платежных систем. Руководство разработчика | 405
Генерация или проверка МАС (ZK)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: В зависимости от флага генерация или генерация и проверка МАС за
блок данных на ключе MK. Максимальный размер блока данных –
2048 байтов.
Примечание: Алгоритм формирования MAC определяется флагом алгоритма
MAC.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений
Код команды 2 А ‘ZK’
Флаг режима 1 N 0 = генерация MAC;
1 = проверка MAC
Флаг алгоритма MAC 1 N 0 = ANSI X9.9;
1 = ANSI X9.19
Тип блока 1 N 0 = Один блок;
1 = Первый блок;
2 = Промежуточный блок;
3 = Последний блок
KEK (LMK) 32 H
или
1 A + 32 H
или
1 A + 48 H
KEK, зашифрованный под LMK 24-25
вариант 1.
MK (KEK) 16 H
или
1 A + 32 H,
или
1 A + 48 H
Ключ генерации MAC, зашифрованный
под KEK. Представлен, если флаг
режима = 1 (проверка, для всех типов
блока) и, если тип блока 2 или 3 флага
режима = 0.
Модуль безопасности платежных систем. Руководство разработчика | 406
Поле Длина и тип Описание
Командное сообщение
MAC 4 B Проверяемый MAC. Представлен,
только если флаг режима = 1 и тип
блока = 0 или 3.
IV входа 8 B Инициализационный вектор входной
(представлен, только если тип блока = 2
или 3).
Длина данных 2 B Целое беззнаковое число заданной
длины в байтах следующего поля.
Данные n B Данные, за которые проверяется MAC.
Модуль безопасности платежных систем. Руководство разработчика | 407
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ZL’.
Код ошибки 2 N 00 – нет ошибок;
01 – ошибка MAC;
03 – тип блока не 0, 1, 2 или 3;
04 – флаг режима не 0 или 1;
05 – алгоритм MAC не 0, 1 или 2;
10 – ошибка четности KEK;
11 – ошибка четности MAC;
13 – ошибка LMK;
15 – недопустимые входные данные;
80 – недопустимая длина данных;
81 – данные не кратны 8 байтам (только
для типа блока 1 и 2)
или стандартный код ошибки (см.
Приложение 1).
MK (KEK) 16 H
или
1 A + 32 H
или
1 A + 48 H
Ключ генерации MAC, зашифрованный
под KEK. Представлен, только для типа
блока 0 или 1, когда флаг режима = 0.
Будет 16 H, если флаг алгоритма MAC
= 0 и 32 H, если флаг алгоритма MAC 1
или 2.
MAC 4 B Вычисленный MAC. Представлен,
только если флаг режима = 0 и тип блока
= 0 или 3.
IV выхода 8 B Представлен, только типа блока = 1
или 2.
Модуль безопасности платежных систем. Руководство разработчика | 408
Сборка сертификата открытого ключа карты (ICC) из элементов
(ZU)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Сборка из входных данных сертификата открытого ключа карты,
удостоверенного ключом эмитента, для загрузки на карту.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ZU’.
Флаг режима 1 N ‘0’.
Идентификатор Хэш 2 N ‘01’ : SHA-1.
Идентификатор подписи 2 N ‘01’ : RSA.
MAC 4 B MAC за открытый ключ и данные
аутентификации вычисленный с
использованием LMK 36-37.
Открытый ключ карты
(ICC)
n B Открытый ключ, в формате
DER encoded in ASN.1.
Данные аутентификации n A Опционально; данные добавляются
при вычислении MAC (не должно
включать «;»).
Разделитель 1 A Разделитель обозначает окончание
поля данных аутентификации;
значение «;».
PAN 10 B PAN. Выравненный по левому краю и
дополненный справа
шестнадцатеричным F.
Exp Date 2 B Дата окончания срока действия
сертификата.
Cert Ser Num 3 B Серийный номер сертификата.
Модуль безопасности платежных систем. Руководство разработчика | 409
Поле Длина и тип Описание
Командное сообщение
Длина статических
данных
2 H Длина в байтах следующего поля.
Статические данные n B Статические данные до 255 байт.
Разделитель 1 A Обозначает окончание поля
статических данных. Значение «;».
Индекс закрытого ключа
эмитента
2 N Индекс обозначает местоположение
закрытого ключа эмитента. Если
индекс = 99, используется ключ из
входных данных команды, иначе
индекс = индексу хранения закрытого
ключа в памяти.
Длина закрытого ключа
эмитента
4 N Длина в байтах следующего поля
(только если индекс = 99).
Закрытый ключ эмитента n B Закрытый ключ эмитента,
зашифрованный на LMK 34-35 (только
если индекс = 99).
Модуль безопасности платежных систем. Руководство разработчика | 410
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ZV’.
Код ошибки 2 N 00 – нет ошибок;
01 – ошибка проверки MAC;
02 – открытый ключ не соответствует
правилам зашифрования;
03 – неизвестный флаг закрытого
ключа эмитента;
04 – неизвестный флаг режима;
05 – неизвестный хэш-иднтификатор;
06 – неизвестный идентификатор
алгоритма шифрования
12 – нет ключей в пользовательском
хранилище;
13 – ошибка LMK;
15 – недопустимые входные данные;
21 – недопустимый индекс хранения
данных пользователя;
47 – ошибка DSP;
49 – ошибка закрытого ключа
эмитента;
78 – ошибка длины закрытого ключа
эмитента;
80 – недопустимая длина данных
или стандартный код ошибки (см.
Приложение 1).
Длина ICC CERT 2 H Длина следующего поля.
ICC CERT n B ICC сертификат (см. Приложение 2).
Длина ICC Public Key
Remainder
2 H Длина в байтах следующего поля.
Может быть = 0, если NC <= NI - 42
ICC Public Key Remainder n B ICC Public Key Remainder.
Если поле выше = 0 (потому что NC
<= NI - 42), то данного поля в
ответном сообщении нет.
Длина ICC Public
Exponent
2 H Длина ICC Public Exponent в байтах.
ICC Public Exponent n B ICC Public Exponent.
Модуль безопасности платежных систем. Руководство разработчика | 411
Генерация ключевой пары карты (ICC) (ZW)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Генерация ключевой пары карты (RSA).
Примечание: Если в команду включена Public Exponent, это значение должно
быть нечетным (наименее значимый бит должен быть равен 1).
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ZW’.
Флаг режима 1 N 0 = генерация ключей с использованием
Standard method с q > p;
1 = генерация ключей с использованием
Europay method с q > p;
2 = генерация ключей с использованием
Standard method с p > q;
3 = генерация ключей с использованием
Europay method с p > q.
Длина ключа 4 N Длина модуля в битах; min 0400,
max 2048.
Формат закрытого ключа
в выходных данных
2 N 01 = Standard HSM формат,
зашифрован под LMK 34-35;
03 = выход в формате из 5 компонент в
соответствии с Китайской
теоремой об остатках,
зашифрованных под KEK
(см. Приложение 2).
Модуль безопасности платежных систем. Руководство разработчика | 412
Поле Длина и тип Описание
Командное сообщение
KEK (LMK) 32 H
или
1 A + 32 H
или
1 A + 48 H
Двойная длина KEK для зашифрования 5
компонент в соответствии с Китайской
теоремой об остатках или закрытой
экспоненты и модуля.
Зашифрование под LMK 24-25
вариант 1.
Представлен только если формат
выходного закрытого ключа
установлен в 03.
Кодировка открытого
ключа
2 N Формат открытого ключа:
01 = DER encoding in ASN.1.
Длина открытой
экспоненты
4 N Длина в битах открытой экспоненты.
Открытая экспонента n B Значение должно быть нечетным.
Заключительный символ 1 A Обязательный символ окончания.
Значение «;».
Данные аутентификации n A Опционально; данные добавляются при
вычислении MAC (не должно включать
«;»).
Модуль безопасности платежных систем. Руководство разработчика | 413
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ZX’.
Код ошибки 2 N 00 – нет ошибок;
02 – неизвестный код форматирования
закрытого ключа;
03 – неизвестный тип кодирования
открытого ключа;
04 – неизвестный флаг режима;
05 – ошибка длины ключа;
06 – ошибка длины открытой
экспоненты;
07 – несовместимая длина ключа;
08 – применение открытой экспоненты;
09 – недопустимый режим
шифрования;
10 – ошибка четности KEK;
11 – недопустимое значение длины в
байтах;
13 – ошибка LMK;
15 – недопустимые входные данные
47 – ошибка DSP
или стандартный код ошибки
(см. Приложение 1).
Открытый ключ n B Открытый ключ, в заданном формате.
MAC 4 B MAC за открытый ключ и данные
аутентификации, вычисленный с
использованием LMK 36-37.
Длина закрытого ключа 4 N Длина (в байтах) следующего поля.
Представлен только если выходной
формат 01.
Модуль безопасности платежных систем. Руководство разработчика | 414
Поле Длина и тип Описание
Закрытый ключ n B Закрытый ключ форматированный и
зашифрованный в соответствии с
параметром 'Формат закрытого ключа в
выходных данных'.
Представлен только если выходной
формат 01.
Длина компоненты
закрытого ключа
1 B Длина в байтах каждой из 5 компонент.
Представлен только для выходного
формата 03.
p (KEK) n B Простое число p зашифрованное под
KEK с использованием 3DES CBC.
Представлен только для выходного
формата 03.
q (KEK) n B Простое число q зашифрованное под
KEK с использованием 3DES CBC.
Представлен только для выходного
формата 03.
d1 (KEK) n B d1 = d mod (p-1) зашифровано под KEK
с использованием 3DES CBC.
Представлен только для выходного
формата 03.
d2 (KEK) n B d2 = d mod (p-1) зашифровано под KEK
с использованием 3DES CBC.
Представлен только для выходного
формата 03.
qˉ1 mod p (KEK) n B qˉ1 mod p зашифровано под KEK с
использованием 3DES CBC.
Представлен только для выходного
формата 03.
Модуль безопасности платежных систем. Руководство разработчика | 415
Генерация производных ключей карты (ZY)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC003 LIC003
Авторизация: Не требуется -
Функция: Генерация эмитентом производных ключей для Chip-card
приложений: IDKAC, IDKSME, IDKSMM и опционально IDKDN.
Формирование проверочных величин ключей (в зависимости от
заданного флага). Вывод в хост сформированных ключей в виде
шифрограмм под LMK или под KEK, а также проверочных величин
ключей в зависимости от заданного флага формирования ключей
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘ZY’.
Флаг режима 1 N Если флаг = 0, то IDKDN не
формируется. Выходные данные для
MULTOS cards.
Если флаг = 1, то IDKDN формируется.
Выходные данные для MULTOS cards
Если флаг = 2, то IDKDN не
формируется. Выходные данные для
OTS cards.
Если флаг = 3, то IDKDN формируется.
Выходные данные для OTS cards
KEK(LMK) 32 H
или
1 A + 32/48 H
Ключ KEK, зашифрованный под
LMK 24-25 вариант 1. Только если флаг
режима = 2 или 3.
PAN/PAN Sequence No 8 B PAN или PAN Sequence Number,
предварительно переформатированный
в 8-байтовое поле.
Модуль безопасности платежных систем. Руководство разработчика | 416
Поле Длина и тип Описание
Командное сообщение
IMKAC(LMK) 32 H
или
1 A + 32 H
Мастер-ключ эмитента для
формирования прикладных
криптограмм (АС - Application
Cryptogram), зашифрованный под LMK
28-29 вариант 1.
Флаг IMKSMI(LMK) 1 N Флаг, показывающий наличие (1) или
отсутствие (0) IMKSMI(LMK).
IMKSMI(LMK) 32 H
или
1 A + 32 H
Мастер-ключ эмитента для
обеспечения целостности сообщения
(Secure Message Integratory),
зашифрованный под LMK 28-29
вариант 2.
Флаг IMKSMC(LMK) 1 N Флаг, показывающий наличие (1) или
отсутствие (0) IMKSMC(LMK).
IMKSMC(LMK) 32 H
или
1 A + 32 H
Мастер-ключ эмитента для
обеспечения конфиденциальности
сообщения (Secure Message
Confidentiality), зашифрованный под
LMK 28-29 вариант 3.
Флаг IMKDN(LMK) 1 N Флаг, показывающий наличие (1) или
отсутствие (0) IMKDN(LMK). Только,
если Флаг режима = 1 или 3.
IMKDN(LMK) 32 H
или
1 A + 32 H
Мастер-ключ эмитента для
формирования динамического номера
карты (ICC Dynamic Numbers),
зашифрованный под LMK 28-29
вариант X (5 или 7)6 .
6 Вариант LMK задается соответствующей настройкой в консольном режиме: "Выбор
варианта шифрования IMK-DN на LMK 28-29 (вкл=вариант 7, выкл=вариант 5):" (пункт меню
«Настройки» Web-интерфейса удаленного управления платежным приложением).
Модуль безопасности платежных систем. Руководство разработчика | 417
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ZZ’.
Код ошибки 2 А 00 – нет ошибок;
04 – ошибка Флага режима;
07 – ошибка четности KEK;
08 – ошибка четности IMKAC;
09 – ошибка четности IMKSMI;
10 – ошибка четности IMKSMC;
11 – ошибка четности IMKIDN;
13 – ошибка LMK;
15 – ошибка во входных данных;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
IDKAC(LMK) 16 B IDKAC, зашифрованный под LMK
38-39 вариант 9 в режиме CBC.
Только если флаг режима = 0 или 1.
IDKSMI(LMK) 16 B IDKSMI, зашифрованный под LMK
38-39 вариант 9 в режиме CBC.
Только если флаг режима = 0 или 1 и
флаг IMKSMI(LMK) = 1.
IDKSMC(LMK) 16 B IDKSMC, зашифрованный под LMK
38-39 вариант 9 в режиме CBC.
Только если флаг режима = 0 или 1 и
флаг IMKSMC(LMK) = 1.
IDKIDN(LMK) 16 B IDKIDN, зашифрованный под LMK
38-39 вариант 9 в режиме CBC.
Только если флаг режима = 1 и флаг
IMKIDN(LMK) = 1
IDKAC(KEK) 16 B IDKAC, зашифрованный под KEK в
режиме ECB.
Только если флаг режима = 2 или 3.
KCV(IDKAC) 8 B Контрольное значение для IDKAC.
Только если флаг режима = 2 или 3.
Модуль безопасности платежных систем. Руководство разработчика | 418
Поле Длина и тип Описание
Ответное сообщение
IDKSMI(KEK) 16 B IDKSMI, зашифрованный под KEK в
режиме ECB.
Только если флаг режима = 2 или 3 и
флаг IMKSMI(LMK) = 1.
KCV(IDKSMI) 8 B Контрольное значение для IDKSMI.
Только если флаг режима = 2 или 3 и
флаг IMKSMI(LMK) = 1.
IDKSMC(KEK) 16 B IDKSMC, зашифрованный под KEK в
режиме ECB.
Только если флаг режима = 2 или 3 и
флаг IMKSMC(LMK) = 1.
KCV(IDKSMC) 8 B Контрольное значение для IDKSMC.
Только если флаг режима = 2 или 3 и
флаг IMKSMC(LMK) = 1
IDKDN(KEK) 16 B IDKDN, зашифрованный под KEK в
режиме ECB.
Только если флаг режима = 3 и флаг
IMKDN(LMK) = 1.
KCV(IDKDN) 8 B Контрольное значение для IDKDN.
Только если флаг режима = 3 и флаг
IMKDN(LMK) = 1.
Модуль безопасности платежных систем. Руководство разработчика | 419
4.7. Команды лицензии «Персонализация карт» (Card Data
Personalization License - LIC004)
4.77.1. Перечень команд лицензии «Персонализация карт»
Таблица 25 - Перечень команд лицензии «Персонализация карт»
приведен перечень команд лицензии «Персонализация карт» (LIC004).
Таблица 25 - Перечень команд лицензии «Персонализация карт»
Команда
(ответ)
Функция
IC (ID) Установление защищенного соединения с чип-картой
IE (IF) Подготовка защищенного сообщения для чип-карты
4.77.2. Описание команд лицензии «Персонализация карт»
Установление защищенного соединения с чип-картой (IC)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC004 LIC004
Авторизация: Не требуется -
Функция: Поддержка создания безопасной сессии с чип-картой, используя
взаимную аутентификацию, основанную на EMV Common
Personalization Specification (CPS) и Global Platform (GP) Secure
Channel Protocol 2 (SCP02). Также поддержка специфических
процессов для MasterCard PayPass Magnetic Stripe Cards.
Примечание: В настоящее время под EMV CPS и GP SCP02 используется
следующий способ установления защищенного канала
персонализации с приложением карты:
Indirect (Explicit) Method - косвенный (явный) метод:
В данном методе процесс подготовки данных не требует знания
процесса, используемого для установления безопасного сеанса
персонализации с чип-картой. Таким образом, существуют две
независимые зоны безопасности: зона безопасности между
Модуль безопасности платежных систем. Руководство разработчика | 420
процессом подготовки данных и процессом персонализации и зона
безопасности между процессом персонализации и чип-картой.
Процесс персонализации устанавливает безопасный сеанс с
чип-картой путем выдачи команд INITIALISE UPDATE и
EXTERNAL AUTHENTICATE. При этом формируются ключи
сессии и криптограммы, необходимые для установления
защищенного сеанса с чип-картой.
Для метода MasterCard PayPass Magnetic Stripe функция только
выводит ключ персонализации KD, который будет использоваться
для проверки подлинности сообщения и обеспечения
конфиденциальных данных при записи на карту. Ключ возвращается
зашифрованным под LMK для использования в команде подготовки
Secure Message для чип-карт.
C-MAC – MAC, формируемый хостом за командное сообщение
APDU.
Данные, используемые для генерации диверсифицированных
ключей карты представляют собой:
6 младших из 10 байтов KEYDATA, возвращаемых картой на
команду INITIALISE UPDATE – для алгоритма диверсификации
ключей EMV CPS 1.1;
0-й, 1-й, 4-й, 5-й, 6-й, 7-й байты (начиная со старшего – 0-го байта)
из 10 байтов KEYDATA, возвращаемых картой на команду
INITIALISE UPDATE – для алгоритма диверсификации ключей
Visa2.
Ответственность за правильное формирование данных для
генерации диверсифицированных ключей карты в соответствии с
выбранным алгоритмом диверсификации (EMV CPS 1.1 или Visa2)
возлагается на хост-систему.
Модуль безопасности платежных систем. Руководство разработчика | 421
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘IC’.
Метод установления
защищенного
соединения
1 N ‘0’ - Indirect (Explicit)
Method - косвенное (явное)
инициирование защищенного
соединения системой
предперсонализации;
‘2’ - MasterCard PayPass Magnetic Stripe
Cards.
KMC 32 H
или
1 A + 32/48 H
Мастер-ключ персонализации,
зашифрованный под LMK 24-25
вариант 2.
Данные для
диверсификации
6 B Данные, используемые для генерации
диверсифицированных ключей карты.
(см. примечание).
Ключевая схема
(LMK)
1 A Указывает на схему для зашифрования
диверсифицированных ключей под
LMK.
Если метод установления защищенного соединения ‘0’ - Indirect (Explicit) Method,
то должны быть представлены следующие 6 полей:
Host Challenge 8 B Случайное число, передаваемое
системой персонализации на карту в
команде INITIALISE UPDATE.
Счетчик сеансов 2 B Счетчик сеансов, возвращаемый картой
на команду INITIALISE UPDATE, и
используемый для диверсификации
ключей.
Card Challenge 6 B Случайное число, генерируемое картой
и возвращаемое в ответном сообщении
на команду INITIALISE UPDATE.
Криптограмма карты 8 B Криптограмма, генерируемая картой в
ответ на команду INITIALISE
UPDATE, и используемая хостом для
аутентификации карты.
Модуль безопасности платежных систем. Руководство разработчика | 422
Поле Длина и тип Описание
Командное сообщение
Исходный заголовок
APDU
5 B Исходный заголовок команды
EXTERNAL AUTHENTICATE (CLA,
INS, P1, P2, Lc). Тип (0x80, 0x82, 0x00,
0x00, 0x10) должен быть указан.
Уровень безопасности 1 B Уровень безопасности для всех
секретных сообщений, следующих за
командой EXTERNAL
AUTHENTICATE:
‘0x00’ – не секретное сообщение;
‘0x01’ – C-MAC;
‘0x03’ – шифрование и C-MAC.
Поле
Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ID’.
Код ошибки 2 А 00 – нет ошибок;
05 – недопустимый метод
установления соединения;
06 – недопустимый уровень
безопасности;
07 – ошибка проверки криптограммы
карты;
10 – ошибка четности KMC;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 423
Поле
Длина и тип Описание
Ответное сообщение
Если метод установления защищенного соединения ‘0’ - Indirect (Explicit)
Method, то должны быть представлены следующие 7 полей:
Заголовок APDU 5 B Заголовок APDU для команды
EXTERNAL AUTHENTICATE
command (CLA, INS, P1, P2, Lc).
Криптограмма хоста 8 B Криптограмма, генерируемая хостом
для команды EXTERNAL
AUTHENTICATE, которая
используется для аутентификации
хоста картой.
Authentication
C-MAC
8 B C-MAC за команду EXTERNAL
AUTHENTICATE, который
используется в качестве начального
C-MAC при подготовке секретных
сообщений для чип-карт.
SK-ENC 1 A + 32 H Сессионный ключ для криптограмм и
шифрования сообщений карты
(данных APDU), зашифрованный под
LMK 24-25 вариант 3.
SK-MAC 1 A + 32 H Сессионный ключ для
аутентификации сообщений карты
(C-MAC), зашифрованный под LMK
24-25 вариант 4.
SK-DEK 1 A + 32 H Сессионный ключ для шифрования
секретных данных карты (например,
ключей приложения и PIN),
зашифрованный под LMK 24-25
вариант 5.
Если метод установления защищенного соединения ‘2’ - MasterCard PayPass
Magnetic Stripe Cards, то должно быть представлено следующее поле:
KD-PERSO 1 A + 32 H Ключ персонализации KD для
аутентификации сообщений и
шифрования критичных данных,
зашифрованный под LMK 24-25
вариант 5.
Модуль безопасности платежных систем. Руководство разработчика | 424
Подготовка защищенного сообщения для чип-карты (IE)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC004 LIC004
Авторизация: Не требуется -
Функция: Подготовка сообщения персонализации для передачи на чип-карту
после установления защищенного соединения в соответствии с EMV
Common Personalization Specification (CPS) и Global Platform (GP)
Secure Channel Protocol 2 (SCP02). Также генерация сообщений и
защита конфиденциальных данных для процесса MasterCard PayPass
Magnetic Stripe Cards.
Примечание: В соответствии с EMV CPS и GP SCP02 используется следующий
метод записи данных персонализации на карту:
Indirect (Explicit) Method - косвенный (явный) метод:
Данные карты подготавливаются процессом подготовки данных и
передаются процессу персонализации для записи на карту. В
процессе персонализации расшифровываются (из-под KEK или
соответствующего ключа) и перешифровываются (под SK-DEK)
конфиденциальные данные, такие как ключи приложения и PIN, и
создаются сообщения Application Protocol Data Unit (APDU), которые
затем передаются на карту. В соответствии с заданным уровнем
безопасности сообщения могут быть защищены MAC (C-MAC) и
при необходимости зашифрованы с помощью сеансовых ключей,
генерируемых при установлении защищенного соединения.
Для метода MasterCard PayPass Magnetic Stripe функция
подготавливает сообщение APDU с перешифрованием ключа
KDCVC3 с транспортного ключа (ключа процесса подготовки
данных) под ключ карты. Так же генерируется MAC с
использованием ключа карты.
Модуль безопасности платежных систем. Руководство разработчика | 425
C-MAC – MAC, формируемый хостом за командное сообщение
APDU.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘IE’.
Метод установления
защищенного соединения
1 N ‘0’ - Indirect (Explicit)
Method - косвенное (явное)
инициирование защищенного
соединения системой
предперсонализации
‘2’ - MasterCard PayPass Magnetic Stripe
Cards
Для этого метода ключ KD-PERSO
используется и для шифрования групп
данных и для генерации MAC.
Создается одинарное APDU c
1-байтовым полем длины сообщения
(Lc).
Если метод установления защищенного соединения ‘0’ - Indirect (Explicit) Method,
то должны быть представлены следующие 6 полей:
Уровень безопасности 1 B Уровень безопасности для создаваемых
этой командой сообщений чип-карт.
Должен соответствовать уровню
безопасности, заданному в команде
EXTERNAL AUTHENTICATE:
‘0x00’ – не секретное сообщение
‘0x01’ – C-MAC;
‘0x03’ – шифрование и C-MAC.
Если уровень безопасности = ‘0x01’ или ‘0x03’ должны быть представлены
следующие поля:
SK-MAC 1 A + 32 H Сессионный ключ для аутентификации
сообщений (C-MAC), зашифрованный
под LMK 24-25 вариант 4.
Модуль безопасности платежных систем. Руководство разработчика | 426
Поле Длина и тип Описание
Командное сообщение
Инициализационный
C-MAC
8 B C-MAC за предыдущее APDU или
первый C-MAC за команду
EXTERNAL AUTHENTICATE.
Флаг шифрования ICV 1 N Global Platform использует
предшествующий C-MAC в качестве
ICV:
‘0’ – не шифровать предшествующий
C-MAC перед использованием в
качестве ICV;
‘1’ – шифровать предшествующий
C-MAC перед использованием в
качестве ICV.
Флаг C-MAC 1 N Использовать Global Platform для
генерации C-MAC (предшествующий
C-MAC используется как IV для MAC):
‘0’ – модификация APDU перед
генерацией C-MAC (установить
бит безопасности сообщения 1
(CLA) и включить длину C-MAC в
поле длины сообщения Lc;
‘1’ – не модифицировать APDU перед
генерацией C-MAC
Использовать EMV CPS для генерации
C-MAC (предшествующий C-MAC
включен в данные для подсчета MAC,
используется нулевой бинарный IV):
‘9’ – модификация APDU перед
генерацией C-MAC (установить
бит безопасности сообщения 1
(CLA) и включить длину C-MAC в
поле длины сообщения Lc.
Если уровень безопасности = ‘0x03’, то должно быть представлено следующее
поле:
SK-ENC 1 A + 32 H Сессионный ключ для криптограмм и
шифрования сообщений карты (если
требуется), зашифрованный на LMK
24-25 вариант 3.
Модуль безопасности платежных систем. Руководство разработчика | 427
Поле Длина и тип Описание
Командное сообщение
Если метод установления защищенного соединения ‘0’ или ‘2’, то должны быть
представлены следующие 16 полей:
Исходный заголовок
APDU
4 B Исходный заголовок APDU [CLA, INS,
P1, P2]
Lc формируется функцией
автоматически
Длина команды 1 N Максимальная длина команды
‘0’ : Lc = 1 байт.
Максимальная
общая длина
команды –
255 байтов,
включая
заголовок;
‘1’ : Lc = 1 байт
с максимальным
значением 255
Если данные группы
не помещаются в
одинарную команду,
то будет создано
несколько команд.
Метод
установления
защищенного
соединения 2
поддерживает
только одинарные
команды
Lc = 2 байта с максимальным
значением 65535.
Невозможно для метода установления
защищенного соединения 2.
Число DG 2 N Число Data Groupings в команде.
Следующие поля представлены для каждой Data Group
DGI 2 B Идентификатор Data Group
Флаг типа DG 1 A Тип данных Data Group:
‘0’ – открытые данные;
‘1’ – ключ(и), зашифрованные под KEK
в режиме ECB;
‘2’ – ключ(и), зашифрованный под
KEK в режиме CBC;
‘3’ – PIN-блок, зашифрованный под
ZPK;
Модуль безопасности платежных систем. Руководство разработчика | 428
Поле Длина и тип Описание
Командное сообщение
‘4’ – открытые данные, зашифрованные
под SK-DEK. Должны быть кратны 8
байтам
Зашифрованные ключи и PIN-блоки
должны иметь формат,
поддерживаемый картой (например,
формат 5 PIN-блока)
Если в группе типа 1 несколько ключей,
то они должны быть объединены без
параметра Ключевая схема. Все ключи
должны иметь тип и длину,
определяемые параметром Ключевая
схема (KEK).
Если флаг типа DG = 1, 2, 3 или 4, то должны быть представлены следующие 7
полей:
Ключ расшифрования 1 A + 32/48 H Ключ расшифрования данных DG
Если флаг типа DG = 1 или 2: KEK,
зашифрованный под LMK 24-25
вариант 1.
Если флаг типа DG = 3: ZPK,
зашифрованный под LMK 06-07.
Разделитель 1 A Обязательный разделитель.
Значение ‘;’.
Ключевая схема (KEK) 1 A Если при зашифровании ключей под
KEK использован параметр Ключевая
схема, то он должен быть указан в
данном поле. По умолчанию, ключевая
схема ‘X’.
Опционально. Только, если флаг типа
DG =1 и требуется расшифрование
ключей.
Разделитель 1 A Обязательный разделитель.
Значение ‘;’.
IV 8 B Инициализационный вектор для
режима расшифрования CBC. Только,
если флаг типа DG = 2.
Модуль безопасности платежных систем. Руководство разработчика | 429
Поле Длина и тип Описание
Командное сообщение
SK-DEK или KD-Perso 1 A + 32 H Сессионный ключ для шифрования
конфиденциальных данных карты
(ключей приложения или PIN),
зашифрованный под LMK 24-25
вариант 5.
Опционально. Только, если флаг типа
DG =1, 2, 3 или 4. Если несколько групп,
то ключ представлен только с первой
группой данных.
Разделитель 1 A Обязательный разделитель.
Значение ‘;’.
Длина DG 2 B Длина Data Group
Данные DG n B
16 H
Данные Data Group (флаг типа DG = 0,
1, 2 или 4).
PIN-блок (флаг типа DG =3).
Разделитель конца
группы
Разделитель конца всех
групп
1 A
1 A
Обязательный разделитель.
Значение ‘;’.
Обязательный разделитель.
Значение ‘:’.
Модуль безопасности платежных систем. Руководство разработчика | 430
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений
Код ответа 2 А ‘ID’
Код ошибки 2 А 00 – нет ошибок;
05 – недопустимый метод установления
соединения;
06 – недопустимый уровень
безопасности;
07 – недопустимый флаг типа DG;
08 – ошибка четности SK-DEK;
09 – ошибка четности ключа
расшифрования;
10 – ошибка четности SK-MAC;
11- ошибка четности SK-ENC;
50 – недопустимый флаг шифрования
ICV;
51 – недопустимый флаг C-MAC;
52 – недопустимая длина команды;
53 – отсутствие ключа расшифрования;
54 – отсутствие ключа SK-DEK;
55 – длина APDU превышает
допустимое значение;
56 – ошибка разбиения на блоки DG
(разделитель);
57 – превышение максимального числа
сообщений APDU;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Если метод установления защищенного соединения ‘0’ - Indirect (Explicit) Method,
то должны быть представлены следующие 5 полей:
Число сообщений
APDU
1 N Число сообщений, сгенерированных
функцией.
Если длина сообщения = 2, то
возвращаются только одинарные
сообщения.
Модуль безопасности платежных систем. Руководство разработчика | 431
Поле Длина и тип Описание
Ответное сообщение
Следующие 3 поля представлены для каждого APDU сообщения:
Заголовок APDU 5 или 7 B
(если длина
команды
= 2)
Заголовок APDU команды [CLA, INS,
P1, P2, Lc].
Если длина команды = 2, то в поле Lc
за байтом 0х00 следуют два
дополнительных байта, указывающих
длину блока данных (всего 3 байта).
Блок данных APDU n B Данные APDU (длиной Lc) - Data
Groupings и MAC, если требуется.
Последние 8 B последнего блока данных
APDU могут состоять только из
MAC, если этого требует функция.
Это необходимо для использования в
качестве инициализационного C-MAC в
следующей функции подготовки
защищенного сообщения для
чип-карты.
Разделитель конца
APDU
1 A Разделитель. Значение ‘;’.
Разделитель конца всех
APDU
1 A Разделитель. Значение ‘:’.
Если метод установления защищенного соединения ‘2’ - MasterCard PayPass
Magnetic Stripe Cards, то должны быть представлены следующие 2 поля:
Заголовок APDU 5 B Заголовок APDU команды [CLA, INS,
P1, P2, Lc].
Блок данных APDU n B Данные APDU (длиной Lc).
Модуль безопасности платежных систем. Руководство разработчика | 432
4.8. Команды лицензии «Поддержка 3-D Secure» (Support of 3-D
Secure License – LIC006)
4.88.1. Перечень команд лицензии «Поддержка 3-D Secure»
Таблица 26 - Перечень команд лицензии «Поддержка 3 D Secure»
приводит перечень команд лицензии «Поддержка 3-D Secure» (LIC006).
Таблица 26 - Перечень команд лицензии «Поддержка 3 D Secure»
Команда
(ответ)
Функция
K2 (K3) Проверка Truncated Application Cryptogram (MasterCard CAP)
L0 (L1) Генерация ключа для вычисления HMAC
LQ (LR) Генерация HMAC за блок данных
LS (LT) Проверка HMAC за блок данных
LU (LV) Импорт ключа вычисления HMAC из-под ZMK
LW (LX) Экспорт ключа вычисления HMAC под ZMK
LY (LZ) Перешифрование ключа вычисления HMAC из-под
«старого» LMK под «новый»
Модуль безопасности платежных систем. Руководство разработчика | 433
4.88.2. Описание команд лицензии «Поддержка 3-D Secure»
Проверка Truncated Application Cryptogram (MasterCard CAP) (K2)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC006 LIC006
Авторизация: См. Примечание См. Примечание
Функция: Проверка Truncated Application Cryptogram (MasterCard CAP)
разового пароля держателя карты.
Примечание: Команда поддерживает:
• EMV 4.1 methods A и B для выработки мастер-ключей карты
• EMV 3.1.1 и EMV 4.1 (включая EMV Common Session Key
Derivation) для выработки сессионных ключей карты
Для вывода диагностических данных требуется авторизованное
состояние HSM.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘K2’.
Флаг режима 1 H Режим выполнения команды:
‘0’ : Проверка Truncated AC и проверка
MAC
Идентификатор (ID)
схемы CAP
2 N '00' : MasterCard CAP;
'01' : MasterCard CAP с TDS
Метод диверсификации
мастер-ключей карты
1 N Метод диверсификации IDK-AC:
'0' : EMV 4.1 Master Key Derivation
Option A
'1' : EMV 4.1 Master Key Derivation
Option B.
Модуль безопасности платежных систем. Руководство разработчика | 434
Поле Длина и тип Описание
Метод диверсификации
сессионных ключей
карты
1 N '0' : Нет сессионных ключей.
Метод диверсификации SK-AC:
'1' : MasterCard (M/Chip 2.1 method);
'3' : EMV 4.1 (EMV Common Session
Key Derivation Method).
MK-AC (LMK) Мастер-ключ эмитента для
формирования и проверки
Application Cryptograms,
32 H
или
1 A + 32 H
Для вариантных LMK:
зашифрованный под LMK 28-29
вариант 1.
или
1 A + n A
Для Keyblock LMK:
ZMK или TMK в формате Keyblock
HSM. Значения полей MK-AC
следующие:
Key Usage Algorithm Mode of Use
‘E0’ ‘T’ ‘N’
Длина PAN 2 N Только если метод диверсификации
сессионных ключей карты = ‘2’.
Длина (в байтах) поля PAN/PAN
Sequence Number.
Значение '01' ... '99'.
Поле указывает число байтов для
хранения PAN/PAN Sequence Number.
Если число цифр PAN/PAN Sequence
Number – нечетное, то слева
вставляется дополнительный ‘0’.
PAN/PAN Sequence № 8 B
или n B
Для метода диверсификации
мастер-ключей карты = ‘0’, это поле
имеет фиксированную длину 8 байтов
и содержит переформатированный
PAN/PSN (в BCD формате).
За паддинг (при необходимости)
PAN/PSN до 8 байтов отвечает хост.
Модуль безопасности платежных систем. Руководство разработчика | 435
Поле Длина и тип Описание
Для метода диверсификации
мастер-ключей карты = ‘1’, поле
содержит PAN/PSN (в BCD формате).
Поле PAN/PSN должно содержать
четное число цифр, в противном
случае хост должен добавить слева
дополнительный ‘0’. PAN/PSN
используется в EMV 4.1 Option B
Примечание: Если "PAN Length" <= 8
байт, то HSM дополнит до 8 байтов,
если это необходимо, в соответствии
с EMV Option А.
Разделитель 1 A Только если метод диверсификации
мастер-ключей карты = ‘1’. Указывает
на конец поля PAN/PSN. Значение ‘;’.
Счетчик транзакций
(Application Transaction
Counter)
2 B ATC последней транзакции хранится
в БД хоста.
Значение ATC сообщается картой в
SecureCode message.
UN 4 B Unpredictable Number
Только если метод диверсификации
мастер-ключей карты = ‘1’.
Длина данных
транзакции
2 H Длина следующего поля. Значение от
‘00’ до ‘FF’.
Данные транзакции n B Данные переменной длины. Если
данные не кратны 8 байтам,
дополнение нулями.
Разделитель 1 A Разделитель, указывающий на конец
данных транзакции. Значение ‘;’.
Усеченная
криптограмма (AC)
8 B Криптограмма для проверки.
Поле содержит усеченную
EMV-криптограмму из SecureCode
message.
Поле выравнено до 8 байтов по
правому краю, слева дополнено ‘00’.
HSM генерирует криптограмму из
подаваемых на вход данных
транзакции, усекает ее с
Модуль безопасности платежных систем. Руководство разработчика | 436
Поле Длина и тип Описание
использованием IPB и сравнивает с
принятой усеченной криптограммой.
Криптограмма IPB 8 B Маска для усечения криптограммы
(IPB).
Зарезервировано 4 B Зарезервировано. Поле игнорируется
Длина данных TDS 4 N Длина следующего поля. Значение от
‘0002’…’9998’.
Только если метод диверсификации
мастер-ключей карты = ‘1’.
Данные TDS n H Данные TDS.
За паддинг данных TDS ответственен
хост
Только если метод диверсификации
мастер-ключей карты = ‘1’.
Модуль безопасности платежных систем. Руководство разработчика | 437
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘K3’.
Код ошибки 2 А 00 – нет ошибок;
01 – отрицательный результат
проверки ARQC/TC/AAC;
04 – недопустимый флаг режима;
05 – недопустимый метод
диверсификации ключей;
10 – ошибка четности MK;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Диагностические
данные
8 B «Усеченная криптограмма»,
сгенерированная HSM.
Поле выравнено по правому краю и
дополнено ‘00’ до 8 байтов.
Возвращается только в случае ошибки
01 и в авторизованном состоянии
HSM.
Модуль безопасности платежных систем. Руководство разработчика | 438
Генерация ключа для вычисления HMAC (L0)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC006 LIC006
Авторизация: Не требуется Не требуется
Функция: Генерация ключа для вычисления HMAC.
Примечание: Генерация секретного ключа для использования Keyed-Hash
Message Authentication Code (HMAC). Данный ключ должен
использоваться только для вычисления HMAC и никаких других
функций.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘L0’ (L zero).
Идентификатор
Хэш-функции
2 N
или
Идентификатор алгоритма
Хэш-функции:
‘01’ : SHA-1.
‘06’ : SHA-256
2 H Это поле игнорируется, должно быть
установлено значение «FF».
Использование ключа
HMAC
2 N
или
Использование ключа HMAC:
‘01’ : генерация HMAC;
‘02’ : проверка HMAC;
‘03’ : генерация и проверка HMAC.
2 H Это поле игнорируется, должно быть
установлено значение «FF».
Длина ключа HMAC 4 N Длина ключа HMAC (в байтах).
Должна удовлетворять требованию: L/2
≤ длины ключа, где L – размер
выходной Хэш-функции (L = 20 для
алгоритма SHA-1).
Модуль безопасности платежных систем. Руководство разработчика | 439
Поле Длина и тип Описание
Формат ключа HMAC 2 N Формат ключа для хранения.
Для вариантного LMK:
‘00’ : Проприетарный формат ключа
HMAC.
Для Keyblock LMK:
‘04’ : Keyblock формат ключа HMAC.
При
мен
яет
ся т
олько
пр
и с
озд
ани
и к
лю
чев
ого
бло
ка
Разделитель 1 A Значение ‘#’, только при наличии
следующих полей
Используемость
ключа
2 A Значение поля Key Usage для
включения в заголовок Keyblock (байты
5-6). Представлено, если присутствует
поле Разделитель.
Возможные значения поля:
‘61’: SHA-1
’63’: SHA-256
Алгоритм 2 A Значения поля Алгоритм для включения
в заголовок Keyblock (байт 7).
Представлено, если присутствует поле
Разделитель. Допустимое значение:
‘H0’ (см. Таблица 13)
Режим
использования
1 A Значения поля Mode of Use для
включения в заголовок Keyblock (см.
Таблица 15). Представлено, если
присутствует поле Разделитель.
Номер версии
ключа
2 N Значения поля Key Version Number для
включения в заголовок Keyblock.
Возможные значения6 от ‘00’ до ‘99’.
Представлено, если присутствует поле
Разделитель
Число
опциональных
блоков
2 N Число опциональных блоков Keyblock.
Возможные значения от ‘00’ до ‘08’.
Представлено, если присутствует поле
Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Модуль безопасности платежных систем. Руководство разработчика | 440
Поле Длина и тип Описание
Идентификатор
опционального
блока
2 A Идентификатор опционального блока
(см. Таблица 18, любое допустимое
значение, кроме ‘PB’)
Длина
опционального
блока
2 H Число символов в опциональном блоке
(включая поля идентификатора и
длины). Возможные значения от X’04’
до X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный
блок
n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 441
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘L1’.
Код ошибки 2 А 00 – нет ошибок;
04 – ошибка длины ключа;
05 – недопустимый идентификатор
Хэш;
06 – недопустимое использование
ключа;
07 – недопустимый формат ключа;
98 – команда недоступна или
стандартный код ошибки (см.
Приложение 1).
Длина ключа HMAC 4 N
или
Для вариантных LMK:
Длина (в байтах) следующего поля.
4 H Для Keyblock LMK:
Резервное поле заполнено ‘FFFF’
Ключ HMAC n B или n A Ключ HMAC
Для вариантных LMK:
Зашифрованный под парой LMK
34-35 вариант 1.
Для Keyblock LMK:
Ключ HMAC, закодированный под
LMK
Модуль безопасности платежных систем. Руководство разработчика | 442
Генерация HMAC за блок данных (LQ)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC006 LIC006
Авторизация: Не требуется Не требуется
Функция: Генерация HMAC за блок данных на ключе вычисления HMAC.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘LQ’.
Хэш-идентификатор 2 N
или
Для вариантных LMK:
'01' : SHA-1.
'06' : SHA-256
2 H Для Keyblock LMK это поле
игнорируется, должно быть
установлено ‘FF’.
Длина HMAC 4 N Длина (t) в байтах сгенерированного
HMAC. Должна удовлетворять
условию: L/2 <= t <= L, где L — размер
вывода хэш-функции (L = 20 в случае
SHA-1).
Формат ключа HMAC 2 N Определяет формат хранения ключа.
Для вариантных LMK:
'00' : Проприетарный формат ключа
HMAC.
Для Keyblock LMK:
'04' : Keyblock формат ключа HMAC.
Длина ключа HMAC 4 N
или
Для вариантных LMK:
Длина (в байтах) следующего поля.
4 H Для Keyblock LMK: это поле
игнорируется, должно быть
установлено ‘FFFF’
Модуль безопасности платежных систем. Руководство разработчика | 443
Поле Длина и тип Описание
Ключ HMAC n B или n A Ключ HMAC используется для
вычисления HMAC. Примечание: ключ
не включает символ, определяющий
ключевую схему.
Для вариантных LMK:
Ключ зашифрован под LMK 34-35
вариант 1.
Для Keyblock LMK ключ HMAC должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘61’, ‘63’ ‘H’ ‘C’, ‘V’, ‘N’
Разделитель 1 A Значение ';'.
Длина данных 5 N Длина сообщения.
Данные сообщения n B Данные сообщения.
Модуль безопасности платежных систем. Руководство разработчика | 444
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘LR’.
Код ошибки 2 A 00 – нет ошибок;
04 – ошибка длины HMAC;
05 – недопустимый
хэш-идентификатор;
06 – недопустимое Key Usage;
07 – недопустимый формат ключа;
08 – ошибка ключа HMAC;
67 – команда не имеет лицензии
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Длина HMAC 4 N Длина (t) в байтах выводимого
HMAC, значение которой определено
в командном сообщении.
HMAC n B HMAC (длина определена в
предыдущем поле).
Модуль безопасности платежных систем. Руководство разработчика | 445
Проверка HMAC за блок данных (LS)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC006 LIC006
Авторизация: Не требуется Не требуется
Функция: Генерация HMAC за блок данных на ключе вычисления HMAC и
сравнение с принятым.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘LS’.
Хэш-идентификатор 2 N Для вариантных LMK:
'01' : SHA-1.
'06' : SHA-256
или
2 H
Для Keyblock LMK это поле
игнорируется, должно быть
установлено ‘FF’.
Длина HMAC 4 N Длина (t) в байтах проверяемого HMAC.
Должна удовлетворять условию:
L/2 <= t <= L,
где L — размер вывода хэш-функции
(L = 20 в случае SHA-1).
HMAC n B Проверяемый HMAC (длина определена
в предыдущем поле).
Формат ключа HMAC 2 N Определяет формат хранения ключа.
Для вариантных LMK:
'00' : Проприетарный формат ключа
HMAC.
Для Keyblock LMK:
'04' : Keyblock формат ключа HMAC.
Длина ключа HMAC 4 N Для вариантных LMK:
Длина (в байтах) следующего поля
Модуль безопасности платежных систем. Руководство разработчика | 446
Поле Длина и тип Описание
или
4 H
Для Keyblock LMK это поле
игнорируется, должно быть
установлено ‘FFFF’.
Ключ HMAC n B или n A Ключ HMAC используется для
проверки HMAC.
Примечание: ключ не включает символ,
определяющий ключевую схему.
Для вариантных LMK:
Ключ зашифрован под LMK 34-35
вариант 1.
Для Keyblock LMK ключ HMAC должен
соответствовать следующим значениям:
Key Usage Algorithm Mode of Use
‘61’, ‘63’ ‘H’ ‘C’, ‘V’, ‘N’
Разделитель 1 A Значение ';'.
Длина данных 5 N Длина сообщения.
Данные сообщения n B Данные сообщения.
Модуль безопасности платежных систем. Руководство разработчика | 447
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘LT’.
Код ошибки 2 A 00 – нет ошибок;
01 – ошибка проверки HMAC;
04 – ошибка длины HMAC;
05 – недопустимый
хэш-идентификатор;
06 – недопустимое Key Usage;
07 – недопустимый формат ключа;
08 – ошибка ключа HMAC;
67 – команда не имеет лицензии;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Модуль безопасности платежных систем. Руководство разработчика | 448
Импорт ключа вычисления HMAC из-под ZMK (LU)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC006 LIC006
Авторизация: Не требуется Не требуется
Функция: Извлечение ключа вычисления HMAC из транспортного контейнера
и расшифрование из-под ZMK, зашифрование ключа вычисления
HMAC под LMK.
Примечание:
Ключ HMAC, зашифрованный под ZMK, должен быть кратным 8
байтам.
Формат транспортного контейнера ключа вычисления HMAC (под
ZMK) определяется идентификатором транспортного формата.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘LU’.
ZMK ZMK используется для
расшифрования 'HMAC ключ (под
ZMK)'.
16/32 H
или
1 A + 32/48 H
Для вариантных LMK:
ZMK зашифрован под
LMK 04-05.
или
1 A + n A
Для Keyblock LMK:
ZMK должен соответствовать
следующим значениям:
Key Usage Algorithm Mode of
Use
‘K0’, ‘52’ ‘D’, ‘T’ ‘B’, ‘D’, ‘N’
Длина HMAC ключа
(под ZMK)
4 N
или
4 H
Для транспортного формата '01', '02',
'03' это поле указывает длину (в
байтах) следующего поля.
Модуль безопасности платежных систем. Руководство разработчика | 449
Поле Длина и тип Описание
Командное сообщение
Для транспортного формата '04' это
поле игнорируется; должно быть
установлено «FFFF».
HMAC ключ (под ZMK) n B
или
n A
Импортируемый HMAC ключ,
зашифрованный под ZMK.
Примечание: ключ не включает
символ, определяющий ключевую
схему.
HMAC ключ (под ZMK),
зашифрованный под формат Keyblock
(транспортный формат '04') должен
содержать следующие допустимые
значения:
Key Usage Algorithm Mode of
Use
‘61’, ‘63’ ‘H’ ‘C’, ‘G’,
‘V’, ‘N’
Разделитель 1 A Значение ';'.
Только для вариантного LMK
Транспортный формат 2 N Формат HMAC ключа (под ZMK):
'01' : PKCS#11 ECB формат;
'02' : PKCS#11 CBC формат;
'03' : X9.17 формат;
'04' : Keyblock формат (не применяется
для вариантных LMK).
Формат ключа HMAC
(под LMK)
2 N Определяет формат LMK шифрования
HMAC ключа.
Для вариантного LMK:
'00' : Проприетарный формат ключа
HMAC.
Для Keyblock LMK:
'04' : Keyblock формат ключа HMAC.
Модуль безопасности платежных систем. Руководство разработчика | 450
Поле Длина и тип Описание
Командное сообщение
Хэш-идентификатор 2 N Только для вариантных LMK, если
транспортный формат '01', '02', '03':
'01' : SHA-1.
'06' : SHA-256
HMAC Key Usage 2 N
или
2 H
Для транспортного формата '01', '02',
'03' значение HMAC Key Usage:
'01' : HMAC генерация;
'02' : HMAC проверка;
'03' : HMAC генерация и проверка.
Длина ключа HMAC 4 N Для транспортного формата '01', '02',
'03':
Число байт HMAC ключа.
Длина должна удовлетворять
условию: L/2 <= длина ключа,
где L — размер вывода хэш-функции
(L = 20 в случае SHA-1).
Только
когд
а г
енер
ир
ует
ся K
eyb
lock
Разделитель 1 A Значение ‘#’. Требуется при генерации
Keyblock. Если представлено, то
должны быть поля, приведенные ниже
Использование
ключа (Key Usage)
2 A Значение поля Key Usage для
включения в заголовок Keyblock.
Представлено, если присутствует поле
Разделитель.
Возможные значения поля по типу
ключа:
‘61’: SHA-1
’63’: SHA-256
Режим
использования
(Mode of Use)
1 A Значения поля Mode of Use для
заголовка Keyblock (см. по типу ключа
Таблица 15). Представлено, если
присутствует поле Разделитель.
Номер версии
ключа (Key Version
Number)
2 N Значения поля Key Version Number
для заголовка Keyblock (см. Таблица
16). Возможные значения от ‘00’ до
Модуль безопасности платежных систем. Руководство разработчика | 451
Поле Длина и тип Описание
Командное сообщение
‘99’. Представлено, если присутствует
поле Разделитель.
Экспортируемость
(Exportability)
1 А Значения поля Exportability для
заголовка Keyblock (см. Таблица 17)
Представлено, если присутствует поле
Разделитель.
Число
опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения от ‘00’
до ‘08’. Представлено, если
присутствует поле Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального
блока
2 A Идентификатор опционального блока.
Любое допустимое значение, кроме
‘PB’ (см. Таблица 18).
Длина
опционального
блока
2 H Число символов в опциональном
блоке (включая поля идентификатора
и длины). Возможные значения от
X’04’ до X’FF’. Если значение X’04’,
то следующее поле не представлено.
Опциональный
блок
n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 452
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘LV’.
Код ошибки 2 A 00 – нет ошибок;
03 – недопустимый транспортный
формат;
04 – ошибка длины HMAC;
05 – недопустимый
хэш-идентификатор;
06 – недопустимое Key Usage;
07 – недопустимый формат ключа;
08 – ошибка ключа HMAC;
10 – ошибка четности ZMK
67 – команда не имеет лицензии;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Длина ключа HMAC 4 N
или
Для вариантных LMK:
Длина (в байтах) следующего поля
4 H Для Keyblock LMK:
Это поле игнорируется, должно быть
установлено ‘FFFF’
HMAC ключ (под LMK) n B
или
n A
Импортированный HMAC ключ.
Примечание: ключ не включает
символ, определяющий ключевую
схему.
Для вариантных LMK:
Зашифрован под LMK 34-35 вариант 1.
Для Keyblock LMK:
HMAC ключ зашифрован под LMK.
Модуль безопасности платежных систем. Руководство разработчика | 453
Экспорт ключа вычисления HMAC под ZMK (LW)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC006 LIC006
Авторизация: Не требуется Не требуется
Функция: Расшифрование ключа вычисления HMAC из-под LMK,
зашифрование ZMK под (DES или ГОСТ). Формирование
транспортного контейнера.
Примечание: Ключ HMAC, зашифрованный под ZMK, должен быть кратным 8
байтам.
Формат транспортного контейнера ключа вычисления HMAC (под
ZMK) определяется идентификатором транспортного формата.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘LW’.
ZMK ZMK используется для зашифрования
'HMAC ключ'.
16/32 H
или
1 A + 32/48 H
или
Для вариантных LMK:
ZMK зашифрован под парой LMK
04-05.
1 A + n A Для Keyblock LMK ZMK должен
соответствовать следующим
значениям:
Key Usage Algorithm Mode of Use
‘K0’, ‘52’ ‘D’, ‘T’ ‘B’, ‘E’, ‘N’
Формат ключа HMAC
(под LMK)
2 N Определяет формат LMK шифрования
HMAC ключа.
'00' : Проприетарный формат ключа
HMAC.
'04' : Keyblock формат ключа HMAC.
Модуль безопасности платежных систем. Руководство разработчика | 454
Поле Длина и тип Описание
Командное сообщение
Транспортный формат 2 N Формат HMAC ключа (ZMK):
'01' : PKCS#11 ECB формат;
'02' : PKCS#11 CBC формат;
'03' : X9.17 формат;
'04' : KeyBlock формат (не применяется
для вариантных LMK).
Длина HMAC ключа
(под LMK)
4 N
или
Для вариантных LMK: это поле
указывает длину (в байтах) следующего
поля.
4 H Для Keyblock LMK: это поле
игнорируется, должно быть
установлено ‘FFFF’
HMAC ключ
(под LMK)
n B или n A Экспортируемый HMAC ключ.
Примечание: ключ не включает символ,
определяющий ключевую схему.
HMAC ключ зашифрован под LMK
34-35 вариант 1.
Для Keyblock LMK:
HMAC ключ должен содержать
следующие допустимые значения:
Key Usage Algorithm Mode of Use
‘61’, ‘63’ ‘H’ ‘C’, ‘G’,
‘V’, ‘N’
Key
blo
ckL
MK
→
Key
blo
ckZ
MK
Разделитель 1 A Значение ‘&’.
Опционально, присутствует только если
экспортируемый ключ является
ключевым блоком; если присутствует,
должно быть следующее поле/
Modified
Exportability
1 A Значения поля Exportability для
заголовка Keyblock. Допускается только
значение «N». Представлено, если
присутствует поле Разделитель.
Модуль безопасности платежных систем. Руководство разработчика | 455
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘LX’.
Код ошибки 2 A 00 – нет ошибок;
03 – недопустимый транспортный
формат;
07 – недопустимый формат ключа;
08 – ошибка ключа HMAC;
10 – ошибка четности ZMK;
67 – команда не имеет лицензии;
98 – команда отключена или
стандартный код ошибки (см.
Приложение 1).
Длина HMAC ключа
(под ZMK)
4 N Если формат не ‘04’ – это длина (в
байтах) следующего поля.
Если формат ‘04’ - это поле
игнорируется, должно быть
установлено ‘FFFF’
HMAC ключ (под
ZMK)
n B или n A HMAC ключ, зашифрованный под
ZMK, в формате, указанном в поле
'Транспортный формат'.
Примечание: ключ не включает
символ, определяющий ключевую
схему.
Хэш-идентификатор 2 N Идентификатор хэш-алгоритма:
'01' : SHA-1.
'06' : SHA-256
HMAC Key Usage 2 N '01' : HMAC генерация;
'02' : HMAC проверка;
'03' : HMAC генерация и проверка.
Длина HMAC ключа 4 N Число байт HMAC ключа.
Значение должно удовлетворять
условию: L/2 <= длина ключа,
где L — размер вывода хэш-функции
(L = 20 в случае SHA-1).
Модуль безопасности платежных систем. Руководство разработчика | 456
Перешифрование ключа вычисления HMAC из-под «старого»
LMK под «новый» (LY)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC006 LIC006
Авторизация: Не требуется Не требуется
Функция: Расшифрование ключа вычисления HMAC из-под «старого» LMK и
зашифрование под «новый».
Примечание: Данная команда так же используется для изменения формата
хранения HMAC ключа.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без
изменений.
Код команды 2 А ‘LY’.
Формат входного HMAC
ключа
2 N Определяет формат входного
HMAC ключа (зашифрованного
под «старым» LMK).
Для «старого» LMK:
Для варинтного LMK:
'00': Проприетарный формат
HMAC ключа.
Для Keyblock LMK:
'04' : Keyblock формат ключа
HMAC.
Формат выходного HMAC
ключа
2 N Определяет формат выходного
HMAC ключа (зашифрованного
под текущим LMK). Для текущего
LMK
Для вариантного LMK:
'00': Проприетарный формат
HMAC ключа.
Для Keyblock LMK:
Модуль безопасности платежных систем. Руководство разработчика | 457
Поле Длина и тип Описание
'04' : Keyblock формат ключа
HMAC.
Длина HMAC ключа 4 N
или
Для «старого» варианта LMK:
длина (в байтах) следующего поля.
4 H Для старого Keyblock LMK:
это поле игнорируется, должно
быть установлено ‘FFFF’
HMAC ключ n B или n A HMAC ключ для перешифрования,
зашифрованный под «старым»
LMK. Примечание: ключ не
включает символ, определяющий
ключевую схему.
Для вариантных LMK:
Зашифрован под старым LMK
34-35 вариант 1.
Для старого Keyblock LMK
допустимы значения полей ‘ZPK’:
Key Usage Algorithm Mode of
Use
‘61’, ‘63’ ‘H’ ‘C’, ‘G’,
‘V’, ‘N’
Разделитель 1 A Значение ‘#’. Требуется при
переводе в Keyblock формат. Если
представлено, то должны быть
поля, приведенные ниже
Использование ключа 2A Допустимые значения:
'61' – SHA-1
'63' – SHA-256
При переводе ключа из формата
«00», это поле должно быть
совместимо с идентификатором
хэширования входного ключа.
Режим использования 1 A Значения поля Mode of Use для
заголовка Keyblock (см. по типу
ключа Таблица 15). Представлено,
Модуль безопасности платежных систем. Руководство разработчика | 458
Поле Длина и тип Описание
если присутствует поле
Разделитель. Т
олько
для п
ереш
иф
ро
ван
ия в
ари
антн
ого
LM
K в
Key
blo
ck
Номер версии ключа 2 N Значения поля Key Version Number
для заголовка Keyblock.
Возможные значения от ‘00’ до
‘99’ (см. Таблица 16).
Представлено, если присутствует
поле Разделитель.
Экспортируемость 1 A Значения поля Exportability для
заголовка Keyblock (см. Таблица
17). Представлено, если
присутствует поле Разделитель.
Число опциональных
блоков
2 N Число опциональных блоков
Keyblock. Возможные значения от
‘00’ до ‘08’. Представлено, если
присутствует поле Разделитель.
Для каждого опционального блока должны быть представлены следующие
три поля. Если значение поля ‘Число опциональных блоков’=’00’, то
следующие три не представлены.
Идентификатор
опционального блока
2 A Идентификатор опционального
блока (см. Таблица 18 - любое
допустимое значение, кроме ‘PB’).
Длина опционального
блока
2 H Число символов в опциональном
блоке (включая поля
идентификатора и длины).
Возможные значения от X’04’ до
X’FF’. Если значение X’04’, то
следующее поле не представлено.
Опциональный блок n A Опциональный блок данных
Модуль безопасности платежных систем. Руководство разработчика | 459
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘LZ’.
Код ошибки 2 A 00 – нет ошибок;
03 – недопустимый формат
выходного ключа;
07 – недопустимый формат входного
ключа;
08 – ошибка ключа HMAC;
67 – команда не имеет лицензии;
98 – команда отключена
или стандартный код ошибки (см.
Приложение 1).
Длина HMAC ключа 4 N Для вариантного LMK:
длина (в байтах) следующего поля.
или
4 H
Для Keyblock LMK:
это поле игнорируется, должно быть
установлено ‘FFFF’
HMAC ключ n B или n A Перешифрованный HMAC ключ,
зашифрованный под текущим LMK.
Примечание: ключ не включает
символ, определяющий ключевую
схему.
Для вариантных LMK:
HMAC ключ зашифрован под
текущим LMK 34-35 вариант 1.
Для Keyblock LMK:
HMAC ключ зашифрован под
текущим Keyblock LMK.
Модуль безопасности платежных систем. Руководство разработчика | 460
4.9. Команды лицензии «Поддержка CUP» (Support of China Union
Pay License – LIC007)
4.99.1. Перечень команд лицензии «Поддержка CUP»
Таблица 27 - Перечень команд лицензии «Поддержка CUP»7 приводит
перечень команд лицензии «Поддержка CUP» (LIC007).
Таблица 27 - Перечень команд лицензии «Поддержка CUP»
Команда
(ответ)
Функция
JS (JT) Проверка ARQC и генерация ARPC (CUP)
JU (JV) Генерация секретных сообщений (CUP)
4.99.2. Описание команд лицензии «Поддержка CUP»
Проверка ARQC и генерация ARPC (CUP) (JS)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC007 LIC007
Авторизация: См. Примечание -
Функция: Проверка ARQC (или TC/AAC) и, опционально, генерация ARPC.
Также команда может быть использована только для генерации
ARPC.
Примечание: Вывод диагностических данных требует состояние авторизации.
Диагностические данные включают в себя вычисленную ARQC в
случае, если проверка полученной ARQC завершилась неудачей.
Паддинг:
• В соответствии с частью 5 документа CUP (JR/T 0025.5-2010)
Appendix D.2 данные для вычисления ARQC должны быть
дополнены. Если данные кратны 8, то в конец данных
Модуль безопасности платежных систем. Руководство разработчика | 461
добавляется “hex 80 00 00 00 00 00 00 00”. Если данные не
кратны 8, то в конец данных добавляется “hex 80” и несколько
(от 0 до 7) шестнадцатиричных байтов “00”.
• Применение описанного правила паддинга контролируется с
помощью флага.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JS’.
Флаг режима 1 N Режим выполнения команды:
‘0’ : только проверка ARQC;
‘1’ : проверка ARQC и генерация
ARPC;
‘2’ : только генерация ARPC.
Идентификатор (ID)
метода
диверсификации
ключей
1 N Идентификатор метода
диверсификации ключей CUP:
‘1’ : CUP Card Key Derivation method
(CUP ver4.2).
MK-AC (LMK) 32 H
или
1 A + 32 H
Мастер-ключ эмитента для
формирования Application Cryptograms,
зашифрованный под LMK 28-29.
PAN/PAN Sequence № 8 B Переформатированный PAN/PAN
Sequence №.
ATC 2 B Счетчик транзакций
(Application Transaction Counter).
Флаг паддинга 1 N Флаг, указывающий на применение
паддинга для данных транзакции:
‘0’ : данные транзакции не дополнены
(требуется паддинг).
‘1’ : данные транзакции дополнены
(паддинг не требуется).
Только, если флаг режима = ‘0’ или ‘1’.
Модуль безопасности платежных систем. Руководство разработчика | 462
Поле Длина и тип Описание
Командное сообщение
Длина данных
транзакции
2 H Длина следующего поля. От 1 до 255
байтов. Только, если флаг режима = ‘0’
или ‘1’.
Данные транзакции n B Данные переменной длины. Только,
если флаг режима = ‘0’ или ‘1’.
Если данные кратны 8 байтам, то
дополнительный паддинг не требуется.
Если данные не кратны 8 байтам, то
требуется паддинг.
Разделитель 1 A Разделитель, указывающий конец
данных транзакции. Только, если флаг
режима = ‘0’ или ‘1’. Значение ‘;’.
ARQC/TC/AAC 8 B ARQC/TC/AAC для проверки и
генерации ARPC.
ARC 2 B
Код ответа авторизации (Authorisation
Response Code) для генерации ARPC
Только, если флаг режима = ‘1’ или ‘2’.
Модуль безопасности платежных систем. Руководство разработчика | 463
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JT’.
Код ошибки 2 А 00 – нет ошибок;
01 – ошибка проверки ARQC/TC/AAC;
03 – недопустимый флаг паддинга;
04 – недопустимый флаг режима;
05 – недопустимый ID метода
диверсификации ключа;
10 – ошибка четности MK;
80 – ошибка длины данных
81 – нулевая длина данных
транзакции;
82 – длина данных транзакции
не кратна 8 байтам;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
ARPC 8 B Вычисленная ARPC. Только, если
флаг режима = ‘1’ или ‘2’ и нет
ошибок.
Диагностические
данные
8 B Вычисленная ARQC/TC/AAC. Только
если код ошибки = 1 и HSM находится
в авторизованном состоянии.
Модуль безопасности платежных систем. Руководство разработчика | 464
Генерация секретных сообщений (CUP) (JU)
Variant LMK ■ Keyblock LMK □
Лицензия: LIC007 LIC007
Авторизация: Не требуется -
Функция: Генерация секретных сообщений (Secure Message) с обеспечением
целостности. Опционально, обеспечивается конфиденциальность
сообщения или смена PIN.
Примечание: Паддинг:
• В соответствии с частью 5 документа CUP (JR/T 0025.5-2010)
Appendix C.2.4 данные для вычисления MAC должны быть
дополнены. Если данные кратны 8, то в конец данных
добавляется “hex 80 00 00 00 00 00 00 00”. Если данные не
кратны 8, то в конец данных добавляется “hex 80” и несколько
(от 0 до 7) шестнадцатиричных байтов “00”.
• Применение описанного правила паддинга контролируется с
помощью флага.
Модуль безопасности платежных систем. Руководство разработчика | 465
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘JU’.
Флаг режима 1 N Режим выполнения команды:
‘0’ : только целостность (MAC)
сообщения;
‘1’ : целостность (MAC) и
конфиденциальность (шифрование)
сообщения с использованием одного
мастер-ключа;
‘2’ : целостность (MAC) и
конфиденциальность (шифрование)
сообщения с использованием разных
мастер-ключей;
‘3’ : целостность (MAC) и
конфиденциальность (шифрование)
для смены PIN с использованием
одного мастер-ключа;
‘4’ : целостность (MAC) и
конфиденциальность (шифрование)
для смены PIN с использованием
разных мастер-ключей.
Идентификатор (ID)
метода
диверсификации
ключей
1 N Идентификатор метода
диверсификации ключей CUP:
‘1’ : CUP Card Key Derivation method
(CUP ver4.2).
MK-SMI (LMK) 32 H
или
1 A + 32 H
Мастер-ключ эмитента для
обеспечения целостности секретных
сообщений, зашифрованный под LMK
28-29 вариант 2.
PAN/PAN Sequence № 8 B Переформатированный PAN/PAN
Sequence №.
ATC 2 B Счетчик транзакций
(Application Transaction Counter).
Модуль безопасности платежных систем. Руководство разработчика | 466
Поле Длина и тип Описание
Командное сообщение
Флаг паддинга 1 N Флаг, указывающий на применение
паддинга для данных транзакции:
‘0’ : данные транзакции не дополнены
(требуется паддинг);
‘1’ : данные транзакции дополнены
(паддинг не требуется).
Длина данных
транзакции для
вычисления MAC
4 H Длина в байтах следующего поля.
Данные транзакции для
вычисления MAC
n B Данные для вычисления MAC.
Разделитель 1 A Разделитель, указывающий конец
данных транзакции. Значение ‘;’.
MK-SMI (LMK) 32 H
или
1 A + 32 H
Мастер-ключ эмитента для
шифрования секретных сообщений,
зашифрованный под LMK 28-29
вариант 3. Только, если флаг режима
= ‘2’ или ‘4’.
Смещение 4 H Позиция в сообщении для вставки
зашифрованного нового PIN-блока или
зашифрованных данных. Должно быть
между 0000 и длиной сообщения. Если
смещение = n, то зашифрованный
PIN-блок или зашифрованные данные
вставляются после n-го байта
сообщения (Т.е. если длина открытого
текста = 0039, и смещение = 39, то
зашифрованный новый PIN-блок
помещается в конце открытого текста
сообщения).
Только, если флаг режима = ‘1’, ‘2’, ‘3’
или ‘4’.
Длина открытых
данных сообщения
4 H Длина (в байтах) следующего поля.
Открытые данные
сообщения
n B Открытые данные сообщения. Только,
если флаг режима = ‘1’ или ‘2’.
Модуль безопасности платежных систем. Руководство разработчика | 467
Поле Длина и тип Описание
Командное сообщение
Разделитель 1 A Разделитель. Значение ‘;’.
Тип ключа
шифрования PIN
1 N ‘0’ : ZPK;
‘1’ : TPK.
Ключ шифрования PIN 16 H
или
1 A + 32/48 H
Только, если флаг режима = ‘3’ или ‘4’.
Ключ шифрования PIN в соответствии
с типом:
ZPK, зашифрованный под LMK 06-07
вариант 0;
TPK, зашифрованный под LMK 14-15
вариант 2
Только, если флаг режима = ‘3’ или ‘4’.
Исходный формат
PIN-блока
2 N Код формата исходного PIN-блока.
Только, если флаг режима = ‘3’ или ‘4’.
Номер счета (Account
Number)
12 N или 18 H Для всех форматов PIN-блока, кроме
04, это 12-значный поле, состоящее из
12 самых правых цифр номера счета, за
исключением контрольной цифры.
Для PIN-блока в формате 04, это
18-значное поле, состоящее из номера
счета, за исключением контрольной
цифры, выравненное по правому краю
и дополненное X'F слева, если это
необходимо.
Выходной формат
PIN-блока
1 N Код формата для выходного PIN-блока:
‘1’ : PIN-блок с текущим («старым») PIN;
‘2’ : PIN-блок без текущего («старого»)
PIN.
Только, если флаг режима = ‘3’ или ‘4’.
Новый PIN-блок 16 H Новый PIN-блок. Только, если флаг
режима = ‘3’ или ‘4’.
Текущий PIN-блок 16 H Текущий PIN-блок. Только, если флаг
режима = ‘3’ или ‘4’ и формат
выходного PIN-блока = 1.
Модуль безопасности платежных систем. Руководство разработчика | 468
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘JV’.
Код ошибки 2 А 00 – нет ошибок;
03 – недопустимый флаг паддинга;
04 – недопустимый флаг режима;
05 – недопустимый ID метода
диверсификации ключа;
06 – недопустимое смещение;
09 - ошибка четности ZPK/TPK;
10 – ошибка четности MK-SMI;
11 – ошибка четности MK-SMC;
23 – недопустимый формат исходного
PIN-блока;
50 – тип ключа шифрования PIN ≠ 0
или 1;
51 – недопустимый формат выходного
PIN-блока;
52 – неверный новый PIN-блок;
53 – неверный текущий PIN-блок;
80 – ошибка длины данных для MAC;
81 – ошибка длины открытых данных;
82 – длина данных транзакции не
кратна 8 байтам;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
MAC 8 H Вычисленный MAC
Зашифрованный новый
PIN-блок
32 H Зашифрованный новый PIN-блок. Только,
если флаг режима = ‘3’ или ‘4’.
Длина
зашифрованного
сообщения
4 H Длина следующего поля. Только, если
флаг режима = ‘1’ или ‘2’.
Зашифрованное
сообщение
n B Зашифрованное сообщение. Только,
если флаг режима = ‘1’ или ‘2’.
Модуль безопасности платежных систем. Руководство разработчика | 469
4.10. Команды лицензии «Поддержка American Express » (Support
of American Express License 08.х– LIC008)
4.1010.1. Перечень команд лицензии «Поддержка American Express»
В Таблица 28 - Перечень команд лицензии «Поддержка American
Express»8 приведен перечень команд лицензии «Поддержка American Express»
(LIC008).
Таблица 28 - Перечень команд лицензии «Поддержка American
Express»
Команда
(ответ)
Функция
RY (RZ)
режим 3
Вычисление Card Security Codes
RY (RZ)
режим 4
Проверка Card Security Codes
4.1010.2. Описание команд лицензии «Поддержка American Express»
Вычисление Card Security Codes (RY режим 3)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC008 LIC008
Авторизация: Не требуется Не требуется
Функция: Генерация American Express Card Security Code (CSC). Команда
вычисляет и возвращает CSC с количеством знаков: 5, 4 и 3.
Примечание:
Данная команда поддерживает 3 алгоритма вычисления CSC:
- Classic CSC алгоритм (CSC Version 1.0)
- Enhanced CSC алгоритм (CSC Version 2.0)
- American Express Verification Value (AEVV)
Модуль безопасности платежных систем. Руководство разработчика | 470
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘RY’.
Режим 1 N Значение '3'.
Флаг 1 N '0' : Classic CSC алгоритм (CSC
Version 1.0);
'2' : Enhanced CSC алгоритм (CSC
Version 2.0);
'3' : American Express Verification
Value (AEVV).
CSCK 32 H
или
1 A + 32 H
CSCK используется для вычисления
CSC.
'CSCK' должен быть зашифрован под
LMK 14-15 вариант 4.
или
1 A + n A
Значения полей ключевого блока
Key Usage Algorithm Mode of Use
‘C0’, ‘11’ ‘T’ ‘C’, ‘G’, ‘N’
Account Number 19 N Account Number, цифры, слева
дополненные нулями, если количество
знаков меньше 19.
Дата истечения срока 4 N Если флаг = '0' или '2', поле содержит
дату истечения срока карты в формате
YYMM.
Если флаг = '3', поле содержит AEVV
Unpredictable Number.
Service Code
3 N Представлен, только если флаг = '2'
или '3'.
Если флаг = '3', поле содержит AEVV
Authentication Results Code (1 цифра) с
последующим AEVV Second Factor
Authentication Code (2 цифры).
Модуль безопасности платежных систем. Руководство разработчика | 471
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘RZ’.
Код ошибки 2 A 00 – нет ошибок;
10 – CSCK ошибка четности;
27 – CSCK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Режим 1 N Значение '3'.
5-значный CSC/iCSC 5 N Представлен, только если флаг = '0'
или '2'.
4-значный CSC/iCSC 4 N Представлен, только если флаг = '0'
или '2'.
3-значный
CSC/iCSC/AEVV
3 N 3-значный CSC (или 3-значный AEVV,
если флаг = '3').
Модуль безопасности платежных систем. Руководство разработчика | 472
Проверка Card Security Codes (RY режим 4)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC008 LIC008
Авторизация: Не требуется Не требуется
Функция: Проверка American Express Card Security Code (CSC). Команда
вычисляет и возвращает CSC с количеством знаков: 5, 4 и 3.
Примечание:
Данная команда поддерживает 3 алгоритма вычисления CSC:
- Classic CSC алгоритм (CSC Version 1.0)
-Enhanced CSC алгоритм (CSC Version 2.0)
- American Express Verification Value (AEVV)
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘RY’.
Режим 1 N Значение '4'.
Флаг 1 N '0' : Classic CSC алгоритм (CSC
Version 1.0)
'2' : Enhanced CSC алгоритм (CSC
Version 2.0)
'3' : American Express Verification
Value (AEVV).
CSCK CSCK используется для вычисления CSC
32 H
или
1 A + 32 H
'CSCK' должен быть зашифрован под
LMK 14-15 вариант 4.
или
1 A + n A
Значения полей ключевого блока
Key Usage Algorithm Mode of Use
‘C0’, ‘11’ ‘T’ ‘C’, ‘V’, ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 473
Поле Длина и тип Описание
Командное сообщение
Account Number 19 N Account Number, цифры, слева
дополненные нулями, если количество
знаков меньше 19.
Дата истечения срока 4 N Если флаг = '0' или '2', поле содержит дату
истечения срока карты в формате YYMM.
Если флаг = '3', поле содержит AEVV
Unpredictable Number.
Service Code 3 N Представлен, только если флаг = '2'
или '3'.
Если флаг = '3', поле содержит AEVV
Authentication Results Code (1 цифра) с
последующим AEVV Second Factor
Authentication Code (2 цифры).
5-значный CSC/iCSC 5 N Представлен, только если флаг = '0'
или '2'.
5-значный Card Security Code.
Игнорируется, если значение ‘FFFFF’
4-значный CSC/iCSC 4 N Представлен, только если флаг = '0'
или '2'.
4-значный Card Security Code.
Игнорируется, если значение ‘FFFFF’.
3-значный
CSC/iCSC/AEVV
3 N 3-значный CSC (или 3-значный AEVV,
если флаг = '3').
Если флаг ‘0’ или ‘2’, то поле
игнорируется, если значение ‘FFFFF’
Если флаг ‘3’, поле содержит 3-значный
iCSC или AEVV.
Модуль безопасности платежных систем. Руководство разработчика | 474
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘RZ’.
Код ошибки 2 A 00 – нет ошибок;
01 – не норма проверки CSC;
10 – CSCK ошибка четности;
27 – CSCK не двойной длины;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Режим 1 N Значение '4'.
Проверка 5-значного
CSC/iCSC
5 N Представлен, только если флаг = '0'
или '2'.
‘0’: если проверка завершилась успешно;
‘1’: если поле не представлено;
‘2’: если проверка завершилась с
ошибкой.
Проверка 4-значного
CSC/iCSC
4 N Представлен, только если флаг = '0'
или '2'.
‘0’: если проверка завершилась успешно
‘1’: если поле не представлено;
‘2’: если проверка завершилась с
ошибкой.
3-значный
CSC/iCSC/AEVV
3 N ‘0’: если проверка завершилась успешно
‘1’: если поле не представлено
‘2’: если проверка завершилась с
ошибкой.
Модуль безопасности платежных систем. Руководство разработчика | 475
4.11. Команды лицензии «Поддержка НСПК «МИР» (Support of
NSPK “MIR” License 09.х– LIC009)
4.111.1. Перечень команд лицензии «Поддержка НСПК «МИР»
Таблица 29 - Перечень команд, в которых допускается использование
LMK ГОСТ приводит перечень команд, в которых допускается использование
LMK-ГОСТ. Возможность использования LMK-ГОСТ предоставляется
активизацией лицензии «Поддержка НСПК «МИР» (LIC009).
Таблица 29 - Перечень команд, в которых допускается использование
LMK ГОСТ
Команда
(ответ)
Функция Страница
A0 (A1) Генерация ключа 59
A6 (A7) Импорт ключа 69
A8 (A9) Экспорт ключа 74
AA (AB) Перешифрование TMK, TPK или PVK из-под
«старого» LMK под «новый»
79
AC (AD) Перешифрование TAK из-под «старого» LMK под
«новый»
81
AE (AF) Перешифрование TMK, TPK или PVK из-под
LMK под другой TMK, TPK или PVK
87
AG (AH) Перешифрование TAK из-под LMK под TMK 89
BW (BX) Перешифрование ключа из-под «старого» LMK
под «новый»
91
CA (CB) Перешифрование PIN из-под TPK под ZPK 195
CC (CD) Перешифрование PIN из-под одного ZPK под
другой
197
CU (CV) Генерация и проверка VISA PVV (для
пользовательского PIN)
199
CW (CX) Генерация CVV/CVC 287
CY (CZ) Проверка CVV/CVC 290
DA (DB) Проверка терминального PIN IBM-методом 204
DC (DD) Проверка терминального PIN с использованием
VISA метода
208
EA (EB) Проверка PIN IBM-методом 225
EC (ED) Проверка PIN-блока с использованием VISA
метода
233
Модуль безопасности платежных систем. Руководство разработчика | 476
Команда
(ответ)
Функция Страница
FA (FB) Перешифрование ZPK из-под ZMK под LMK 96
FC (FD) Перешифрование TMK, TPK или PVK из-под
ZMK под LMK
98
FE (FF) Перешифрование TMK, TPK или PVK из-под
LMK под ZMK
100
FI (FJ) Генерация ZEK/ZAK 102
FK (FL) Перешифрование ZEK/ZAK из-под ZMK под
LMK
104
FM (FN) Перешифрование ZEK/ZAK из-под LMK под
ZMK
106
FO (FP) Генерация Watchword Key 108
FQ (FR) Перешифрование Watchword Key из-под LMK под
ZMK
112
FS (FT) Перешифрование Watchword Key из-под ZMK под
LMK
110
GC (GD) Перешифрование ZPK из-под LMK под ZMK 114
GE (GF) Перешифрование ZMK из-под «старого» LMK
под «новый»
116
HA (HB) Генерация TAK 118
HC (HD) Генерация TMK, TPK или PVK 120
HK (HL) Генерация подписи данных статической
аутентификации
341
IA (IB) Генерация ZPK 122
IC (ID) Установление защищенного соединения с
чип-картой
419
IE (IF) Подготовка защищенного сообщения для
чип-карты
424
JS (JT) Проверка ARQC и генерация ARPC (CUP) 460
JU (JV) Генерация секретных сообщений (CUP) 464
KC (KD) Перешифрование ZPK из-под «старого» LMK под
«новый»
124
KQ (KR) Проверка ARQC и/или генерация ARPC (EMV
3.1.1)
253
KS (KT) Проверка Data Authentication Code (DAC) и
Dynamic Number (DN)
258
KU (KV) Генерация секретного сообщения (Secure
Message) (EMV 3.1.1)
261
Модуль безопасности платежных систем. Руководство разработчика | 477
Команда
(ответ)
Функция Страница
KW (KX) Проверка ARQC и/или генерация ARPC (EMV
4.x)
269
KY (KZ) Генерация секретного сообщения (EMV 4.x) 274
LO (LP) Перешифрование таблицы децимализации 285
L0 (L1) Генерация ключа для вычисления HMAC 438
M6 (M7) Генерация MAC 304
M8 (M9) Проверка MAC 308
MA (MB) Генерация MAC за сообщение 126
MC (MD) Проверка MAC за сообщение 127
ME (MF) Проверка и переформирование MAC 128
MG (MH) Перешифрование TAK из-под LMK под ZMK 83
MI (MJ) Перешифрование TAK из-под ZMK под LMK 85
MK (ML) Генерация MAC за бинарные данные 135
MM (MN) Проверка MAC за бинарные данные 137
MO (MP) Проверка и переформирование MAC за
бинар135ные данные
139
MQ (MR) Генерация MAC (MAB) за большое бинарное
сообщение
130
MS (MT) Генерация MAC (MAB) за большое сообщение 132
NE (NF,
NZ)
Генерация ключа и печать в виде Split компонент 329
P0 (P1) Перешифрование блока секретных данных в
специфичном формате карты
141
RW (RX) Перешифрование KEYVAL 316
SI (SJ) Диверсификация данных для записи на карту 388
XK (XL) Зашифрование данных транзакции 390
YS (YT) Диверсификация ключа 394
YW (YX) Экспорт ключа под KEK 397
YY (YZ) Зашифрование данных 399
ZK (ZL) Генерация или проверка МАС 405
Таблица приводит перечень команд лицензии «Поддержка НСПК
«МИР» (LIC009).
Таблица 30 – Перечень команд лицензии «Поддержка НСПК «МИР»
Модуль безопасности платежных систем. Руководство разработчика | 478
Команда
(ответ)
Функция Страница
K0 (K1) Расшифрование зашифрованных счетчиков 478
SSSM (ST) Проверка криптограммы MSTC 480
4.111.2. Описание команд лицензии «Поддержка НСПК «МИР»
Расшифрование зашифрованных счетчиков (K0)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC008 LIC008
Авторизация: Не требуется Не требуется
Функция: Расшифрование счетчиков, содержащихся в объекте Issuer Application
Data, подготовленном приложением для эмитента при онлайновой
аутентификации.
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘K0’ (K-zero).
Идентификатор метода 1 N Идентификатор метода:
'6' : EMV 4.x ICC Master Key Derivation
Option A
'7' : EMV 4.x ICC Master Key Derivation
Option B
Используется для указания метода
диверсификации ключей.
IMKAC 32 H
или
1 A + 32
Мастер-ключ эмитента используется
для получения ключа приложения для
генерации криптограммы.
Зашифрован под LMK 28-29 вариант 1
или
1 A + n A
Для Keyblock LMK IMKAC должен
содержать следующие значения:
Key Usage Algorithm Mode of Use
‘E0’ ‘T’ ‘N’
Модуль безопасности платежных систем. Руководство разработчика | 479
Поле Длина и тип Описание
Командное сообщение
Длина PAN 2 N Только для метода ‘7’.
Длина (в байтах) следующего поля.
PAN/PAN Sequence No 8 B или n B Для метода ‘6’ поле имеет
фиксированную длину 8 байтов и
содержит переформатированный
PAN/PAN Sequence No.
Для метода ‘7’ поле имеет длину,
заданную значением предыдущего
поля. За паддинг PAN/PAN Sequence No
отвечает хост.
Разделитель 1 A Разделитель, указывающий на конец
поля PAN/PAN Sequence No. Только для
метода ‘7’.
ATC (Application
Transaction Counter)
2 B Счетчик транзакций
Шифрограмма
счетчиков (Encrypted
Counters)
8 B Зашифрованные счетчики
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘K1’.
Код ошибки 2 A 00 – нет ошибок;
05 – недопустимый идентификатор
метода;
10 – ошибка четности IMK-AC;
68 – команда отключена
или стандартный код ошибки (см.
Приложение 1).
Счетчики приложения 8B Значение расшифрованных счетчиков
приложения
Модуль безопасности платежных систем. Руководство разработчика | 480
Проверка криптограммы MSTC (SSSM)
Variant LMK ■ Keyblock LMK ■
Лицензия: LIC009 («Поддержка
НСПК «МИР») LIC009
Авторизация: См. Примечания См. Примечания
Функция: Проверка криптограммы для SamSung.
Примечания:
Данные для вычисления криптограммы должны формироваться
хост-системой в виде конкатенации следующих полей:
- токенизированный номер карты (16-19 цифр) – TPAN;
- заполнитель ‘F’ (символ) – дополняет TPAN до четности (при
необходимости);
- срок действия токенизированной карты в формате ГГММ (4 цифры) – ED;
- Service Code (3 цифры) – SC;
- день недели операции (1 цифра) — WD;
- дата платёжной операции в поясе UTC в формате ГГММДД (6 цифр) – TS;
Для вывода диагностических данных в ответном сообщении требуется
авторизованное состояние
Модуль безопасности платежных систем. Руководство разработчика | 481
Формат:
Поле Длина и тип Описание
Командное сообщение
Заголовок команды m A Возвращается в ответе без изменений.
Код команды 2 А ‘SS’.
Дополнительный код
команды
2А ‘SM’.
Идентификатор метода 1 N Идентификатор:
‘1’ : EMV 4.x Option A ICC Master KEY
Derivation и EMV Common Session Key
Derivation
‘2’ : EMV 4.x Option B ICC Master KEY
Derivation и EMV Common Session Key
Derivation.
Используется для указания метода
диверсификации ключей.
IMKAC Мастер-ключ эмитента используется для
получения ключа приложения для
генерации криптограммы MSTC
32 H
или
1A + 32 H
Зашифрован под LMK 28-29 вариант 1
или
1 A + n A
Ключ зашифрованный под Keyblock
LMK
Допустимые значения полей Keyblock:
Key
Usage
Algorithm Mode
of Use
Exportabilit
y
‘85’ или
‘91’
‘T’ ‘X’ ‘E’
Длина PAN 2 N Только для метода ‘2’.
Длина (в байтах) следующего поля.
Допустимые значения от ‘01’ до ‘11’
PAN/PAN Sequence No 8 B или n B Для метода ‘1’ поле имеет
фиксированную длину 8 байтов и
содержит переформатированный
PAN/PAN Sequence No .
Для метода ‘2’ поле имеет длину,
заданную значением предыдущего поля.
За паддинг PAN/PAN Sequence No
отвечает хост.
Модуль безопасности платежных систем. Руководство разработчика | 482
Поле Длина и тип Описание
Командное сообщение
Разделитель 1 A Разделитель, указывающий на конец
поля PAN/PAN Sequence No. Только для
метода ‘2’.
ATC
(Application Transaction
Counter)
2 B Счетчик транзакций
Длина данных для
вычисления
криптограммы
2N Длина следующего поля
Данные для вычисления
криптограммы
n B См. Примечание
Длина MSTC 2 N Длина следующего поля (4-7 цифр)
MSTC n N Данные MSTC
Поле Длина и тип Описание
Ответное сообщение
Заголовок команды m A Возвращается в хост без изменений.
Код ответа 2 А ‘ST’.
Код ошибки 2 A 00 – нет ошибок;
01 – отрицательный результат проверки
MSTC;
05 – недопустимый идентификатор
метода;
10 – ошибка четности IMK-AC;
98 – команда недоступна
или стандартный код ошибки (см.
Приложение 1).
Длина MSTC 2 N Длина следующего поля. Только если код
ошибки = ‘01’ и HSM находится в
авторизованном состоянии
MSTC n N Вычисленное значение MSTC. Только
если код ошибки = ‘01’ и HSM находится
в авторизованном состоянии
Модуль безопасности платежных систем. Руководство разработчика | 483
Приложение 1
Стандартные коды ошибок
Таблица 30 – Стандартные коды ошибок
Код ошибки Описание
00 Ошибок нет
01 Ошибка проверки
02 Длина ключа не соответствует алгоритму
03 Неверное число компонент
04 Недопустимый код типа ключа
05 Недопустимая длина ключа
10 Ошибка четности исходного ключа
11 Ошибка четности выходного ключа
13 Ошибка четности мастер-ключа
14 Ошибка расшифрования PIN
15 Ошибка входных данных
16 Принтер не подключен
17 Неавторизованное состояние или нарушение политик
безопасности
18 Не загружен шаблон печати
20 Не верный PIN-блок
21 Не верный индекс
22 Не верный PAN
23 Не верный формат PIN (недопустимый формат PIN-блока)
24 Не верная длина PIN
25 Ошибка таблицы децимализации
26 Не верная ключевая схема
27 Несоответствие длины ключа
28 Не верный тип ключа
51 Недопустимый заголовок сообщения
52 Недопустимый код команды
53 Недопустимая длина поля команды
67 Команда не имеет лицензии
68 Команда отключена
78 Ошибка длины секретного ключа
80 Ошибка длины данных
90 Ошибка четности данных
98 Команда недоступна (лицензия не активирована)
99 Команда не найдена
С0 «Слабый» ключ или PIN найден в таблице исключаемых PIN
Модуль безопасности платежных систем. Руководство разработчика | 484
Приложение 2
Форматы сертификатов
Формат эмитента ПС «Мир»
Формат запроса сертификата эмитента ПС «Мир»
Примечание 1: При работе с сертификатами ПС "Мир" надо выбирать тип
карты VISA
Таблица 2.1 – Формат файла для запроса открытого ключа эмитента
Имя поля Длина,
байты Описание / значение Формат
Header 1 = ‘22’hex b
Issuer Public Key
Modulus Length 1 Длина данных Modulus - Nl
b
Issuer Public Key
Modulus Nl
Поле содержит Nl байтов модуля
открытого ключа эмитента
b
Issuer Public Key
Exponent Length 1
Длина экспоненты открытого ключа
эмитента приложения в байтах - е
b
Issuer Public Key
Exponent
е Экспонента открытого ключа
эмитента
b
Tracking Number 3 Уникальный номер запроса
сертификата в системе эмитента
b
Issuer Public Key
Certificate
Nl Сертификат, подписанный на
закрытом ключе эмитента. Данные,
используемые для подписи описаны в
таблице 2.2
b
Модуль безопасности платежных систем. Руководство разработчика | 485
Таблица 2.2 – Формат данных, подписываемых закрытым ключом эмитента
Имя поля Длина,
байты Описание / значение Формат
Header 1 = ‘22’hex. b
Service Indentifier 4
Идентификатор приложения.
Присваивается исходя из документа
«ТРЕБОВАНИИЯ К ПЛАТЕЖНОЙ
КАРТЕ МИР».
Например:
2010 0000 – продукт «Дебитовая»
cn 8
Certificate Format 1 = ‘02’hex. b
Issuer Identification
Number 4
Крайние левые 3-8 цифр PAN
(Primary Account Number).
b
Certificate Expiration
Date 2
Дата (меяц, год), после которых
сертификат недействителен.
n4
Tracking Number 3 Уникальный номер запроса
сертификата в системе эмитента
b
Hash Algorithm
Indicator 1
= ‘01’hex – определяет алгоритм SHA-
1.
b
Issuer Public Key
Algorithm 1 = ‘01’hex – определяет алгоритм RSA.
b
Issuer Public Key
Modulus Length 1 Длина данных Modulus – NI
b
Issuer Public Key
Exponent Length 1
Длина экспоненты открытого ключа
эмитента приложения в байтах - е
b
Issuer Public Key
Modulus NI-(39+e)
Поле содержит NI –(39+e) байтов
модуля открытого ключа эмитента
b
Issuer Public Key
Exponent
е Экспонента открытого ключа
эмитента
b
Значенние
хэш-функции
20 Значенние хэш-функции (см.
примечание таблицы)
b
____________
Примечание – Для вычисления значения Хэш-функции используются все
поля таблицы 2.2, кроме последнего.
Модуль безопасности платежных систем. Руководство разработчика | 486
Формат сертификата УЦ ПС «Мир»
Таблица 2.3 – Формат файла с открытым ключом УЦ
Имя поля Длина,
байты Описание / значение Формат
Header 1 = ‘20’hex. b
Service Indentifier 4
Идентификатор приложения.
Например:
1010 0000 – для корневых ключей
cn 8
CA Public Key
Modulus Length 2 Длина данных Modulus – NCA
b
CA Public Key
Algorithm Indicator 1 = ‘01’hex – определяет алгоритм RSA.
b
СА Public Key
Exponent Length 1
Длина экспоненты открытого ключа в
байтах - е
b
RID 5 ‘A000000658’ hex b
CA Public Key Index 1 Номер кюча УЦ НСПК b
СА Public Key
Modulus NСА Модуль открытого ключа УЦ
b
СА Public Key
Exponent
е Экспонента открытого ключа УЦ
b
Значенние
хэш-функции
20 Значенние хэш-функции (SHA-1) для
4-х предыдущих полей (RID, CA
Public Key Index, CA Public Key
Modulus, СА Public Key Exponent)
b
СА Public Key
Certificate
NСА Подписанный на закрытом ключе УЦ
сертификат открытого ключа УЦ. Для
подписи используются данные,
описанные в таблице 2.4.
Модуль безопасности платежных систем. Руководство разработчика | 487
Таблица 2.4 – Формат сертификата открытого ключа УЦ
Имя поля Длина,
байты Описание / значение Формат
Header 1 = ‘21’hex. b
Service Indentifier 4
Идентификатор приложения.
Например:
1010 0000 – для корневых ключей
cn 8
RID 5 ‘A000000658’ hex b
CA Public Key Index 1 Номер кюча УЦ НСПК b
Key Expiration Date 2 Дата (меяц, год), после которjq
сертификат недействителен.
n4
CA Public Key
Algorithm Indicator 1 = ‘01’hex – определяет алгоритм RSA.
b
Issuer Public Key или
его крайние левые
цифры
NCA-
(39+e)
Это поле содержит NСА –(39+e)
наиболее значимых байтов модуля
открытого ключа УЦ
b
Hash Algorithm
Indicator 1
= ‘01’hex – определяет алгоритм
SHA-1.
b
СА Public Key
Exponent Length 1
Длина экспоненты открытого ключа
эмитента приложения в байтах - е
b
Issuer Public Key
Exponent
е Экспонента открытого ключа УЦ
b
Значенние
хэш-функции
20 Значенние хэш-функции (RID, CA
Public Key Index, СА Public Key
Exponent)
b
Модуль безопасности платежных систем. Руководство разработчика | 488
Формат сертификата эмитента
Таблица 2.5 – Формат данных сертификата
Имя поля Длина,
байт
Описание Формат
Data Header 1 ‘6A’h b
Certificate Format 1 ‘02’h b
Issuer Identification
Number 4
Крайние левые 3–8 цифры из Primary
Account Number cn 8
Certificate Expiration
Date 2
Дата (месяц и год), после которой
сертификат недействителен n 4
Certificate Serial
Number 3
Двоичный номер, уникальный для
данного сертификата, присвоенный
Certificate Authority
b
Hash Algorithm
Indicator
1
Идентифицирует алгоритм
хэширования; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму SHA-1
b
Issuer Public Key
Algorithm Indicator 1
Идентифицирует алгоритм цифровой
подписи; в нынешней реализации
EMV принимает значение ‘01’h,
соответствующее алгоритму RSA
b
Issuer Public Key
Length 1
Длина модуля открытого ключа
эмитента в байтах — NI b
Issuer Public Key
Exponent Length 1
Длина экспоненты открытого ключа
эмитента в байтах b
Issuer Public Key или
его крайние левые
цифры
NCA – 36
Если NI ≤ NCA – 36, то это поле
должно содержать полный модуль
открытого ключа эмитента,
дополненный справа байтами со
значением ‘BB’h.
Если NI > NCA – 36, то это поле
содержит NCA – 36 наиболее
значимых байтов модуля открытого
ключа эмитента.
b
Hash Result
20
Значение хэш-функции от
публичного ключа эмитента и
соответствующих ключевых данных.
Формат входных данных хэш-
функции приведён в таблице «»
b
Data Trailer 1 ‘BC’h
Модуль безопасности платежных систем. Руководство разработчика | 489
Таблица 2.6 - Формат данных открытого ключа эмитента для подписи
УЦ (входные данные хэш-функции)
Имя поля Длина,
байт
Описание Формат
Certificate Format 1 ‘02’h b
Issuer Identification
Number 4
Крайние левые 3–8 цифры из Primary
Account Number cn 8
Certificate
Expiration Date 2
Дата (месяц и год), после которой
сертификат недействителен n 4
Certificate Serial
Number 3
Двоичный номер, уникальный для
данного сертификата, присвоенный
Certificate Authority
b
Hash Algorithm
Indicator
1
Идентифицирует алгоритм
хэширования; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму SHA-1
b
Issuer Public Key
Algorithm Indicator 1
Идентифицирует алгоритм цифровой
подписи; в нынешней реализации
EMV принимает значение ‘01’h,
соответствующее алгоритму RSA
b
Issuer Public Key
Length 1
Длина модуля открытого ключа
эмитента в байтах — NI b
Issuer Public Key
Exponent Length 1
Длина экспоненты открытого ключа
эмитента в байтах b
Issuer Public Key
или его крайние
левые цифры
NCA – 36
Если NI ≤ NCA – 36, то это поле
должно содержать полный модуль
открытого ключа эмитента,
дополненный справа байтами со
значением ‘BB’h.
Если NI > NCA – 36, то это поле
содержит NCA – 36 наиболее
значимых байтов модуля открытого
ключа эмитента.
b
Issuer Public Key
Remainder
0 или NI –
NCA + 36
Это поле присутствует, если NI > NCA
– 36, и состоит из NI – NCA + 36
наименее значимых байтов модуля
открытого ключа эмитента
Примечание: данный объект не
содержится в теле сертификата
b
Issuer Public Key
Exponent 1 или 3
Экспонента публичного ключа
эмитента. Значение 3 или 216 + 1
Примечание: данный объект не
содержится в теле сертификата
b
Модуль безопасности платежных систем. Руководство разработчика | 490
Формат сертификата карты «Мир»
Таблица 2.7 – Формат сертификата открытого ключа карты
Имя поля Длина,
байт Описание Формат
Data Header 1 ‘6A’h b
Certificate Format 1 ‘04’h b
PAN 10
Номер карты PAN, дополненный
справа символами ‘F’h cn 20
Certificate
Expiration Date 2
Дата (месяц и год), после которой
сертификат недействителен n 4
Certificate Serial
Number 3
Двоичный номер, уникальный для
данного сертификата, присвоенный
эмитентом
b
Hash Algorithm
Indicator
1
Идентифицирует алгоритм
хэширования; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму SHA-1
b
ICC Public Key
Algorithm
Indicator 1
Идентифицирует алгоритм цифровой
подписи; в нынешней реализации
EMV принимает значение ‘01’h,
соответствующее алгоритму RSA
b
ICC Public Key
Length 1
Длина модуля открытого ключа
карты в байтах — NIC b
ICC Public Key
Exponent Length 1
Длина экспоненты открытого ключа
карты в байтах b
ICC Public Key
или его крайние
левые цифры
NI – 42
Если NIC ≤ NI – 42, то это поле
должно содержать полный модуль
открытого ключа карты,
дополненный справа байтами со
значением ‘BB’h. Если NIC > NI – 42,
то это поле содержит NI – 42
наиболее значимых байтов модуля
открытого ключа эмитента
b
Hash Result
20
Значение хэш-функции от
публичного ключа карты и
соответствующих ключевых данных.
Формат входных данных хэш-
функции приведён в таблице 8
b
Data Trailer 1 ‘BC’h b
Модуль безопасности платежных систем. Руководство разработчика | 491
Таблица 2.8 – Формат данных открытого ключа карты для подписи
эмитентом (входные данные хэш-функции)
Имя поля Длина,
байт Описание Формат
Certificate Format 1 04’h b
PAN 10
Номер карты PAN, дополненный
справа символами ‘F’h cn 20
Certificate
Expiration Date 2
Дата (месяц и год), после которой
сертификат недействителен n 4
Certificate Serial
Number 3
Двоичный номер, уникальный для
данного сертификата, присвоенный
эмитентом
b
Hash Algorithm
Indicator
1
Идентифицирует алгоритм
хэширования; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму SHA-1
b
ICC Public Key
Algorithm Indicator
1
Идентифицирует алгоритм
цифровой подписи; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму RSA
b
ICC Public Key
Length 1
Длина модуля открытого ключа
карты в байтах — NIC b
ICC Public Key
Exponent Length 1
Длина экспоненты открытого ключа
карты в байтах b
ICC Public Key
или его крайние
левые цифры
NI – 42
Если NIC ≤ NI – 42, то это поле
должно содержать полный модуль
открытого ключа карты,
дополненный справа байтами со
значением ‘BB’h. Если NIC > NI – 42,
то это поле содержит NI – 42
наиболее значимых байтов модуля
открытого ключа эмитента
b
ICC Public Key
Remainder
0 или NIC –
NI + 42
Это поле присутствует, если NIC > NI
– 42, и состоит из NIC – NI + 42
наименее значимых байтов модуля
открытого ключа эмитента
Примечание: данный объект не
содержится в теле сертификата
b
ICC Public Key
Exponent 1 или 3
Экспонента публичного ключа
карты. Значение 3 или 216 + 1
Примечание: данный объект не
содержится в теле сертификата
b
Static Data to be
Authenticated Переменная
Критичные данные, целостность
которых гарантируется b
Модуль безопасности платежных систем. Руководство разработчика | 492
Формат сертификата карты «Мир» для шифрования PIN
Таблица 2.9 – Формат сертификата открытого ключа карты для шифрования PIN
Имя поля Длина,
байты
Описание Формат
Data Header 1 ‘6A’h b
Certificate Format 1 ‘04’h b
PAN 10 Номер карты PAN, дополненный
справа символами ‘F’h cn 20
Certificate
Expiration Date
2 Дата (месяц и год), после которой
сертификат недействителен
n 4
Certificate Serial
Number
3 Двоичный номер, уникальный для
данного сертификата, присвоенный
эмитентом
b
Hash Algorithm
Indicator
1 Идентифицирует алгоритм
хэширования; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму SHA-1
b
ICC PE Public Key
Algorithm Indicator
1 Идентифицирует алгоритм
цифровой подписи; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму RSA
b
ICC PE Public Key
Length
1 Длина модуля открытого ключа
карты в байтах — NPE
b
ICC PE Public Key
Exponent Length
1 Длина экспоненты открытого ключа
карты в байтах
b
ICC PE Public Key
или его крайние
левые цифры
NI – 42 Если NPE ≤ NI – 42, то это поле
должно содержать полный модуль
открытого ключа карты,
дополненный справа байтами со
значением ‘BB’h. Если NPE > NI – 42,
то это поле содержит NI – 42
наиболее значимых байтов модуля
открытого ключа эмитента
b
Hash Result 20 Значение хэш-функции от
публичного ключа карты для
шифрования PIN-кода и
соответствующих ключевых данных.
Формат входных данных хэш-
функции приведён в таблице 2.10
b
Data Trailer 1 ‘BC’h b
Модуль безопасности платежных систем. Руководство разработчика | 493
Таблица 2.10 – Формат данных открытого ключа карты для шифрования PIN
(входные данные хэш-функции)
Имя поля Длина,
байт
Описание Формат
Certificate Format 1 ‘04’h b
PAN 10 Номер карты PAN, дополненный
справа символами ‘F’h cn 20
Certificate
Expiration Date
2 Дата (месяц и год), после которой
сертификат недействителен n 4
Certificate Serial
Number
3 Двоичный номер, уникальный для
данного сертификата, присвоенный
эмитентом
b
Hash Algorithm
Indicator
1 Идентифицирует алгоритм
хэширования; в нынешней
реализации EMV принимает
значение ‘01’h, соответствующее
алгоритму SHA-1
b
ICC PE Public Key
Algorithm Indicator
1 Идентифицирует алгоритм цифровой
подписи; в нынешней реализации
EMV принимает значение ‘01’h,
соответствующее алгоритму RSA
b
ICC PE Public Key
Length
1 Длина модуля открытого ключа
карты в байтах — NPE b
ICC PE Public Key
Exponent Length
1 Длина экспоненты открытого ключа
карты в байтах b
ICC PE Public Key
или его крайние
левые цифры
NI – 42 Если NPE ≤ NI – 42, то это поле
должно содержать полный модуль
открытого ключа карты,
дополненный справа байтами со
значением ‘BB’h. Если NPE > NI – 42,
то это поле содержит NI – 42
наиболее значимых байтов модуля
открытого ключа эмитента
b
ICC PE Public Key
Remainder
0 или NPE –
NI + 42
Это поле присутствует, если NPE > NI
– 42, и состоит из NPE – NI + 42
наименее значимых байтов модуля
открытого ключа эмитента
b
ICC PE Public Key
Exponent
1 или 3 Экспонента публичного ключа
карты. Значение 3 или 216 + 1 b
Модуль безопасности платежных систем. Руководство разработчика | 494
Форматы сертификатов открытого ключа эмитента
(карт Visa, MasterCard, American Express)
Обозначения:
NCA = Длина длина модуля открытого ключа УЦ;
NI = длина модуля открытого ключа эмитента;
NIC = длина модуля открытого ключа карты (ICC).
Примечание 2: Метод сжатия данных, представляющий каждые 2 цифры в
виде байта (шестнадцатиричные символы ‘0’ – ‘F’). Данные
выравниваются по правому краю и, при необходимости,
дополняются шестнадцатиричными ‘0’.
Примечание 3: Метод сжатия данных, представляющий каждые 2 цифры в
виде байта (шестнадцатиричные символы ‘0’ – ‘F’). Данные
выравниваются по правому краю и, при необходимости,
дополняются шестнадцатиричными ‘F’.
Пример: PAN, состоящий из цифр 1234567890123, будет представлен в
8-байтовом поле в шестнадцатиричном формате как
'12 34 56 78 90 12 3F FF'.
Модуль безопасности платежных систем. Руководство разработчика | 495
Формат самоподписанного сертификата (запроса) эмитента Visa
Таблица 2.11 - Открытая часть самоподписанного сертификата
(запроса) эмитента (Visa)
Имя поля Длина и
формат Описание
Header 1 b 16-чное '22' Не подписано
Length of Issuer
Public Key
Modulus
1b Длина модуля открытого ключа
эмитента в 16-м виде. (Число байт) -“-
Issuer Public Key
Modulus
var b Модуль открытого ключа эмитента -“-
Issuer Public Key
Exponent Length
1 b Длина экспоненты открытого
ключа эмитента. (Число байт).
Должно быть или 16-ное 01 (для
экспоненты 3) или 16-ное 03 (для
экспоненты 65537)
-“-
Issuer Public Key
Exponent
1b
или
3b
Экспонента открытого ключа
эмитента. Принимает значения:
3 или 65537,
т.е., 16-ное 03 или 16-ное 01 00 01.
-“-
Tracking Number 3 b Уникальный номер запроса
сертификата в системе эмитента -“-
Модуль безопасности платежных систем. Руководство разработчика | 496
Таблица 2.12– Самоподписанный сертификат (запроса) эмитента (Visa)
Имя поля Длина
и
формат
Описание Хэшировано
Header 1b 16-ное значение '23'. Да
Visa Service
Identifier
4b Идентификатор сервиса Visa.
Proprietary Application Identifier
Extension (PIX) выравнено по левому
краю и дополнено справа четырьмя
16-ными 0.
В настоящее время действующими
идентификаторами международной
службы Visa являются:
Hex 1010 0000 : для Debit/Credit;
Hex 2010 0000 : для Electron;
Hex 3010 0000 : для Interlink;
Hex 8010 0000 : для PLUS.
Да
Certificate Format 1 b 16-ное значение '02'. Да
Issuer
Identification
Number
4 b Крайние левые 3-8 цифр Primary
Account Number (PAN), дополненные
справа 16-ным F. (см. Примечание
3).
Да
Certificate
Expiration Date
2 b MMYY after which this certificate is
invalid. See Note 1.
MMYY (месяц и год), после которых
сертификат не действителен. (см.
Примечание 2).
Да
Tracking Number 3 b Уникальный номер запроса
сертификата в системе эмитента (см.
Примечание 2)
Да
Hash Algorithm
Indicator
1 b Идентификатор алгоритма ХЭШ Да
Issuer's Public Key
Algorithm
Indicator
1 b Идентификатор алгоритма цифровой
подписи
Да
Issuer Public Key
Modulus Length
1 b Длина модуля открытого ключа
эмитента. (Число байт)
Да
Модуль безопасности платежных систем. Руководство разработчика | 497
Имя поля Длина
и
формат
Описание Хэшировано
Issuer Public Key
Exponent Length
1 b Длина экспоненты открытого ключа
эмитента. (Число байт).
или 16-ное 01 (для экспоненты 3),
или 16-ное 03 (для экспоненты
65537).
Да
Leftmost Digits of
Issuer Public Key
Modulus
несколь
ко байт
Крайние левые NI - (39 + e) байт
модуля открытого ключа эмитента.
Да
Issuer Public Key
Exponent
1 или 3
b
Экспонента открытого ключа
эмитента: или 3, или 65537,
т.е., 16-ное 03 или 16-ное 01 00 01.
Да
Hash Result 20 b Значение хэш-функции за открытый
ключа эмитента и сопутствующую
информации
Нет
Модуль безопасности платежных систем. Руководство разработчика | 498
Формат самоподписанного сертификата (запроса) эмитента (MasterCard)
Таблица 2.13 - Открытая часть самоподписанного сертификата
(запроса) эмитента (MasterCard)
Имя поля Длина
и
формат
Описание Хэшировано
ID of Subject
Certificate
(Issuer
Identifier)
4 b Идентификатор
эмитента. Крайние левые
3-8 цифр PAN,
дополненные справа 16-
ным F.
См. примечание 3.
Не подписано Нет
Issuer Public
Key Index
3 b Индекс открытого ключа
эмитента (см.
Примечание 2)
Не подписано Нет
Subject Public
Key Algorithm
Indicator
(Signature
Identifier)
1 b Алгоритм подписи
открытого ключа.
Не подписано Нет
Subject Public
Key Modulus
Length
1 b Длина модуля открытого
ключа эмитента (равна
NI).
Не подписано Нет
Subject Public
Key Exponent
Length
1 b Длина экспоненты
открытого ключа
эмитента (число байт).
Принимает значения:
или 16-ное 01 (для
экспоненты 3),
или 16-ное 03 (для
экспоненты 65537).
Не подписано Нет
Leftmost Digits
of Subject
Public Key
Modulus
NI-36 b NI-36 старших значащих
байт модуля откытого
ключа эмитента. Не подписано
Нет
Subject Public
Key Modulus
Remainder
36 b 36 младших значащих
байт модуля откытого
ключа эмитента.
Не подписано
Да
Subject Public
Key Exponent
1
или
3 b
Экспонента откытого
ключа эмитента.
Принимает значения;
или 3, или 65537,
т.е. 16-ное 03
или 16-ное 01 00 01.
Не подписано
Да
Модуль безопасности платежных систем. Руководство разработчика | 499
Таблица 2.14 – Самоподписанный сертификат (запроса) эмитента
(MasterCard)
Имя поля Длина
и
формат
Описание Хэшировано
Recovered Data
Heade
1 b 16-ное '6A'. Нет
Certificate
Format
1 b Код формата сертификата.16-ное '11'. Да
ID of Certificate
Subject (Issuer
Identifier)
4 b Идентификатор эмитента.
Крайние левые 3-8 цифр PAN,
дополненные справа 16-ным 'F (см.
Примечание 3).
Да
Certificate Expiry
Date
2 b MMYY (меяц, год), после которых
сертификат становится
недействительным. (см. Примечание 2)
Да
Certificate Serial
Numbe
3 b Серийный номер сертификата
(см. Примечание 2).
Да
Hash Algorithm
Indicator
1 b Идентификатор алгоритма Хэш Да
Subject Public
Key Algorithm
Indicator
1 b Идентификатор алгоритма подписи
открытого ключа эмитента.
Да
Subject Public
Key Modulus
Length
1 b Длина модуля открытого ключа
эмитента в байтах (NI).
Да
Subject Public
Key Exponent
Length
1 байт Длина экспоненты открытого ключа
эмитента (чисо байт). Принимает
значения:
или 16-ное 01 (для экспоненты 3),
или 16-ное 03 (для экспоненты 65537)..
Да
Leftmost Digits
of Subject Public
Key Modulus
NI-36 b Крайние левые NI-36 байтов модуля
открытого ключа эмитента
Да
Hash Resul 20 b Значение хэш -функции открытого
ключа эмитента и связанной с ним
информации.
Нет
Recovered Data
Trailer
1 байт 16-ное 'BC'. Нет
Модуль безопасности платежных систем. Руководство разработчика | 500
Формат самоподписанного сертификата (запроса)
эмитента American Express
Таблица 2.15 - Открытая часть самоподписанного сертификата
(запроса) эмитента (American Express)
Название поля Длина и
формат Описание
Header 1 b 16-ное '22'. Не подписано
Length of Issuer
Public Key
Modulus
1 b Длина модуля открытого ключа
эмитента в 16-ном виде (число байт).
Не подписано
Issuer Public Key
Modulu
var b Модуль открытого ключа эмитента. Не подписано
Issuer Public Key
Exponent Length
1 b Длина экспоненты открытого ключа
эмитента (число байт). Принимает
значения: или 16-ное 01 (для
экспоненты 3);
или 16-ное 03 (для экспоненты
65537).
Не подписано
Issuer Public Key
Exponent
1 или 3
b
Экспонента открытого ключа
эмитента. Принимает значения: или
3, или 65537,
т.е. 16-ное 03
или 16-ное 01 00 01.
Не подписано
Tracking Number 3 байта Уникальный номер для сертификата.
(см. Примечание 2).
Не подписано
Модуль безопасности платежных систем. Руководство разработчика | 501
Таблица 2.16 - Самоподписанный сертификат (запрос) эмитента
(American Express)
Название поля
Длина
и
формат
Описание Хэшировано
Header 1 b 16-ное '23'. Да
Service Identifier 4 b Идентификатор продукта American
Express. Фиксированное значение
'00 00 00 00'
Да
Certificate Format 1 b Код формата сертификата.
16-ное '02'
Да
Issuer Identifier
(BIN)
4 b Идентификатор эмитента
(выровненный по левому краю и
дополненный справа 16-ными 'F').
(см. Примечание 3).
Да
Certificate
Expiration Date
2 b MMYY (меяц, год), после которых
сертификат перестает действовать
(см. Примечание 2).
Да
Tracking Number 3 b Уникальный номер запроса
сертификата (см. Примечание 2).
Да
Hash Algorithm
Indicator
1 b Идентификатор алгоритма расчета
значения хэш-функции
Да
Issuer's Public
Key Algorithm
Indicator
1 b Идентификатор алгоритма цифровой
подписи.
Да
Issuer Public Key
Modulus Length
1 b Длина модуля открытого ключа
эмитента. (Число байт).
Да
Issuer Public Key
Exponent Length
1 b Length e of the Issuer Public Key
Длина экспоненты открытого ключа
эмитента (Число байт). Принимает
значения:
или 16-ное 01 (для экспоненты 3);
или 16-ное 03 (для экспоенты 65537)
Да
Most Significant
Part of Issuer
Public Key
Modulus
var b Крайние левые NI - (39 + e) байт
модуля открытого ключа эмитента
Да
Модуль безопасности платежных систем. Руководство разработчика | 502
Название поля
Длина
и
формат
Описание Хэшировано
Issuer Public Key
Exponent
1 или 3
b
Issuer Public Key Exponent. Is either 3
or 65537, that is, hex 03 or hex 01 00
01.
Экспонента открытого ключа
эмитента. Принимает значения:
или 3, или 65537,
т.е., 16-ное 03 или 16-ное 01 00 01
Да
Hash Result 20 b Hash of indicated fields.
Значение хэш-функции за
предыдущие поля
Нет
Модуль безопасности платежных систем. Руководство разработчика | 503
Формат эмитента Visa
Таблица 2.17 - Открытая (неподписанная) часть сертификата эмитента
(Visa)
Имя поля Длина и
формат
Описание Хэшировано
Header 1 b 16-ное '24' Не
подписано
Нет
Visa Service
Identifier
4 b Идентификатор сервиса
Visa. Proprietary
Application Identifier
Extension (PIC)
выровняно по левому
краю и дополнено
справа четырьмя 16-
ными нулями. Текущие
валидные значения
International Service
Identifiers:
16-ное 1010 0000 : для
Debit/Credit;
16-ное 2010 0000 : для
Electron;
16-ное 3010 0000 : для
Interlink;
16-ное 8010 0000 : для
PLUS.
Не
подписано
Нет
Issuer
Identification
Numbe
4 b Крайние левые 3-8 цифр
PAN, дополненные
справа 16-ными F (см.
Примечание 3)
Не
подписано
Нет
Certificate Serial
Number
3 b Серийный номер
сертификата.
Не
подписано
Нет
Certificate
Expiration Date
2 b MMYY (меяц, год),
после которых
сертификат
недействителен (см.
Примечание 2).
Не
подписано
Нет
Модуль безопасности платежных систем. Руководство разработчика | 504
Имя поля Длина и
формат
Описание Хэшировано
Issuer Public Key
Modulus
Remainder Length
1 b Длина остатка
(Remainder) модуля (N)
открытого ключа
эмитента в 16-ном виде
(Число байт)
Не
подписано
Нет
Issuer Public Key
Modulus (N)
Remainder
var b Поле присутствует,
только если NI > NCA -
36, и состоит из
NI-NCA + 36 младших
значащих байт Issuer
Public Key Modulus (N)
открытого ключа
эмитента.
NI - длина в байтах
модуля открытого
ключа эмитента, NCA -
длина в байтах ключа
УЦ VSDC.
Не
подписано
Да
Issuer Public Key
Exponent Length
1 b Длина экспоненты
открытого ключа
эмитента в 16-ном виде
(число байт). Принимает
значения:
или 16-ное 01 (для
экспоненты 3),
или 16-ное 03 (для
экспоненты 65537)
Не
подписано
Нет
Issuer Public Key
Exponent
1 или 3 b Экспонента открытого
ключа эмитента.
Принимает значения:
или 3, или 65537,
т.е., 16-ное 03 или 16-ное
01 00 01
Не
подписано
Да
CA Public Key
Index
1 байт Индекс открытого
ключа УЦ,
использованного для
создания сертификата
открытого ключа
эмитента.
Не
подписано
Нет
Модуль безопасности платежных систем. Руководство разработчика | 505
Таблица 2.18 – Сертификат эмитента (Visa)
Название поля Длина и
формат
Описание Хэшировано
Recovered Data
Header
1 байт 16-ное '6A'. Нет
Certificate Format 1 b Код формата сертификата.
16-ное '02'
Да
Issuer
Identification
Number
4 b Крайние левые 3-8 цифр PAN,
дополненные справа 16-ными F
(см. Примечание 3).
Да
Certificate
Expiration Date
2 b MMYY (меяц, год), после которых
сертификат недействителен (см.
Примечание 2).
Да
Certificate Serial
Number
3 b Серийный номер сертификата,
назначенный УЦ (бинарный).
Да
Hash Algorithm
Indicator
1 b Идентификатор алгоритма расчета
значения хэш-функции.
Да
Issuer Public Key
Algorithm
Indicator
1 b Идентификатор алгоритма
цифровой подписи.
Да
Issuer Public Key
Modulus Length
1 b Длина модуля открытого ключа
эмитента (число байт).
Да
Issuer Public Key
Modulus (N) or
Leftmost portion
of the Issuer Public
Key Modulus (N)
var b
несколько
b
Если NI ≤ NCA - 36, поле состоит из
Issuer Public Key Modulus (N),
дополненного справа NCA – 36 – NI
байтами 'BB'. Если NI > NCA – 36,
поле состоит из NCA – 36 старших
значащих байт модуля открытого
ключа эмитента (N).
Да
Hash Result 20 b Хэш за открытый ключ эмитента и
сопутствующую информацию.
Нет
Recovered Data
Trailer
1 b 16-ное 'BC'. Нет
Модуль безопасности платежных систем. Руководство разработчика | 506
Таблица 2.19 – Сертификат эмитента (Visa). Присоединенная подпись
Имя поля Длина и
формат
Описание
Header 1 b 16-ное '00'.
Block Format
Code
1 b 16-ное '01'
Padding Character var b
16-ное 'FF'. Длина паддинга равна модулю ключа
подписи - 38
Separator 1 b 16-ное '00'.
Hash Result 15 b Индикатор алгоритма хэш-функции, используемый
CA. Для SHA-1 16-ное значение
='3021300906052b0e03021a05000414'
Hash Result 20b Значение хэш-функции SHA-1 за открытую часть
и сертификат эмитента
Модуль безопасности платежных систем. Руководство разработчика | 507
Формат эмитента MasterCard
Таблица 2.20 - Неподписанные данные сертификата эмитента
(MasterCard)
Имя поля Длина и
формат
Описание Хэшировано
Issuer Identification
Numbe
4 b Старшие левые 3-8 цифр
PAN, дополненные
справа 16-ным F.
См. примечание 3
Не
подписано
Нет
Issuer Public Key
Index
3 b Индекс открытого ключа Не
подписано
Нет
CA Public Key
Index
1 b Индекс открытого ключа
УЦ
Не
подписано
Нет
Issuer (Subject)
Public Key Modulus
Remainde
var b Поле присутствует,
только если NI > NCA - 36,
и состоит из NI - NCA + 36
младших значащих байт
модуля откытого ключа
эмитента
Не
подписано
Да
Issuer (Subject)
Public Key
Exponent
var b Экспонента откртыоыго
ключа эмитента (e = от 1
до NI / 4)
Не
подписано
Да
Модуль безопасности платежных систем. Руководство разработчика | 508
Таблица 2.21 – Сертификат эмитента (MasterCard)
Имя поля Длина и
формат
Описание Хэшировано
Recovered Data
Header
1 b 16-ное '6A'. Нет
Certificate Format 1 b Код формата сертификата
16-ное '02'
Да
Issuer Identification
Number
4 b Левые 3-8 цифр PAN, дополненные
справа 16-ными F (см.
Примечание 3).
Да
Certificate
Expiration Date
2 b MMYY (меяц, год) после которых
сертификат недействителен (см.
Примечание 2)
Да
Certificate Serial
Numbe
3 b Уникальный номер сертификата,
назначенный УЦ (бинарный)
Да
Hash Algorithm
Indicator
1 b Идентификатор алгоритма Хэш Да
Issuer Public Key
Algorithm Indicator
1 b Идентификатор алгоритма цифровой
подписи
Да
Issuer Public Key
Modulus Length
1 b Длина модуля открытого ключа
эмитента. (Число байт)
Да
Issuer Public Key
Exponent Length
1 b Длина экспоненты открытого ключа
эмитента (Число байт).
Да
Issuer Public Key
Modulus (N) or
Leftmost portion of
the Issuer Public
Key Modulus (N)
несколько
b
Если NI ≤ NCA - 36, поле состоит из
целого модуля открытого ключа
эмитента (N), дополненного справа
NCA – 36 – NI байтами 'BB'.
Если NI > NCA – 36, поле состоит из
NCA – 36 старших значащих байт
модуля открытого ключа эмитента
(N)
Да
Hash Result 20 b Хэш за открытый ключ эмитента и
сопутствующую информацию
Нет
Recovered Data
Traile
1 b 16-ное 'BC' Нет
Модуль безопасности платежных систем. Руководство разработчика | 509
Формат эмитента American Express
Таблица 2.22 - Неподписанные данные сертификата эмитента
(American Express)
Название поля Длина и
формат
Описание Хэшировано
Header 1 b 16-ное '24' Не
подписано
Нет
Service Identifier 4 b Идентификатор
продукта American
Express. Фиксированное
значение '00 00 00 00'
Не
подписано
Нет
Issuer Identification
Number
4 b Идентификационный
номер эмитента
(выровненнй по левому
краю и дополненный
16-ными 'F') (см.
Примечание 3)
Не
подписано
Нет
Certificate Serial
Number
3 b '01nnnn', где nnnn
значение поля Tracking
Number из запроса
сертификата (см.
Примечание 2).
Не
подписано
Нет
Certificate
Expiration Date
2 b MMYY (меяц, год),
после которых
сертификат
недействителен (см.
Примечание 2).
Не
подписано
Нет
Issuer Public Key
Modulus Remainder
Length (LN)
1 b Число байт в остатке
(Remainder) модуля
открытого ключа (LNRI
= max (LNI-LNCA+36, 0))
Не
подписано
Нет
Issuer Public Key
Modulus Remainder
(NRI)
var b Поле присутствует, если
LNRI - l > 0, содержит
LNRI младших значащих
(правых) байт модуля
открытого ключа
эмитента
Не
подписано
Да
Модуль безопасности платежных систем. Руководство разработчика | 510
Название поля Длина и
формат
Описание Хэшировано
Issuer Public Key
Exponent Length
(LeI)
1b Число байт экспоненты
открытого ключа
эмитента в 16-ном виде
Не
подписано
Нет
Issuer Public Key
Exponent (eI)
LeI b Экспонента открытого
ключа эмитента
в 16-ном виде
(eI = от 1 до NI / 4)
Не
подписано
Да
CA Public Key
Index
1 b Индекс открытого
ключа УЦ,
использованного для
создания сертификата
открытого ключа
эмитента
Не
подписано
Нет
Модуль безопасности платежных систем. Руководство разработчика | 511
Таблица 2.23 – Сертификат эмитента (American Express)
Название поля Длина и
формат Описание
Хэшировано
Recovered Data
Header
1 b 16-ное '6A'. Нет
Certificate Format 1 b Код формата сертификата
16-ное '02'.
Да
Issuer Identification
Number
4 b Идентификатор эмитента
(выровненный по левому краю и
дополненный 16-ными 'F'). (см.
Примечание 3)
Да
Certificate
Expiration Date
2 b MMYY (меяц, год), после которых
сертификат недействителен (см.
Примечание 2).
Да
Certificate Serial
Number
3 b '01nnnn' где nnnn – значение поля
Tracking Number из запроса
сертификата.
Да
Hash Algorithm
Indicator
1 b Идентификатор алгоритма Хэш. Да
Issuer Public Key
Algorithm Indicator
1b Идентифкатор алгоритма цифровой
подписи
Да
Issuer Public Key
Modulus Length
(LNI)
1 b Длина модуля открытого ключа
эмитента (число байт) .
Да
Issuer Public Key
Exponent Length
(LeI)
1 b Длина экспоненты открытого ключа
эмитента (число байт).
Да
Issuer Public Key
Modulus (N) or
Leftmost portion of
the Issuer Public
Key Modulus (N)
LNCA-36 b LNI >LNCA-36 Старшая значащая
часть модуля;
LNI = LNCA-36 Модуль
LNI <LNCA-36 Модуль, дополненый
символами 'BB' LNCA - 36 - LNI
байтами 'BB'.
Да
Hash Result 20 b Хэш за открытый ключ эмитента и
сопутствующую информацию.
Нет
Recovered Data
Trailer
1 b 16-ное 'BC'. Нет
Модуль безопасности платежных систем. Руководство разработчика | 512
Таблица 2.24 – Сертификат эмитента (American Express). Присоединенная
подпись
Название поля Длина и
формат
Описание
Header 1 b 16-ное '00'.
Block Format Code 1 b 16-ное '01'.
Padding Characters var b 16-ное 'FF'. Длина паддинга равна модулю ключа
подписи – 38.
Separator 1 b 16-ное '00'
Algorithm Indicator 15 b OID для SHA-1,
'30 21 30 09 06 05 2B 0E 03 02 1A 05 00 04 14'
Hash Results 20 b Хэш SHA-1 за неподписанные данные и
сертификат открытого ключа эмитента.
Модуль безопасности платежных систем. Руководство разработчика | 513
Формат сертификата карты ICC
Таблица 2.25 – Сертификат карты (ICC). Входные данные для хэш
Название поля Длина и
формат
Описание
Certificate Format 1 b Код формата сертификата
16-ное '04'.
Application PAN 10 b PAN, дополненный справа 16-ными F(см.
Примечание 3).
Certificate
Expiration date
2 b MMYY (меяц, год), после которых сертификат
недействителен (см. Примечание 2)
Certificate Serial
Number
3 b Уникальный номер сертификата (см. Примечание 2).
Hash Algorithm
Indicator
1 b Идентификатор алгоритма значения хэш.
'01' соттветствует SHA-1.
ICC Public Key
Algorithm
indicator
1 байт Индикатор алгоритма цифровой подписи.
'01' соттветствует RSA.
ICC Public Key
Modulus length
1 b Длина модуля открытого ключа ICC в байтах.
ICC Public Key
Exponent length
1 b Длина экспоненты открытого ключа в байтах.
Принимает значения:
или 16-ное ‘01’ (для экспоненты 3)
или 16-ное ‘03’ (для экспоненты 65537)
Leftmost bytes of
the ICC Key
Modulus
NI - 42 b Если NIC =< NI - 42, поле содержит открытый ключ
ICC, дополненный при необходимости справа
NI - 42 - NIC 16-ными байтами 'BB'.
Если NIC > NI - 42, поле состоит из NI - 42 старших
значащих байт модуля открытого ключа ICC
ICC Public Key
Modulus
Remainder
0 или NIC
- NI + 42 b
Поле присиутствует, только если NIC > NI - 42, и
состоит из NIC - NI + 42 младших значащих байт
модуля открытого ключа ICC
ICC Public Key
Exponent
1 или 3 b Экспонента открытого ключа ICC. Принимает
значения: или 3, или 65537,
т.е., 16-ное 03 или 16-ное 01 00 01
Static Data var b Статические данные для аутентификации карты.
Это поле отсутствует в данных сертифката
открытого ключа для шифрования PIN карты
Модуль безопасности платежных систем. Руководство разработчика | 514
Таблица 2.26 – Содержимое сертификата карты (ICC)
Название поля Длина и
формат
Описание
Recovered Data
Header
1 b 16-ное '6A'.
Certificate Format 1 b Код формата сертификата
16-ное '04.'
Application PAN 10 b PAN, дополненный справа 16-ными F (см.
Примечание 3).
Certificate
Expiration date
2 b MMYY (месяц, год), после которых сертификат
недействителен (см. Примечание 2).
Certificate Serial
Number
3 b Уникальный номер сертификата (бинарный) (см.
Примечание 2).
Hash Algorithm
Indicator
1 b Идентификатор алгоритма хэш. '01' соответствует
SHA-1.
ICC Public Key
Algorithm
indicator
1 b Алгоритм цифровой подписи. '01' соответствует
RSA.
ICC Public Key
Modulus length
1 b Длина модуля открытого ключа ICC в байтах
ICC Public Key
Exponent Length
1 b Длина экспоненты открытого ключа ICC в байтах.
Принимает значения:
или 16-ное 01 (для экспоненты 3);
или 16-ное 03 (для экспоненты 65537).
ICC Public Key
modulus or
leftmost bytes of
the ICC Public Key
modulus
NI - 42 b Если NIC =< NI - 42, поле содержит открытый ключ
ICC, дополненный при необходимости справа NI -
42 - NIC батами с 16-ным значением 'BB'.
Если NIC > NI - 42, поле состоит из NI - 42 старших
значащих байт модуля открытого ключа ICC.
Hash Result 20 b Хэш за открытый ключ ICC и сопутствующую
информацию.
Recovered data
trailer
1 b 'BC'.
Модуль безопасности платежных систем. Руководство разработчика | 515
Формат самоподписанного сертификата УЦ (Visa)
Таблица 2.27 - Открытая часть самоподписанного сертификата УЦ
(Visa)
Название поля Длина и
формат
Описание Хэшировано
Header 1 b 16-ное '20' Не
подписано
Нет
Service Identifier 4 b Идентификатор сервиса
Visa. Proprietary
Application Identifier
Extension (PIX)
выровнено по левому
краю и дополнено
четырьмя
16-ными нулями. В
настоящее время
допустимыми
международными
идентификаторами
сервиса являются:
16-ное 1010 0000 – для
Debit/Credit;
16-ное 2010 0000 – для
Electron;
16-ное 3010 0000 – для
Interlink;
16-ное 8010 0000 – для
PLUS.
Примечание:
Идентификатор сервиса
открытого ключа
сертифицирующего
органа VDSC всегда
1010 0000, независимо
от идентификатра
сервиса открытого
ключа в запросе.
Не
подписано
Нет
Length of Public
Key Modulus (NCA)
2 b Длина модуля
открытого ключа в 16-
ном виде (число байт).
Не
подписано
Нет
Модуль безопасности платежных систем. Руководство разработчика | 516
Название поля Длина и
формат
Описание Хэшировано
Public Key
Algorithm Indicator
1 b Идентификатор
подписи. RSA = 16-ное
“01”
Не
подписано
Нет
Public Key
Exponent Length
1 b Длина экспоненты
открытого ключа УЦ в
16-ном виде (число
байт) .
Не
подписано
Нет
Registered
Application
Provider Identifier
(RID)
5 b Идентификатор Visa =
'A000000003'.
Не
подписано
Да
Public Key Index 1 b Индекс открытого
ключа УЦ .
Не
подписано
Да
Public Key Modulus
(NCA)
var b Модуль открытого
ключа УЦ
Не
подписано
Да
Public Key
Exponent (e)
var b Экспонента открытого
ключа УЦ
Не
подписано
Да
Hash Result 20 b Хэш за представленные
выше поля
Не
подписано
Нет
Модуль безопасности платежных систем. Руководство разработчика | 517
Таблица 2.28 – Самоподписанный сертификат УЦ (Visa)
Название поля Длина и
формат
Описание
Header 1 b 16-ное '21'
Service Identifier 4 b Идентификатор сервиса Visa. Proprietary
Application Identifier Extension (PIX), выровненный
по левому краю и дополненный справа четырьмя
16-ными нулями. В настоящее время допустимыми
идентификаторами международных сервисов
являются:
16-ное 1010 0000 – для Debit/Credit;
16-ное 2010 0000 – для Electron;
16-ное 3010 0000 – для Interlink;
16-ное 8010 0000 – для PLUS.
Registered
Application Provider
Identifier (RID)
5 b Идентификатор Visa = 'A000000003'
Public Key Index 1 b Индекс открытого ключа УЦ
Certificate
Expiration Date
2 b MMYY (месяц, год), после которых сертификат
недействителен (см. Примечание 2).
Public Key
Algorithm Indicator
1 b Идентификатор алгоритма подписи
Leftmost portion of
CA Public Key
Modulus (NCA)
var b (N - [36+e]) байт модуля открытого ключа УЦ (N)
Hash Algorithm
Indicator
1 b Идентификатор алгоритма хэш. '01' соответствует
SHA-1
Public Key
Exponent Length
1 b Длина экспоненты открытого ключа УЦ (Число
байт)
Public Key
Exponent (e)
var b Экспонента открытого ключа УЦ
Hash Result 20 b Значение хэш из открытой части сертификата
Модуль безопасности платежных систем. Руководство разработчика | 518
Формат самоподписанного сертификата УЦ (MasterCard)
Таблица 2.29 - Открытая часть самоподписанного сертификата УЦ
(Mastercard)
Название поля Длина и
формат
Описание Хэшировано
ID of Certificate 5 b The “Registered
Application Provider
Identifier” (RID)
Не
подписано
Нет
Public Key Index 1 b Индекс открытого ключа
УЦ
Не
подписано
Нет
Public Key
Algorithm
Indicator
1 b Идентификатор
алгоритма подписи. RSA
= 16-ное “01”
Не
подписано
Нет
Public Key Length 1 b Длина модуля открытого
ключа (NCA)
Не
подписано
Нет
Public Key
Exponent Length
1 b Длина экспоненты
открытого ключа
Не
подписано
Нет
Leftmost Digits of
Public Key
NCA - 37 b NCA - 37 старших
значащих байт модуля
открытого ключа
Не
подписано
Нет
Public Key
Remainder
37 b 37 младших значащих
байт модуля открытого
ключа
Не
подписано
Да
Public Key
Exponent
var b Экспонента открытого
ключа
Не
подписано
Да
Модуль безопасности платежных систем. Руководство разработчика | 519
Таблица 2.30 – Самоподписанный сертификат УЦ (Mastercard)
Название поля Длина и
формат
Описание Хэшировано
Recovered Data
Header
1 b 16-ное '6A'. Нет
Certificate Format 1 b Код формата сертификата
16-байт '10'.
Да
ID of Certificate 5 b The “Registered Application Provider
Identifier” (RID).
Да
Certificate
Expiration Date
2 b MMYY (меяц, год), после которых
сертификат недействителен (см.
Примечание 2).
Да
Certificate Serial
Number
3 b Серийный номер сертификата. Да
Hash Algorithm
Indicator
1 байт Идентификатор алгоритма хэш.
'01' соответствует SHA-1.
Да
Public Key
Algorithm
Indicator
1 b Идентификатор алгоритма цифровой
подписи. RSA =16-ное '01'.
Да
Public Key Length 1 b Длина модуля открытого ключа в
байтах (NCA).
Да
Public Key
Exponent Length
1 b Длина экспоненты открытого ключа
эмитента (от 01 до 04).
Yes
Leftmost Digits of
Public Key
NCA - 37 b Левые NCA - 37 байт модуля
открытого ключа.
Yes
Hash Result 20 b Значение хэш за открытый ключ и
сопутствующую информацию.
Нет
Recovered Data
Trailer
1 b 16-ное “BC” Нет
Модуль безопасности платежных систем. Руководство разработчика | 520
Формат самоподписанного сертификата УЦ (American Express)
Таблица 2.31 - Открытая часть самоподписанного сертификата УЦ
(American Express)
Название поля Длина и
формат Описание Хэшировано
Header 1 b 16-ное '20' Не
подписано
Нет
Service Identifier
(SI)
4 b Идентификатор
продукта American
Express
Фиксированное
значение '00 00 00 00'
Не
подписано
Нет
Length of Public
Key Modulus (NCA)
2 b Число байт модуля
открытого ключа
(например, '80' = 1024
бит, '90' = 1152 бит, 'B0'
= 1408 бит, 'F8' = 1984
бит) Длина выровнена
по правому краю и
дополнена '00'
Не
подписано
Нет
Public Key
Algorithm Identifie
1 b Идентификатор
алгоритма подписи
('01' = RSA)
Не
подписано
Нет
Public Key
Exponent Length
1 b Длина экспоненты
открытого ключа в
байтах (например, '01')
Не
подписано
Нет
Registered
Application
Provider Identifier
(RID
5 b Идентификатор
American Express =
'A000000025'
Не
подписано
Да
Public Key Index 1 b Индекс открытого
ключа УЦ
Не
подписано
Да
Public Key Modulus
(NCA)
var b Модуль открытого
ключа УЦ
Не
подписано
Да
Public Key
Exponent (eCA)
var b Экспонента открытого
ключа (eCA = от 1 до NCA/
4) (например, 16-ное '03')
Не
подписано
Yes
Hash Result 20 b Хэш за перечисленные
выше поля
Не
подписано
Нет
Модуль безопасности платежных систем. Руководство разработчика | 521
Таблица 2.32 – Самоподписанный сертификат УЦ (American Express)
Название поля Длина и
формат
Описание
Header 1 b 16-битное '21'
Service Identifier
(SI)
4 b Идентификатор продукта American Express.
Фиксированное значение '00 00 00 00'
Registered
Application Provider
Identifier (RID)
5 b Идентфикатор American Express = 'A000000025'
Public Key Index 1 b Индекс пары ключей УЦ
Certificate
Expiration Date
2 b MMYY (меяц, год), после которых сертификат
недействителен. (Срок действия закрытого ключа
УЦ) (см. Примечание 2).
Public Key
Algorithm Indicator
1 b Идентификатор алгоритма подписи („01‟ - RSA)
Most Significant
Part of Public Key
Modulus (NCA)
var b NCA - [36+eCA] байт модуля открытого ключа. (36 =
число байт в фиксированных полях)
Hash Algorithm
Indicator
1 b Идентификатора алгоритма хэш ('01' - SHA-1)
Public Key
Exponent Length
1 b Длина экспоненты открытого ключа в байтах
(например, '01')
Public Key Exponen
(eCA)
var b Экспонента открытого ключа (eCA = от 1 до NCA /
4) (например, 16-ное „03‟)
Hash Result 20 b Значение хэш из открытой части сертификата
Модуль безопасности платежных систем. Руководство разработчика | 522
Приложение 3
Таблицы «слабых» DES-ключей
Таблица 3.1 – Слабые ключи DES
Значение слабого ключа (с битами
четности) Действительный ключ
0101 0101 0101 0101 0000000 0000000
1F1F 1F1F 0E0E 0E0E 0000000 FFFFFFF
E0E0 E0E0 F1F1 F1F1 FFFFFFF 0000000
FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF
Таблица 3.2 – Полуслабые пары ключей DES
01FE 01FE 01FE 01FE и FE01 FE01 FE01 FE01
1FE0 1FE0 0EF1 0EF1 и E01F E01F F10E F10E
01E0 01E0 01F1 01F1 и E001 E001 F101 F101
1FFE 1EEE 0EFE 0EFE и FE1F FE1F FE0E FE0E
011F 011F 010E 010E и 1F01 1F01 0E01 0E01
E0FE E0FE F1FE F1FE и FEE0 FEE0 FEE1 FEE
Модуль безопасности платежных систем. Руководство разработчика | 523
Таблица 3.3 – Условно слабые пары ключей DES
1F 1F 01 01 0E 0E 01 01 E0 01 01 E0 F1 01 01 F1
01 1F 1F 01 01 0E 0E 01 FE 1F 01 E0 FE 0E 01 F1
F 01 01 1F 0E 01 01 0E FE 01 1F E0 FE 01 0E F1
01 01 1F 1F 01 01 0E 0E E0 1F 1F E0 F1 0E 0E F1
E0 E0 01 01 F1 F1 01 01 FE 01 01 FE FE 01 01 FE
FE FE 01 01 FE FE 01 01 E0 1F 01 FE F1 0E 01 FE
FE E0 1F 01 FE F1 0E 01 E0 01 1F FE F1 01 0E FE
E0 FE 1F 01 F1 FE 0E 01 FE 1F 1F FE FE 0E 0E FE
FE E0 01 1F FE F1 01 0E 1F FE 01 E0 0E FE 01 F1
E0 FE 01 1F F1 FE 01 0E 01 FE 1F E0 01 FE 0E F1
E0 E0 1F 1F F1 F1 0E 0E 1F E0 01 FE 0E F1 01 FE
FE FE 1F 1F FE FE 0E 0E 01 E0 1F FE 01 F1 0E FE
FE 1F E0 01 FE 0E F1 01 01 01 E0 E0 01 01 F1 F1
E0 1F FE 01 F1 0E FE 01 1F 1F E0 E0 0E 0E F1 F1
FE 01 E0 1F FE 01 F1 0E 1F 01 FE E0 0E 01 FE F1
E0 01 FE 1F F1 01 FE 0E 01 1F FE E0 01 0E FE F1
01 E0 E0 01 01 F1 F1 01 1F 01 E0 FE 0E 01 F1 FE
1F FE E0 01 0E FE F0 01 01 1F E0 FE 01 0E F1 FE
1F E0 FE 01 0E F1 FE 01 01 01 FE FE 01 01 FE FE
01 FE FE 01 01 FE FE 01 1F 1F FE FE 0E 0E FE FE
1F E0 E0 1F 0E F1 F1 0E FE FE E0 E0 FE FE F1 F1
01 FE E0 1F 01 FE F1 0E E0 FE FE E0 F1 FE FE F1
01 E0 FE 1F 01 F1 FE 0E FE E0 E0 FE FE F1 F1 FE
1F FE FE 1F 0E FE FE 0E E0 E0 FE FE F1 F1 FE FE
Модуль безопасности платежных систем. Руководство разработчика | 524
Приложение 4
Форматы PIN-блоков
Общие сведения
Для проверки PIN и преобразования PIN, HSM требуется, чтобы PIN был
введен в виде зашифрованного 16-значного PIN-блока. Исходные
(незашифрованные) данные PIN-блока включают PIN и один из видов
заполнения для гарантии, что данные состоят из 16 знаков. Механизм
дополнения известен как формат PIN-блока. HSM поддерживает ряд форматов
PIN-блоков, идентифицируемых 2-цифровым кодом формата PIN-блока.
Форматы 34, 35, 41 и 42 используются для операций изменения EMV PIN, и
доступны только для команд KU и KY.
Модуль безопасности платежных систем. Руководство разработчика | 525
Формат 01
Формат 01 PIN-блока – это формат, принятый Американским
национальным институтом стандартов (ANSI X9.8), и один из форматов,
поддерживаемых Международной организацией по стандартизации (ISO 9564-
1 - format 0).
Формат составляют PIN клиента и номер счета (account number) в
следующем виде:
- 16-значный блок составляют цифра 0, длина PIN, PIN и символов
заполнения (шестнадцатеричное F). Например: 92389 - пятизначный PIN – это
блок вида:
0 5 9 2 3 8 9 F F F F F F F F F
- следующий 16-значный блок состоит из четырех нулей и 12 крайних
правых цифр номера счета, за исключением контрольной цифры. Например, для
13-значного номера счета 4000 0012 3456 2, где два - контрольный разряд, блок
имеет вид:
0 0 0 0 4 0 0 0 0 0 1 2 3 4 5 6
- два блока складываются по исключающему ИЛИ.
PIN: 0 5 9 2 3 8 9 F F F F F F F F F
Номер счета: 0 0 0 0 4 0 0 0 0 0 1 2 3 4 5 6
PIN block: 0 5 9 2 7 8 9 F F F E D C B A 9
Модуль безопасности платежных систем. Руководство разработчика | 526
Формат 02
Формат 02 PIN-блока поддерживает Docutel ATM. PIN-блок составляют
длина PIN, шестизначный PIN, и определяемая пользователем числовая строка
заполнения. Если PIN меньше шести знаков, он выравнивается по левому краю
и справа дополняется нулями.
Например, для пятизначного PIN 92389 цифры PIN 923890. С символами
заполнения PIN-блок может, например, иметь вид:
5923 8909 8765 4321
где 9 8765 4321 - строка заполнения.
Формат 03
Формат 03 PIN-блока поддерживает ATM Diebold и IBM. Он также
использует формат Docutel, который не включает длину PIN. PIN-блок
составляют PIN клиента и шестнадцатеричный символ заполнения F.
Например: для пятизначного PIN 92389 PIN-блок имеет вид:
9238 9FFF FFFF FFFF
Модуль безопасности платежных систем. Руководство разработчика | 527
Формат 04
Формат 04 PIN-блока - это PIN-блок, принятый сетью PLUS.
Формат 04 составляют PIN клиента и соответствующий номер счета
(account number) следующим образом:
- 16-значный блок составляют цифра 0, длина PIN, PIN и символ заполнения
(шестнадцатеричное F). Например, для пятизначного PIN 92389 блок имеет
вид:
0 5 9 2 3 8 9 F F F F F F F F F
- следующий 16-значный блок состоит из четырех нулей и крайних левых
12 цифр номера счета.
Например: для 16-значного номера счета 2283 4000 0012 3456,
где 6 контрольный разряд, блок имеет вид:
0 0 0 0 2 2 8 3 4 0 0 0 0 0 1 2
- два блока складываются по исключающему ИЛИ:
PIN: 0 5 9 2 3 8 9 F F F F F F F F F
Номер счета: 0 0 0 0 2 2 8 3 4 0 0 0 0 0 1 2
PIN блок : 0 5 9 2 1 A 1 C B F F F F F E D
Примечание:
Для любой транзакции, которая требует PIN-блок, как параметр
принимается формат 04. Главное влияние этот формат оказывает на
длину поля номера счета: когда PIN-блок отформатирован по формату
04, то поле номера счета становится полем длиной 18 знаков.
Для команд преобразования PIN CA и CC есть два поля формата - если
один из них формат 04, то поле номера счета (account number) должно
иметь 18 знаков; если номер счета (account number) составляет менее
18 цифр, то он выравнивается по правому краю, и cлева дополняется X'F.
Модуль безопасности платежных систем. Руководство разработчика | 528
Этот формат могут использовать следующие команды:
BC, BE, CA, CC, DA, DC, EA, EC, JC, JE, BK, FW, CU, DU, JG, KU, KY.
При рассмотрени деталей этих команд требуется учитывать изменения
поля номера счета, требуемые этим форматом.
Модуль безопасности платежных систем. Руководство разработчика | 529
Формат 05
Формат 05 PIN-блока - это PIN-блок формата 1 ISO 9564-1 (ISO 1).
PIN блок представлен 16-значным кодом следующего вида:
1NPP..P R . . R
Где:
- N - длина PIN (4 - C);
- PP..P - N-разрядный PIN;
- R . . R случайное значение.
На входящем PIN-блоке формата 05 проводятся следующие проверки:
- первый параметр PIN-блока имеет значение 1. Если эта проверка не
проходит, код ошибки 20;
- цифры PIN (в позиции 3 - (N+2)) в диапазоне от 0 до 9. Если проверка
не проходит - код ошибки 20;
- второй символ (N) в шестнадцатеричном диапазоне 4-С. Если
проверка не проходит - код ошибки 24.
Модуль безопасности платежных систем. Руководство разработчика | 530
Формат 34
Формат 34 – это стандартный формат PIN-блока EMV (ISO 9564-1
format 2). Он допустим только как результат команд преобразования PIN (KU и
KY). PIN-блок составляют фиксированное контрольное поле, сам PIN клиента,
и шестнадцатеричный символ заполнения F. Принимается PIN длиной от 4 до
12 знаков.
16-знаковый (8-байт) блок имеет следующий вид:
C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F
Где:
- С- фиксированное контрольное поле с двоичным значением 0010
(X'2);
- N - длина PIN, и может иметь любое двоичное значение от 0100
до 1100 (X'4 - X'C);
- P - цифра PIN, возможно любое двоичное значение от 0000
до 1001 (X'0 - X'9);
- P/F - или цифра PIN, или двоичное значение 1111 (X'F) заполнения, в
зависимости от длины PIN;
- F - двоичное значение 1111 (X'F) заполнения.
Таким образом, если 34567 - пятизначный PIN, 16-значный PIN-блок
будет содержать 16 шестнадцатеричных значений, как показано ниже:
2 5 3 4 5 6 7 F F F F F F F F F
Модуль безопасности платежных систем. Руководство разработчика | 531
Формат 35
PIN-блок формата 35 – это PIN-блок, требуемый Europay/MasterCard для
продуктов Pay Now & Pay Later. PIN-блок составляют фиксированное
контрольное поле, длина PIN, PIN клиента и номера счета клиента (account
number). Допустима длина PIN от 4 до 12 знаков.
16-знаковый (8-байт) блок имеет следующий вид:
C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F
Где:
- С- фиксированное контрольное поле с двоичным значением 0010 (X'2);
- N - длина PIN, может иметь любое двоичное значение от 0100 до 1100
(X'4 - X'C);
- P - цифра PIN, любое двоичное значение от 0000 до 1001 (X'0 - X'9);
- P/F или цифра PIN, или двоичное значение 1111 (X'F) заполнения, в
зависимости от длины PIN;
- F - заполнитель с двоичным значением 1111 (X'F).
Таким образом, если 34567 - пятизначный PIN, 16-значный PIN-блок
будет занимать 16 шестнадцатеричных значений, как показано ниже:
2 5 3 4 5 6 7 F F F F F F F F F
- другой 16-значный блок состоит из четырех нулей и 12-значного поля,
составленного из 12 самых правых цифр номера счета, за исключением
контрольной цифры.
Модуль безопасности платежных систем. Руководство разработчика | 532
Если 1234 0123 4562 номера счета с контрольным значением 2, то блок
имеет вид:
0 0 0 0 4 0 0 0 0 0 1 2 3 4 5 6
Два блока складываются по исключающему ИЛИ по битам:
PIN 2 5 3 4 5 6 7 F F F F F F F F F
номер счета 0 0 0 0 4 0 0 0 0 0 1 2 3 4 5 6
PIN-блок формата 35 2 5 3 4 1 6 7 F F F E D C B A 9
Модуль безопасности платежных систем. Руководство разработчика | 533
Формат 41
PIN-блок формата 41 – это формат Visa для смены PIN-кода без
использования текущего PIN.
PIN-блок создается с использованием нового PIN и уникального ключа
карты карты DK-AC следующим образом:
1. Построить блок данных из 16 шестнадцатеричных цифр путем
извлечения восьми крайних правых цифр уникального ключа DK-AC с
приложения карты, дополненных слева восемью шестнадцатеричными нулями:
0 0 0 0 0 0 0 0
←8 Rightmost digits of card app‟s unique DEA key A→
2. Второй блок данных из 16 шестнадцатеричных цифр создается
следующим образом:
C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F
Где:
- C – поле фиксированного контрольного значения 0000 (X’0);
- N – длина нового PIN, допустимо любое бинарное значение от 0100
до 1100 (от X'4 - X'C);
- P - цифра нового PIN, допустимо любое бинарное значение от 0000 до
1001 (от X'0 - X'9);
- P/F - или цифра PIN, или двоичное значение заполнения 1111 (X'F), в
зависимости от длины PIN;
- F - заполнитель с двоичным значением 1111 (X'F).
3. Для создания итогового PIN-блока выполнить операцию
исключающего или блоков, созданных в шагах 1 и 2.
Модуль безопасности платежных систем. Руководство разработчика | 534
Формат 42
Формат 42 PIN блока - это формат Visa для смены PIN-кода,
использующий текущий (старый) PIN. PIN-блок создается с использованием
старого PIN, нового PIN и части уникального ключа карты карты DK-AC
следующим образом:
1. Построить первый блок данных из 16 шестнадцатеричных цифр путем
извлечения восьми крайних правых цифр уникального ключа DK-AC
приложения карты, дополненных слева восемью шестнадцатеричными нулями:
0 0 0 0 0 0 0 0
←8 Rightmost digits of card app‟s unique DEA key A→
2. Создать второй блок данных из 16 шестнадцатеричных цифр:
C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F
Где:
- C – фиксированное поле контроля с двоичным значением 0000 (X'0);
- N – длина нового PIN, допустимо любое двоичное значение от 0100 до
1100 (от X'4 - X'C);
- P - цифра нового PIN, допустимо любое двоичное значение от 0000 до
1001 (от X'0 - X'9);
- P/F - или цифра PIN, или двоичное значение заполнения 1111 (X'F), в
зависимости от длины PIN;
- F - заполнение со значением 1111 (X'F).
3. Создать третий блок данных из 16 десятичных цифр, используя
старый PIN-код, следующим образом:
P P P P P P/0 P/0 P/0 P/0 P/0 0 0 0 0 0 0
Где:
- P – цифра старого PIN, двоичное значение от 0000 до 1001 (X'0 - X'9);
Модуль безопасности платежных систем. Руководство разработчика | 535
- P/0 - или цифра PIN, или двоичное значение 0000 (X'0) заполнения,
в зависимости от длины PIN;
- 0 - заполнитель с двоичным значением 0000 (X'0).
4. Выполнить операцию исключающего ИЛИ с блоками данных,
созданными на шагах 1, 2, 3. Результат называется "Дельта PIN".
Модуль безопасности платежных систем. Руководство разработчика | 536
Формат 47
Формат 47 PIN-блока - это формат 3 PIN-блока ISO 9564-1 (ISO-3). Этот
блок построен сложением по модулю 2 двух 64-разрядных полей: поля
открытого текста PIN-кода и поля номера счета (account number). Поле
открытого текста PIN форматируется следующим образом:
C N P P P P P/F P/F P/F P/F P/F P/F P/F P/F F F
Где:
- C - поле контроля с двоичным значением 0011 (десятичное 3);
- N - длина PIN - четырех-битовый двоичный номер, с допустимым
значением от 0100 (4) до 1100 (12);
- P - цифра PIN, 4-битовое поле с допустимым значением от 0000 (0)
до 1001 (9).
- P/F - цифра PIN/заполнения. Значение этих полей определяется
полем длины PIN.
- F - цифра заполнения, четырех-битовое полесо значением от 1010
(10) до 1111 (15), где значение заполнителя случайно или
последовательно выбирается из набора шести возможных значений,
так что маловероятно, что идентичная конфигурация цифр
заполнения будет использована более одного раза с тем же номером
счета тем же устройством зашифрования PIN.
Поле номера счета (account number) сформировано следующим образом:
0 0 0 0 А1 А2 А3 А4 А5 А6 А7 А8 А9 А10 А11 А12
Где:
- 0 - Цифра заполнения; допустимо только одно значение – 0000 (0);
Модуль безопасности платежных систем. Руководство разработчика | 537
- A1 ... A12 = Номер счета (Account Number) - двенадцать самых
правых цифр первичного номера счета (PAN), кроме контрольной
цифры;
- A12 – цифра, непосредственно предшествующая контрольной
цифре PAN.
Если значение PAN, за исключением контрольной цифры, меньше
12 цифр, цифры выравниваются по правому краю и дополняется слева нулями.
Допустимые значения от 0000 (0) до 1001 (9).