Примерно с 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-гиганты, имеют гораздо более высокий уровень безопасности и надежности.

Комментарии (41)


  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. franticticktick Автор
                  17.01.2025 16:43

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

                  Так, конечно, face id взломать не получится, но можно изготовить копию лица, такая атака уже известна.

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

                  Может и на данный момент она считается более безопасной, чем коды из смс.


                  1. xSVPx
                    17.01.2025 16:43

                    В смысле "более безопасной чем смс" ? У вас faceid будет вместо смс ? Т.е. всё, что нужно для банковского перевода - это быть загримированном под жертву ? Больше никаких проверок :)?

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

                    И нет, смс это не знание - это владение телефоном. Знание - это к примеру пинкод.

                    Вот в банкомате два фактора, вам нужна карта и нужен пинкод. Ну т.е. так раньше было, сейчас не удивлюсь если и банкоматы опошлили....


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

                      У вас faceid будет вместо смс ? Т.е. всё, что нужно для банковского перевода - это быть загримированном под жертву ? Больше никаких проверок :)?

                      Я когда это читал не мог поверить своим глазам, но все равно спасибо вам за ваше мнение, на этом диалог можно закончить.


                      1. ExTalosDx
                        17.01.2025 16:43

                        faceid элементарно обходится.

                        Тут никакого грима не нужно, нейросеть можно натренить банально.


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

                        Никакая нейросеть faceid взломать не сможет - думаете никто не пробовал? Все девайсы apple при сканировании лица строят так называемую "карту глубины", т.е. грубо говоря анализируют объем изображения с помощью датчиков. А deepfake по своей природе плоское изображение будь он хоть каким реалистичным. Единственный способ взлома faceid - это изготовление 3d копии лица и хакеры это делать умеют, но эта процедура очень трудоемкая.

                        faceid элементарно обходится.

                        Приведите, пожалуйста пруф своих утверждений как можно "элементарно" обойти faceid или, может, как вы сами это делали. Deepfake сейчас создать очень легко, продемонстрируйте.


  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. belaiadasha
      17.01.2025 16:43

      Добрый день. Я из Точки.

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

      Подписание по смс-коду — это основной способ подписания для клиентов многих банков, оно предназначено для дополнительной защиты системы дистанционного обслуживания от несанкционированного доступа к расчетному счёту клиента. Защита осуществляется посредством использования альтернативного канала передачи дополнительного кода подтверждения платежа и считается аналогом других вариантов подписания платежей.

      Существует несколько видов электронной подписи:

      • НЭП – неквалифицированная электронная подпись – генерируется в специальной криптографической программе в момент подписания документа. С помощью НЭП можно подтвердить авторство документа и неизменность его содержания. Если в подписанный НЭП файл внести правки, то подпись станет недействительной;

      • КЭП - квалифицированная электронная подпись – разновидность электронной подписи с высоким уровнем безопасности, для её создания применяется технология криптографической защиты информации. Сертификат подписи записывают на физический носитель, например, на USB-токен.

      Как раз с помощью НЭП подписывают платежи в интернет-банке, подписание происходит при помощи смс, это юридически значимое подписание документов.

      Для подтверждения также может прийти push, если у клиента установлено приложение Точки и подтверждение переводов с карты Точки происходит в стороннем интерфейсе.


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

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


        1. belaiadasha
          17.01.2025 16:43

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


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

            От себя еще добавлю один момент - ваш процесс авторизации это Ouath 2.0 и это замечательно. Но вы используете публичного клиента для вашего фронта, я вижу в запросе client_id, при чем это guid. Очень похоже что у вас keycloak в качестве сервера авторизации. Рекомендую весь флоу авторизации вынести на BFF, например шлюз spring cloud gateway, и сделать его приватным клиентом.


            1. belaiadasha
              17.01.2025 16:43

              Спасибо за уточнение. Передам информацию команде, проверим все детали.


      1. navion
        17.01.2025 16:43

        Вам стоит поправить шаблон на что-то вроде:

        Привет, я бот из Точки и копипасчу ответы по ключевым словам.


  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 трудно, но я подумаю как это можно сделать.


          1. AlexeyK77
            17.01.2025 16:43

            Вся соль в том, что обычному клиенту, у которого что-то случилось и горит тоже долдно быть понятно. А если и специалисту не понятно, то о чем тут говорить.

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

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


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

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


  1. aik
    17.01.2025 16:43

    А какой есть простой и универсальный способ авторизации, кроме смс? Если у человека стоит приложение банка - то да, оператор при обслуживании отправляет туда запрос и вы тыкаете кнопку "да, это я". Но если приложения нет, то только код из смс.


    1. develmax
      17.01.2025 16:43

      Например, в CITI банке в процессе звонка в тональном режиме необходимо ввести свой секретный код.


      1. aik
        17.01.2025 16:43

        А чем секретный код от пароля отличается?


        1. develmax
          17.01.2025 16:43

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


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

      Если приложения нет, то это проблема, т.к. безопасного способа без явных векторов атак не будет.

      Если у человека стоит приложение банка - то да, оператор при обслуживании отправляет туда запрос и вы тыкаете кнопку "да, это я"

      В общем то в этом и есть суть CIBA, но мало у кого такое есть.


  1. ts347
    17.01.2025 16:43

    Когда присылают SMS, там же написано большими буквами «Никому не говорите код». Я думал, у всех так, по заголовку даже не понял, о чем статья.


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

      И тем не менее банки долгие годы спрашивали эти коды. И на сегодняшний день некоторые продолжают спрашивать. И мошенники делают тоже самое.


      1. aik
        17.01.2025 16:43

        Когда коды спрашивали, то там, как правило, писалось что-то на тему "назовите код оператору".


  1. kaseiiro
    17.01.2025 16:43

    До последнего надеялся, что хотя бы часть статьи будет о банках, которые поддерживают аппаратные генераторы одноразовых паролей. Два банка из списка в статье это поддерживали несколько лет назад, но тоже принудительно на СМС перешли. Как говорится, увы.


    1. navion
      17.01.2025 16:43

      При этом внутри банков с ИБ всё хорошо (TOTP, смарт-карты), так как терять свои деньги они не хотят.