Сервисы 03 ноя 2019 ~10 мин.

Как правильно хранить пароли

Начало 07.10.2019. Статья обещает быть обширной.

Моим первым паролем был “хахаха”. Не даром в ВК меня быстренько взломали. Затем у меня был один пароль на все случаи жизни. Инцидентов не было, но метод далек от идеального. Стоит узнать один пароль, как учетные записи других сервисов окажутся под угрозой. Следующим шагом был пароль, состоящий из двух частей: общим префиксом и доменным именем сайта. Могло это выглядеть примерно так: “МойСуперМощныйПароль123.vk.com”. Это все ещё очень плохо.

Я рос. Росла и моя паранойя. Сейчас у меня для каждого отдельного сайта или приложения свой уникальный, неповторимый, устойчивый к атакам пароль.

В этой статье я расскажу, как правильно хранить свои пароли, чтобы было удобно, и безопасность не страдала.

TL;DR

Можно пропустить первый подзаголовок и сразу перейти к готовому рецепту.

Но тогда вы пропустите самое интересное :blush:

Об альтернативных способах

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

Про один пароль для всего и общую приставку я уже рассказал. Так делал не только я. Но есть более диковинные способы.

Вместе с каждым способом будут субъективные ответы на 2 вопроса:

  • “Безопасно ли это” – как много людей и как легко они могут узнать пароли из этого источника.
  • “Надежно ли это” – что будет в чрезвычайных ситуациях; насколько легко можно потерять доступ ко всему.

Бумажный блокнотик

Так делают, но обычно люди преклонного возраста. Небольшая книжечка с различного рода записями, где в разных частях можно увидеть пароль от WiFi, Play Store или Одноклассников. Помимо блокнотиков используется со всех сторон исписанный листочек или даже упаковка от таблеток *[TODO Сделать фото].

  • Безопасно ли это? Условно. Однозначно, что пароль не будет стянут каким-либо хакером, так как доступ только физический. Можно ли доверять всем, кто может оказаться рядом? Если ты бабушка, то рисковать особо нечем :blush:

  • Надежно ли это? Опять же, очень ситуативно. Бумажка может потеряться, сгореть или забыться. Зато нет риска потерять доступ к сервису в случае амнезии.
    (Пожалуй, это единственный способ устойчивый к амнезии)

Онлайн-заметки

Из хорошо известных заметочных сервисов, я знаю только Evernote и Google Keep. Последним я стал пользоваться в году так 2013, когда он был совсем еще юным. (первый мне не понравился). Есть еще всякие Google Docs и прочие места, куда можно писать текст и читать его со всех устройств. Пароли можно хранить и там. Но…

  • Безопасно ли это? Вариант с бумажкой был куда более безопасным. Хранить пароли в открытом виде очень даже плохо по нескольким причинам:
    1. Есть только один способ, как узнать пароль из блокнота – стащить сам блокнот. Но есть N способов, как узнать его из подобного рода сервисов – X по количеству устройств + Y по количеству заинтересованных хакеров + Z по количеству “забыл выйти у друга”.
    2. Любая утечка и все пароли буду скомпрометированы. Как веб-разработчик могу уверенно сказать: никому нельзя доверять. Даже если используются все способы того, как обезопасить свои заметки, всегда есть человеческий фактор как с вашей стороны, так и со стороны создателей сервиса.
  • Надежно ли это? Достаточно. Но с одной оговоркой: сервис должен поддерживать историю изменений файла/заметки. Иначе любое случайное удаление/редактирование может уничтожить все.

Пароль-карта

Есть еще один интересный способ – пароль-карта. Это может быть физически реальный объект или приложение на телефоне.

Вот пример, сгенерированный на этом сайте:

Пароль-карта

Или вот многообещающее приложение:

Еще одна пароль-карта

Вторым приложением я не пользовался, но картой пытался. Достаточно удобно то, что это может быть как настоящая распечатанная карточка, так и приложение на телефоне или ссылка, сохраненная в браузере.

