Восстановление без подтверждения личности невозможно
Начнём с этого, потому что это меняет смысл всей остальной статьи. Мы никогда не спрашивали, кто вы. У нас нет ни документов, ни номера телефона, ни платёжного адреса, поэтому не существует процедуры, с помощью которой вы могли бы доказать, что аккаунт принадлежит вам, после потери доступа к нему. Такова цена политики без KYC, и она не гнётся ни в ту, ни в другую сторону.
Коды восстановления — это и есть процедура восстановления. Относитесь к ним так, будто это сам аккаунт, потому что фактически так оно и есть.
Включение
Два механизма, которые можно использовать вместе:
- TOTP: привычные шесть цифр с шагом в тридцать секунд. Подойдёт любой аутентификатор.
- WebAuthn: аппаратный ключ безопасности или платформенный аутентификатор. Зарегистрируйте два.
После включения второй фактор требуется при входе, перед началом консольной сессии вне полосы и перед сменой email аккаунта. Он не требуется для API-токенов, которые являются отдельным учётным данным со своими областями действия.
Проверка TOTP-секрета самостоятельно
apt install -y oathtool
oathtool --totp -b JBSWY3DPEHPK3PXPНапечатанный код должен совпадать с кодом на вашем телефоне в ту же секунду. Если не совпадает, причина почти всегда в часах, а не в секрете.
Уход часов
TOTP — это функция времени. Мы допускаем отклонение на один шаг в обе стороны, то есть тридцать секунд запаса: более чем достаточно для телефона, но недостаточно для сервера, который работает год без работающего клиента времени.
timedatectl status
systemctl status systemd-timesyncd # Debian
chronyc tracking # AlmaLinuxSystem clock synchronized: yes — это та строка, которая имеет значение. Исправьте часы, прежде чем заключать, что сломано что-то ещё.
Коды восстановления
Десять кодов, одноразовых, генерируются при включении второго фактора. Каждый подписывает вас один раз и затем умирает.
- Распечатайте их. У бумаги нет батареи, обновления прошивки и экрана блокировки.
- Храните одну копию в другом здании, отличном от машины, с которой вы входите.
- Не храните их в менеджере паролей, где лежит пароль от аккаунта. Это превращает два фактора обратно в один.
- Перегенерируйте набор после использования одного кода или всякий раз, когда вы не уверены, что копия осталась приватной. Перегенерация убивает все коды в старом наборе.
Если вы потеряли фактор, но у вас остались коды
Войдите с кодом, удалите старый фактор, зарегистрируйте новый, перегенерируйте набор. Четыре минуты, без тикета, без ожидания кого-либо.
Если вы потеряли и то и другое
Аккаунт исчез. Не заблокирован в ожидании формы, не приостановлен, пока кто-то проверяет, — исчез, вместе со всем, что под ним работает. Мы предпочитаем писать это прямо, чем намекать на запасной выход, которого не существует, и поддержка не может его создать; с нашей стороны нет ничего, с чем можно было бы вас сверить.
Смягчение последствий скучно, но работает. Два аппаратных ключа или один ключ и напечатанный набор кодов в ящике где-то ещё. А также копия всего по-настоящему незаменимого, хранящаяся не у нас, что является хорошей практикой независимо от того, кто ваш хостинг-провайдер.