Как содержать пароли. Мой сетап
- суббота, 20 января 2024 г. в 00:00:23
Я долго собирал информацию о том, как организовать свои аккаунты. Как сделать доступ к ним достаточно надёжным и стойким к утере девайсов.
Меня интересовало, как я могу залогиниться туда, где многофакторная авторизация через телефон, в случае потери телефона.
Или, как обезопасить себя от забывания мастер пароля от менеджера паролей? На моей практике я несколько раз забывал пин-код от банковской карты, состоящий из 4-ёх цифр, после ежедневного использования на протяжении многих месяцев. Мозг - странная штука.
В итоге, спустя месяцы изучения темы, я пришёл к следующему сетапу, который решил описать в виде мануала.
Потребуется запомнить только 2 мастер пароля. Остальное будет доступно в комбинации с мастер паролями. (идея взята из этой статьи)
Чтобы проверить работоспособность схемы, попробуйте вычеркивать разные узлы (что будет значить, что узел утерян или недоступен). Проверьте, имеете ли вы доступ к своим аккаунтам без этого узла?
Например, если поломается телефон на котором приложение 2FA, сможете ли вы залогиниться в почту?
Так же для проверки представьте, что какие-то данные скомпрометированы. Например, если пароль от netflix по вине netflix попадёт к злоумышленникам, какие данные они смогут получить?
А если утечёт один из ваших мастер-паролей?
Сколько я не тестировал эту схемку, мне кажется, всё будет хорошо до тех пор, пока не утекут оба ваших мастер-пароля.
В начале придумываем надёжный пароль длиной в 14 символов для парольного менеджера.
Затем придумываем надёжный пароль длиной в 14 символов для шифрования.
14 символов вполне достаточно, что бы не сильно париться со спец-символами в пароле, но их наличие не повредит.
Буквы в верхних и нижних регистрах и цифры рекомендую добавить обязательно, так как это не создаёт неудобств при вводе пароля.
На случай если мы случайно забудем пароли, стоит их записать на бумажку. Чтобы повысить безопасность этой бумажки, следует добавить ещё 1 слой защиты. (идея взята из этой статьи)
С помощью Banana Split делим нашу заметку с паролями по схеме Шамира на несколько кусков, печатаем их и обязательно от руки дописываем фразу для восстановления.
Прячем эти куски по отдельности в физическом мире на случай, если забудем пароль.
По умолчанию будет 3 куска. Для восстановления данных понадобятся любые 2. Если кто-то случайно найдёт 1, он не только не поймёт что это, но и не сможет получить данные.
1 кусок дома в сейфе, 1 кусок под чехлом телефона, 1 кусок дома у родителей в фотоальбоме с вашими фотками.
Если вы утопите телефон в реке - всё ок.
Если на ваш дом упадёт метеорит - всё ок.
Если вы поссоритесь с родителями и они решат сжечь альбом с вашими фотками - всё ок.
Если злоумышленник попытается получить ваши пароли, будет сложно достать даже 1 кусок, не говоря о двух.
Вы поехали в путешествие. 1 кусок кидаем в чемодан, 1 кусок в чехол смартфона, 1 кусок оставляем в сейфе в номере. Какая бы ситуация не произошла, скорее всего всё будет ок.
Примечание: Banana Split красивая, но скорее для параноиков. И ещё она не работает на телефоне. Более простой вариант, который работает везде и тоже сохраняется в виде html-файла - реализация от Иана Коулмана
Регистрируемся в Bitwarden с паролем для парольного менеджера.
Можно использовать и другой менеджер, но этот:
облачный, значит будет доступен везде
исходные коды открыты, значит есть возможность детально разобраться как он работает под капотом и стоит ли ему верить
есть платная версия, а значит есть доходы, на которые его будут поддерживать
немецкий, а европейцы сильно помешаны на конфиденциальности (UPD: формально он в США)
сквозное шифрование базы, а значит, без мастер пароля данные не доступны никому
ресурсо-стойкое шифрование, а значит, брутфорс будет невозможным, или дорогим
Устанавливаем на телефон Aegis Authenticator и защищаем его паролем для шифрования + биометрией для удобства.
Можно использовать и другой аутентификатор, но этот:
приложение блокируется паролем и биометрией, а значит, если ваш телефон попадёт не в те руки, им это ничего не даст
исходные коды открыты, значит есть возможность детально разобраться как он работает под капотом и стоит ли ему верить
нидерландский, а европейцы сильно помешаны на конфиденциальности
сквозное шифрование базы, а значит, без мастер пароля данные не доступны никому
Защищаем парольный менеджер при помощи 2FA Aegis
Открываем веб версию Picocrypt, сохраняем её (жмём Ctrl+U, затем Ctrl+A, затем Ctrl+C, потом открываем текстовый редактор, жмём Ctrl+V и Ctrl+S) и копируем на все наши устройства и во все облака.
Можно использовать и другой шифратор, но этот:
автономный и кросс-платформенный, а значит будет работать и на телефоне, и на планшете, и на маке, и на винде
открытые исходные коды, есть даже инструкция по сборке и zip архив с исходниками всех зависимостей
автор - школьник азиатского происхождения, который пока слишком молод, чтобы творить зло (хотя это скорее минус, но более удобных альтернатив я пока не нашёл. Самое близкое - hat.sh)
Экспортируем Aegis в не зашифрованном виде и шифруем с помощью Picocrypt, который мы только что везде сохранили.
В Aegis есть шифрованный экспорт, но так мы привяжем себя к инфраструктуре aegis, и если она окажется недоступной (приложение исчезнет из маркета), у нас могут появиться проблемы.
На случай, если ваш телефон сломался, а вам надо куда-то залогиниться, и другого телефона, чтобы установить aegis нету, можно воспользоваться 2FAuth, что бы 2FA был доступен с любого устройства. Но это сложный self-hosted инструмент, для которого нужен свой сервер и понимание что вы делаете, и как защитить ваши данные на серверном уровне.
Регистрируемся на Inbox.eu с паролем для шифрования. (Осторожно! Реферальная ссылка!)
Переходим в раздел файлов и загружаем туда бэкап из предыдущего шага и инструмент для расшифровки.
Можно и любое другое облако, потому что содержимое будет зашифровано собственными силами и утечки не критичны.
Регистрируемся в rememberthemilk (пароль генерируем и храним в bitwarden)
Настраиваем ежемесячную задачу для напоминания о бэкапе. Настраиваем оповещение по email на вашу почту, на которую приходят ежемесячные счета для оплаты коммуналки.
Теперь раз в месяц вместе с оплатой счетов мы будем создавать 2 бэкапа - 2FA Aegis и Bitwarden и шифровать их с помощью Picocrypt.
Шифрованные файлы и файл Picocrypt для расшифровки будем закидывать на все наши личные устройства, личные облака, специальное облако для бэкапа авторизаций, на наш смартфон и на флэшку, которую будем хранить в сейфе.
Можно и любой другой инструмент нотификаций, главное, чтобы он был привязан к вашим ежемесячным привычкам (подробнее в книге Атомные привычки).
Экспортируем не шифрованный бэкап Bitwarden и шифруем его при помощи Picocrypt паролем от парольного менеджера.
В Bitwarden есть шифрованный экспорт, но так мы привяжем себя к инфраструктуре Bitwarden, и если она окажется недоступной (сервер уйдёт в оффлайн), у нас могут появиться проблемы.
Пробуем восстановить мастер-пароли через куски QR-кодов
Пробуем дешифровать бэкап паролей из парольного менеджера
Пробуем дешифровать бэкап 2FA
Пробуем стереть все данные в Bitwarden и восстановить по бэкапу
Пробуем удалить Aegis, установить его снова и импортировать бэкап
Пробуем залогиниться на облако бекапов авторизаций и скачать бэкапы
В день счетов проверяем свой почтовый ящик на наличие нотификации об обновлении бэкапов
Если все шаги проверены успешно, можно двигаться дальше.
Если что-то зафейлилос, надо попробовать исправить, либо повторить все шаги с самого начала, создав новые аккаунты.
Идём по списку всех наших аккаунтов (список можно составить из головы + сохранённые пароли в браузере + списки oauth google и facebook) и:
меняем пароль на новый сгенерированный через Bitwarden
сохраняем новый пароль и авторизационные данные в Bitwarden
удаляем пароль из браузера
добавляем двухфакторную авторизацию через Aegis
Чтобы упростить себе жизнь, можно купить физический ключ доступа в качестве дополнения второго фактора к Bitwarden.
Таким ключом может быть Yubico Security Key
Можно и другой, но этот:
шведский, а европейцы сильно помешаны на конфиденциальности
разработан в партнёрстве с Google, т.е. имеет стандарт поддерживаемый крупным игроком
относительно не дорогой, т.е. альтернатив дешевле я не встречал
других почти нет и выбор крайне ограничен
Для большей степени защиты можно использовать пароль, который дописывать после пароля из менеджера паролей. (идея взята из этой статьи)
Например, ваш дополнительный кусок пароля - bob.
Если в менеджере паролей хранится Wj8R#ieL, то для регистрации и логина вы его копируете и дописываете bob, чтобы получилось Wj8R#ieLbob.
Таким образом, если данные вашего парольного менеджера утекут, злоумышленник всё равно не будет иметь полных паролей.
По сути, таким образом мы добавили ещё один фактор.
В заключении хочу добавить, что не следует быть параноиком, стоит просто соблюдать "гигиену" при организации логинов и паролей.
Ваши данные нужны кому-то только, если там детская порнография, или чёрная бухгалтерия с уходом от миллионов налогов.
Для нормального человека "гигиена" при организации логинов и паролей нужна для того, чтобы хакеры от вашего имени не рассылали спам и не занимались фишингом. Им интересны не данные, а возможность действовать от вашего лица.
Если в моём сетапе есть дыры, или вы знаете более хорошие альтернативы моим инструментам, смело отписывайте в комментариях.