Сначала я подумал, что возможно где-то на карте памяти сохранился какой-нибудь идентификатор сессии, из-за которого не надо проходить процедуру ввода пароля, а достаточно пройти упрощённую процедуру подтверждения по SMS. Но это было не так.
Тогда мы с коллегой решили проверить на его телефоне, смогу ли я войти в его приложение. Мы берём его телефон, открываем приложение, выбираем «Сменить пользователя» в меню, вводим логин (который секретным не является и используется им на разных сервисах). И, бинго, опять вводим SMS-код и оказываюсь внутри приложения с полным доступом ко всем финансам! Всё дело заняло пару минут времени.
А как же блокировка телефона по паролю/секретному ключу/отпечатку пальца, спросите вы? Ну во-первых, дело тут не в устройстве а SIM-карте. И полный возврат к заводским настройкам также может свести на нет всю защиту, просто это будет немного дольше.
Кроме того, в ОС куча приложений, которые просят разрешений на чтение SMS. Не удивлюсь, если появится вирус, способный сымитировать вход в приложение с чтением и последующим входом кода из SMS.
А что Сбербанк?
Через обратную связь я писал дважды об этой проблеме сбербанку и оставил отзыв на banki.ru. Но сбербанк судя по всему не считает это проблемой. Кроме того, в условиях использования был найден следующий пункт:
Не совмещайте устройства доступа к системе «Сбербанк Онлайн» и устройства получения SMS-сообщений с подтверждающим одноразовым паролем (например, мобильный телефон, смартфон или планшет). Для мобильных устройств созданы специализированные версии системы.
При утрате мобильного телефона, на который Вы получаете сообщения с SMS-паролем, сразу же обратитесь к оператору сотовой связи и заблокируйте SIM-карту.
То есть фактически приложение нельзя ставить на тот же телефон, на который приходят SMS-ки.