Для этого метода важно помнить и надежно хранить 2 вещи:

  1. Мастер-ключ (или мастер-пароль – пароль для доступа ко всем паролям). В случае с первой картой он является e1b18dd6f30ed2f5 (написан в самом низу), который можно записать куда угодно, но в безопасное место. Вводя этот ключ в специальное поле, будет выдана одна и та же карта, что необходимо в случае утери онной.
  2. Нужно запоминать способ, как вытягивается пароль. Это может быть простая ассоциация со значком, где потом используются все символы подряд. Или что-то более замысловатое. На сайте есть инструкции и рекомендации, как выбирать пароли, чтобы было безопасно.
  • Безопасно ли это? Все зависит только от тебя. Чем сложнее способ извлечения пароля, тем надежнее он будет. Дополнительно надежности дает то, что нельзя наверняка сопоставить значок на карте и сам сервис. Даже при утере карточки, новый обладатель вряд ли догадается, что с ней делать.
  • Надежно ли это? Вполне. Мастер-ключ можно записать в несколько мест: в онлайн-заметки, в блокнотик, нацарапать на стене за диваном. Карта может быть восстановлена в любое время. Сложнее, когда забывается ассоциация со значком или способ выбора пароля. В этом плане этот метод имеет серьезный недостаток, из-за чего лично я отказался от его использования.

Онлайн сервисы

Такие сайты-приложения как LastPass и 1password предлагают взять весь менеджмент паролей на себя. Это как хранить данные в онлайн-заметках, только надежнее. Второй аж прям обещает, что ваши данные остаются только вашими.

Обещание 1password

Эти сервисы богаты функционалом и предлагаемыми решениями: программы и приложения для всех ОС, расширения для браузеров и API для тех, кому этого мало.

Но есть одно НО: любая информация в интернете вам не принадлежит. Хотя они и обещают полную конфиденциальность, в определенный момент это может стать не так. Это касается различных законов со стороны государства, а также хакеров, которые денно и нощно придумывают все новые и новые способы обхода защиты подобных сайтов.

  • Безопасно ли это? Достаточно, но с оговорками. Для обычного пользователя, у которого нет паранойи и особо нечего скрывать, это наилучший выбор. Сами компании не заинтересованы, чтобы ваши данные утекли кому-то еще, так как это репутация, которая играет важную роль на конкурентном рынке. Главное, чтобы эти данные не утекли из-за вас самих. Пароль должен быть достаточно сложным и длинным, чтобы даже в случае утечки данных их нельзя было расшифровать.
  • Надежно ли это? Настолько, насколько надежна компания, которой вы доверяете. Я думаю, ваши данные не только надежно хранятся и оберегаются, но и регулярно делаются резервные копии на случай какого-либо сбоя. Из всех вышеперечисленных способов, этот самый надежный. Приятным бонусом является то, что знать достаточно только один пароль.

KeePass

В мире много умных людей, которые сталкивались с этой проблемой. И они создали по-настоящему хорошее решение.

Встречайте: KeePass!

KeePassXC

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

Это одновременно программа, формат файла и алгоритм безопасного хранения данных. Все ваши пароли хранятся внутри .kdbx файла, который зашифрован в цикле несколько тысяч (а то и больше) раз кодовым словом, файлом или и тем и другим.

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

Рецепт

Так как я активный пользователь ОС Linux и Android, моё решение будет заточено в первую очередь под мои потребности и ограничения.

Выбор программного обеспечения

Для пользователей Windows стандартом является официальный клиент KeePass, который имеет тонну плагинов и дополнений. Его тоже можно запустить на Linux и Mac OS, но у меня это выглядело весьма уродливо. Поэтому мой выбор пал на KeePassXC. Он является форком KeePassX (буквы “C” нет) с внушительным списком дополнительных возможностей.

В качестве клиента для Android выбор пал на Keepass2Android. Для iOS есть какой-то KeePass Touch, который тоже умеет синхронизироваться с Dropbox, но я им не пользовался, поэтому и осознанно порекомендовать ничего не могу.

В качестве хранилища использую Dropbox, потому что для Linux есть клиент, который синхронизирует файлы с теми, что лежат на компе, что дает возможность пользоваться одной базой на нескольких устройствах. Также Keepass2Android умеет работать с хранилищем почти напрямую.

