Последние несколько лет я являюсь клиентом Т-Банка (в девичестве Тинькофф Банк) и использую их Android-приложение, наверное, каждый день. В декабре я обновил его из Huawei AppGallery, и что-то изменилось в моём пользовательском опыте… Мне стало казаться, что меня стали как-то слишком редко спрашивать отпечаток или PIN после запуска приложения тапом по иконке или по уведомлению. Так произошло раз, два, пять, и я невольно обратил на это внимание. А поскольку моя работа связана с информационной безопасностью, я решил немедленно настучать на плохое поведение разработчикам, тем более у них есть программа bug bounty.
Сказано – сделано. Это было кринжевато, так как я не был на 100% уверен в своих словах, но я всё же написал о том, что меня как-то редко стали спрашивать отпечаток/PIN. У меня была включена опция «Быстрый вход», которая в приложении объяснена так: «Если вы используете отпечаток пальца или скан лица, у вас будет 5 минут, чтобы зайти в Т-Банк без авторизации». Без этой опции поведение было ожидаемым: каждое открытие приложения просило отпечаток/PIN, а вот с ней… Когда я думал, что отпечаток/PIN не нужен, то он не был нужен; когда я думал, что он нужен, он обычно почему-то был не нужен.
Стал я экспериментировать, чтобы у меня был более членораздельный отчёт. Мой телефон разблокировался по отпечатку пальца или PIN, и внезапно оказалось, что «Быстрый вход» в приложении Т-Банка означает не то, что я думал. Я-то, наивный, рассуждал просто: залогинился в приложение – можешь его закрыть, но в течение 5 минут тебя пустят обратно без вопросов (кэширование аутентификации в рамках приложения). Мне казалось, что приложение раньше всё время так и работало, примерно до декабря. А теперь я наблюдал своими глазами нечто иное: если ты предъявил отпечаток для разблокировки телефона, то внезапно приложение Т-Банка будет пускать тебя внутрь без вопросов в ближайшие 5 минут!
Если честно, я с этого прифигел. Я постоянно кручу телефон в руках – переписываюсь, смотрю мемы. Мне удобно разблокировать его отпечатком. Но почему инженеры Т-Банка решили, что когда я разблокирую телефон для просмотра мема, то заодно стоит разблокировать приложение с моими деньгами? Я предъявил отпечаток, да, но для разблокировки телефона. Палец у меня один и тот же, не поспоришь. Но я совершенно не ожидаю, что ещё какие-то места, для входа в которые требуется отпечаток, тоже по какой-то магической причине разблокируются. Это кажется совершенно несвязанными аутентификациями для совершенно разных защищаемых объектов. Напротив, я ожидаю, что они будут заблокированы, пока я явно не предъявлю отпечаток конкретно в эти места. Я ожидаю, что кэширование моего отпечатка/PIN на 5 минут касается только того приложения, где я задал такую опцию: если я в это приложение что-то 4 минуты назад предъявил, то это ещё действует, а если я это ещё куда-то предъявил хоть секунду назад, то это не имеет никакого отношения к данному приложению и на него не влияет.
Да, конечно, можно сказать, что старая логика не намного лучше. Вот разблокировал я своё банковское приложение отпечатком, вышел оттуда, а через 4 минуты вор выхватил мой телефон и убежал, получив доступ к деньгам – тут и старый алгоритм не помог бы. Но что, если я разблокировал телефон для просмотра мема, а приложение банка давно не открывал? Почему в этом-то случае вор должен получить доступ к деньгам? Да ни почему не должен. Конечно, имея разблокированный телефон, можно много чего интересного с ним сделать, но с чего это вдруг хватает одного тапа до полного доступа к самому дорогому?
Пожаловался во всех подробностях и красках на это безобразие в своей челобитной безопасникам. Было это перед самым Новым годом, так что ответа пришлось подождать пару недель… Мне ответили, что всё работает как и задумано, так и должно быть. Такой же ответ дали вот этому возмущённому пользователю Банки.ру. «В таком процессе авторизации нет рисков» – ладно… Раз это as designed, а не уязвимость, значит, я могу с чистой совестью рассказать об этом Хабру, что я с удовольствием и делаю.
Безопасность и удобство противоречат друг другу, и по-видимому, инженеры Т-Банка решили сместить бегунок данной опции поближе к удобству, подальше от безопасности. Конечно, стало удобнее, но когда речь идёт о банке, о твоих кровных, то ставки весьма высоки. Кто сильно переживает, тот может отключить у себя «Быстрый вход», но это всё-таки не оправдывает очень странное решение, касающееся миллионов пользователей.
UPD. Оказалось, такой пост на Хабре уже был. За подсказку спасибо @slepmog!
UPD 2. В комментариях пишут, что для пущей радости эта опция включена по умолчанию. Это уж совсем ни в какие ворота не лезет.
Автор: posthedgehog