Pull to refresh

Comments 34

Хранение паролей в облаке

Что вы имеете в виду под "облаком"? Чужой компьютер? Ноду на Digital Ocean?

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

Если два года назад я создал пароль на ноуте, а теперь он понадобился мне в аэропорту, а с собой только телефон -- иду я нафиг?

Но на мой взгляд, хранить данные локально - самая большая ошибка, даже в зашифрованном виде

То, что для вас является удаленным файлом, является локальным относительно "облака". Его так же могут слить.

Веселье начнется когда поменяешь комп/ноут/телефон. Все пароли недоступны.

Все что лежит у тебя на компе - твое. Все что лежит в облаке - не твое. Доступ к нему может пропасть по куче разных причин.

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

хранить пароли от всего подряд не стоит, ровно как и рядовому пользователю будет работать не совсем удобно

Тогда зачем все это нужно?

Что вы имеете в виду под "облаком"? Чужой компьютер? Ноду на Digital Ocean?

В данном случае - развернутый, например, компанией сервер. Как он развернут не так важно на деле в алгоритмической реализации: главное - разнести данные между устройством, на котором пароли используются, и устройством, на которых пароли хранятся.

Если два года назад я создал пароль на ноуте, а теперь он понадобился мне в аэропорту, а с собой только телефон -- иду я нафиг?

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

То, что для вас является удаленным файлом, является локальным относительно "облака". Его так же могут слить.

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

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

Поедлюсь своей схемой. У меня unix pass, пароли шифруются ключом GPG. Все хранится локально и синхронизируется черех приватный реп на Гитхабе. В данном случе это просто точка обмена, и даже если я сделаю репозиторий публичным, расшифровать ничего не выйдет, потому что GPG. Ключ я распечатал на листах А4 и храню в нескольких местах. Пароль от него держу в голове.

Наверное, я не совсем правильно выражаюсь, либо мы не понимаем друг друга. Я имею в виду, что хранить пароли без использования мастер-пароля небезопасно. Да, если использовать мастер-пароль для доступа к паролям, то все становится гораздо проще и безопаснее. Но именно от мастер-пароля я стремлюсь уйти. Да, не до конца: он представлен секретом для TOTP.

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

Почему же это безопаснее, если рассматривать хранение данных локально без использования мастер-ключа (это не ваш случай, конечно, но я беру сравнимые случаи)? Потому что выработку ключа шифрования может повторить любое вредоносное ПО и получить доступ к паролям.

В случае использования мастер-ключа, не спорю, безопасность все равно обеспечивается, но ее уровень зависит от сложности ключа. Согласитесь, пользователю вряд ли понравится вводить с бумажки что-то сложное.

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

Ок. Пароли зашифрованы ключом, зависимым от данных телефона. Телефон сломался/потерялся/украден/просто надоел. Что дальше? Вся база паролей превратилась в тыкву?

Может проще зашифровать ее каким-то сверхдлинным ключом и сразу его забыть?

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

Вы считаете это нормальным?

Вообще, замена телефона достаточно типичный сценарий. Равно как и замена или апгрейд компа.

И в каждой такой ситуации потеря базы паролей... Ну такое себе...

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

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

Важный поинт – современные "облачные" менеджеры паролей уже это делают (1пасс, битварден), при том в случае утери – вы же знаете свой мастер пароль? Который всё же сложный, но для вас лично легко запоминаемый

Где хранить пароли - там где удобно, куда есть быстрый доступ. Например, сейчас, в эпоху SSD и аппаратного ускорения шифрования, стало удобно шифровать носители информации, будь-то жёсткие диски, или флешки.. и часто при работе с ними у вас бывают и разные версии ОС и просто отсутствие Интернета, в этом случае пароль на флешке будет намного удобнее любого облака.

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

В чём хранить пароли - в чём нравится, хоть в .тхт, хоть на книжной полке.

Где хранить пароли - там где удобно, куда есть быстрый доступ.

Эмммм.. как насчёт в мозгу?

Ну вот пример. Только для работы мне требуется как минимум 3 пароля. Каждый минимум 12 символов, используются символы минимум 3-х групп из 4-х. Смена пароля не реже чем каждые 90 дней. На ввод правильного пароля 3 попытки, дальше учетка блокируется.

Мало что хранить все это в мозгу несколько напрягает, так еще и придумывать их регулярно фантазии не хватит (поэтому - генератор).

