Нажать кнопку или ввести код
При push-подтверждении сервис отправляет на привязанное приложение запрос, а вы нажимаете «разрешить» или «отклонить». При TOTP вы открываете приложение, читаете код и вводите его сами. Второй фактор в обоих случаях привязан к телефону, но взаимодействие сильно отличается, и вместе с ним отличаются риски.
Пуш выглядит проще: не нужно ничего переписывать. Именно эта простота порождает как достоинства, так и главный недостаток схемы.
В обоих вариантах речь идёт о втором факторе, связанном с телефоном, поэтому оба зависят от того, насколько надёжно защищён сам телефон. Потеря устройства без резервных способов входа создаёт одинаковые трудности, и подготовиться к ней нужно заранее, независимо от выбранной схемы.
Как работает каждый способ
Push-запрос передаётся через сервер сервиса и системную службу уведомлений, поэтому телефон должен быть в сети. Приложение показывает, откуда идёт вход, а иногда просит сверить число на экране входа с числом в приложении. Такая сверка снижает шанс случайного согласия.
TOTP вычисляется локально: общий секрет и текущее время дают код, который меняется через короткие интервалы. Сеть на телефоне не нужна, важны только правильные часы. Сервису не нужно ничего отправлять на устройство, поэтому способ не зависит от службы уведомлений.
Слабые места
У push-схемы известная проблема — усталость от запросов. Если атакующий знает пароль, он может многократно инициировать вход, и в какой-то момент раздражённый или невнимательный человек нажмёт «разрешить». Сверка числа и показ места входа помогают, но не устраняют риск полностью.
Также пуш зависит от доступности сервиса уведомлений и связи. В самолёте, в роуминге без интернета или при плохом сигнале подтвердить вход бывает нельзя.
У TOTP другие слабости: код можно передать на поддельной странице, и его надо каждый раз вводить руками. Зато нет риска случайного согласия и зависимости от сети.
Сравнение по критериям: Push-подтверждение входа или код TOTP
Удобство: пуш быстрее, TOTP требует нескольких лишних действий. Автономность: TOTP работает без интернета, пуш нет. Защита от невнимательности: у TOTP выше, поскольку человек сам решает ввести код. Совместимость: TOTP поддерживается почти везде по общему стандарту, а пуш привязан к конкретному приложению конкретного сервиса.
Последний пункт важен практически. Стандартный TOTP-секрет можно использовать в любом совместимом приложении и переносить между ними, а push-подтверждение нередко работает только в фирменном приложении одного поставщика.
Как защитить push-схему от невнимательности
Если сервис позволяет, включите режим с вводом числа: приложение показывает цифры, и вы должны выбрать такие же на экране входа или ввести их. Простое нажатие «разрешить» исключается, и случайное согласие становится куда менее вероятным.
Ограничьте число одновременных запросов и включите уведомления о необычных попытках входа. На корпоративных аккаунтах администратор может дополнительно задать правила по стране или устройству, и лишние запросы будут отклоняться автоматически.
Отдельно приучите себя к простому правилу: подтверждать только то, что вы сами инициировали секунду назад. Любой неожиданный запрос отклоняется, а после него имеет смысл проверить журнал входов и сменить пароль.
Что выбрать: Push-подтверждение входа или код TOTP
Если сервис предлагает пуш с сверкой числа и показом контекста, это разумный вариант для повседневного входа, особенно на корпоративных аккаунтах, где администраторы могут ограничить число попыток. Для личных важных аккаунтов и поездок надёжнее TOTP.
В любом случае отклоняйте запросы, которые вы не инициировали, и меняйте пароль, если такие запросы приходят. Нежданный пуш — признак того, что кто-то уже знает ваш пароль.
Стоит также проверить, что на телефоне включена надёжная защита экрана паролем: подтверждение входа лежит на устройстве, и его защита определяет безопасность всей схемы.
Итоговое правило простое: чем выше ценность аккаунта и чем чаще вы бываете без связи, тем больше смысла в кодах по времени. Чем удобнее нужно проводить ежедневный вход и чем лучше защита от случайных нажатий, тем разумнее push с проверкой числа. Обе схемы лучше отсутствия второго фактора.