На конференции USENIX Enigma специалисты Facebook выступили с любопытным докладом. Они представили новый механизм восстановления доступа к аккаунтам от различных сетевых сервисов, получивший название Delegated Recovery («Делегированное восстановление»). Предложенный способ работает очень просто:
- у пользователя Васи есть аккаунты на Facebook и GitHub;
- Вася создает токен восстановления для аккаунта GitHub и сохраняет его внутри своего аккаунта Facebook;
- по какой-то причине Вася теряет доступ к своему аккаунту GitHub;
- Вася может восстановить доступ к аккаунту GitHub, воспользовавшись токеном, который хранит его Facebook-аккаунт.
По словам разработчиков, все токены восстановления зашифрованы и ни один онлайновыый сервис, который временно их хранит, не способен их прочитать. Кроме того, токены содержат
контр-подпись (counter-signature) с временной меткой, так что убедиться в их оригинальности должно быть нетрудно.
В Facebook убеждены, что такой способ восстановления будет гораздо надежнее секретных вопросов и сообщений, отправляемых на определенный почтовый ящик или телефонный номер. Разработчики отмечают, что если аккаунт пользователя скомпрометировали хакеры, почтовый ящик тоже может находиться под их контролем, а SMS-сообщения все чаще называют ненадежными (к тому же, пользователь может попросту потерять телефон, не иметь к нему доступа, сменить номер и так далее).
Отдельного упоминания заслуживает и тот факт, что открытая спецификация протокола Delegated Recovery уже опубликована на GitHub. Вскоре инженеры Facebook, совместно с разработчиками GitHub, планируют представить ряд опенсорсных базовых реализаций на различных языках, чтобы помочь различным сервисам поскорее интегрировать Delegate Recovery в свои системы аутентификации.