Как реализовать “защиту” авторизации по номеру телефона? — Хабр Q&A

Авторизация по номеру телефона

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

Плюсы: простота авторизации, минимум запрашиваемых у пользователя данных, сразу получаете достоверный номер телефон.Как реализовать "защиту" авторизации по номеру телефона? — Хабр Q&A

Минусы: не подходит для приложений, которые используют миллионы, рассылка SMS требует затрат. По состоянию на 01.04.2021 средняя стоимость SMS 3,5-4 рубля.

Авторизация с применением только номера телефона очень проста, но может быть использована, если количество пользователей приложения не превышает несколько сотен. Лучше если аудитория приложения локализована в рамках одной страны. Например, России. Это связано с необходимостью рассылки SMS.

Нет необходимости реализовывать процедуру восстановления пароля (сброс пароля), так как пароль не используется.

Смена номера телефона для пользователя не доступна. Сменить номер телефона пользователя может только администратор через Админ панель.

Авторизация по номеру телефона и паролю

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

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

Авторизация через Google-аккаунт

В данный момент такой вид авторизации в мобильных приложениях распространяемых в России встречается редко.

Авторизация по звонку – сервис voice password, вместо смс, услуга flash call, флеш колл

Во многих сферах использование двухфакторной аутентификации (2FA) обязательно. Такие требования,
например,
определены в приказах ФСТЭК №17, 21 и 239 для ГИС 1 и 2 классов защищенности. Для банковских и финансовых
организаций обязательные требования по использованию 2FA фигурируют в рекомендациях ЦБ 146-Т, 20-МР и РС
БР
ИББС-2.8-2022, а также в ГОСТ 57580.1. Она может реализовываться различными способами:

  • звонок с номера (Flash Call), последние 4 цифры которого — это код, который пользователю нужно
    ввести
    в форму при входе;
  • звонок с проговариванием пароля для доступа голосом;
  • комбинация этих вариантов: звонок с номера, последние цифры которого являются паролем, плюс его
    проговаривание голосом при поднятии трубки.

Примеры использования авторизации по звонку вместо смс

Также многие компании практикуют авторизацию по звонку в следующих случаях:

  • Авторизация пользователей в CRM, решениях от 1С и аналогичных системах. Особенно это актуально для
    удаленных
    и мобильных сотрудников. Если контролировать вход в систему в офисе относительно просто, то в случае с
    удаленными работниками, на 100% быть уверенным в том, что в приложение зашел именно сотрудник
    компании,
    нельзя.
    Способ авторизации при помощи звонка значительно повышает безопасность в таких случаях.
  • Вход и подтверждение заказов и интернет-магазинах. Во-первых, это повышает уровень безопасности
    аккаунтов
    пользователей. Во-вторых, таким образом владельцы интернет-магазина могут избежать фейковых заказов
    (недобросовестную конкуренцию ведь никто не отменял). И в случае с фейками лучше выбрать именно
    авторизацию по
    звонку вместо СМС: бесплатных сервисов, для получения SMS на «левые» номера немало, а для звонков — не
    найти.
    Организовать «атаку» злоумышленникам будет сложно.
  • Безопасное восстановление паролей. Угон аккаунтов и хищение важных данных через восстановление —
    распространённая практика. Авторизация пользователя по звонку при попытке восстановления поможет
    избежать
    подобных ситуаций.
  • Раздача Wi-Fi клиентам без санкций для компании. Если ваше заведение раздает интернет посетителям,
    без
    рассматриваемого инструмента не обойтись. Подключив его, вы обеспечите выполнение требований
    Постановлений
    Правительства РФ 758 и 801.

Выбор способа авторизации

Для выбора способов авторизации надо ответить на следующие вопросы.

  1. Какова потенциальная численность будущей аудитории пользователей приложения? Это сотни или миллионы людей?
  2. Каковы характеристики целевой аудитории приложения (возраст, интересы)?
  3. Как использует интернет потенциальная целевая аудитория?
  4. Какая география будущих пользователей мобильного приложения?

Ответив на эти вопросы можно легко выбрать способ авторизации. Если планируется разработка мобильного приложения с «нуля», то лучше сразу спроектировать сервер Админ панели приложения с учетом поддержки выбранных способов авторизации.

Как реализовать "защиту" авторизации по номеру телефона?

1. Проверьте синтаксическую корректность номера телефона. Все мобильные номера в РФ начинаются на 79 и имеют длину ровно 11 цифр. Проверку можно даже добавить в веб форму на уровне js. Это нельзя назвать защитой от хулиганов, но она отсеет реальные ошибки и опечатки, облегчив жизнь обычным пользователям.

2. Пробейте номер по базе россвязи (файл DEF-9xx). Так вы определите номера, на которые 100% не будет доставки. В отличии от проверки синтаксиса, не выдавайте пользователю ответ о некорректном номере. На все номера отвечайте “Одноразовый код отправлен, введите его сюда”, но на невалидные номера не отправляйте сообщение.

3. Добавьте ограничение на количество отправляемых форм в минуту с одного IP и количество отправляемых сообщений на один и тот же номер (независимо от IP).

4. Оцените сколько может быть отправок форм в день и поставьте общий лимит на все отправки смс за день. Это единственный реальный способ контролировать атаку на сливание бюджета. Да, реальные пользователи пострадают при достижении лимита, но вы не должны доводить до него – настройте мониторинг количества отправляемых смс и алертинг при достижении порога в 90% от лимита, чтобы у вас было время среагировать на атаку и отбить её до полного исчерпания лимита. Либо если это всплеск реальных пользователей (например, неожиданно удачная реакция на рекламу), то у вас будет время скорректировать лимит. Можно рассчитывать лимит как 2 * среднее количество отправок смс за последние Х дней, чтобы не приходилось править его вручную по мере естественного роста посещаемости. Формулу и процент для алертинга, разумеется, подберёте под свои требования. Но можете взять и мои за основу.

Отдельно хочу рассказать про так называемые прямые мобильные номера. Они выглядят как городские (например, 7495), но в реальности являются мобильными и могут принимать смски. Проверка в пункте 1 не пропускает такие номера и нет никакого способа проверить без отправки смс является ли отдельно взятый городской номер прямым мобильным. Прямых номеров мало по сравнению с настоящими мобильными или настоящими городскими. К тому же у каждого прямого номера есть мобильный аналог, начинающийся на 79, которым пользователь может воспользоваться для регистрации. Поэтому предлагаю просто забить на прямые номера, а в случае жалоб на невозможность регистрации с прямым номером, рассказывать про существование мобильного аналога, который может быть прописан где-то в договоре с оператором на оказание услуг связи или узнать в техподдержке оператора и с которым можно спокойно зарегистрироваться.

Обязательное требование email’а не усилит схему защиты, так как не проблема наштамповать реальных адресов со скриптом, автоматически прокликивающим подтверждающие ссылки во входящих письмах.

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

Смс авторизация на сайте, в приложении и программе лояльности | сервис отправки паролей через sms

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

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

Проводить авторизацию по СМС можно как для разовых случаев, например, подтверждения регистрации пользователя в системе, так и на регулярной основе — для подписания документов или подтверждения транзакций

Похожее:  1С-Битрикс Разработчикам - Как решить проблему неработающей авторизации?

Добавить комментарий

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