Entry tags:
статья параноидального характера
Вообще чем больше я думаю о ssh-agent в n810, доступном по usb serial и требующем подтверждения (с тачскрина и клавиатуры ноклы) для каждой попытки использования ключа - тем больше мне нравится эта идея.
Это ведь максимальная секьюрити из возможных. Можно пользоваться ключами и ходить на сервера с любых _не_вполне_доверяемых_ компьютеров, ничего им не раскрывая.
Все другие варианты, все эти криптофлешки с стеганографическими криптоконтейнерами, разлочиваемыми на две секунды, чтобы показать ключ агенту, и тут же вынимаемыми - это всё туфта и театр. Они в итоге все упираются в доверие машине, на которой работает ссшагент. Причём не только на эти две секунды, агенту ведь тоже можно послать SIGSTOP и дампнуть память.
А я вот не уверен, что могу полностью доверять даже собственному нетбуку, на котором загружена собственная лайв-система. И все эти ssh-add -x (уходя вечером с работы), если чуть поднять планку, тоже оказываются security theater.
Знаете почему? Потому что весь софт кривой и глючный. Воткнув usb устройство специального вида (которое стоит $5 FYI), можно выполнить произвольный код в X сервере, например. И, если я включенный ноутбук оставил без присмотра на десять минут, как бы и чем бы я его не лочил, можно смело рассчитывать на как минимум кейлогер, который прочитает пароль от агент лока. И ssh-add -D не поможет, потому что утром мне придётся опять скармливать агенту ключи, и внедрённый троян прочитает их, а кейлогер узнает пароли от них.
Поэтому, между прочим, Кенсингтона продаёт железные порт локеры.
2Bclear - я говорю не о вырывании ногтей и тыкании паяльником в яйца, что, конечно, заставит меня отдать все ключи и пароли без долгих раздумий. Меня на самом деле беспокоит потенциально ненулевая вероятность _скрытой_ компрометации. То есть, ну, я хотел бы по крайней мере знать о каждом инциденте.
Поэтому полностью "аппаратный" ssh-agent - от хоста не зависящий ничем и ни в чём ему не доверяющий, сам читающий ключи с флешек, и сам флешки для этого раскриптовывающий, позволяющий хосту только использовать ключи, и только при аппаратном же подтверждении, - рулит.
Токены кстати тоже не рулят, если у них нет Кнопки на каждое использование: я воткнул токен, и вот уже неведомый процесс им пользуется вовсю, и даже если запрашивается пароль, то кейлогер его уже прочитал.
А вот из n810 вроде получается - у неё свой экран и своя кнопка.
Это ведь максимальная секьюрити из возможных. Можно пользоваться ключами и ходить на сервера с любых _не_вполне_доверяемых_ компьютеров, ничего им не раскрывая.
Все другие варианты, все эти криптофлешки с стеганографическими криптоконтейнерами, разлочиваемыми на две секунды, чтобы показать ключ агенту, и тут же вынимаемыми - это всё туфта и театр. Они в итоге все упираются в доверие машине, на которой работает ссшагент. Причём не только на эти две секунды, агенту ведь тоже можно послать SIGSTOP и дампнуть память.
А я вот не уверен, что могу полностью доверять даже собственному нетбуку, на котором загружена собственная лайв-система. И все эти ssh-add -x (уходя вечером с работы), если чуть поднять планку, тоже оказываются security theater.
Знаете почему? Потому что весь софт кривой и глючный. Воткнув usb устройство специального вида (которое стоит $5 FYI), можно выполнить произвольный код в X сервере, например. И, если я включенный ноутбук оставил без присмотра на десять минут, как бы и чем бы я его не лочил, можно смело рассчитывать на как минимум кейлогер, который прочитает пароль от агент лока. И ssh-add -D не поможет, потому что утром мне придётся опять скармливать агенту ключи, и внедрённый троян прочитает их, а кейлогер узнает пароли от них.
Поэтому, между прочим, Кенсингтона продаёт железные порт локеры.
2Bclear - я говорю не о вырывании ногтей и тыкании паяльником в яйца, что, конечно, заставит меня отдать все ключи и пароли без долгих раздумий. Меня на самом деле беспокоит потенциально ненулевая вероятность _скрытой_ компрометации. То есть, ну, я хотел бы по крайней мере знать о каждом инциденте.
Поэтому полностью "аппаратный" ssh-agent - от хоста не зависящий ничем и ни в чём ему не доверяющий, сам читающий ключи с флешек, и сам флешки для этого раскриптовывающий, позволяющий хосту только использовать ключи, и только при аппаратном же подтверждении, - рулит.
Токены кстати тоже не рулят, если у них нет Кнопки на каждое использование: я воткнул токен, и вот уже неведомый процесс им пользуется вовсю, и даже если запрашивается пароль, то кейлогер его уже прочитал.
А вот из n810 вроде получается - у неё свой экран и своя кнопка.
no subject
прикольнее , как по мне, ssh + wifi
т.е. "просто" ssh gate на девайсе - с "чужой" тачки ломимся на телефон по ssh (заодно можно fingerprint сверить) затем на телефоне "открываем" ключи и решаем куда форвардить сессию.
правда если так гонять иксы (или rdp) оно конечно телефон греться будет
no subject
значит в идеале программа на телефоне должна быть всего лишь клиентом к удаленному доверенному серверу, который уже и манажит всю секурную часть
no subject
в нокле - ssh-agent. он участвует в ssh сессии один раз в самом начале.
no subject
no subject
и я думаю можно даже обойтись без шифрования на телефоне.
"новая тачка" ломится сразу на "гейт" в интернете (свой доверенный сервер)
телефон (посредством https) получает извещение и должен его подтвердить\отменить
получается даже проще схема
no subject
а спрашивать пароль на телефоне при каждой входящей ссш сессии ещё надо придумать как добиться, для openssh не существует штатных решений и способов вклиниться в авторизацию (разве что pam, которого в телефоне нет).
я другого хочу - ключами, один раз показанными кпкшке, может воспользоваться любой компьютер как ssh ключами (scp, rsync, whatever), при этом не имея доступа к самим ключам. Если в него воткнут физически шнурок и если на кпкшке я подтверждаю.
это всё делается штатными средствами ssh, ssh-agent и ляликсовым g_serial. единственное что придётся написать, это достаточно тривиальный unix socket 2 serial прокси на питоне.
при этом нокла даже не знает, куда и зачем я иду с её ключом, не говоря уж о перехвате траффика.
no subject
как-то неправильно, что "чужой" комп получает ключ "на руки"
тут уж либо телефон должен работать как криптоплата (не выдавая ключи на руки), либо как отдельный механизм авторизации (для разрешения этому "чужому" компу зайти на тот "свой" сервер)
no subject
no subject
википедия знает
On the local system, it is important that the root user is trustworthy, because the root user can, amongst other things, just read the key file directly.
no subject
no subject
но ты же хочешь передать ключ ssh-agent на чужом компе, и тут уж local system - чужой комп
no subject
агент - в нокле. клиент агента может пользоваться ключами, но не может их вытащить из агента.
no subject
но всеравно не совсем удобно - на чужем компе надо шаманить (подставляя правильного агента)
no subject
нокла сейчас моделька и пруфофконцепт, я хочу сделать настоящее устройство формфактора мк802, но с экранчиком и парой кнопочек в идеале.
no subject
no subject
а хижакинг мы обходим очень просто - ssh-add -c и правильно выставленный (на нокле) SSH_ASKPASS.
соответственно на каждое использование ключа агент в нокле спрашивает разрешения, вызывая указанный мной скрипт - и это второй питоновский скриптик, который надо написать.
no subject
rmmod xhci_hcd
rmmod ehci_hcd
при оставлянии в опасном месте
=)))
no subject