Одна из тем прошедшего в мае 2014 года симпозиума ассоциации IEEE (Symposium on Security and Privacy) по вопросам безопасности и защиты персональных данных в Сан-Хосе (Калифорния, США) была посвящена проблеме формирования Unpredictable Number (UN) на терминалах, поддерживающих стандарт EMV.
Проблема неуникального значения UN ранее уже освящалась в бюллетенях MasterCard — Global Operations Bulletin No. 5, 1 May 2012 и EMVCo — Specification Bulletin No. 103, First Edition April 2012. В ходе тестов, проведёнными различными группами такими, как NIST Special Pubolcation 800-22 или группой исследователей из Кембриджского университета, выяснилось, что значение UN, генерируемое терминалами, не всегда является уникальным. В бюллетене EMV Bulletin Specification Update 50 (2006) подчеркивается:
“Ideally the Unpredictable Number generated by a terminal should be truly unpredictable even given access to all previous such numbers generated by the terminal and it should be infeasible for an attacker to control the next Unpredictable Number that the terminal generates.” В спецификации EMV v4.3 Book 4 указывается:
“The Unpredictable Number could be generated by a dedicated hardware random number generator or could, for example, be a function of previous Application Cryptograms, the terminal Transaction Sequence Counter and other variable data (for example, date/time). In the second example the function could be a hash function or more preferably a keyed encipherment function.”
Нарушение уникальности UN противоречит стандарту EMV, но насколько велики риски? UN используется терминалом для проверки подлинности карты. Если даже предположить, что злоумышленник использует копию чиповой карты, то для того, чтобы воспользоваться “открывшимися” возможностями необходимо следующее:
-
-
- 1) знать алгоритм формирования UN на конкретном устройстве;
-
Согласно требованиям EMV:
-
-
-
- a) Терминал для вычисления UN должен использовать некое уникальное внутреннее значение P, которое должно приводить, в свою очередь, к уникальности вычисляемого UN. При этом строго необходимо, чтобы по UN невозможно было вычислить входящие параметры для его вычисления.
-
- b) Некое уникальное внутреннее значение P для вычисления UN никогда не может быть открытым. Для вычисления UN наряду со значением P рекомендуется использовать Application Cryptogram, Issuer Authentication Data, Authorization Code, дату/время и по возможности внутренний генератор случайных чисел.
-
- c) Изначально значение P на новом терминале должно быть уникальным и лучше, если для этого будет использоваться генератор случайных чисел.
-
- d) Перезапуск терминала не должен приводить к восстановлению изначального значения P, каким оно было у нового терминала, а должен приводить к восстановлению значения P до перезапуска терминала.
-
-
Этим требованиям программное обеспечение терминалов должно соответствовать.
-
-
- 2) быть в курсе криптографического алгоритма по вычислению Application Cryptogram;
-
Данный алгоритм является открытым. Криптостойкость алгоритма основывается на длине ключа и предположении, что для подбора ключа потребуется очень значительное время.
-
- 3) пройти проверку Application Cryptogram на стороне эмитента.
Если с двумя первыми пунктами злоумышленник может не испытывать проблем, то успешная проверка на стороне эмитента фактически будет означать компрометацию эмитентских ключей. Считается, что стандарт EMV гарантирует безопасность ключей карты и исключает несанкционированный доступ к ним.
Стандарт EMV рекомендует использовать для вычисления UN внутренний генератор случайных чисел, например, основанный на внутренних значениях даты/времени, и недоступный для доступа извне.
Какие же могут быть решения для выявленной проблемы? Их следует разделить на рекомендации для эквайеров и эмитентов.
Эквайерам следует убедиться, что их терминалы используют программное обеспечение, не имеющее описанной проблемы по генерации неуникального значения UN. Для этого поставщики терминального программного обеспечения должны гарантировать, что они следуют рекомендациям National of Standards and Technology SP800-90A (Recommendations for Random Number Generation Using Deterministic Random Bit Generators) и ISO/IEC 18031 (Random bit generation).
Для эмитента основную опасность представляют оффлайновые операции, проведённые на терминалах, когда проверка эмитентской криптограммы происходит не сразу же в онлайне, а через какое-то время. В этих случаях, если криптограмма является не AAC, есть риск получения эмитентом одобренной в оффлайне операции. Для защиты от мошеннических операций эмитентам следует проверять значения TC, полученные в клиринговых файлах. Тем самым защита эмитента будет строиться на предположении, что злоумыщленник, не располагая правильными эмитентскими ключами и имея в своём распоряжении лишь алгоритм генерации UN, не сможет сформировать правильную эмитентскую криптограмму, а это и будет выявлено эмитентом при проверке криптограммы из клирингового файла.
В завершение необходимо отметить, что знание злоумышленниками алгоритма вычисления UN на отдельных терминалах, несомненно, является неприятным открытием для стандарта EMV, но в то же время и некритичным, потому как стандарт EMV предусматривает многоступенчатую защиту от мошеннических операций, для чего он собственно и был разработан. Тем не менее, как эквайерам, так и эмитентам следует обратить на проблему UN пристальное внимание для её исключения, потому что злоумышленникам такая информация может оказаться очень даже интересной с точки зрения ее практического применения.