Поддерживаю предыдущего оратора

После того, как я попался менеджерам паролей и email relay (+pgp) – я честно даже логины не знаю, их более трёхста уже

Предпочту помнить что-то более важное, чем кучку кредов

Мозг может быть поврежден монтировкой. Если после этого я найду в сейфе бумажку, на которой написано, у кого взять части мастер-пароля, разделенные по Шамиру, мне будет гораздо проще восстановить доступ ко всему (ну и сменить пароль и владельцев его частей).

Мозг может быть поврежден монтировкой.

Откуда такая увереенность, что в этом случае владелец того мозга будет вообще знать, что у него вообще были какие-то пароли (ну или то, что защищено этими паролями)?

Если после этого я найду в сейфе бумажку

Если.

на которой написано, у кого взять части мастер-пароля

Так ведь это люди, которым я доверяю! Мне не надо их записывать.

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

Можно список и не писать. Тогда придется у всех спросить, кому доверяешь. Благо схема Шамира позволяет делать много кусочков из которых достаточны, например, три любых.

Для безопасного хранения паролей можно использовать какой-нибудь вариант реализации badusb, прилепив к нему сканер отпечатков или еще что-то такое, чтобы для паролей не вводить пароль. Да, для кодов запуска ядерных ракет не пойдет, но для 99.9% бытовых и рабочих нужд - идеально.

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

Со сканером отпечатков пальцев идея неплохая, я думал про нее. Но опять-таки, посмотрим на проблему слегка шире: где-то этот отпечаток пальца требуется хранить и создавать на его основании ключ доступа. И тут уже вопрос в том, насколько его реально выцепить. А еще в том, где пользователю взять сканер отпечатка пальцев, хотя эта проблема стоит в меньшей мере.

Сегодня у подавляющего большинства есть сканер биометрии, есть даже менеджер паролей, который стремится избавить всех пользователей от паролей добавив биометрию, см. демо https://youtu.be/RQHmljGydr0?si=NyDfMnRCtiXnjpfy

Если хочется максимальной безопасности, то проще разместить хранилище на локальной машине, у которой не будет доступа в сеть. Минус только в том, что придется вручную вводить его с другого монитора. Можно, конечно реализовать печать пароля на термоленте, с последующим считыванием его по OCR (можно и считывать с монитора), но это из разряда шапочки из фольги.

Но по-моему мнению безопаснее (для единичного пользователя) все-таки хранить у себя локально, потому что шанс того, что найдут доступ к данным компании явно больше, чем у отдельного взятого человека, который не переходит по странным ссылкам, не увлекается открытием всего и вся на своем устройстве и так далее (но это из разряда идеального пользователя, но мы же делаем прежде всего для себя и беспокоимся о собственной безопасности, вот и надо соответствовать)

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

Еще в сущности сама защита и не важна, когда ваш компьютер уже заражен каким-нибудь кейлоггером или чем-нибудь посложнее, тогда будь у вас хоть TOTP + аппаратный ключ + 800-значный пароль, все пароли будут просто уводить в момент копирования. Поэтому тут простая формула: каждый пароль уникален, везде ставить двухфакторную аутентификацию. Как минимум даже уведя пароль из базы, человек не сможет получить доступ к аккаунту, даже если он будет знать почту и пароль, потому что письмо придет или на телефон, или на почту, а восстановить почту он не сможет по причине той же двухфакторки или чего-нибудь по типу контрольных вопросов или верификации.

Тогда второй фактор ещё нужно по любому сильно отделять от места хранения паролей, например юзать альтернативу – https://2fas.com/

А для параноиков – https://support.yubico.com/hc/en-us/articles/360013789259-Using-Your-YubiKey-with-Authenticator-Codes , пробовал – неудобно очень 🤪

Хранить пароли можно и так https://www.qwertycards.com/ , только всплывает проблема смены пароля 🙃

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

А для параноиков –
https://support.yubico.com/hc/en-us/articles/360013789259-Using-Your-YubiKey-with-Authenticator-Codes, пробовал – неудобно очень

