О безопасности, втором факторе, max, паролях1
TLDR: включи второй фактор на TOTP (никаких мессенджеров) и реши вопрос доступа при потере смартфона (например, Keepass + синхронизация).
На волне Госуслуг и Max поделюсь своим подходом к паролям и почему он такой.
Главная проблема, что всегда придётся искать баланс между безопасностью и удобством. Чем удобнее, тем небезопаснее.
Второй фактор нужен
Во многих сервисах есть пароль, и его надо придумывать и хранить. В какой-то момент пароль может стать доступен нехорошему человеку. Может, сервис случайно слил. Может, вы хранили его неверно, может, сервис "для вашего удобства" сделал простой вход по ссылке, которую фишеры вам подсунули - всякое бывает. Единственное, что тут снижает риск, это второй фактор. Просто включите его везде, где можно. Он не сильно снизит ваше удобство, но станет отличным барьером от ошибки (возможно, даже не вашей).
Какой второй фактор
По сути, любой кажется лучше, чем никакого. С точки зрения безопасности в плане не дать доступ постороннему - да. Будет сложнее постороннему, и если вы не стали конкретной целью атаки, то, скорее всего, всё поможет. Но с точки зрения сохранить себе доступ могут быть сюрпризы, если у вас утерян доступ к источнику второго фактора.
SMS. Просто, понятно. Кажется надёжным. Это недостаточно защищённый канал. Например, недобросовестный сотрудник оператора выпустил вашу симку ещё кому-то, или сообщения перехватывают. Этот способ недостаточно доступный (потеря телефона, блокировка симки. А если вы за границей?). Этот способ позволяет восстановление (по паспорту вам выдадут ваш же номер в случае потери). Основная проблема, как всегда, в контроле -- контроль не на вас, а на операторе связи. И он может вас отключить или отдать ваши SMS другому человеку.
Мессенджеры или email. Не важно, Max, Telegram, любой. Почти всё то же самое, что у SMS. Контроль за аккаунтом не у вас. Заблочат вас по ошибке/взлому/изменению политики, и всё. Вы не войдёте ни в один из своих сервисов, которые должны были прислать вам код. А ещё мессенджеры часто приоритетная цель для взлома, так что больше риск потери контроля и случайного подарка взломщику.
Нам нужен способ, который максимально контролируем мы.
Time-based One-Time Password (TOTP). У вас есть приложение, которое без интернета, без связи генерирует новый код каждые 30 секунд. Т.е. банк/госуслуги/телеграмчик после ввода пароля просит ввести код, который меняется каждые 30 секунд. Как это работает в деталях и нудно, тут https://ru.wikipedia.org/wiki/TOTP, и ещё это быстрее, чем ждать тормозящие SMS.
Нюансы настройки TOTP (что жать-то)
Как это настроить базово и что нельзя делать:
- Вы вошли в «Госуслуги» (VK/иной сервис), выбрали двухфакторную аутентификацию, метод «Приложение для генерации кодов» (TOTP). Сервис дал вам QR. Этот QR главный секрет! Его нельзя никому показывать, отдавать, пересылать и т.д. Он рассказывает, как генерировать коды для этого сервиса.
- Вы отсканировали QR приложением в телефоне. Приложение даёт вам код.
- Вы ввели его в сервис для проверки, сервис сказал, что всё верно. Вы круты!
Что можно сделать не так и о чём подумать:
Вы сфотографировали QR смартфоном. Вы уверены, что у вас точно никуда не синхронизируются картинки? Ни в Google Фото, ни в Apple Хранилище, ни в Яндекс Диск, ни в Галерее куда-то. Лучше не фотографируйте.
Вы выбрали неизвестное приложение для генерации кодов. Возможно, оно в момент сканирования уже слило всё кому-то. Кстати, тот же Google аутентификтор сейчас очень любит синхронизировать в облако ваши коды. Что-то залил в облако == потерял контроль.
Вы не фотографировали, не сохраняли QR-код, взяли суперпроверенное приложение, которое не слышало про интернет. Всё отлично. И тут вы утопили телефон (украли воры/сам сломался) и... больше не можете никуда войти.
Внимательный читатель видит противоречие: что ни делай, всё проблемы.
Что нужно сделать: безопасно сохранить QR или текстовую строку, зашифрованную в QR. Так, чтобы в случае утери/поломки смартфона вы могли легко настроить на новом телефоне приложение для генерации всех своих кодов. Я понимаю, что те, кто знают, как «безопасно сохранить», вряд ли заинтересованы моей статьёй. Поэтому просто предложу свой вариант:
- Keepass, приложение. Сам использовал на Android, MacOS, Windows, Linux. Под iPhone вроде есть, но не пробовал. Оно создаёт базу паролей, и когда приложение закрыто — база лежит в зашифрованном виде на диске/телефоне. Оно умеет генерировать коды и хранить и строку для настройки TOTP, и резервные коды. Плюс можно выбрать хранение зашифрованного файла в облаке.
- Яндекс Диск (ранее Dropbox) для синхронизации зашифрованного файла базы. Если этот алгоритм шифрования взломают, то проблем будет куда больше, чем расшифровка моей базы паролей. Плюс локальное сохранение файла (доступ офлайн) на нескольких своих компьютерах.
Таким образом, я могу эту базу открыть хоть с ноута, хоть со стационарника, хоть с телефона, и любой из них мне выдаст код второго фактора (например, сел телефон). Более параноидальные люди будут входить только на одном устройстве (а вдруг кейлогер?).
Но как же облако? Это же плохо! Если совсем честно, то с точки зрения ограничения доступа — плохо. :) Если чуток деталей, то шифрование идёт у меня на устройствах. В облаке хранится только, конечно, зашифрованный файл. Теоретически утечка этого файла мне ничем не грозит (но прикладывать его в комментариях я всё равно не буду).
Но есть вторая сторона медали. Организация доступа себе. У меня задача ни в коем случае не потерять этот файл. Иначе мне очень сложно будет как-то получить доступ к своим аккаунтам. Конечно же, есть параноидальный риск, что я потеряю доступ ко.