Хранение паролей в linux
Вопрос теоретический из научного интереса.
Допустим, пароль записан в текстовом файле. Текстовый файл находится на флешке.
Текстовый файл открывается с помощью vim в эмуляторе терминала (допустим, konsole или gnome-terminal).
Пароль выделяется, копируется с помощью ПКМ и вставляется в браузер, ctrl+p.
Флешка извлекается.
Вопрос: если абстрагироваться от угроз, которые связаны с записью файла на флешку, а так же угрозы со стороны браузера, то какие
угрозы безопасности пароля возникают в связи с его копированием из эмулятора терминала (или текстового редактора типа gvim) с помощью правой кнопки мыши в память
и последующей вставкой в браузер? Возможность cold bootаттаки тоже не рассмативаем.
Например:
Кстати, ключи хранятся в какой-то особо защищённой памяти, наворачиваются специальные демоны для работы с ними (тот же gpg-agent), но ничего из этого не касается обычных паролей (текста), скопированных мышкой из одного окна в другое.
Если хочется более обосновано, то выше я привёл ссылки.
Подскажите. в какую сторону смотреть, если нужен консольный просмотр паролей? Есть ли достойные консольные программы для лиункс для хранения паролей? Или всё же вышеописанный способ с блокнотом в этом плане непревзойдён?
Этот? Думаю, да. Задача имеет плохую обсусловленность, т.к. поидее скомпрометированному пользователю доверять пароль нельзя вообще, а если он не скомпрометирован, то хоть на обоях свои пароли пишите. Соответственно, все уловки по защите паролей — это попытка вытянуть самого себя из болота за волосы.
Можно было бы сделать по мотивам такой методики, чтоб было удобнее, но это было бы менее безопасным.
Мне ничего такого не известно, но я и не интересовался. Команда cat file | grep pattern вас чем не устраивает? :)
т.е. просто вывести содержимое файла в консоль в соответствии с неким шаблоном – это будет безопаснее, чем открывать с помощью vi или vim? Спрашиваю серьезно, т.к. и такой вариан тоже рассматриваю, он ведь и проще, и удобнее.
Если серьёзно, то это всё — спекуляции, но есть, по крайней мере, один очевидный аргумент в пользу такого решения: vim (не знаю, как vi), по умолчанию создаёт временные файлы, и есть риск утечек паролей в эти файлы. Также есть риск утечки паролей при всяких core dump ошибках редактора при работе с файлами (пароли могут попасть в файл vim.core). Для обычных cat/grep такого вектора угроз либо нет, либо вероятность его возникновения очень мала. В частности, я в своей жизни видел выпадание в кору vim'а (и не раз), но ни разу не видел кору для cat или grep. Тут срабатывает общая идеология: при прочих равных, чем проще программа, тем она безопаснее.
Вы доверяете тому, как она обращается со скрытой областью под названием HPA? Пишут, что АНБ её любит:
Отсюда вопрос – куда кладется временный файл, который создается vim? В ту же директорию? Каким образом тогда редактирвоать файл – с помощью команды echo "some text" > passfile ?
Или просто запретить создавать этот файл. В чём ваш вопрос? Вы не знаете, что такое тильда в пути к имени файла? Это домашняя директория. Переопределение места хранения на /tmp осмысленно, только если /tmp подмонтирован как tmpfs, т.е. не пишется на диск, а своп или отключен или шифруется временным ключом. В иных случаях это действие очевидного смысла не имеет.
Да как угодно. Только ">" затрёт всё старое содержимое. Если надо просто добавить к тому, что уже есть, то ">>". В любом случае, пользоваться везде и всегда только такими командами для редактирования файлов — мазохизм, лучше решить вопрос с утечками. Под недоверенным профилем, которому нужно только извлекать пароли, можно и grep'ом пользоваться, никогда не вызывая vim, а под доверенным можно редактировать файл паролей, как самый обычный файл. Наверно, не стоит напоминать, что под доверенным юзером/профилем не надо пускать софт с закрытыми исходниками и браузеры, даже TBB.