Вопрос или проблема
Многие приложения позволяют пользователям аутентифицироваться с помощью их номера телефона, позволяя пользователю ввести его, а затем отправляя СМС с кодом, который необходимо ввести в приложение. Очень немногие (если вообще есть такие, которые я могу найти) просто предоставляют интерфейс СМС и заставляют пользователя отправить СМС с кодом подтверждения на сервер. Я могу подумать о нескольких причинах для этого, но ни одна из них действительно не кажется мне окончательной:
- Отправка СМС может стоить пользователю, и без наличия местных номеров для каждой страны это может обойтись в значительную сумму
- Пользователь может захотеть войти в систему на устройстве, не имеющем СМС, но может получить СМС на свой телефон [iPod/Планшет и др.] (это можно смягчить, разрешив пользователю использовать как входящие, так и исходящие для подтверждения в зависимости от возможностей устройства)
- Пользователи очень знакомы с интерфейсом получения от других крупных приложений, и это может показаться более безопасным
- Не кажется ли отправка СМС “слабой” слегка, как старые мошеннические схемы, которые просят вас отправить сообщение на номер?
- Это несовместимо с настольной веб-версией продукта
Ничто из вышеперечисленного не выглядит как реальная причина не делать этого, но по какой-то причине большие имена, такие как WhatsApp, SnapChat, Facebook и т. д., все избегают этого. Может, кто-нибудь может придумать серьезные причины этого или поделиться соображениями о том, почему это не так распространено?
Довольно легко отправить СМС-сообщение, которое выглядит так, будто приходит с телефона, номер которого вы выберете, не контролируя этот номер. Таким образом, отправка СМС с номера не проверяет вашу личность таким же образом, как получение СМС на номер.
Так как никто не упомянул, отправка СМС (от клиента) действительно стоит денег, по крайней мере, в развивающихся странах. Более того, сервер валидации может находиться в другой стране. Лично я не хотел бы отправлять дорогую СМС в США из Японии. Так как сервер отправляет СМС через сторонние поставщики СМС, ему не нужно сталкиваться с такими высокими затратами за СМС.
Суть проверки через текстовые сообщения заключается в подтверждении владения вашим телефоном, а не в том, чтобы вы могли связаться с ним.
Двухфакторная аутентификация обычно требует чего-то, что вы знаете (пароль) и чего-то, что у вас есть (ключ безопасности, донгл или ваш мобильный телефон и т. д.).
Идея в том, что даже если мошенник в отдаленной местности получит доступ к вашему паролю, он не сможет физически лишить вас телефона.
На самом деле не имеет значения, кто отправляет сообщение.
Поскольку остальное уже было обсуждено, я сосредоточусь на одной небольшой детали:
Отправка СМС может стоить пользователю, и без наличия местных номеров для каждой страны это может обойтись в значительную сумму
Так это не работает. Обычно у вас нет номера. Вы используете провайдера, например, clickatell.com. Они предоставляют вам API, который вы можете использовать для отправки текстовых сообщений. Фактическая стоимость обычно зависит от страны, при этом развитые страны как правило дешевле – но не от того, насколько они близки к вам.
Вы обычно можете свободно выбирать своего отправителя с такими услугами, включая знакомых алфавитно-цифровых отправителей, таких как Google. Поскольку вы никогда не ожидаете ответа на сообщения 2FA, вам действительно не нужен номер.
В общем, отправка СМС пользователю упрощает задачу для клиента. И все бизнесы хотят упростить жизнь своим клиентам. Рассмотрим следующие случаи:
- Ввод 4-8-значного (в основном) кода проще, чем ввод текста и номера мобильного телефона получателя в приложении СМС и отправка его.
- В местах, где более распространены два сим-карты, у пользователя может / может не быть пакета СМС на мобильном номере, зарегистрированном в сервисе.
- Некоторые мобильные операторы по умолчанию отключают международные звонки и СМС и активируют их только по запросу. Если пользователь использует услуги этого оператора, а у вас международный сервис, вы можете потерять клиента.
- Многие пожилые люди могут легко читать СМС, но испытывают трудности при их отправке.
- Как вы упоминали в своем вопросе, отправка СМС стоит денег для пользователя.
Ответ или решение
Приложения с телефонной верификацией, как правило, отправляют пользователю SMS с кодом подтверждения вместо того, чтобы просить пользователя самостоятельно отправить сообщение. Это связано с несколькими ключевыми причинами:
-
Подтверждение владения номером: Основная цель текстового верификационного кода — подтвердить, что пользователь действительно владеет указанным телефоном. Если бы пользователь отправлял сообщение, это не гарантировало бы, что номер в действительности ему принадлежит, так как существует возможность подделки SMS (так называемое SMS-спуфинг). К примеру, злоумышленник может отправить сообщение, которое будет выглядеть так, будто оно пришло от конкретного номера, не имея контроля над ним.
-
Удобство для пользователя: Ввод кода из SMS намного проще, чем необходимость открыть приложение для отправки SMS-сообщения с указанием номера получателя и текста. Это делает процесс более удобным и быстрым, что критично для положительного пользовательского опыта.
-
Скрытие затрат на отправку SMS: Для пользователя отправка SMS может быть платной, особенно в развивающихся странах или в случаях международной связи. Используя сервисы третьих сторон, такие как Clickatell или Twilio, компании могут отправлять сообщения без лишних затрат для пользователя и без необходимости управления местными номерами в каждой стране.
-
Технические ограничения устройств: Некоторые устройства, такие как планшеты или iPod, могут не поддерживать отправку SMS-сообщений. Однако они могут получать SMS, что также подтверждает необходимость верификации через входящее сообщение для пользователей таких устройств.
-
Безопасность и надежность: У пользователей обычно больше доверия к получению сообщения от известного сервиса, чем к отправке кода в сложном и незнакомом процессе. Модели с получением SMS для верификации являются стандартом в сфере безопасности и двухфакторной аутентификации, где важно подтвердить наличие у пользователя определенного устройства, даже если его пароль был скомпрометирован.
-
Доступность для разных категорий пользователей: Пожилые люди или люди с ограниченными возможностями могут испытывать трудности с отправкой SMS, тогда как получение SMS не требует дополнительных действий и намного более интуитивно.
В заключение, использование получаемых SMS-сообщений для верификации пользователя — это не только вопрос комфорта и простоты, но и необходимость безопасности, которая защищает как пользователей, так и компании, обеспечивая надежный процесс аутентификации и минимизируя риски мошенничества.