Примерно с 2018 года некоторые банки начали запрашивать код из смс. Обычно это требовалось для подтверждения личности клиента банка при обращении в колл-центр. В 2025 году я задался вопросом – а какие банки так делают до сих пор? Прежде чем поделиться результатами своих исследований, давайте попробуем понять откуда взялись эти коды из смс.
Немного теории
Код из смс это есть ни что иное как одноразовый пароль (он же one-time password или otp). Подразумевается, что он выдается один раз и используется тоже один раз. Я уже не первый год участвую в разработке opensource фрэймворка spring security – платформы для построения систем авторизации и аутентификации. В процессе работы над задачами часто приходится общаться с участниками сообщества, в том числе с опытными специалистами по веб-безопасности мирового уровня, такими как Роб Уинч и Джо Гранджа. Обсуждения на тему безопасности одноразовых паролей уже являются моветоном, так как в целом все сходятся во мнении, что их безопасность оставляет желать лучшего.
Но гораздо более важен другой аспект – даже если коды из смс технически безопасны и их невозможно перехватить, взломать либо каким то образом скомпрометировать, сам факт того, что кто-то их просит у пользователя это уже нехороший признак. Пользователь настраивается на определенный паттерн в своем поведении и начинает считать, что это нормально. Как только сотрудники контактных центров крупных банков начали запрашивать коды из смс при общее с клиентами, это тут же стало модным трендом. При этом руки мошенников развязались, и они быстро начали эксплуатировать этот момент.
Лично меня, как разработчика, больше интересует другой вопрос – как так получается, что код из смс превращается в «открывашку» для банковских продуктов клиента? Ведь в большинстве случаев мошенники просят назвать только код, никто не просит назвать пароль, либо какую-нибудь другую конфиденциальную информацию. Достаточно четырех либо шести цифр, и с их помощью мошенники получают все что им нужно.
Одноразовые пароли в основном используются для многофакторной аутентификации – когда помимо пароля (либо чего-то еще) используется еще один дополнительный способ аутентификации. Помимо второго фактора, коды из смс могут использоваться для так называемой strong customer authentication – это когда платежную операцию нужно дополнительно как-то подтвердить. Начиная с 2019 все европейские банки обязали подтверждать все финансовые операции с помощью дополнительного фактора. Директива получила название PSD2. Нам всем это знакомо – в большей части банковских приложений при определенных условиях с нас могут потребовать ввести код из смс или push-уведомления. Как так получилось, что появился еще и третий случай использования otp – это подтверждение личности клиента при обращении в службу поддержки – для меня загадка. Возможно это произошло из-за незнания Ouath 2.0/OpenID Connect – там есть отдельный процесс, который называется Client-Initiated Backchannel Authentication Flow. И это явно более надежно и безопасно, чем попытка изобрести свои методы безопасности.
Эксперимент
Я выбрал пять банков:
Сбер
Т-Банк
Ozon Банк
ВТБ
Райффайзенбанк
При общении со службой поддержки клиентов этих банков у меня были разные легенды: проблемы со входом в приложение, не отображается список счетов, приходят странные уведомления и т.д. При этом я не могу гарантировать, что нет случаев, которые могут дать другой результат. Некоторые из участников нашего эксперимента утверждают, что сотрудники банка никогда не просят код из смс – например ВТБ утверждает, что работники банка «Не требуют коды из СМС для отмены якобы совершенных «мошеннических операций», нечто подобное утверждает и Сбер. А вот Т-Банк предупреждает, что «иногда их может запросить сотрудник банка, но только если клиент позвонил в банк сам», что изначально добавило некоторую предвзятость с моей стороны.
Честно говоря, я ожидал худшего, но оказалось, что Сбер, Т-Банк, Ozon Банк и ВТБ больше так не делают – сотрудники службы поддержки клиентов этих банков не стали просить у меня никаких кодов из смс. Опять-таки, возможно мои легенды были «слабыми» и в каких-то случаях такое действительно возможно. Было бы хорошо узнать про такие случаи. Отличился только Райффайзенбанк – сначала сотрудник колл-центра попросил меня назвать кодовое слово, которое, разумеется, я не помню. После чего последовала просьба назвать код из push-уведомления. Да, в 2025 году есть как минимум один банк, который упорно продолжает просить коды из смс у своих клиентов.
Выводы
Несмотря на то, что ситуация значительно улучшилась, системы безопасности многих банков вызывают много вопросов. Часто они построены не на базе IT-стандартов безопасности. Я не берусь утверждать, что такие системы априори небезопасны, тут ситуация иная – нет никаких гарантий, что они безопасно, в то время как стандарты RFC, которые разрабатывают крупные IT-гиганты, имеют гораздо более высокий уровень безопасности и надежности.
Комментарии (19)
takezi
17.01.2025 16:43Часто они построены не на базе IT-стандартов безопасности.
Требования к ИБ регламентирует Центробанк и он же контролирует их выполнение банками.
franticticktick Автор
17.01.2025 16:43Вы правы. Я как человек много лет проработавший в двух крупных банках знаю это не понаслышке. ЦБ знает про Oauth 2.0 и OpenID Connect. В свое время я задал вопрос сотруднику ЦБ, который проводил у нас аудит, если ЦБ настаивает на использовании Ouath 2.0, почему большинство банков игнорируют это требованию. И он ответил, что невозможно сделать это требование жестким, т.к. за давностью лет многие банки технически не могут перейти на Ouath 2.0.
PereslavlFoto
17.01.2025 16:43за давностью лет многие банки технически не могут перейти на Ouath 2.0
То есть это слишком уж дорого для банков? При таком требовании банки обнищают?
franticticktick Автор
17.01.2025 16:43По своему опыту скажу вам так - задача перевода банка легаси авторизации на полноценный Oauth 2.0 - это если не героическая задача, то как минимум очень трудная. Нужно идеально знать все технологии безопасности - keycloak, spring authorization server, spring security и т.д. При это обязательно нужна обратная совместимость с легаси авторизацией, чтобы разрабы в панике не правили баги на коленке. Представьте, что будет если 50 млн пользователей разом разлогинит - банк, наверное, не обнищает, но получит самый масштабный коллапс в своей истории.
olegdymov
17.01.2025 16:43В Точка-банке коллега как-то специально спрашивал о возможности подтверждения транзакций НЕ через СМС. Ответили, что такой возможности нет и что переживать из-за этого не надо. И это Точка, один из лучших банков...
franticticktick Автор
17.01.2025 16:43Подтверждение операции по смс не так кошмарно, как просить код из смс при общении с клиентом. Это навязывает клиенту плохой шаблон поведения. Неудивительно, что после того, как банки стали так делать количество атак мошенников увеличилось в разы.
ajijiadduh
17.01.2025 16:43как банки стали так делать количество атак мошенников увеличилось в разы
если у вас есть подобная аналитика, возможно её стоило приложить к статье
franticticktick Автор
17.01.2025 16:43В общем то она известна, есть на сайте ЦБ, я могу собрать ее и приложить к статье - потери банков в 2018 году 1млрд, начиная с 2019 и далее (как раз когда начали просить код из смс) - 9.7 млрд, 13.5 и т.д. Есть данные от лаборатории касперского - там это связывают с подделками номеров (сейчас уже не очень актуально, т.к. во всех банках есть проверка imsi) и запросом кода из смс. Чуть позже найду и приложу.
AlexeyK77
17.01.2025 16:43Обслуживание клиентов рассчитываются на все случаи жизни и категории клиентов. Плюс возможны разные ситуации, когда у клиента нет устройства в руках, оно потеряно или еще чего хуже. Рассчитывать, что у всех на руках девайст для биометрии несколько оптимистично.
Но я соглсен с тем, что спрашивать голосом код - плохая практика, т.к. это облегчает работу мошенников, которым теперь легче мимикрировать под "службу безопасности банка".
Тем не менее я так-же согласен с замечанием выше, что статья пустовата. Было бы лучше, если бы в ней ыли проанализированы существующие схемы аутентификации и предложили в статье свои реальные схемы аутентификации при звоках в колцентр, нежели просто отсылатать на стандарт в интернете без какоу-то конкретики. Статья из-за жтого выглядит пустой и незавершенной.
franticticktick Автор
17.01.2025 16:43Спасибо за фидбэк. Я упоминал в статье про Client-Initiated Backchannel Authentication Flow или CIBA. Это расширение Ouath 2.0 специально для таких случаев. Он довольно сложен в описании, и я решил вынести это за скобки. В keycloak он есть, но проблема в том, что во многих банках используются свои самописные серверы авторизации и такого флоу там просто нет. Да и мало кто про него знает.
SazereS
17.01.2025 16:43Вы бы лучше не упоминали, а популярным языком рассказали как оно работает и чем так замечательно. Тогда в статье был бы смысл
franticticktick Автор
17.01.2025 16:43Спасибо за фидбэк, хорошее замечание. Доступно рассказать про Client-Initiated Backchannel Authentication Flow трудно, но я подумаю как это можно сделать.
anar66
Мне кажется пора банить за такие статьи. Кошмар какой-то
franticticktick Автор
Хорошо, какова будет причина бана? Статья посвящена конкретной проблеме и довольно серьезной, можете аргументировать?
ajijiadduh
бесполезная вода
вот мой телеграм подпишись скорее
franticticktick Автор
Ок, я уберу свой тг канал. Цель статьи не в этом - цель показать проблему из-за которой случаются массовые случаи фрода до сих пор в 2025 году. К тому же есть ссылки на oauth 2.0 ciba, чтобы понимать как это должно быть на самом деле.
xSVPx
Проблема вовсе не в том, что кто-то просит коды.
Проблема в том, что коды из второго фактора превратились в единственный.
С этим надо бороться, а не с многочисленными последствиями.
И желательно.... Законодательно.
franticticktick Автор
На самом деле тут не все так плохо - кое где есть биометрия как второй фактор (webauthn). У сбера точно есть, у втб кажется тоже.
xSVPx
Это "пока".
Вначале вторым фактором были смс, потом они стали единственным.
Теперь вторым фактором стала биометрия ? Как быстро она станет единственным ? Насколько она вообще надёжна ? Хороший визажист загримирует вас так, что родная мать не отличит от жертвы...
И потом, как биометрия вообще может быть вторым фактором? Этож должен быть фактор который подтверждает не владение чем-то, а знание чего-то...