Как содержать пароли. Мой сетап

в 5:13, , рубрики: 2FA-аутентификация, аутентификация, бэкапирование, парольные менеджеры, хранение паролей, шифрование данных

Я долго собирал информацию о том, как организовать свои аккаунты. Как сделать доступ к ним достаточно надёжным и стойким к утере девайсов. 

Меня интересовало, как я могу залогиниться туда, где многофакторная авторизация через телефон, в случае потери телефона. 

Или, как обезопасить себя от забывания мастер пароля от менеджера паролей? На моей практике я несколько раз забывал пин-код от банковской карты, состоящий из 4-ёх цифр, после ежедневного использования на протяжении многих месяцев. Мозг - странная штука. 

В итоге, спустя месяцы изучения темы, я пришёл к следующему сетапу, который решил описать в виде мануала.

Потребуется запомнить только 2 мастер пароля. Остальное будет доступно в комбинации с мастер паролями. (идея взята из этой статьи

Схема защиты устройств и бэкапов моего сетапа

Схема защиты устройств и бэкапов

Схема защиты устройств и бэкапов

Чтобы проверить работоспособность схемы, попробуйте вычеркивать разные узлы (что будет значить, что узел утерян или недоступен). Проверьте, имеете ли вы доступ к своим аккаунтам без этого узла?

Например, если поломается телефон на котором приложение 2FA, сможете ли вы залогиниться в почту? 

Так же для проверки представьте, что какие-то данные скомпрометированы. Например, если пароль от netflix по вине netflix попадёт к злоумышленникам, какие данные они смогут получить? 

А если утечёт один из ваших мастер-паролей? 

Сколько я не тестировал эту схемку, мне кажется, всё будет хорошо до тех пор, пока не утекут оба ваших мастер-пароля. 

Инструкция

1. Придумайте два мастер-пароля 

В начале придумываем надёжный пароль длиной в 14 символов для парольного менеджера. 

Затем придумываем надёжный пароль длиной в 14 символов для шифрования. 

Скорость взлома пароля
Скорость взлома пароля

14 символов вполне достаточно, что бы не сильно париться со спец-символами в пароле, но их наличие не повредит. 

Буквы в верхних и нижних регистрах и цифры рекомендую добавить обязательно, так как это не создаёт неудобств при вводе пароля. 

 2. Создайте бэкап мастер-паролей 

На случай если мы случайно забудем пароли, стоит их записать на бумажку. Чтобы повысить безопасность этой бумажки, следует добавить ещё 1 слой защиты. (идея взята из этой статьи

С помощью Banana Split делим нашу заметку с паролями по схеме Шамира на несколько кусков, печатаем их и обязательно от руки дописываем фразу для восстановления. 

Прячем эти куски по отдельности в физическом мире на случай, если забудем пароль. 

По умолчанию будет 3 куска. Для восстановления данных понадобятся любые 2. Если кто-то случайно найдёт 1, он не только не поймёт что это, но и не сможет получить данные. 

Так выглядят куски, созданные чрез Banana Split

Так выглядят куски, созданные чрез Banana Split

Пример 1. 

1 кусок дома в сейфе, 1 кусок под чехлом телефона, 1 кусок дома у родителей в фотоальбоме с вашими фотками. 

Если вы утопите телефон в реке - всё ок. 

Если на ваш дом упадёт метеорит - всё ок. 

Если вы поссоритесь с родителями и они решат сжечь альбом с вашими фотками - всё ок. 

Если злоумышленник попытается получить ваши пароли, будет сложно достать даже 1 кусок, не говоря о двух. 

Пример 2. 

Вы поехали в путешествие. 1 кусок кидаем в чемодан, 1 кусок в чехол смартфона, 1 кусок оставляем в сейфе в номере. Какая бы ситуация не произошла, скорее всего всё будет ок. 

Примечание: Banana Split красивая, но скорее для параноиков. И ещё она не работает на телефоне. Более простой вариант, который работает везде и тоже сохраняется в виде html-файла - реализация от Иана Коулмана

3. Заводим парольный менеджер 

Регистрируемся в Bitwarden с паролем для парольного менеджера. 

Можно использовать и другой менеджер, но этот: 

  • облачный, значит будет доступен везде 

  • исходные коды открыты, значит есть возможность детально разобраться как он работает под капотом и стоит ли ему верить 

  • есть платная версия, а значит есть доходы, на которые его будут поддерживать 

  • немецкий, а европейцы сильно помешаны на конфиденциальности (UPD: формально он в США)

  • сквозное шифрование базы, а значит, без мастер пароля данные не доступны никому 

  • ресурсо-стойкое шифрование, а значит, брутфорс будет невозможным, или дорогим 

4. Подготавливаем 2FA (многофакторная авторизация)

Устанавливаем на телефон Aegis Authenticator и защищаем его паролем для шифрования + биометрией для удобства. 

Можно использовать и другой аутентификатор, но этот: 

  • приложение блокируется паролем и биометрией, а значит, если ваш телефон попадёт не в те руки, им это ничего не даст 

  • исходные коды открыты, значит есть возможность детально разобраться как он работает под капотом и стоит ли ему верить 

  • нидерландский, а европейцы сильно помешаны на конфиденциальности 

  • сквозное шифрование базы, а значит, без мастер пароля данные не доступны никому 

5. Добавляем 2FA в Bitwarden

Защищаем парольный менеджер при помощи 2FA Aegis 

6. Подготавливаем шифровальный инструмент 

Открываем веб версию Picocrypt, сохраняем её (жмём Ctrl+U, затем Ctrl+A, затем Ctrl+C, потом открываем текстовый редактор, жмём Ctrl+V и Ctrl+S) и копируем на все наши устройства и во все облака. 

Можно использовать и другой шифратор, но этот: 

  • автономный и кросс-платформенный, а значит будет работать и на телефоне, и на планшете, и на маке, и на винде 

  • открытые исходные коды, есть даже инструкция по сборке и zip архив с исходниками всех зависимостей 

  • автор - школьник азиатского происхождения, который пока слишком молод, чтобы творить зло (хотя это скорее минус, но более удобных альтернатив я пока не нашёл. Самое близкое - hat.sh

7. Создаём бэкап 2FA

Экспортируем Aegis в не зашифрованном виде и шифруем с помощью Picocrypt, который мы только что везде сохранили. 

В Aegis есть шифрованный экспорт, но так мы привяжем себя к инфраструктуре aegis, и если она окажется недоступной (приложение исчезнет из маркета), у нас могут появиться проблемы. 

На случай, если ваш телефон сломался, а вам надо куда-то залогиниться, и другого телефона, чтобы установить aegis нету, можно воспользоваться 2FAuth, что бы 2FA был доступен с любого устройства. Но это сложный self-hosted инструмент, для которого нужен свой сервер и понимание что вы делаете, и как защитить ваши данные на серверном уровне. 

8. Создаём облако для бэкапов инструментов авторизаций

Регистрируемся на Inbox.eu с паролем для шифрования. (Осторожно! Реферальная ссылка!)

Переходим в раздел файлов и загружаем туда бэкап из предыдущего шага и инструмент для расшифровки. 

Можно и любое другое облако, потому что содержимое будет зашифровано собственными силами и утечки не критичны. 

9. Добавляем нотификации для обновления бэкапов

Регистрируемся в rememberthemilk (пароль генерируем и храним в bitwarden) 

Настраиваем ежемесячную задачу для напоминания о бэкапе. Настраиваем оповещение по email на вашу почту, на которую приходят ежемесячные счета для оплаты коммуналки. 

Теперь раз в месяц вместе с оплатой счетов мы будем создавать 2 бэкапа - 2FA Aegis и Bitwarden и шифровать их с помощью Picocrypt. 

Шифрованные файлы и файл Picocrypt для расшифровки будем закидывать на все наши личные устройства, личные облака, специальное облако для бэкапа авторизаций, на наш смартфон и на флэшку, которую будем хранить в сейфе. 

Можно и любой другой инструмент нотификаций, главное, чтобы он был привязан к вашим  ежемесячным привычкам (подробнее в книге Атомные привычки). 

10. Создаём бэкап парольного менеджера

Экспортируем не шифрованный бэкап Bitwarden и шифруем его при помощи Picocrypt паролем от парольного менеджера. 

В Bitwarden есть шифрованный экспорт, но так мы привяжем себя к инфраструктуре Bitwarden, и если она окажется недоступной (сервер уйдёт в оффлайн), у нас могут появиться проблемы. 

11. Проверяем, что всё сделали правильно

  • Пробуем восстановить мастер-пароли через куски QR-кодов 

  • Пробуем дешифровать бэкап паролей из парольного менеджера 

  • Пробуем дешифровать бэкап 2FA 

  • Пробуем стереть все данные в Bitwarden и восстановить по бэкапу 

  • Пробуем удалить Aegis, установить его снова и импортировать бэкап 

  • Пробуем залогиниться на облако бекапов авторизаций и скачать бэкапы 

  • В день счетов проверяем свой почтовый ящик на наличие нотификации об обновлении бэкапов 

Если все шаги проверены успешно, можно двигаться дальше. 

Если что-то зафейлилос, надо попробовать исправить, либо повторить все шаги с самого начала, создав новые аккаунты. 

12. Мигрируем

Идём по списку всех наших аккаунтов (список можно составить из головы + сохранённые пароли в браузере + списки oauth google и facebook) и: 

  • меняем пароль на новый сгенерированный через Bitwarden 

  • сохраняем новый пароль и авторизационные данные в Bitwarden 

  • удаляем пароль из браузера 

  • добавляем двухфакторную авторизацию через Aegis 

Дополнительно 

Чтобы упростить себе жизнь, можно купить физический ключ доступа в качестве дополнения второго фактора к Bitwarden. 

Таким ключом может быть Yubico Security Key 

Можно и другой, но этот: 

  • шведский, а европейцы сильно помешаны на конфиденциальности 

  • разработан в партнёрстве с Google, т.е. имеет стандарт поддерживаемый крупным игроком 

  • относительно не дорогой, т.е. альтернатив дешевле я не встречал 

  • других почти нет и выбор крайне ограничен 

Электронный физический ключ хорошо интегрируется в связку с обычными ключами из прошлой эпохи

Электронный физический ключ хорошо интегрируется в связку с обычными ключами из прошлой эпохи

И ещё:

Для большей степени защиты можно использовать пароль, который дописывать после пароля из менеджера паролей. (идея взята из этой статьи

Например, ваш дополнительный кусок пароля - bob. 

Если в менеджере паролей хранится Wj8R#ieL, то для регистрации и логина вы его копируете и дописываете bob, чтобы получилось Wj8R#ieLbob. 

Таким образом, если данные вашего парольного менеджера утекут, злоумышленник всё равно не будет иметь полных паролей. 

По сути, таким образом мы добавили ещё один фактор. 

Заключение

В заключении хочу добавить, что не следует быть параноиком, стоит просто соблюдать "гигиену" при организации логинов и паролей. 

Ваши данные нужны кому-то только, если там детская порнография, или чёрная бухгалтерия с уходом от миллионов налогов. 

Для нормального человека "гигиена" при организации логинов и паролей нужна для того, чтобы хакеры от вашего имени не рассылали спам и не занимались фишингом. Им интересны не данные, а возможность действовать от вашего лица. 

Если в моём сетапе есть дыры, или вы знаете более хорошие альтернативы моим инструментам, смело отписывайте в комментариях.

Автор:
aleksejs1

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js