Процедуру PIN/TAN банковской аутентификации можно и обойти — оказывается
обмануть Ситибанк даже легче, чем ты думаешь.

Онлайн-банкинг является очень популярным в Европе. По данным Центрального
кредитного комитета в 2011 году было проведено 93,6 миллиона транзакций через
Интернет. Для защиты и аутентификации сделок в Европе принят на равне с СМС
подтверждением, так называемый безопасный PIN/TAN метод.

Вообще шифрование данных и аутентификацию на банковском сервере при
совершении он-лайн сделки обеспечивает Secure Socket Layer (SSL) поверх HTTPS
протокола. PIN-код или пароль используется вместе с номером счета для
аутентификации клиента в банке. Шестизначный TAN (временный ключ) служит
уникальной подписью для каждой транзакции. Каждая сделка требует новый TAN, либо
ключ, полученный по СМС, который может быть использован только один раз. Как
правило, банки пересылают при открытии счета вместе с картой своим клиентам
таблицу TAN-кодов по почте. Клиент при совершении онлайн платежей предоставляет
соответствующий TAN код из таблицы, который может быть использован только один
раз.

Банки неоднократно указывали своим клиентам на то, что PIN-код (логин,
пароль) и TAN-список необходимо держать в безопасности. Не секрет, что возникали
спорные случаи и клиентам банка ни раз уже приходилось доказывать для возврата
похищенной суммы, что это было действительно хищение и сам клиент никому не
передавал свои данные аутентификации и действительно хранил список TAN в
надежном месте. Как правило, доказать это удается с трудом и далеко не каждому
причем в очень редких случаях, несмотря на то, что в настоящее время ходят
настоящие эпидемии фишинг и АРТ атак в Интернете.

Одним из аспектов безопасности PIN/TAN процедуры является то, что трудно
предсказать, какой TAN актуален для конкретной транзакции. Заливщику предстоит
угадать шесть цифр TAN от 000000 до 999999 с теоретической вероятностью 1 из 1
000 000 возможных комбинаций TAN. Хотя некоторые банки используют и более
короткие TAN, что еще больше повышает риск успешных атак на счета клиентов этих
банков.

Когда у меня кончился список TAN, то я взял новый в Ситибанке и вот что
обнаружил. При просмотре TAN списков Ситибанка начиная с 2005 года я заметил,
что все числа начались с одного и того же номера и всегда расположены в порядке
возрастания. Обычно TAN был на 167 — 1348 больше, чем предыдущий, в той же
строке. Среднее значение между TAN было 263. Давайте выведем разницу между двумя
соседними TAN в диаграмме:

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

Стало ясно, что заливщик вполне может предсказать следующий TAN из моего
списка, основываясь на значениях последних TAN, которые были использованы. При
исследовании был обнаружен прирост значения равный 172, который встречался
наиболее часто — 9 раз в моем случае. Для клиентов банка это означает, что
заливщик, используя ранее использованные и недействительные ТАN коды, имеет
хорошие шансы угадать действительный следующий TAN. Для осуществления
задуманного Заливщик может послать клиенту банка фишинг-сообщние по электронной
почте примерно следующего содержания с целью получения нескольких уже
использованных TAN-кодов:

Отправитель: Ваш банк
Получатель: John Doe
Тема: Злоупотребление вашим счетом

Уважаемый г-н Доу,
мы обнаружили случай он-лайн мошенничества в нашем банке. Ваша учетная запись
может быть скомпрометирована. Пожалуйста, сообщите нам последние 10
использованных вами TAN-кодов. Пожалуйста, проследите, что Вы посылаете нам
действительно уже использованные TAN-коды.

С уважением, Ваш банк

Поскольку уже недействительные TAN вроде бы совершенно бесполезны, то нет
никаких причин для клиента банка, чтобы не выполнить такую просьбу. В результате
такой атаки Заливщик получает не только список из 10 последних TAN кодов, но и
номер счета и PIN код клиента банка.

Второй TAN список, полученный мною от Ситибанка, подтвердили результаты
первого исследования.

Судя по всему, Ситибанк существенно не менял алгоритм генерации TAN элементов
за прошедшее время. В этих обстоятельствах, конечно, стоит посоветовать
Ситибанку пересмотреть процедуру генерации TAN списков.

По идее список TAN-кодов должен быть сформирован таким образом, чтобы
значения были равномерно распределены по всему доступному диапазону и были бы
независимыми друг от друга.

В целом же предсказать номер следующего действительного ТАN кода имея на
руках предыдущие использованные коды из таблицы и совершить транзакцию
достаточно легко.

Оставить мнение

Check Also

Tips’n’Tricks из арсенала андроидовода. Самые интересные, полезные и нестандартные трюки с Android

Многие годы мы рассказывали про самые разные способы оптимизировать, модифицировать и твик…