Хранение паролей в linux
Вопрос теоретический из научного интереса.
Допустим, пароль записан в текстовом файле. Текстовый файл находится на флешке.
Текстовый файл открывается с помощью vim в эмуляторе терминала (допустим, konsole или gnome-terminal).
Пароль выделяется, копируется с помощью ПКМ и вставляется в браузер, ctrl+p.
Флешка извлекается.
Вопрос: если абстрагироваться от угроз, которые связаны с записью файла на флешку, а так же угрозы со стороны браузера, то какие
угрозы безопасности пароля возникают в связи с его копированием из эмулятора терминала (или текстового редактора типа gvim) с помощью правой кнопки мыши в память
и последующей вставкой в браузер? Возможность cold bootаттаки тоже не рассмативаем.
Ссылки
[link1] https://www.pgpru.com/proekt/kommentarii
[link2] https://www.pgpru.com/comment75187
[link3] https://www.pgpru.com/comment67917
[link4] https://www.pgpru.com/comment63073
[link5] https://www.pgpru.com/comment62677
[link6] https://www.pgpru.com/comment72241
[link7] https://www.pgpru.com/comment75312
[link8] http://www.opennet.ru/opennews/art.shtml?num=38754
[link9] https://www.pgpru.com/comment75854
Опечатка, имелось в виду ctrl+v или просто через правую кнопку мыши.
Неужели нельзя заглянуть в /proekt/kommentarii[link1] и увидеть /comment75187[link2]?
Например:
Кстати, ключи хранятся в какой-то особо защищённой памяти, наворачиваются специальные демоны для работы с ними (тот же gpg-agent), но ничего из этого не касается обычных паролей (текста), скопированных мышкой из одного окна в другое.
Если хочется более обосновано, то выше я привёл ссылки.
а после копирования затереть буфер обмена разве нельзя?
Можно (например, поместив в него другой текст). Кстати, не забывайте, что в UNIX буферов обмена по умолчанию два: контент, который вставляется через ctrl+v и контент, который вставляется средней кнопкой мыши. В общем случае содержимое этих буферов разное.
Ясно, что данный способ оч неоднозначен, особенно если нужно посмотреть свои пароли, но на чужой машине.
Подскажите. в какую сторону смотреть, если нужен консольный просмотр паролей? Есть ли достойные консольные программы для лиункс для хранения паролей? Или всё же вышеописанный способ с блокнотом в этом плане непревзойдён?
Этот[link2]? Думаю, да. Задача имеет плохую обсусловленность, т.к. поидее скомпрометированному пользователю доверять пароль нельзя вообще, а если он не скомпрометирован, то хоть на обоях свои пароли пишите. Соответственно, все уловки по защите паролей — это попытка вытянуть самого себя из болота за волосы.
Можно было бы сделать по мотивам такой[link5] методики, чтоб было удобнее, но это было бы менее безопасным.
Мне ничего такого не известно, но я и не интересовался. Команда cat file | grep pattern вас чем не устраивает? :)
т.е. просто вывести содержимое файла в консоль в соответствии с неким шаблоном – это будет безопаснее, чем открывать с помощью vi или vim? Спрашиваю серьезно, т.к. и такой вариан тоже рассматриваю, он ведь и проще, и удобнее.
Если серьёзно, то это всё — спекуляции, но есть, по крайней мере, один очевидный аргумент в пользу такого решения: vim (не знаю, как vi), по умолчанию создаёт временные файлы, и есть риск утечек паролей в эти файлы. Также есть риск утечки паролей при всяких core dump ошибках редактора при работе с файлами (пароли могут попасть в файл vim.core). Для обычных cat/grep такого вектора угроз либо нет, либо вероятность его возникновения очень мала. В частности, я в своей жизни видел выпадание в кору vim'а (и не раз), но ни разу не видел кору для cat или grep. Тут срабатывает общая идеология: при прочих равных, чем проще программа, тем она безопаснее.
По поводу записи информации на флешку, есть специальные накопители Qumo YIN & YAN, на которых установлена механическая защита от записи. Очень удобная штука.
Вы доверяете тому, как она обращается со скрытой областью под названием HPA[link6]? Пишут, что АНБ её любит[link7]:
Нет, я доверяю тому, что после втыкания её в компьютер населенными всякими разными вирусами, она остается чиста!
Вы недооцениваете трояны от АНБ и MS. ☺
немного о flash[link8]
Отсюда вопрос – куда кладется временный файл, который создается vim? В ту же директорию? Каким образом тогда редактирвоать файл – с помощью команды echo "some text" > passfile ?
Или просто запретить[link9] создавать этот файл. В чём ваш вопрос? Вы не знаете, что такое тильда в пути к имени файла? Это домашняя директория. Переопределение места хранения на /tmp осмысленно, только если /tmp подмонтирован как tmpfs, т.е. не пишется на диск, а своп или отключен или шифруется временным ключом. В иных случаях это действие очевидного смысла не имеет.
Да как угодно. Только ">" затрёт всё старое содержимое. Если надо просто добавить к тому, что уже есть, то ">>". В любом случае, пользоваться везде и всегда только такими командами для редактирования файлов — мазохизм, лучше решить вопрос с утечками. Под недоверенным профилем, которому нужно только извлекать пароли, можно и grep'ом пользоваться, никогда не вызывая vim, а под доверенным можно редактировать файл паролей, как самый обычный файл. Наверно, не стоит напоминать, что под доверенным юзером/профилем не надо пускать софт с закрытыми исходниками и браузеры, даже TBB.
Есть: kpcli, ckpass.
https://www.pgpru.com/soft/keepass