Разработчики Keybase разослали предупреждения пользователям своего Android-приложения, сообщив о неприятной ошибке, недавно обнаруженной в коде. Оказалось, что приватные ключи некоторых пользователей могли случайно стать частью автоматических бэкапов, которые Android регулярно загружает на серверы Google.
Сервис Keybase предлагает своим клиентам различные решения для идентификации, подтверждения личности и шифрования коммуникаций. Разработчики Keybase утверждают, что их основная цель – сделать интернет безопаснее, чтобы шифрование с открытым ключом стало доступно всем, и пользователям не нужно было разбираться в протоколах, криптографии и обладать глубокими техническими познаниями.
Keybase успешно работает со всеми популярными ОС (Windows, macOS, Linux), и, к примеру, предлагает end-to-end шифрование для Git-операций, обмена сообщениями через Reddit, Twitter, Facebook и так далее.
Теперь разработчики Keybase сообщили, что первые пользователи приложения для Android могли стать жертвами бага. По данным компании, проблема касается примерно 10% пользователей Android-приложения, тогда как общая пользовательская база Keybase насчитывает более 205 000 человек (правда неизвестно, сколько из них пользуются Android).
В чем именно заключается проблема? Каждое устройство, на котором установлен Keybase, генерирует собственную пару ключей. Как оказалось, ранние версии Android-приложения могли включать приватный ключ, хранящийся на устройстве, в состав обычного автоматического бэкапа, который система регулярно загружает на серверы Google. Ключ при этом был зашифрован с помощью специальной парольной фразы (passphrase), которую ни Keybase, ни Google не знают. В итоге пользователь получал возможность восстановить данные из бэкапа даже на другом устройстве и, зная парольную фразу, мог продолжать использование Keybase, как ни в чем не бывало.
Разработчики пишут, что они вовсе не намеревались снабжать Keybase такой функциональностью, и приложение не должно работать из бэкапов, каждое устройство должно иметь собственную пару ключей. Дело в том, что пользователи совершенно не умеют создавать надежные пароли и парольные фразы, и проблема повторного использования одинаковых паролей для разных сервисов в последние годы актуальна, как никогда.
Конечно, для осуществления атаки злоумышленнику понадобится сначала получить доступ к чужому аккаунту Google, извлечь оттуда файлы Android-бэкапа, а затем ввести парольную фразу для Keybase, чтобы расшифровать ключ. Все это кажется маловероятным, если не задумываться о потенциально слабых и ненадежных паролях, которыми пользуется большинство людей. То есть, разработчики признают, что у атакующих в теории есть возможность взломать чужой аккаунт Keybase, в итоге выдав себя за его владельца.
Представители Keybase сообщают, что ошибка в приложении уже была устранена, но просто обновить его будет недостаточно, нужно также сгенерировать новую пару ключей, деактивировав старую.