Странно, что никто не упоминает замечательную фишку Keepass(XC) как файловый ключ. Не надо покупать очень даже недешевый Yubico или подобный донгл-ключ. Не надо бояться, что этот донгл потеряется или сломается. Файл-ключ можно назвать каким нибудь ничего не говорящим именем и распихать отдельно везде по своим девайсам и по всему интернету. А без него, воруйте наздоровье базу с паролями, тоже распиханную везде по своим почтам, облакам. Никто ее не расшифрует. И не требуется суперпупер сложный мастер-пароль в этом случае. Можно что-то легкозапоминаемое. Успехов вам взломать такую конструкцию. И это я еще не упомянул такую вещь, как использование мнемотехники внутри базы паролей, свою систему описания паролей. Но это уже точно для совсем параноиков.

Никуда не девался самый надежный способ хранения паролей всех времен и народов - на обоях, за шкафом...

чтобы аутентифицироваться в системе необходимо иметь доступ либо к серверу

Очень безопасно, мда.. И это после такой долгой возни с криптографией.

На мой взгляд, автор статьи допустил глупую ошибку, за которую и огребает минусы. Статью читают прежде всего или сами "обычные пользователи" или с точки зрения "обычного пользователя", и для них многие положения статьи выглядят как полнейший бред. И только в последнем(!) абзаце, до которого большинство и не дочитает, автор говорит, что это всё в принципе не подходит для обычного пользователя, а решает он на самом деле какую-то узкую, локальную задачу. Вот тебе и раз!

Надо было в самом начале статьи описать эту самую решаемую задачу. Она кстати так и осталась совершенно невнятной. А уж потом объяснять, чем одни решения для неё плохи, а вот Ваше - хорошо. И что большинству можно просто пройти мимо этой статьи.

Как раз сейчас раздумываю, на что менять менеджер RoboForm - именно потому, что сейчас всё перевёл в облако. А мне это категорически не нравится. Я люблю, чтобы всё было у меня, на локальном компьютере. В облаке - исключительно только бэкап-копии, которые нужны лишь на случай локального краша.

Вот, как я смотрю, KeePass - похоже, хорошая альтернатива.

Да. KeePass. Хранит на локале. Т.е. можно все делать на телефоне, при необходимости скопировать руками базу на комп и там с ней работать. Никаких облаков.

Вот только всё, что тут описано - это однофакторная авторизация. Задействуется только фактор владения: что в виде аппаратно-зависимого ключа, что в виде TOTP.

Ни фактор знания, ни фактор неотъемлемого свойства пользователя - не задействуются вообще.

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

Рассказ "Хакер в столовой". Классика.

Что я сейчас прочитал... безопаснее всего хранить на внешнем защищённом носителе. У меня для этих целей два рутокена эцп флеш по 32гб, рутокен разбит на 2 раздела один с собранной minios для работы с pkcs11, а второй раздел полностью зашифрован veracrypt, пароль + ключевой файл и все это защищено от записи/удаления, там есть конечно вариант просто купить эцп флеш + рутокен диск. Но это возможно не защищено от товарища майора... А так можно хранить прост на флешках полностью защифрованных veracrypt ну или luks смотря кто в чем работает

на мой взгляд, хранить данные локально - самая большая ошибка, даже в зашифрованном виде: например, в Windows, можно утащить почти любой файл, хранящийся в системе

Если к вашей ос получен доступ, уже неважно где вы пароли храните, хоть в облаке, хоть локально в бд. Защита от этого только отдельное устройство (ноутбук/аппаратный парольный менеджер)

поэтому нарушителю достаточно перебрать пароли на других сервисах, на случай, если пользователь просто использует одни и те же пароли

Гениальная идея, использовать парольный менеджер без генератора паролей, а сохранять один и тот же пароль от всех сервисов.

что, если сольют базу данных самого Bitwarden

Данные там хранятся не в чистом виде, а хэш/соль. Удачи взломать argon2

О том что заходить можно только с того же устройства даже не буду упоминать, что потеря/смена конфигурации устройства автоматически приводит к потере всего, и если злоумышленник получил доступ к ос ничего не мешает ему попробовать спуфить этот айди. Тут только привязка к tpm поможет, в качестве совсем безумного примера можете еще на своем сервере выставить получение доступа до бд только с определённого айпи адреса, эффект примерно тот же будет

Если вы действительно беспокоитесь, то вот вам варианты

1) Использовать passkeys, если ваше устройство поддерживает биометрию

2) Использовать TOTP на другом устройстве в виде телефона, но не привязывать аккаунт к сим карте.

3) Если у вас паранойя, то купить любой fido2 поддерживающий ключ и использовать его в качестве второго фактора

Sign up to leave a comment.

Articles