LINUX.ORG.RU

Безопасность связки ключей и хранение паролей в Linux-ах...

 gnome-keyring-daemon, ,


2

1

Впервые задумался об этом, но ведь пароли у многого прикладного ПО лежат в seahorse и его аналогах которые под капотом используют gnome-keyring-daemon и его аналоги в других DE. После того как юзер включает браузер/pgadmin или какой-то другой софт, который хранит там пароли, то всё хранилище ключей становится доступным любому процессу, работающему от пользователя через dbus. Таким образом, простейший скрипт, запущенный от юзера спокойно прочитает и расшифрует любые ключи. Например, для хромого можно штатными средствами вытащить мастер ключ (чтоб не городить огорода с dbus и убедиться что это правда, можно воспользоваться готовым софтом из репы, например secret-tool lookup application chrome). Вернётся мастер ключ, которым хром уже шифрует свои ключи… Зная алгоритм и секретный ключ которым хромой расшифровывает свои ключи, можно их легко вытащить. Т.е. любой вредоносный код, имея только права пользователя спокойно уведёт все ключи у всего прикладного софта в тот момент, когда пользователь разблокирует связку ключей для любой программы. Всё это напомнило мне театр безопасности и дыру невероятных масштабов. Есть ли какие-то способы бороться с этим ужасом? Кроме как не хранить вообще никаких паролей в софте на Linux.

★★★★★

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

Поднять менеджер паролей

Который работает поверх gnome-keyring-daemon отдающего ключи любому софту который их попросит после разблокировки связки, даже не проверяя кто именно и чей ключ попросил? Т.е. seahorse? Речь как раз о том, как оно работает…

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

Вот и я о том. Условный ЛОР то он про Vaultwarden ничего не знает. А пароль в браузере лежит. В оффтопике и osX такой фигни нет (в плане того как прикладные пароли там хранятся), а у нас есть.

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

В теории не утекают. На практике в проприетарщине могут быть бекдоры. ИИ-шка говорит что в KeePassXC от такой фигни избавились и можно менять на неё gnome-keyring и kde-wallet (она просит подтверждение каждый раз когда приложение хочет ключ, сообщая кто именно хочет, правда я не уверен откуда она берёт кто хочет и может это тоже можно подделать).

ЗЫ

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

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

у меня keepassxc, при запросе пароля по дыбасу через secret-tool показывает окно подтверждения.

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

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

keepassxc

А что за окружение? Инет пишет что выковыривать gnome-keyring-daemon из гнома занятие неприятное, т.к. с keepassxc и гномом есть какие-то багулины.

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

Есть ли какие-то способы бороться с этим ужасом? Кроме как не хранить вообще никаких паролей в софте на Linux.

Flatpak или кастомные аналоги. На линукс десктопе user==root, т.к. все данные хранятся в хомяке. Любой зловред – полная компрометация

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

Apple не пускает не свои же приложения к хранилищу паролей.

Собственно всё.

Каштан.

anonymous
()

Дата регистрации: 12.04.14 21:30:21

А на третий день Орлиный Глаз заметил, что у сарая нет одной стены

anonymous
()

имея только права пользователя спокойно уведёт все ключи у всего прикладного софта в тот момент

Тут важное уточнение: уведет у всего софта, запущеного этим же пользователем. Что, вобщем-то, логично.

дыру невероятных масштабов

Да нет, это не дыра. Я даже больше скажу: большинству будет удобнее если никаких «разблокирований связки» спрашиваться не будет и все сохранённые пароли всегда будут доступны, как и было всегда раньше и как и есть сейчас в оффтопе вроде бы.

Надо понимать, что если ты сохранил что-то в комп, то из компа это могут украсть при получении к нему доступа. И даже если не сохранял - тоже могут, если скомпрометировали его заранее.

firkax ★★★★★
()

Зная алгоритм и секретный ключ которым хромой расшифровывает свои ключи, можно их легко вытащить.

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

dmitry237 ★★★★★
()

Под юзером в Linux можно много всего наскриптовать или спрятаться и потом подняться до рута, когда будет локальный эксплойт до рута, а это даже не очень долго ждать придется. Если бы большинство софта не ставилось из репов подписанное gpg то все было бы печально

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

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

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

Условный ЛОР то он про Vaultwarden ничего не знает.

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

kneedeep
()

Ладно ещё пароли, но есть ещё SSH ключи, всякие git / container registry / k8s доступы, активные сессии в мессенджерах и прочем софте. По хорошему всё это большой театр безопасности. Но всё это сталкивается со скалой неудобств если делать правильно.

Для себя определил основные векторы атак: 1. кража устройства 2. зловред в юзерспейсе. От первого защищает выделение части файлов в отдельный каталог и шифрование fscrypt, всё это приходится вручную разблокировать длинным паролем, но только если реально нужно, пользоваться компьютером можно и без этого. От второго вынес всевозможные беспарольные ключи в отдельного пользователя, хомяк которого так же разблокируется fscrypt, под этим пользователем например гоняю ssh сессии. На сессии в мессенджерах забил, потенциальный ущерб небольшой и обратимый. В браузере установлен мастер-пароль, которым шифруется его встроенный менеджер паролей.

По сути в моей схеме fscrypt работает аналогично gnome-keyring, расшифровка разрешает всему софту видеть всё, но там нет напрямую паролей и ssh ключей, воспользоваться этими файлами не так-то просто и быстро.

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

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

А кто-то вообще над этим работает или всем типо пофиг?

Ну разработчики Flatpak’a и работают. Есть еще Android – немного не десктоп, но отличный пример правильного отношения к безопасности и изоляции приложений

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

Android – немного не десктоп, но отличный пример правильного отношения к безопасности и изоляции приложений

Это который не может VPN от юзерспейса спрятать?

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

Ну разработчики Flatpak’a и работают.

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

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

Это который не может VPN от юзерспейса спрятать?

Это проблема, но ситуация там все же радикально лучше, чем в десктопном линуксе

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

Угу. Выходит что в десктопном линуксе лучше всего делать файл «это точно не пароли.txt» и класть туда пароли. По крайней мере массовый вирусняк в первую очередь залезет в gnome-keyring.

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

а bwarp разве мешает использовать dbus и читать прямо оттуда?

Да, все, что не разрешено – запрещено. В связке с xdg-dbus-proxy можно делать тонкую настройку доступа

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

Удобнее пароли на заборе писать большими буквами, а дверь в квартиру не запирать, а заменить на занавеску или москитную сетку. Вот только почему-то ИРЛ так не принято.

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

Android – немного не десктоп, но отличный пример правильного отношения к безопасности и изоляции приложений

И что там READ_EXTERNAL_STORAGE уже выпилили или всё еще нет для обратной совместимости?

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

Аналогия плохая. Диск твоего компа, в отличие от улицы, не публичное место которое все постоянно просматривают.

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

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

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

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

А много сейчас сайтов нужных которые без 2ой авторификации пашут?

anonymous
()
Ответ на: комментарий от BruteForce

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

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

В оффтопике и osX такой фигни нет (в плане того как прикладные пароли там хранятся), а у нас есть.

Вот тут поподробнее.
Насколько я знаю, Credentials Manager в MS Windows именно так и работает.
Т.е. в рамках logon сессии хранилище паролей доступно всем процессам.

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

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

как вариант, есть PAM-модули с поддержкой TOTP-кодов. Типа pam_oath и т.п. То есть чтобы например выполнить команду от рута, надо будет вводить не пароль пользователя, а этот самый TOTP, который будет генерироваться у тебя на смартфоне в приложении.

Хотя очень многие компетентные люди в принципе не фанаты PAM.

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

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

Lrrr ★★★★★
()

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

По сути связка ключей в линуксе нужна для защиты от кражи жёсткого диска. Если ты уже используешь шифрование диска, то это не актуально.

Более того. Если ты, например, используешь пароль для защиты своего ssh ключа и сохранил его в связке ключей, чтобы не вводить его. И при этом переиспользовал пароль от своего аккаунта для ключа. То теперь любая программа, запущенная от твоего имени, может его узнать без каких-либо проблем. Т.е. в данном, наверняка распространённом примере, связка ключей просто и банально ослабила безопасность всей системы, при этом не добавив безопасности ничуть, если ты шифруешь диск и так. Т.е. если ты запустил программу от другого пользователя, то он в любом случае не получит доступ к твоему ключу, права доступа не позволят. А если ты запустил программу от своего пользователя, то ей легко доступен пароль от твоего ключа, т.е. его можно сказать, что нет; при этом лучше бы тебе не переиспользовать этот пароль ни для чего боле.

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

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

если у тебя на компе нет вирусов и если комп не украли

Я с чего начал - с того что полно мутных библиотек на гитхабе, которые много кто использует, но мало кто читает. Кстати, вопли про то что в том или ином пакетном менеджере у ЯП нашли вредонос — это пол беды. Там его хотя бы централизованно нашли и у всех разом пофиксили (при этом он уже украл все пароли у юзеров, если у создателя была такая цель). А сколько вредоносов могли засунуть в сишные и крестовые библиотеки — страшно представить. Я не видел ни одного программиста, который полностью прочитал бы сорцы всего того что он использует, включая сборочные файлы в любом мало-мальски крупном проекте. В случае когда нет централизованного управления заразить можно только определённые версии или вообще только бинарик определённой версии, если уже собранную либу линкуют.

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

Не уж то наформошлёмить никто не может? Там же 2 элемента в GUI: дерево и список, при сохранении шифруем базу своим паролем, какой нафиг листочек.

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

Проблема не наформошлёпить, а в api для приложений которые эти пароли оттуда берут. Ну и в гарантии того что пароль от хрома взял хром, а не скрипт васи пупкина, который мамой поклялся, что он — хром. Для последней гарантии надо бинарики ЭЦП подписывать и на уровне LSM это проверять. Кстати, подписывать можно хоть локально, главное гарантия что тот кто ключ записал тот его и читает, если он не рут. Правда при обновлениях поломается.

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

а в api для приложений которые эти пароли оттуда берут

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

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

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

Берёт свои, но никто не мешает взять чужие, так у нас безопасность устроена. И никто не мешает чужому коду, например из заражённого пакета в AUR подождать когда юзер запустит хром, введёт пароль (скажем ещё 5 минут, чтоб наверняка) и забрать все пароли из хрома, TOTP, pgAdmin4 и остального софта, который решил доверить пароли связке ключей. Связке ключей абсолютно насрать, кто и какие пароли спрашивает. Тут даже рут не нужен, иной скрипт на Lua в каком-нибыдь плагине к игре это сможет провернуть.

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

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

AZJIO
()
Последнее исправление: AZJIO (всего исправлений: 1)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария