Откажитесь от Google Authenticator

Google Authenticator — приложение в Вашем телефоне, генерирующее 6-значные коды (TOTP) для входа в сервисы, поддерживающие двухфакторную аутентификацию (например, Google). Если Вы его используете, Вам следует знать о его недостатках. Вот что, по моему мнению, Google Authenticator делает не так.

Хранит секреты в открытом виде

Ключи просто хранятся в SQLite. На сами ключи, ни весь SQLite при этом не шифруются. Читать эти данные может только сам Google Authenticator, не считая случаев когда есть root-доступ (root может прочитать эти файлы).

Привязывает пользователя к одному устройству

Сделать резервную копию, не получая root-доступ к телефону, невозможно. С одной стороны, это неплохо: злоумышленник не сможет легко завладеть ключами, с другой — хозяин ключей не может легко сделать резервную копию и восстановиться из нее, то есть если телефон украден, потерян, перестал подавать признаки жизни — ничего не поделаешь, ключи потеряны, нужно идти по сервисам, вторым фактором которых служил Google Authenticator, и восстанавливать доступ для каждого в отдельности.

Что делать?

Зерно сомнения

Конечно, говоря, что Google Authenticator сделан плохо, начинаешь невольно сомневаться в своих словах: вряд ли бы гугл позволил себе сделать откровенно плохо настолько важный кусок своей инфраструктуры. Возможно, в этом и была затея: держать ключи в единственном экземпляре и доступными только для одного приложения; потерял — используй коды для восстановления (backup codes). Тем не менее, на эти сомнения тоже есть косвенные контраргументы: во-первых, держать ключи в открытом виде крайне непредусмотрительно; во-вторых, два конкурента Google Authenticator, Microsoft Authenticator и Authy, предлагают резервное копирование (первый и второй) и возможность использования на нескольких устройствах (второй).

Что ж, я в итоге отказался от Google Authenticator. Решение это достаточно неоднозначное, поэтому навязывать его не стану. По крайней мере, теперь вы знаете достаточно, чтобы сделать свой выбор; желательно, до потери контроля над своим смартфоном.

Оставьте комментарий, если Вам есть что сказать на эту тему!

P.S.: нашел отличную статью (на английском) о том, как правильно организовать двухфакторную аутентификацию, и ее обсуждение на Hacker News