Как стать автором
Обновить

Комментарии 19

В качестве решения: ключ можно положить в KeePass (где шифрование реализовано на должном уровне, в том числе использутеся Argon2), а плагин KeeFox будет выступать в качестве агента. И автоматически расшифровывать ключ, что избавляет от необходимости делать пароль лёгким для запоминания. Убивается сразу два зайца: пароль от ключа можно сделать сложным, а сам ключ надёжно защищён, даже если при шифровании ключа и использовался MD5-хэш, и хранится в нестандартном месте.

image
У тебя не украдут ключ, если он не лежит в /home/.ssh/

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


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

но если говорить о ssh сам keepassxc умеет быть ssh-agent.

Ну, как я понял из доки, не столько быть ssh-agent, сколько управлять им — добавлять в него ключи из базы и удалять их по таймауту/закрытию базы. В принципе, это выглядит неплохой идеей (правда, только для десктопа).

Зашифровать зашифрованный ключ который защищён паролем


We need to go deeper

Приватный ассиметричный ключ который симметрично зашифрован с использованием в качестве ключа пароль.


Password -> AES(RSAPrivKey) -> encrypted key

Поправка, вместо KeeFox читать KeeAgent (как обычно, думаешь о другом и на автомате это пишешь...)
Это уже было в Сипсонах: habr.com/post/181320/#comment_9852056 Стоит всё же отметить, что даже в 2018 не все приложения поддерживают новый формат приватного ключа.
Автор мог бы пояснить чем именно «слабость» MD5 делает «Шифрование ключа по умолчанию в OpenSSH хуже его отсутствия»?

Ну можете вы быстро считать MD5 и что?
Вам же пароль надо брутфорсить, а нужную (для правильной расшифровки) MD5 вы же не можете получить.
Что вам толку от такого каким хешем пароль в ключ преобразуется? Вам же пароль надо подбирать.
И тут уже не важно как быстро считается хеш. Если вы получили шифрованный приватный ключ, то дальше вам нужно брутфорсить пароль и медленнее он в ключ преобразовывается или быстрее — роль играет незначительную. Ну будете вы три дня пароль подбирать вместо пары часов — велика ли разница?

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

На самом деле разница довольно велика — у Argon2 скорость порядка 100/сек, а у MD5 порядка 10-100 миллиардов/сек. Это разница в 9 порядков, превращающая 1-секундный взлом MD5 в 30 лет.

Автор мог бы пояснить чем именно «слабость» MD5 делает «Шифрование ключа по умолчанию в OpenSSH хуже его отсутствия»?

По тексту автор утверждает, что есть хороший шанс восстановить пароль шифрования в открытом виде:


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

Что приведет к тому, что будет скомпрометирован не только ключ SSH, о и другие аккаунты, которые имеют тот же пароль.

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

В этом есть доля истины, но на практике не зря используют многоуровневые защиты — если пробили один уровень это даёт какой-то доступ, но вовсе не обязательно полный. Если каким-то образом получили возможность читать любые файлы юзера (включая файлы в ~/.ssh/), это ещё не означает возможность запустить кейлоггер.

Разница есть, поскольку не все пароли вы можете/захотите поменять после компроментации ключа
И это еще не рассматриваем вариант, когда вы не знаете о краже.
НЛО прилетело и опубликовало эту надпись здесь

Вы можете запомнить 4096 битный ключ, ну или хотя бы 2048? :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий