11 февраля 2022, 10:15
Количество просмотров 2022

Смена караула, или Новые криптографические алгоритмы в платежах

Недавние изменения в отношении одной из важнейших составляющих стандарта EMV рассматривает Игорь Голдовский, директор Департамента инноваций, главный архитектор АО НСПК. Как и в своем предыдущем материале, он выступает в качестве независимого эксперта в области платежных технологий, с чьим богатым опытом и всесторонней профессиональной экспертизой в области электронных платежей мы продолжаем знакомить наших читателей.
Смена караула, или Новые криптографические алгоритмы в платежах

Причиной написания этой статьи стал вышедший в конце октября 2021 года бюллетень EMV Specification Bulletin №243 «Introduction of XDA/ODE for EMV Specifications», описывающий изменения к одной из важнейших составляющих стандарта EMV, а именно — к документу EMV Integrated Circuit Card Specifications for Payment Systems, Book 2: Security and Key Management. Последний содержит описание криптографических алгоритмов и процедур, применяемых в стандарте EMV.

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

В названии бюллетеня сокращения XDA и ODE означают, соответственно, Extended Data Authentication (расширенную аутентификацию данных) и Offline Data Encipherment (офлайновое шифрование данных). Предполагается, что читатель знаком со специальной общепринятой в криптографии и платежных технологиях терминологией, поэтому автор не останавливается в статье на разъяснении ряда известных специалистам понятий.

Определенной сенсацией бюллетеня [EMV Specification Bulletin №243 «Introduction of XDA/ODE for EMV Specifications»] стал факт того, что вместо ожидаемого (по крайней мере автором статьи) и уже достаточно широко распространенного в индустрии алгоритма асимметричного шифрования ECDSA в новом стандарте используется алгоритм EC-SDSA (Elliptic Curve Shnorr Digital Signature Algorithm), ранее не применявшийся в платежных технологиях.

Несмотря на то, что представленные в бюллетене изменения вступят в действие в январе 2023 года, это, конечно же, не означает, что сразу после этой даты платежная индустрия начнет их использовать. Предстоит немалая работа по изменению спецификаций платежных приложений внутри платежных систем, реализации обновленных приложений производителями смарт-карт и OEM Pay, адаптации POS-терминалов к одновременной поддержке двух разных механизмов аутентификации платежного приложения и шифрования данных, циркулирующих между терминалом и картой (до полного выхода из употребления приложений на основе RSA на стороне терминалов потребуется поддержка «старых» и «новых» приложений).

Новые требования к криптостойкости. От 3DES к AES

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

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

01.jpg
Фото: golos.id

Надежность криптографических алгоритмов (их криптостойкость) зависит от размера используемых в них ключей. Напомню читателям некоторые оценки криптостойкости симметричных алгоритмов шифрования и хэш-функций. Чтобы «взломать» (узнать ключ) проверенный алгоритм симметричного шифрования (например, AES) с длиной ключа n бит по известному открытому тексту и соответствующему ему шифротексту, требуется выполнить порядка O(2n) шифрований (ровно такого же объема перебора ключей требует для компрометации идеальный шифр Клода Шеннона с длиной ключа n бит). Для поиска коллизии n-битовой хэш-функции требуется выполнить O(2n/2) операций хэширования, а для нахождения прообраза n-битовой хэш-функции — O(2n) операций хэширования. В соответствии с рекомендациями NIST [NIST SP 800-57, Part 1, Rev5, Tables 2&4; NIST SP 800-131A, Rev2] минимальная длина симметричного ключа общепринятого сегодня протокола AES должна составлять n = 128 бит как минимум, до 2030 года.

Каждый год производительность компьютеров и количество вычислительных средств в мире растут (в начале этого века — примерно в 1000 раз за 10 лет, сейчас темпы роста несколько замедлились). Это приводит к тому, что шансы стороны, стремящейся к раскрытию зашифрованной информации, также возрастают. Чтобы удерживать эти шансы на приемлемом уровне, приходится увеличивать размер ключа, а иногда даже менять алгоритм шифрования. Последнее обстоятельство связано с тем, что увеличение длины ключа, как правило, приводит к уменьшению скорости работы алгоритма, а иногда и к ухудшению других операционных показателей его функционирования (например, к увеличению времени генерации ключей).

Вследствие повышения требований к криптостойкости до сих пор широко используемый алгоритм шифрования 3DES (TDEA) с тремя ключами (общая длина ключа 168 бит) с 2023 года начнет выводиться из обращения с тем, чтобы окончательно перестать применяться после 2030 года.

Отметим, что благодаря известной атаке meet-in the-middle эффективная длина ключа алгоритма 3DES с тремя ключами составляет не 168 бит, как можно было бы ожидать, а только 112 бит.

Поэтому на смену 3DES приходит алгоритм AES с длинами ключа 128, 192 и 256 бит. При этом в соответствии с прогнозами PCI SSC даже при использовании длины ключа 128 бит алгоритм AES будет эффективен для использования в платежах как минимум до 2030 года.

Вопрос использования алгоритма Гровера на квантовых компьютерах для вскрытия ключа AES оставляем за рамками этой статьи. Заметим только, что алгоритм AES с длиной ключа 256 бит при попытке его взлома на квантовом компьютере имеет ту же криптостойкость, что и алгоритм AES с длиной ключа 128 бит при попытке компрометации его ключа на классическом компьютере.

02.jpg
Фото: pinimg.com

Среди других преимуществ AES необходимо отметить более высокую в сравнении с 3DES скорость работы алгоритма. Как показывает исследование, при шифровании потока данных в зависимости от модели процессора скорость шифрования c помощью AES в 1,5–2 раза выше скорости шифрования потоковых данных на 3DES.

Чтобы закончить с темой симметричных алгоритмов шифрования, отметим, что общий тренд, связанный с их применением, также учитывает отказ от режима блочных кодов ECB (Electronic Codebook) и переход на режим CBC (Cipher Block Chaining), а также добавление к шифруемым данным случайного числа (salt) при диверсификации шифруемых данных небольшого размера. Кроме того, показана миграция на симметричные алгоритмы шифрования с размером блока 128 битов. Это ускоряет шифрование данных и вычисление функции MAC (Message Authentication Code).

Сложнее обстоит дело с асимметричными алгоритмами шифрования. Сегодня наиболее популярные алгоритмы асимметричного шифрования — это RSA и алгоритмы на эллиптических кривых (ECDSA, EdDSA, ECDH, ГОСТ Р 34.10–2012 и другие). В основе безопасности алгоритма RSA лежит задача факторизации — разложения числа на простые множители. На сегодняшний день наиболее эффективным алгоритмом факторизации числа N является NFS-алгоритм, требующий

form-01.jpg

битовых операций, где o(1) функция, стремящаяся к 0 с ростом N,

form-02.jpg

обозначение для натурального логарифма.

В основе безопасности алгоритмов на эллиптических кривых лежит задача логарифмирования на множестве точек эллиптической кривой, заданной над конечным полем GF(p) простого порядка p. С помощью ρ-метода Полларда для решения задачи логарифмирования требуется

form-03.jpg

операций на кривой, где q — порядок группы точек эллиптической кривой.

Что касается алгоритма RSA с модулем открытого ключа размером 2048 бит, то он начнет выводиться из обращения начиная с 2023 года и будет запрещен к использованию после 2030-го [NIST SP 800-57, Part 1, Rev5, Tables 2&4; NIST SP 800-131A, Rev2]. Рекомендуемый размер модуля ключа RSA составляет 3072 бит, что соответствует энтропии 128 бит, принятой сегодня в качестве стандарта в финансовой индустрии.

Возвращаясь к вопросу изменений в EMV, заметим, что максимальный размер модуля открытого ключа в этом стандарте составляет всего 1984 бит. Конечно, когда мы говорим об ограничениях на размер ключа, то всегда понимаем, для каких конкретных целей ключ используется. Например, в том же стандарте EMV алгоритм RSA применяется для офлайновой аутентификации карты и безопасной передачи ПИН-блока с терминала на карту при использовании метода верификации пользователя PIN Offline. Для первого применения ограничение на размер ключа в 1984 бита является приемлемым, поскольку банк всегда может уменьшить лимит на сумму офлайновых операций до размера, допустимого с точки его процедур управления рисками. Например, банк может уменьшить этот лимит до нуля, вовсе отказавшись от офлайновых операций.

Что касается шифрования ПИН-блока, то на терминале, находящемся под контролем мошенников, к сожалению, хватает средств для перехвата ПИН-блока без необходимости его расшифрования при передаче на карту. Ну и, безусловно, важно то, что ПИН без чиповой карты для мошенника практически бесполезен! Это важное отличие чиповой карты от достаточно просто клонируемой карты с магнитной полосой.

Использование алгоритма RSA с «большими» (больше 2048 бит) модулями открытого ключа в финансовых технологиях становится затруднительным по следующим причинам:

  • Значительно увеличивается время на генерацию пары простых чисел (требуются для генерации модуля открытого ключа, а также открытой и закрытой компонент ключа RSA), ведущее себя как O(N4) от длины модуля открытого ключа N [Банковские микропроцессорные карты. М: ЦИПСиР: Альпина Паблишерз 2010. 686 с.]. Это, в свою очередь, по тому же закону увеличивает время на персонализацию карт банка с ростом N;
  • Увеличивается время на подпись, создаваемую картой, и проверку подписи терминалом как O(N3) и O(N2) соответственно с учетом того, что для подписи используется длинный закрытый ключ, а для проверки — короткий открытый ключ (в стандарте EMV короткий открытый ключ принимает два значения: 3 и 216 + 1);
  • Увеличивается объем данных, включающих подпись и сертификаты открытых ключей вместе с сопутствующей им информацией, которые карта должна передать платежному терминалу в ходе выполнения транзакции. Например, в стандарте EMV, чтобы передать терминалу подпись платежного приложения, созданную в рамках процедуры динамической аутентификации приложения, а также сертификаты карты и эмитента карты, могут потребоваться ответы на две команды терминала Read Record, а также на команду Generate AC или Internal Authenticate в случае соответственно комбинированной (CDA) и обычной динамической аутентификации DDA.
03.jpg
Фото: thalesgroup.com

Как показывают исследования, основной выигрыш во времени обработки транзакции при замене RSA на алгоритмы, работающие на эллиптических кривых, достигается именно за счет сокращения числа команд, передаваемых терминалом карте. Это сокращение обусловлено уменьшением размера подписи и сертификатов карты и эмитента при использовании эллиптических кривых. Для грубой оценки можно считать, что размеры сертификата эмитента, сертификата карты и подписи карты при использовании RSA составляют примерно 2 кбита каждый, в то время как при использовании подписи на эллиптической кривой P 256 [EMV Specification Bulletin № 243 «Introduction of XDA/ODE for EMV Specifications»] размер подписи и сертификатов составит 512 бит каждый. В результате размер данных, передаваемых картой в ответ на команды терминала, уменьшается в несколько раз, что позволяет сократить количество команд и время обработки транзакции. Например, в платежной системе «Мир» при обработке бесконтактных платежей и подпись карты, и сертификаты могут передаваться терминалу в ответе на одну команду Perform Transaction! Экономия времени обработки транзакции особенно важна для бесконтактных операций. Исследования показали, что при обработке мобильных платежей переход на эллиптические кривые дает экономию в 110–130 мс.

Преимущества алгоритмов шифрования на эллиптических кривых

Перечисленных выше недостатков алгоритма RSA (большое время на персонализацию карты и подписание/проверку подписи в процессе обработки транзакции) лишены алгоритмы шифрования на эллиптических кривых. Поэтому с самого начала этого века платежные технологи начали обсуждать вопрос замены RSA в финансовых технологиях (и в стандартах EMV, в частности) на один из асимметричных алгоритмов шифрования на эллиптических кривых. В качестве таких алгоритмов в ряде протоколов уже активно применяются алгоритмы ECDH и ECDSA (например, в стандарте 3-D Secure 2.0 для организации защищенного взаимодействия 3ds sdk с сервером аутентификации эмитента ACS, в стандарте TLS и для формирования JWT-токенов в JSON-сообщениях). Алгоритм ECDH представляет собой версию алгоритма Diffie-Hellman для эллиптических кривых. Он главным образом применяется в процедурах вывода сессионных симметричных ключей. Алгоритм ECDSA используется для подписания данных с целью обеспечения аутентификации их источника и целостности.

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

Кратко рассмотрим, как работает алгоритм ECDSA при подписании сообщения m. Будем считать, что задана эллиптическая кривая E (в платежных стандартах рассматривают кривые NIST P 256 и P 521 [EMV Specification Bulletin №243 «Introduction of XDA/ODE for EMV Specifications»]) над конечным полем GF(p) и G — порождающий элемент группы точек эллиптической кривой порядка n. Кривые NIST P 256 и P 521 обладают следующими свойствами:

  • уравнение обеих кривых имеет вид y2 = x3 – 3x + b(mod p)
  • n — простое число, n < p, но в соответствии с теоремой Хассе
    form-04.jpg
  • p ≡ 3(mod4)

Благодаря последнему свойству указанных эллиптических кривых по известной абсциссе x точки кривой E легко вычисляется ордината этой точки (берется наименьшее значение ординаты):

form-05.jpg

В случае кривых NIST P 256 и P 521 a = –3.

В алгоритме ECDSA, чтобы подписать сообщение m используется формула

s = k-1(h(m) + rd)(mod n), [1]

где k∈GF(p) — случайное целое число, равномерно распределенное между 1 и (p–1), r — абсцисса точки kG, h(m) — значение хэш-функции от сообщения m, d — секретный ключ лица, подписывающего сообщение. Тогда пара (r, s) и определяет подпись сообщения m. Мы здесь не вводим дополнительные обозначения для того, чтобы определить различия между числовым и побитовым представлением хэш-функции, предполагая, что читателю каждый раз понятно, какое из этих представлений используется в конкретном случае.

Для проверки подписи сообщения (r, s) поступают следующим образом. По сообщению m вычисляют значение хэш-функции h(m) и проверяют равенство r = {s–1h(m)G + s–1rP}x, [2]

где P = dG — публичный ключ подписанта, {K}x — абсцисса точки K эллиптической кривой. Подпись сообщения верна тогда и только тогда, когда приведенное выше равенство выполняется.

Описанная выше схема ECDSA известна в криптографии как алгоритм Эль-Гамаля на эллиптических кривых. Большой неожиданностью стал отказ EMVCo от использования в процедурах XDA/ODE алгоритма ECDSA. Вместо него был предложен алгоритм Шнорра на эллиптических кривых EC-SDSA. Этот алгоритм работает на тех же кривых, что и ECDSA, но подпись сообщения (r, s) определяется по формуле: s = k + td (mod n), где t = h(r||m), r = {kG}x, d — секретный ключ лица, подписывающего сообщение, k∈GF(p) — случайное целое число, равномерно распределенное между 1 и (p–1). В качестве хэш-функции h(x) по-прежнему используются хорошо известные функции SHA 256, SHA 512, SHA 3 256, SHA 3 512, SM3.

Проверка подписи выполняется следующим образом. Вычисляется t = h(r||m). Подпись верна тогда и только тогда, когда выполняется равенство: r = {sG – tP}x

Криптостойкость алгоритмов ECDSA и EC-SDSA одинаковая (энтропия обоих алгоритмов составляет 128 бит при длине ключа 256 бит). Тем не менее алгоритм EC-SDSA должен работать чуть быстрее при формировании подписи и ее проверке. Связано это с тем, что в алгоритме EC-SDSA не требуется находить обратные элементы в конечном поле, как в случае ECDSA (смотри [1] и [2]). И хотя для поиска обратного элемента в поле GF(p) требуется порядка O((log2p)3) битовых операций при больших значениях p (p∼2256 ÷ 2251), время на обращение элемента поля может оказаться заметной составляющей времени генерации/проверки подписи. С учетом этого времени алгоритм EC-SDSA теоретически чуть быстрее алгоритма ECSDA.

04.jpg
Фото: squarespace.com

В бюллетене EMV Specification Bulletin № 243 также описана процедура вывода симметричных ключей для шифрования данных, передаваемых с терминала на карту (например, ПИН-блока и/или биометрических данных) и с карты на терминал. Очень схематично процедура выглядит следующим образом.

Терминалу известен публичный ключ карты P. Терминал генерирует эфемерную пару ключей: секретный ключ ν∈GF(p) и публичный ключ V = νG. Публичный ключ V отправляется карте. В результате карте и терминалу известен общий секрет. Карта вычисляет его как dV = dνG, а терминал — как νP = νdG. Другими словами, в данном случае используется идея формирования общего секрета, лежащая в основе алгоритма Diffie-Hellman.

Далее обе стороны используют абсциссу {νdG}x общего секрета, которую они разбивают на блоки длиной 128 бит каждый (размер блока в алгоритме симметричного шифрования AES). Эти блоки с помощью рекуррентной процедуры с применением алгоритма AES с ключом, представляющим собой строчку из 128 нулевых битов, сворачиваются в 128 битный промежуточный ключ, который используется в качестве ключа AES для генерации 4 сессионных ключей, перечисленных ниже, длиной 128 бит каждый. В качестве аргумента для алгоритма AES при выводе ключей берется конкатенация номера ключа и случайного числа, сгенерированного картой и предварительно переданного картой терминалу. В результате вычисляются следующие ключи:

  • ключ для шифрования данных, передаваемых с терминала на карту;
  • ключ для обеспечения целостности данных, передаваемых с терминала на карту;
  • ключ для шифрования данных, передаваемых с карты на терминал;
  • ключ для обеспечения целостности данных, передаваемых с карты на терминал.

В стандарте для шифрования и обеспечения целостности данных, циркулирующих между терминалом и картой, применяется метод Encrypt-then- MAC (Mechanism 5, ISO/IEC 19772). При этом может быть обеспечена целостность не только шифруемых данных, но и дополнительных данных (Additional Authenticated Data), циркулирующих между терминалом и картой.

На пороге квантовой компьютеризации

В завершение отметим, что алгоритм EC-SDSA базируется на сложности решения задачи дискретного логарифмирования на множестве точек эллиптической кривой с помощью классических компьютеров. При появлении квантовых компьютеров с достаточной памятью ситуация с криптостойкостью этого алгоритма кардинально поменяется. Для решения задачи логарифмирования на множестве точек эллиптической кривой с помощью алгоритма Шора  потребуется выполнение O((log2q)2) операций при наличии в квантовом компьютере O(log2q) кубитов. В работе Шора [EMV Specification Bulletin № 243 «Introduction of XDA/ODE for EMV Specifications»] показано, что для логарифмирования на множестве точек эллиптической кривой существует алгоритм, требующий поддержки form-06.jpg кубитов. Отсюда для наиболее актуальных значений q получаем f(256) ≈ 1500 кубитов, f(512) ≈ 2800 кубитов.

Квантовые системы подвержены многочисленным внешним воздействиям (в первую очередь электромагнитным), которые приводят к появлению ошибок вычислений. Теоретически такие ошибки, если их не очень много, можно исправлять, используя дополнительные кубиты, предназначенные для исправления ошибок с помощью специальных помехоустойчивых квантовых кодов. На практике получается, что для обеспечения надежных квантовых вычислений количество таких дополнительных кубитов, исправляющих ошибки, сравнимо с количеством полезных кубитов, применяемых для квантовых вычислений. Одним словом, угроза современной криптографии появится после того, как появятся квантовые компьютеры, поддерживающие несколько тысяч кубитов. Сегодняшний мировой рекорд, установленный компанией Google, составляет 72 кубита.

Никто не знает точного времени появления квантовых компьютеров, представляющих угрозу современной криптографии. Это может случиться в 20-е годы нашего столетия (существуют подобные прогнозы от уважаемых экспертов рынка), а могут потребоваться и десятилетия, прежде чем обсуждаемое событие произойдет. Сейчас дать достоверную оценку никто не может. История показывает, что на начальном этапе развития новой технологии часто возникают прорывные идеи, значительно сокращающие сроки ее внедрения.

05.jpg
Фото кожуха квантового компьютера: IBM research / Graham Carlow / flickr

О постквантовой криптографии автор готов рассказать в одном из следующих номеров журнала «ПЛАС».

Рубрика:
{}Безопасность

PLUSworld в соцсетях:
telegram
vk
dzen
youtube