Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Вы создаете сервис, а в нем - регистрацию по номеру телефона? Вы создаете проблему себе и своим пользователям. Это не защитит ваш сервис от спамеров и нежелательных регистраций. Аккаунт ваших пользователей это тоже не защитит. Давайте разберемся почему.
Почему регистрация по телефонному номеру не защищает от спама
Для СНГ стоимость аренды номера на 10 минут для регистрации и приема СМС начинается от 0.03 $ . Сегодня эта защита по цене взлома приближается к разгадываю капчи индусами. Т.е. за 1 $ пользователь сможет создать пару десятков аккаунтов, с которым сможет спамить, писать непотребства, накручивать статистику и т.д.
Для того чтобы наводнить ваш сервис ботами уже не нужен целый лахтацентр с миллионными бюджетами. Достаточно рядового гражданина СНГ, который сегодня сэкономил на пицце и имеет некоторое терпение.
И если конкретно в вашей стране покупка сим-карт строго по паспорту, у вас все равно не будет способа проверить, действительно ли этот телефон зарегистрирован на человека с таким именем. При этом в таких странах продажа номеров все равно поставлена на поток. Т.е. арендовать номер в РФ для регистрации в ней же не составит проблемы. Проблема только у вас.
Почему телефонный номер не защитит вас, если ваш клиент нарушит закон
По той же самой причине - вы не знаете, принадлежит ли номер клиенту или нет. Знание номера или реального IP-адреса не защитит вас от органов правопорядка, когда клиент вашего сервиса где-то нашкодит. Они все равно придут к вам и будут давить, чтобы вы помогли его найти, даже если вы ни в чем не виноваты. По-другому работать они не умеют.
Даже больше, в гипотетической ситуации, когда клиент сделал что-то противозаконное, но при этом зарегистрировался на анонимный номер, у вас будет еще больше проблем с органами правопорядка. Не в силах найти человека позволившего себе анонимность, они будут пытаться по максимуму вытрясти все из человека, который анонимность себе позволить не может. Т.е. из владельца сервиса.
Почему телефонный номер не защищает ваших клиентов
Сегодня невозможно сказать, принадлежит ли вам ваш номер или нет. В вашем телефоне прямо с завода может быть зашит троян, который на заднем фоне принимает смс и отправляет их содержимое в какой-то ботнет. Обычно на этом месте следуют возражения - ну кому лично ты нужен? И правда - лично ты не нужен. Ботнеты обрабатывают всех подряд.
Теперь трояны не надо ловить в сомнительных местах - они идут прямо с завода, даже в кнопочных телефонах. Для андроида ситуация еще хуже. Мало того что половина дешевых китайских смартфонов идет с теми же троянами с завода, так их еще можно и взламывать малыми силами в массовом порядке. Через смс-рассылки с ссылками на зараженные сайты. На старые версии вообще достаточно прислать правильно оформленную MMS, и телефон начинает жить своей жизнью. iOs тоже периодически ломают. Отсюда и появляются курьезы, когда вашей бабушке на кнопочный телефон регулярно приходят коды авторизации телеграма или гугла.
Это только техническая часть проблемы. Дальше идет административная. Например злоумышленники могут перевыпустить сим-карту вашего клиента. И если вы не взяли на себя геморрой возиться с требованием сканов документов, то пользователь уже никак не докажет, что он - это он, если захочет вернуть аккаунт привязанный к телефону.
Говоря об СНГ, нельзя не упомянуть другую проблему. Прослушка и перехват трафика здесь поставлены на поток и доступны не только спецслужбам. Вернее они и продают эти данные. Или просто используют в своих личных целях. Никто не застрахован, что завтра не поругается из-за парковочного с человеком, который окажется сотрудником ФСБ/СБУ/Кто-там-у-вас. У них полностью отработан механизм перехвата СМС для двухфакторной аутентификации. Это рядовая процедура, она натренирована на Telegram до автоматизма.
Способов просто потерять телефонный номер много - от потери телефона до отзыва номера оператором потому что произошла путаница с документами. Короче говоря, регистрация по телефонному номеру проверяет всего 1 вещь: то что в момент регистрации у пользователя был доступ к этому номеру.
И как тогда регистрировать аккаунты?
На телефон или почту, как обычно. 95% людей все равно за 20 лет массовой компьютеризации не стали технически грамотнее в вопросах безопасности. А значит все остальные варианты еще хуже. Но для себя вы должны четко понимать, что почта или телефон - это способ быстрой регистрации, но не способ удержания или подтверждения аккаунта. И этот способ хорош только для интернет магазинов, когда нужно быстро оформить заказ.
У Gmail уже много лет существует стандартная практика восстановления доступа к аккаунту, если телефон утерян - это резервные одноразовые коды. Вы генерируете несколько одноразовых паролей, которые пользователь записывает на бумажку или куда-то еще. По каждому можно войти ровно один раз. Т.е. если пользователь потерял доступ к номеру телефона, а на аккаунте у него вход по СМС, то он все равно может войти по комбинации номер телефона + плюс резервный код.
Если вы хотите сделать двухфакторную аутентификацию, разрешите делать ее через usb токены. Но все равно оставьте одноразовые коды. Завтра токен сломается или в вашей стране разрешат импорт только криптонестойких токенов.
Важно в принципе иметь возможность отключить двухфакторную аутентификацию через телефон. Потому что даже для тех кто разбирается в безопасности не будет возможности закрыть эту дыру в своем аккаунте. Тех кто в безопасности не разбирается телефонный номер все равно уже не защитит. Ушло время, когда покупка, подделка и прослушка номеров была дорогим удовольствием.