Р 1323565.1.008-2017. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование режимов алгоритма блочного шифрования в защищенном обмене сообщениями между эмитентом и платежным приложением
(утв. и введены в действие Приказом Росстандарта от 19.12.2017 № 2016-ст)
Примечание
Документ введен в действие с 1 июня 2018 года.
Утверждены и введены в действие Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. № 2016-ст
РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ
КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ
ИСПОЛЬЗОВАНИЕ РЕЖИМОВ АЛГОРИТМА БЛОЧНОГО ШИФРОВАНИЯ В ЗАЩИЩЕННОМ ОБМЕНЕ СООБЩЕНИЯМИ МЕЖДУ ЭМИТЕНТОМ И ПЛАТЕЖНЫМ ПРИЛОЖЕНИЕМ
Information technology. Cryptographic data security. Using block encryption algorithm modes in secure messaging between the issuer and the payment application
Дата введения 1 июня 2018 года
Предисловие
1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью «Системы практической безопасности» (ООО «СПБ») совместно с Открытым акционерным обществом «Информационные технологии и коммуникационные системы» (ОАО «ИнфоТеКС») и Обществом с ограниченной ответственностью «КРИПТО-ПРО» (ООО «КРИПТО-ПРО»)
2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»
3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 19 декабря 2017 г. № 2016-ст
Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О стандартизации в Российской Федерации». Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Введение
В настоящих рекомендациях рассмотрены алгоритмы реализации механизмов скрипт-процессинга для обеспечения защищенного обмена сообщениями. Процедура скрипт-процессинга может быть выполнена в любое время после завершения обработки первой команды GENERATE AC.
Разработка настоящих рекомендаций вызвана необходимостью внедрения процедур для осуществления защищенного обмена сообщениями платежного приложения карты с эмитентом.
Примечание — Настоящие рекомендации дополнены приложением А.
1 Область применения
Описанные в настоящих рекомендациях алгоритмы рекомендуется применять при защищенном обмене сообщениями в платежной системе «МИР».
Защищенный обмен сообщениями платежного приложения карты с эмитентом обеспечивается за счет использования механизмов скрипт-процессинга, а также шифрования оффлайновых счетчиков приложения. Реализация скрипт-процессинга подразумевает шифрование конфиденциальных данных команды (PIN-block), а также обеспечение целостности данных каждой команды. Инструкции скрипт-процессинга предназначены для изменения внутренних данных приложения, поэтому защищенный обмен сообщениями с эмитентом используется в ограниченном наборе APDU-команд.
2 Нормативные ссылки
В настоящих рекомендациях использованы нормативные ссылки на следующие документы:
ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования
ГОСТ Р 34.11-2012 Информационная технология. Криптографическая защита информации. Функция хэширования
Р 1323565.1.010-2017 Информационная технология. Криптографическая защита информации. Использование функции диверсификации для формирования производных ключей платежного приложения
Примечание - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных документов в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю «Национальные стандарты», который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя «Национальные стандарты» за текущий год. Если заменен ссылочный документ, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого документа с учетом всех внесенных в данную версию изменений. Если заменен ссылочный документ, на который дана датированная ссылка, то рекомендуется использовать версию этого документа с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Обозначения
В настоящих рекомендациях использованы следующие обозначения:
| Vn | - | конечномерное векторное пространство размерности n; |
|---|---|---|
| A||B | - | конкатенация строк, т.е. если A \in V_{n_{1}} , B \in V_{n_{2}} , A = (an1-1, an1-2, ..., a0), B = (bn2-1, bn2-2, ..., b0), то A\|\|B = (a_{n1 - 1},a_{n1 - 2},...,a_{0},b_{n2 - 1},b_{n2 - 2},...,b_{0}) \in V_{n1 + n2}; |
| ЗОС | - | защищенный обмен сообщениями; |
| SMI | - | механизм обеспечения целостности передаваемых в команде (сообщении) данных и аутентификации источника данных (Secure Messaging for Integrity and Authentication); |
| SMC | - | механизм обеспечения конфиденциальности передаваемых данных (Secure Messaging for Confidentiality); |
| PIN | - | персональный идентификационный номер (Personal Identification Number). Длина значения равна 4 — 12 десятичным цифрам; |
| SKSMI | - | сессионный ключ, используемый для обеспечения целостности передаваемых в скриптовой команде данных и аутентификации источника данных команды; формируется в соответствии с Р 1323565.1.010-2017. Хранится в оперативной памяти карты только на протяжении одной транзакции, после удаляется. Длина значения равна 32 байтам; |
| CLA||INS||P1||P2 | - | заголовок сообщения. Длина значения равна 4 байтам; |
| CLA | - | байт класса (Class Byte of the Command Message). Длина значения равна 1 байту; |
| INS | - | командный байт (Instruction Byte of Command Message). Длина значения равна 1 байту; |
| P1 | - | параметр 1. Указывает элементы управления и опции для обработки команд. Если не используется, то принимает значение '0 \times 00' . Длина значения равна 1 байту; |
| P2 | - | параметр 2. Указывает элементы управления и опции для обработки команд. Если не используется, то принимает значение '0 \times 00' . Длина значения равна 1 байту; |
| IM | - | значение имитовставки для сообщения. Длина значения равна 4 байтам; |
| SKSMC | - | сессионный ключ, используемый для обеспечения конфиденциальности передаваемых данных (PIN-block) в скриптовой команде; формируется в соответствии с Р 1323565.1.010-2017. Хранится в оперативной памяти карты только на протяжении одной транзакции, после удаляется. Длина значения равна 32 байтам; |
| SKAC | - | сессионный ключ карты, используемый для формирования прикладной криптограммы и формирования ключа шифрования счетчиков SKCOUNTER; формируется в соответствии с Р 1323565.1.010-2017. Хранится в оперативной памяти карты только на протяжении одной транзакции, после удаляется. Длина значения равна 32 байтам; |
| SKCOUNTER | - | сессионный ключ, используемый для шифрования счетчиков. Длина значения равна 32 байтам; |
| AC Session Counter | - | счетчик количества генераций картой сессионных ключей SKAC с момента последней успешной проверки приложением величины ARPC. Длина значения равна 2 байтам; |
| SMI Session Key Counter | - | счетчик общего количества случаев вывода сессионных ключей SKSMI, при которых проверка IM завершилась неудачно. Длина значения равна 2 байтам; |
| PIN Decipherment Counter | - | счетчик количества неверных операций расшифровок приложением PIN-block при оффлайновой проверке PIN. Длина значения равна 2 байтам; |
| Terminal Mutual Authentication Counter | - | счетчик количества неверных операций взаимной аутентификации приложения с терминалом. Длина значения равна 2 байтам; |
| Counters | - | блок значений счетчиков, состоящий из значений AC Session Counter, SMI Session Key Counter, PIN Decipherment Counter, Terminal Mutual Authentication Counter. Длина значения равна 8 байтам; |
| PIN-block | - | данные для вычисления шифрограммы. Длина значения равна 8 байтам. |
4 Описание алгоритмов
Возможные значения аргументов функций в представленных алгоритмах ограничиваются допустимостью их использования в качестве входных параметров преобразований.
4.1 Обеспечение контроля целостности ЗОС между платежным приложением карты и эмитентом
4.1.1 Алгоритм формирования значения имитовставки для сообщения скрипт-процессинга
Значение имитовставки вычисляется на ключе SKSMI в соответствии с ГОСТ 28147-89 с использованием узла замены id-tc26-gost-28147-param-Z:
IM = IM_{\text{ГОСТ}}(SK_{SMI})[X||Y],
X = (CLA||INS||P1||P2||'0 \times 80'||'0 \times 00'||'0 \times 00'||'0 \times 00')
Длина значения X равна 8 байтам.
Y = (MSG||'0 \times 80'||'0 \times 00'||...||'0 \times 00')
Длина значения Y равна 264 байтам.
Сообщение MSG вычисляется в соответствии с таблицей 1.
| Тэг 1 | Длина 1 | Значение 1 | Тэг 2 | Длина 2 |
|---|---|---|---|---|
| '87', если данные команды зашифрованы '81', если данные команды передаются в открытом виде |
Длина данных команды L | Данные (L байт) | '8E' | '04' |
Итоговый формат сообщения скрипт-процессинга после формирования имитовставки представляется в виде MSG||IM .
4.1.2 Алгоритм проверки значения имитовставки для сообщения скрипт-процессинга
Для проверки значения имитовставки для сообщения необходимо выполнить расчет имитовставки аналогично 5.1.1 и сравнить полученное значение со значением таблицы 2.
Если значения совпадают, то значение счетчика SMI Session Key Counter уменьшается на 1.
Если значения не совпадают, то приложение должно отклонить команду скрипт-процессинга.
4.2 Защита конфиденциальности ЗОС между платежным приложением карты и эмитентом
4.2.1 Алгоритм шифрования конфиденциальных данных PIN сообщения скрипт-процессинга
Для шифрования конфиденциальных данных PIN формируется PIN-block в следующем виде:
| C | N | P | P | P | P | P/F | P/F | P/F | P/F | P/F | P/F | P/F | P/F | F | F |
|---|
Значение в каждом столбце имеет длину 4 бита.
Значение знаков PIN-block определены в таблице 3.
Шифрование PIN-block осуществляется на ключе SKSMC в соответствии с ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
Block1 = EГОСТ(SKSMC)[PIN-block]
4.2.2 Алгоритм расшифрования конфиденциальных данных PIN сообщения скрипт-процессинга
Расшифрование PIN-block осуществляется на ключе SKSMC в соответствии с ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
PIN-block = DГОСТ(SKSMC)[block1]
Формат расшифрованного PIN-block должен соответствовать приведенному в 5.2.1. В противном случае приложение должно отклонить команду.
4.3 Шифрование значений счетчиков при передаче эмитенту
4.3.1 Алгоритм шифрования счетчиков при передаче эмитенту
Блок значений счетчиков шифруется на ключе SKCOUNTER в соответствии с ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
Block2 = EГОСТ(SKCOUNTER)[Counters]
Ключ SKCOUNTER формируется из ключа SKAC по следующей схеме:
где H — это хэш-функция ГОСТ Р 34.11-2012 с длиной выхода, равной 256 битам.
4.3.2 Алгоритм расшифрования счетчиков при передаче эмитенту
Блок значений счетчиков расшифровывается на ключе SKCOUNTER в соответствии с ГОСТ 28147-89 в режиме простой замены с узлом замены id-tc26-gost-28147-param-Z:
Counters = EГОСТ(SKCOUNTER)[Block2]
Ключ SKCOUNTER формируется из ключа SKAC по следующей схеме:
где H — это хэш-функция ГОСТ Р 34.11-2012 с длиной выхода, равной 256 битам.
Приводимые ниже значения параметров PIN, CLA, INS, P1, P2, а также значения счетчиков AC Session Counter, SMI Session Key Counter, PIN Decipherment Counter, Terminal Mutual Authentication, значение сообщения MSG и значения ключей SKSMI, SKSMC, SKAC рекомендуется использовать только для проверки корректной работы конкретной реализации алгоритмов, описанных в настоящих рекомендациях.
Все числовые значения приведены в десятичной или шестнадцатеричной записи. Нижний индекс в записи числа обозначает основание системы счисления.
В данном приложении двоичные строки из V*, длина которых кратна 4, записываются в шестнадцатеричном виде, а символ конкатенации
опускается. То есть строка a \in V_{4r} будет представлена в виде ar-1 ar-2 ... a0, где a_{i} \in {0,1,...,9,a,b,c,d,e,f},i = 0,1,...,r - 1 . Соответствие между двоичными строками длины 4 и шестнадцатеричными строками длины 1 задается естественным образом (таблица А.1).
Соответствие между двоичными и шестнадцатеричными строками
| 0000 | 0 |
|---|---|
| 0001 | 1 |
| 0010 | 2 |
| 0011 | 3 |
| 0100 | 4 |
| 0101 | 5 |
| 0110 | 6 |
| 0111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | a |
| 1011 | b |
| 1100 | c |
| 1101 | d |
| 1110 | e |
| 1111 | f |
Преобразование, ставящее в соответствие двоичной строке длины 4r шестнадцатеричную строку длины r, и соответствующее обратное преобразование для простоты записи опускаются.
Для вычисления имитовставки, шифрования конфиденциальных данных (PIN) и шифрования значения счетчиков используют следующие исходные данные:
Заголовок сообщения: CLA||INS||P1||P2 = 211faa43_{16}
Значение сообщения MSG: MSG = 870445153fbb8e0416
SMI Session Key Counter = 000116
PIN Decipherment Counter = 000116
Terminal Mutual Authentication = 000116
Символ "\\" обозначает перенос числа на новую строку.
А.1.1 Имитовставка для сообщения
Используя исходные данные, получают следующее значение имитовставки:
А.1.2 Шифрование конфиденциальных данных (PIN)
PIN-block = 271234567fffffff16
В результате применения алгоритма шифрования PIN получится следующее значение шифрограммы:
E_{SK_{SMC}}(PIN - block) = 9073bb4f8f08f916_{16}
С использованием приведенных значений SKSMC и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.1.4 Ключ шифрования счетчиков
На основе ключа SKAC формируется значение ключа SKCounters
| SKCounters | = | 93a20f29d3e4c445e47358003302b90e\ 223ba98e1b2a55a7c18c086634236e6816 |
|---|
А.1.5 Шифрование значения счетчиков
В результате применения алгоритма шифрования счетчиков получится следующее значение шифрограммы:
ESKCounters(Counters) = bdbdfd20657f13d416
А.1.6 Расшифрование значения счетчиков
С использованием приведенных значений SKCounters и значения шифрограммы с помощью операции расшифрования воспроизводятся исходные значения счетчиков.
Для вычисления имитовставки, шифрования конфиденциальных данных (PIN) и шифрования значения счетчиков используют следующие исходные данные:
Заголовок сообщения: CLA||INS||P1||P2 = 0001a2a\text{с}_{16}
Значение сообщения MSG: MSG = 810545343f45df8e0416
SMI Session Key Counter = 000216
PIN Decipherment Counter = 000216
Terminal Mutual Authentication = 000216
А.2.1 Имитовставка для сообщения
Используя исходные данные, получают следующее значение имитовставки:
А.2.2 Шифрование конфиденциальных данных (PIN)
PIN-block = 241234ffffffffff16
В результате применения алгоритма шифрования PIN получится следующее значение шифрограммы:
E_{SK_{SMC}}(PIN - block) = b4d781574ded10b7_{16}
С использованием приведенных значений SKSMC и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.2.4 Ключ шифрования счетчиков
На основе ключа SKAC формируется значение ключа SKCounters
| SKCounters | = | 1dc1c864c50a8a95aba515962cad0b42\ 13cafcbb75c3684d1f04151ca2cb75ed16 |
|---|
А.2.5 Шифрование значения счетчиков
В результате применения алгоритма шифрования счетчиков получится следующее значение шифрограммы:
E_{SK_{Counters}}(Counters) = 3ecefdcbf1c9d440_{16}
А.2.6 Расшифрование значения счетчиков
С использованием приведенных значений SKCounters и значения шифрограммы с помощью операции расшифрования воспроизводятся исходные значения счетчиков.
Для вычисления имитовставки, шифрования конфиденциальных данных (PIN) и шифрования значения счетчиков используются следующие исходные данные:
Заголовок сообщения: CLA||INS||P1||P2 = 29cb34ac_{16}
Значение сообщения MSG: MSG = 8101658e0416
SMI Session Key Counter = 000316
PIN Decipherment Counter = 000316
Terminal Mutual Authentication = 000316
А.3.1 Имитовставка для сообщения
Используя исходные данные, получают следующее значение имитовставки:
А.3.2 Шифрование конфиденциальных данных (PIN)
PIN-block = 2a3247839010ffff16
В результате применения алгоритма шифрования PIN получится следующее значение шифрограммы:
E_{SK_{SMC}}(PIN - block) = fea7fedcc32687d3_{16}
С использованием приведенных значений SKSMC и значения шифрограммы с помощью операции расшифрования воспроизводится исходное значение PIN.
А.3.4 Ключ шифрования счетчиков
На основе ключа SKAC формируется значение ключа SKCounters
| SKCounters | = | 2ee67d8b3ccf9aadadd03814e7e25439\ 8ad2c3c341ee30354d0c4025eb06aec116 |
|---|
А.3.5 Шифрование значения счетчиков
В результате применения алгоритма шифрования счетчиков получится следующее значение шифрограммы:
E_{SK_{Counters}}(Counters) = 7b342f35259e9689_{16}
А.3.6 Расшифрование значения счетчиков
С использованием приведенных значений SKCounters и значения шифрограммы с помощью операции расшифрования воспроизводятся исходные значения счетчиков.