Примерно с 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)


  1. anar66
    17.01.2025 16:43

    Мне кажется пора банить за такие статьи. Кошмар какой-то


    1. franticticktick Автор
      17.01.2025 16:43

      Хорошо, какова будет причина бана? Статья посвящена конкретной проблеме и довольно серьезной, можете аргументировать?


      1. ajijiadduh
        17.01.2025 16:43

        бесполезная вода

        вот мой телеграм подпишись скорее


        1. franticticktick Автор
          17.01.2025 16:43

          Ок, я уберу свой тг канал. Цель статьи не в этом - цель показать проблему из-за которой случаются массовые случаи фрода до сих пор в 2025 году. К тому же есть ссылки на oauth 2.0 ciba, чтобы понимать как это должно быть на самом деле.


          1. xSVPx
            17.01.2025 16:43

            Проблема вовсе не в том, что кто-то просит коды.

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

            С этим надо бороться, а не с многочисленными последствиями.

            И желательно.... Законодательно.


            1. franticticktick Автор
              17.01.2025 16:43

              На самом деле тут не все так плохо - кое где есть биометрия как второй фактор (webauthn). У сбера точно есть, у втб кажется тоже.


              1. xSVPx
                17.01.2025 16:43

                Это "пока".

                Вначале вторым фактором были смс, потом они стали единственным.

                Теперь вторым фактором стала биометрия ? Как быстро она станет единственным ? Насколько она вообще надёжна ? Хороший визажист загримирует вас так, что родная мать не отличит от жертвы...

                И потом, как биометрия вообще может быть вторым фактором? Этож должен быть фактор который подтверждает не владение чем-то, а знание чего-то...


  1. takezi
    17.01.2025 16:43

    Часто они построены не на базе IT-стандартов безопасности.

    Требования к ИБ регламентирует Центробанк и он же контролирует их выполнение банками.


    1. franticticktick Автор
      17.01.2025 16:43

      Вы правы. Я как человек много лет проработавший в двух крупных банках знаю это не понаслышке. ЦБ знает про Oauth 2.0 и OpenID Connect. В свое время я задал вопрос сотруднику ЦБ, который проводил у нас аудит, если ЦБ настаивает на использовании Ouath 2.0, почему большинство банков игнорируют это требованию. И он ответил, что невозможно сделать это требование жестким, т.к. за давностью лет многие банки технически не могут перейти на Ouath 2.0.


      1. PereslavlFoto
        17.01.2025 16:43

        за давностью лет многие банки технически не могут перейти на Ouath 2.0

        То есть это слишком уж дорого для банков? При таком требовании банки обнищают?


        1. franticticktick Автор
          17.01.2025 16:43

          По своему опыту скажу вам так - задача перевода банка легаси авторизации на полноценный Oauth 2.0 - это если не героическая задача, то как минимум очень трудная. Нужно идеально знать все технологии безопасности - keycloak, spring authorization server, spring security и т.д. При это обязательно нужна обратная совместимость с легаси авторизацией, чтобы разрабы в панике не правили баги на коленке. Представьте, что будет если 50 млн пользователей разом разлогинит - банк, наверное, не обнищает, но получит самый масштабный коллапс в своей истории.


  1. olegdymov
    17.01.2025 16:43

    В Точка-банке коллега как-то специально спрашивал о возможности подтверждения транзакций НЕ через СМС. Ответили, что такой возможности нет и что переживать из-за этого не надо. И это Точка, один из лучших банков...


    1. franticticktick Автор
      17.01.2025 16:43

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


      1. ajijiadduh
        17.01.2025 16:43

        как банки стали так делать количество атак мошенников увеличилось в разы

        если у вас есть подобная аналитика, возможно её стоило приложить к статье


        1. franticticktick Автор
          17.01.2025 16:43

          В общем то она известна, есть на сайте ЦБ, я могу собрать ее и приложить к статье - потери банков в 2018 году 1млрд, начиная с 2019 и далее (как раз когда начали просить код из смс) - 9.7 млрд, 13.5 и т.д. Есть данные от лаборатории касперского - там это связывают с подделками номеров (сейчас уже не очень актуально, т.к. во всех банках есть проверка imsi) и запросом кода из смс. Чуть позже найду и приложу.


  1. AlexeyK77
    17.01.2025 16:43

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

    Но я соглсен с тем, что спрашивать голосом код - плохая практика, т.к. это облегчает работу мошенников, которым теперь легче мимикрировать под "службу безопасности банка".

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


    1. franticticktick Автор
      17.01.2025 16:43

      Спасибо за фидбэк. Я упоминал в статье про Client-Initiated Backchannel Authentication Flow или CIBA. Это расширение Ouath 2.0 специально для таких случаев. Он довольно сложен в описании, и я решил вынести это за скобки. В keycloak он есть, но проблема в том, что во многих банках используются свои самописные серверы авторизации и такого флоу там просто нет. Да и мало кто про него знает.


      1. SazereS
        17.01.2025 16:43

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


        1. franticticktick Автор
          17.01.2025 16:43

          Спасибо за фидбэк, хорошее замечание. Доступно рассказать про Client-Initiated Backchannel Authentication Flow трудно, но я подумаю как это можно сделать.