gns_ua: (russe)
[personal profile] gns_ua
Вообще чем больше я думаю о ssh-agent в n810, доступном по usb serial и требующем подтверждения (с тачскрина и клавиатуры ноклы) для каждой попытки использования ключа - тем больше мне нравится эта идея.

Это ведь максимальная секьюрити из возможных. Можно пользоваться ключами и ходить на сервера с любых _не_вполне_доверяемых_ компьютеров, ничего им не раскрывая.

Все другие варианты, все эти криптофлешки с стеганографическими криптоконтейнерами, разлочиваемыми на две секунды, чтобы показать ключ агенту, и тут же вынимаемыми - это всё туфта и театр. Они в итоге все упираются в доверие машине, на которой работает ссшагент. Причём не только на эти две секунды, агенту ведь тоже можно послать SIGSTOP и дампнуть память.

А я вот не уверен, что могу полностью доверять даже собственному нетбуку, на котором загружена собственная лайв-система. И все эти ssh-add -x (уходя вечером с работы), если чуть поднять планку, тоже оказываются security theater.

Знаете почему? Потому что весь софт кривой и глючный. Воткнув usb устройство специального вида (которое стоит $5 FYI), можно выполнить произвольный код в X сервере, например. И, если я включенный ноутбук оставил без присмотра на десять минут, как бы и чем бы я его не лочил, можно смело рассчитывать на как минимум кейлогер, который прочитает пароль от агент лока. И ssh-add -D не поможет, потому что утром мне придётся опять скармливать агенту ключи, и внедрённый троян прочитает их, а кейлогер узнает пароли от них.

Поэтому, между прочим, Кенсингтона продаёт железные порт локеры.

2Bclear - я говорю не о вырывании ногтей и тыкании паяльником в яйца, что, конечно, заставит меня отдать все ключи и пароли без долгих раздумий. Меня на самом деле беспокоит потенциально ненулевая вероятность _скрытой_ компрометации. То есть, ну, я хотел бы по крайней мере знать о каждом инциденте.

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

Токены кстати тоже не рулят, если у них нет Кнопки на каждое использование: я воткнул токен, и вот уже неведомый процесс им пользуется вовсю, и даже если запрашивается пароль, то кейлогер его уже прочитал.

А вот из n810 вроде получается - у неё свой экран и своя кнопка.

2013-05-09 06:53 (UTC)
- Posted by [identity profile] ctype.livejournal.com
меня смущает usb serial - этак можно сессию логать.
прикольнее , как по мне, ssh + wifi

т.е. "просто" ssh gate на девайсе - с "чужой" тачки ломимся на телефон по ssh (заодно можно fingerprint сверить) затем на телефоне "открываем" ключи и решаем куда форвардить сессию.
правда если так гонять иксы (или rdp) оно конечно телефон греться будет

2013-05-09 07:25 (UTC)
- Posted by [identity profile] ctype.livejournal.com
но если углублятся дальше, то и сам девайс - слабое звено.
значит в идеале программа на телефоне должна быть всего лишь клиентом к удаленному доверенному серверу, который уже и манажит всю секурную часть


2013-05-09 07:56 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
ты о чём? никакой не гейт и не форвард сесии.

в нокле - ssh-agent. он участвует в ssh сессии один раз в самом начале.

2013-05-09 08:53 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
ты ломишься с чужой тачки на телефон по ссш, и - хоп! теперь чужая тачка умеет сама ходить на твой телефон. здорово придумано.

2013-05-09 14:56 (UTC)
- Posted by [identity profile] ctype.livejournal.com
ага. только при каждой новой сессии телефон просит ввести пароль. ты же єтого хотел ?
и я думаю можно даже обойтись без шифрования на телефоне.
"новая тачка" ломится сразу на "гейт" в интернете (свой доверенный сервер)
телефон (посредством https) получает извещение и должен его подтвердить\отменить
получается даже проще схема

