LINUX.ORG.RU
ФорумTalks

Менеджер паролей без хранения данных

 ,


0

2

Покритикуйте идею.

В чём суть: создать менеджер паролей, который будет работать с мастер-паролем, но без самой базы.

Самый тупой вариант: echo 'Legioner:linux.org.ru:m@sterP@55w0rd' | sha256sum но он не позволяет менять пароль.

Чтобы менять пароль, нужно добавить ещё один компонент. Назовём его token. Т.е. получается такая формула: echo 'token:Legioner:linux.org.ru:m@sterP@55w0rd' | sha256sum. Если мы хотим поменять пароль, мы проcто меняем token. Причём сам по себе token может быть публичный, его ни от кого скрывать не надо. Надо просто, чтобы он хранился на самом сайте, ведь не запомнишь все эти токены.

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

По сути нужно публичное хранилище ассоциаций вроде Legioner:linux.org.ru -> token. И тут я застопорился, т.к. не знаю таких хранилищ. Конечно можно организовать сервис на пожертвования, но это выглядит не слишком надёжным.

Один из вариантов это использовать биткоин. Как известно, в блокчейне биткоина можно навечно сохранять любую информацию. Я не нашёл расчётов именно для биткоина, для эфира я нашёл расчёты: Costs Of Storing Data On The Blockchain. У них получилось примерно рубль за байт. Если хранить sha-256 хеш (32 байта) и ещё 32 байта токен, то получится примерно 70 рублей за пароль. Дороговато. Если хранить 500 паролей и менять каждый пароль раз в год, получается 35 000 рублей в год. Причём цена привязана к цене эфира. К примеру в статье расчёты для $500 за эфир, сейчас он стоит $3000, т.е. надо ещё на 6 умножать.

Я плохо знаю, как работают технологии вроде IPFS, DHT. Нет ли какого-то способа хранить 32 килобайта на пользователя, причём это должно быть 100% надёжно, как можно более дёшево, не иметь единых точек отказа.

★★★★★

А можно всю схему работы с таким токеном на ресурсе: регистрация -> идентификация -> аутентификация -> авторизация?

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)

ЯННП, но звучит как очередной велосипед.

cocucka ★★★★☆
()

храню пароли в текстовом файле, который храню на флешке вместе с лайв-образом линукса.

чем решение проще — тем оно вернее.

а эти ваши выкрутасы зовутся over engineering и проходят с возрастом.

Spoofing ★★★★★
()
Ответ на: комментарий от vvn_black

Генерируешь пароль по вышеописанной схеме. Регистрируешься с этим паролем. Сохраняешь токен в публичной информации аккаунта (если на сайте есть такой функционал). В дальнейшем перед логином смотришь токен, генерируешь пароль и логинишься с ним. Со стороны сайта ничего не требуется (глупо проектировать менеджер паролей, который будет работать только с совместимыми сайтами).

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

Legioner ★★★★★
() автор топика

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

Kolins ★★★★
()
Ответ на: комментарий от Spoofing

храню пароли в текстовом файле, который храню на флешке вместе с лайв-образом линукса.

А что делаешь, если тебе надо с айфона зайти куда-то?

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Kolins

Вся проблема с базой в том, что её нужно не потерять, её нужно синхронизировать по всем устройствам. Именно от этого хочется уйти, когда думаешь про менеджер паролей без БД (stateless).

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Это пример. Мой настоящий пароль другой.

что правда??? ну как так то!

crypt ★★★★★
()
Ответ на: комментарий от Avial

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

Legioner ★★★★★
() автор топика

А чем это отличается от KeePass? Тебе надо хранить токен, который по сути тот же пароль. Закинь свою базу паролей в децентрализованное хранилище

SR_team ★★★★★
()

Идея норм, но она не нова. Такие менеджеры паролей уже существуют.

aquadon ★★★★★
()

Зачем token? ‘Legioner:linux.org.ru’ — сам по себе уникальный идентификатор для данного сайта.

ugoday ★★★★★
()
Ответ на: комментарий от Kolins

Это же просто БД у хостера ДНС. Тогда уж лучше купить у гугла нормальную БД. Но это централизованный способ. Забанит меня гугл и останусь без паролей.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от theNamelessOne

благоБдаря UEFI загрузка системы осуществляется с FAT32 раздела, т.е. флешка это просто FAT32-флешка со всеми данными, дак ещё и загружается в UEFI.

создать такую загрузочную систему можно с любым линуксом, просто booty build linux_chroot_directory/, а затем содержимое получившегося ISO файла скопировать на FAT32-флешку cp -r и можно грузиться в UEFI на любом устройстве.

соответственно, сделать бэкап, это даже не dd, а просто cp -r.

думать о том, что флешка сломается, ну не то.

Spoofing ★★★★★
()
Ответ на: комментарий от Legioner

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

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

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

Legioner ★★★★★
() автор топика

Самый тупой вариант: echo ‘Legioner:linux.org.ru:m@sterP@55w0rd’ | sha256sum но он не позволяет менять пароль.

А каким-то образом получить обратно сохраненный пароль оно позволяет? Вот этот m@sterP@55w0rd? Или он один для всех и хранится в голове?

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от Nervous

Не понял вопроса. Запускаешь эту команду сколько угодно раз, она будет выдавать всегда один и тот же результат.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Nervous

пароль — это контрольная сумма от строки, а не его мастерпа55в0рд

мастерпассворд у него на все ресурсы одинаковый

mogwai ★★★★★
()

Покритикуйте идею

MS отменила пароли ©.

quickquest ★★★★★
()

Почему еще никто из модераторов не забанил тса за выложенный пароль? Емнип, для забана даже не обязательно правильный пароль указывать. И фернандоса не позвали, чтобы проверил.

sehellion ★★★★★
()

не позволяет менять пароль

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

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

Nervous ★★★★★
()
Ответ на: комментарий от Spoofing

О, у меня как раз есть (оффтопичный, правда) вопрос про флешки.

Есть сервер, который почти всегда живёт с корнем в tmpfs. Грузится с флешки, которая воткнута в материнку, вокруг много горячих компонентов. На флешке помимо /boot лежит кеш пакетов, чтобы их можно было устанавливать без сети.

Сервер перезапускается редко, раз в пару месяцев при сбоях питания либо для обновления ядра.

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

Стоит ли пробовать брать такие же флешки, как на фото, для этой цели?

kmeaw ★★★
()
Ответ на: комментарий от Nervous

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

  1. Утекла БД сайта, сайт требует сменить пароль.
  2. Есть подозрение, что кто-то подсмотрел пароль.
  3. Вводил пароль на недоверенном компьютере (конечно предполагается, что мастер пароль вводился на отдельном устройстве).
  4. Просто такой сайт, который требует периодически менять пароль. Банки таким балуются.
Legioner ★★★★★
() автор топика
Ответ на: комментарий от kmeaw

Стоит ли пробовать брать такие же флешки, как на фото, для этой цели?

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

я бы посоветовал перейти на PXE загрузку по сети, а уже в initramfs целиком упаковать систему, если конечный объём будет в пределах 512мб. я встречал ограничения на ряде материнских плат (бытовых, десктопных), которые отказываются загружать initramfs если он более 0,5гб. так вот, если систему пожать в squashfs, положить в initramfs, и будет в пределах 500мб — тогда можно.

но ещё как вариант, грузиться в маленькое initramfs, откуда уже после загрузки подсасывать со стороннего ресурса, например, по http, ещё один образ системой, и уже в него делать switch_root.

пусть это колхоз, но в конечном счёте без флешек, по сети.

у меня для таких целей как раз используется мини-ПК, intel nuc и pcg02, для них собирается специальный дистрибутив, который тоже работает в tmpfs, но он как раз отвечает за раздачу систем по PXE и работу DHCP, TFTP и плюсом шарит /var/ftp по обычному FTP с полным read-write доступом. таким образом, когда надо загрузиться по PXE, я захожу по FTP на мини-ПК, заливаю туда прямо в boot папку образы, и далеко ходить не надо, они сразу отдаются на загрузку железке по PXE: DHCP + TFTP.

http://voglea.com/crux_gnulinux-pcg02.tar

можете изучить конфигурацию. Distfile это sh-скрипт сборки.

для сборки потребуется установить booty и cruxstrap. в /mnt/cruxmedia смонтировать официальный CRUX (https://crux.ninja/updated-iso/crux-3.6-updated.iso)

подредактировав имена интерфейсов, запускаете sh Distfile, получаете загрузочный ISO, загружаете на какой-нибудь не нужной железке и она раздаёт по PXE образы, шарит интернеты другим устройствам, DHCP, DNS, плюс с доступом по FTP можете заливать свои линуксы в /var/ftp/boot и грузиться.

флешка проще, но как верно замечено, они ломаются.

Spoofing ★★★★★
()
Ответ на: комментарий от Legioner

Понел.

Да, https://lesspass.com именно это все и делает, насколько я вижу, только вместо смены публичного токена у них тупа инкрементируется счетчик.

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от Nervous

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

То же самое про длину.

Но суть та, всё верно.

Legioner ★★★★★
() автор топика
Последнее исправление: Legioner (всего исправлений: 1)

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

theNamelessOne ★★★★★
()

менеджер паролей, который будет работать с мастер-паролем, но без самой базы

Если хочешь найти реализации аналогичных идей, ищи по фразе «deterministic password generator».

i-rinat ★★★★★
()
Ответ на: комментарий от Legioner

lesspass предлагает запоминать для каждого сайта комбинацию их правил вкупе с токеном. Такой себе вариант

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

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 2)
Ответ на: комментарий от theNamelessOne

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

Я как раз упоминал эту проблему в сообщении выше.

Пользователь может выбрать настройки генерации пароля.

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

Legioner ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.