Продукт

Подтверждение номера телефона при регистрации, входе и операциях

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

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

Технически во всех трёх случаях используется один и тот же механизм — например, подтверждение номера звонком. Различаются момент, в который он вызывается, и то, что вы делаете с результатом.

Сценарий 1 — регистрация

Задача: отсечь автоматические и фейковые регистрации и получить рабочий контакт.

Что важно: скорость и конверсия. Каждый лишний шаг здесь стоит живых пользователей, а угроза, от которой мы защищаемся, — массовая, а не адресная. Никто не подбирает конкретный аккаунт, которого ещё не существует.

Требования: к удобству — высокие, к стойкости — умеренные. Достаточно доказательства, что за формой человек с работающим телефоном.

Что подходит: звонок закрывает сценарий лучше всего — два действия вместо пяти, ничего не нужно вводить и ждать. Разбор формы и влияния на воронку — в материале про регистрацию по звонку.

Сценарий 2 — вход

Задача: пустить владельца аккаунта и не пустить постороннего.

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

Требования: баланс. Разумная практика — не требовать подтверждения на каждый вход, а запрашивать его при входе с незнакомого устройства, после долгого перерыва или при смене географии.

Что подходит: звонок и как самостоятельный способ входа, и как второй фактор поверх пароля. Как это устроено — в статье про авторизацию по звонку.

Сценарий 3 — подтверждение операции

Задача: доказать, что конкретное действие совершает владелец аккаунта прямо сейчас.

Что важно: здесь подтверждается не личность, а намерение. Ситуация принципиально отличается от входа: злоумышленник уже может находиться внутри сессии — через украденный токен, чужое незаблокированное устройство или социальную инженерию.

Требования: к стойкости — высокие. Плюс два, о которых часто забывают:

  • Привязка подтверждения к операции. Пользователь должен видеть, что именно подтверждает: сумму, получателя, новые реквизиты. Абстрактное «подтвердите действие» позволяет подсунуть одно вместо другого.
  • Уведомление по другому каналу. О смене пароля или реквизитов нужно сообщить на почту, даже если операция подтверждена телефоном.

Что подходит: для бытовых операций — звонок. Для операций с большой ценой ошибки телефон единственным фактором быть не должен.

Звонок как второй фактор

Соберём честную картину, где звонок стоит среди других вторых факторов.

ФакторЧто подтверждаетСтойкостьДоля пользователей, которые дойдут
SMS-кодвладение номеромуязвим к подмене SIM и недоставкевысокая
Звонок на выделенный номервладение номеромуязвим к подмене SIM, не зависит от доставкивысокая
Push в приложениедоступ к устройству с приложениемвышесредняя
Приложение-генератор кодовдоступ к секрету на устройствевысокаянизкая
Аппаратный ключвладение физическим устройствомсамая высокаяочень низкая

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

Заявлять, что звонок защищает от подмены SIM-карты лучше, чем SMS, было бы неправдой: обе схемы подтверждают доступ к номеру, и при перевыпуске SIM злоумышленник получает и то и другое.

Какой способ для какого сценария

РегистрацияВходОперация
Цена лишнего шагаочень высокаявысокаянизкая
Цена ошибки защитынизкаясредняявысокая
SMS-кодподходит, но теряет часть пользователейподходитподходит для бытовых операций
Звонокоптималеноптималенподходит для бытовых операций
Приложение-генераторизбыточенподходит как второй факторподходит
Аппаратный ключизбыточенизбыточен для большинстваподходит для критичных операций

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

Что предусмотреть заранее

  • Смену номера. Процедура должна существовать до того, как понадобится: подтверждение старого номера или другого канала перед привязкой нового.
  • Резервный канал. Почта или резервные коды на случай потери доступа к телефону.
  • Ограничение попыток. И на число проверок с одного адреса, и на число привязок одного номера к разным аккаунтам — иначе подтверждение перестаёт отсекать мультиаккаунты.
  • Журнал событий. Кто и когда подтверждал номер — это то, что понадобится при разборе спорной ситуации.

Как именно телефонная проверка помогает против фейковых регистраций и где её пределы — в материале про проверку принадлежности номера.

Частые вопросы

Нужно ли подтверждать номер при каждом входе?

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

Звонок надёжнее SMS как второй фактор?

Не надёжнее по стойкости — оба подтверждают владение номером и одинаково уязвимы к подмене SIM-карты. Звонок выигрывает в другом: он не зависит от доставки сообщения, поэтому доходит там, где SMS теряется.

Можно ли использовать телефон единственным фактором при выводе средств?

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

Что делать, если пользователь сменил номер?

Заранее предусмотреть процедуру смены: подтверждение старого номера или другого привязанного канала перед привязкой нового. Если этого нет, при потере доступа к телефону пользователь остаётся без аккаунта.