2013-05-09 15:06 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
ты в курсе, как работает и что именно делает агент? через него трафик не ходит.

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

я другого хочу - ключами, один раз показанными кпкшке, может воспользоваться любой компьютер как ssh ключами (scp, rsync, whatever), при этом не имея доступа к самим ключам. Если в него воткнут физически шнурок и если на кпкшке я подтверждаю.

это всё делается штатными средствами ssh, ssh-agent и ляликсовым g_serial. единственное что придётся написать, это достаточно тривиальный unix socket 2 serial прокси на питоне.

при этом нокла даже не знает, куда и зачем я иду с её ключом, не говоря уж о перехвате траффика.

2013-05-09 15:21 (UTC)
- Posted by [identity profile] ctype.livejournal.com
>>я другого хочу - ключами, один раз показанными кпкшке, может воспользоваться любой компьютер как ssh ключами (scp, rsync, whatever), при этом не имея доступа к самим ключам.
как-то неправильно, что "чужой" комп получает ключ "на руки"
тут уж либо телефон должен работать как криптоплата (не выдавая ключи на руки), либо как отдельный механизм авторизации (для разрешения этому "чужому" компу зайти на тот "свой" сервер)

2013-05-09 15:33 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
он НЕ получает ключ на руки ни при каких обстоятельствах. Ты в курсе, как работает ssh-agent?;))

2013-05-09 15:41 (UTC)
- Posted by [identity profile] ctype.livejournal.com
>> он НЕ получает ключ на руки ни при каких обстоятельствах. Ты в курсе, как работает ssh-agent?;))
википедия знает
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.



2013-05-09 15:43 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
local system в данном случае нокла. да и файла ключа не существует, как только он загружен в агента.

2013-05-09 16:01 (UTC)
- Posted by [identity profile] ctype.livejournal.com
ну если нокла устанавливает ssh соединение, то да, она для ssh-agent - local system
но ты же хочешь передать ключ ssh-agent на чужом компе, и тут уж local system - чужой комп

2013-05-09 16:19 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
соединение устанавливает чужой комп, и для этого пользуется сокетом ссшагента (в данном случае проведенного через usbserial).

агент - в нокле. клиент агента может пользоваться ключами, но не может их вытащить из агента.

2013-05-09 17:20 (UTC)
- Posted by [identity profile] ctype.livejournal.com
да. ты прав
но всеравно не совсем удобно - на чужем компе надо шаманить (подставляя правильного агента)

2013-05-09 17:24 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
а агента подсовываешь любым socat/netcat. по факту нокла может ещё выдать ридонли "флешку" или даже "сидюк" с правильным агентврапером.

нокла сейчас моделька и пруфофконцепт, я хочу сделать настоящее устройство формфактора мк802, но с экранчиком и парой кнопочек в идеале.

2013-05-09 17:31 (UTC)
- Posted by [identity profile] ctype.livejournal.com
ну и не совсем понятно как ты собираешь обходить ssh agent hijacking (да. я таки прочитал доку)

2013-05-09 17:48 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
ну слава Богу, а то я уж подумывал озвучить прайс на чтение вслух манов =)

а хижакинг мы обходим очень просто - ssh-add -c и правильно выставленный (на нокле) SSH_ASKPASS.

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

2013-05-09 17:32 (UTC)
- Posted by [identity profile] fsck-all.livejournal.com
>Воткнув usb устройство специального вида (которое стоит $5 FYI), можно выполнить произвольный код в X сервере

rmmod xhci_hcd
rmmod ehci_hcd

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

=)))

2013-05-09 17:50 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
ты понимаешь, это действительно путь, - но он требует бросить курить =)

Profile

gns_ua: (Default)
gns_ua

April 2017

M T W T F S S
     12
3456789
10111213141516
17181920212223
24252627282930

Expand Cut Tags

No cut tags

Style Credit