Если совсем кратко:

Ложка дегтя

При всей красоте этого варианта, он не лишен недостатков:

  • Один пароль от всего является как преимуществом, так и недостатком. Стоит злоумышленнику стащить мастер-пароль, всё, что вы так бережно хранили, окажется под угрозой. Например это значит, что в публичных местах, типа кафе, библиотек и торговых центров, можно засветить пароль на камеру.
  • Хранение базы в Dropbox может казаться хорошей идеей, если бы не одно НО: он хранит старые версии файла в течение 30 дней. (насколько я знаю, почистить историю файла можно только при удалении самого файла… не очень удобно) Это значит, что менять мастер-пароль чаще, чем раз в 30 дней – не есть хорошая идея. Самое лучшее – хранить файл на своем сервере, что позволить и даже осилить может не каждый.
Журнал версий моего файла с паролями
Журнал версий файла с паролями
  • Помимо этого, нужно помнить как минимум 2 пароля: от Dropbox и от хранилища. И они должны быть достаточно сложными, надежными и разными. (а еще нужно помнить пароль от телефона, пинкоды от всех банковских карт и т.д.)

Приходится мириться с этими условностями, чтобы, получив достаточную безопасность, не потерять и удобство использования. До идеала в этой схеме не хватает выделенного доверенного хранилища и регулярной смены мастер-пароля.

  • Безопасно ли это? Из всех вариантов, этот самый лучший. Его может осилить любой, кто хоть как-то владеет компьютером и смартфоном. При этом данные принадлежат только вам… пока вы сохраняете бдительность и осторожность.
  • Надежно ли это? Файл с паролями будет храниться на всех устройствах, куда вы подключите Dropbox, а так же в самом Dropbox’e. Бо́льшую надежность, я думаю, не предоставит никто.

Бочка мёда

Но минусы очень хорошо перевешиваются плюсами:

  • Подобные программы разработаны быть устойчивыми к вирусам. Из браузера стащить пароль может любое расширение. Из программы – только человек.
  • Если все правильно настроить, программа самостоятельно заблокирует хранилище с паролями в течение N минут бездействия. Это защищает от случаев “отошел от компа, но забыл заблокировать”.
  • В случае приложения для Android, есть возможность разблокировать хранилище последними несколькими символами пароля. Очень удобно и достаточно безопасно – дается всего одна попытка и наступает полная блокировка, где нужно ввести кодовую фразу целиком.
  • Еще раз про это приложение: оно позволяет вводить пароли из встроенной в него клавиатурой. Это значит, что пароль не окажется в буфере обмена и его невозможно будет стащить таким образом.
  • Приложения для ПК имеют функцию автоввода: ставишь курсор на поле с логином, открываешь приложение, находишь нужную запись, жмешь комбинацию клавиш (обычно Ctrl+V) и вуоля – все данные введены за вас. Если последовательность действий для сайта отличается от классической, то ее можно настроить прямо в записи.
  • Если пароль скопировать, то буфер обмена автоматически будет очищен через определенный промежуток времени.
  • Возможно сохранить секретное слово для двух-этапной аутентификации (TOTP, Steam Guard) и копировать его прямиком из менеджера паролей. (Ctrl+T в случае KeePassXC)
  • Встроенные возможности:
    • Генератор паролей;
    • Примечания и дополнительные атрибуты;
    • Ссылка на сайт с возможностью открыть прямо из программы;
    • Вложения в виде файлов;
    • Значок к записи (KeePassXC может скачивать значок с сайта, а с последним обновлением для нескольких записей);
    • История изменений и корзина;
    • Напоминание о необходимости изменить пароль;
    • Вложенные папки;
    • И много всего еще…

Вывод очевиден: храните свои пароли правильно. Никто из вас не заинтересован быть взломанными, поэтому воспользуйтесь любым безопасным и надежным способом хранения ваших данных. Я надеюсь, эта статья дала понимание существующей проблемы и её решения, и вы прислушаетесь к моим советам вам же во благо :blush: