id: Гость   вход   регистрация
текущее время 02:19 26/04/2024
Владелец: SATtva (создано 18/02/2015 15:06), редакция от 18/02/2015 15:06 (автор: SATtva) Печать
Категории: софт, gnupg, инфобезопасность, свободный софт, разграничение доступа
http://www.pgpru.com/Новости/2015/GPGRemote-ИспользованиеGnuPGВОтносительноНедовереннойСреде
создать
просмотр
редакции
ссылки

18.02 // GPG Remote - использование GnuPG в относительно недоверенной среде


Использование GnuPG в сетевой среде всегда несёт риск того, что противник, способный скомпрометировать какое-либо из клиентских приложений (email-клиент, IM-клиент и т.п.), сможет с лёгкостью извлечь закрытые ключи, выполнив gpg --export-secret-keys. Смарткарты являются общепринятым решением данной проблемы, но сами они, в свою очередь, являются специализированными устройствами, которые 1) не всегда могут быть доступны пользователю либо 2) могут быть недоверяемы по тем или иным причинам.


GPG Remote — это клиент-серверное приложение, переносящее операции с закрытыми ключами GnuPG на удалённый сервер, исполняемый в безопасной доверенной системе. Сервер отфильтровывает клиентский ввод в соответствии с заданными правилами и запускает GnuPG, выступая посредником между программой и клиентом.


GPG Remote позволяет разделить процесс исполнения GnuPG между клиентом-фронтэндом и сервером-бекэндом. Клиентская часть приложения эмулирует консольный интерфейс GnuPG: принимает аргументы командной строки и данные, передаваемые пользователем через стандартный ввод (STDIN). Затем производится парсинг консольных аргументов и определение файлов, которые пользователь хотел передать GnuPG для обработки. Из этих данных формируется пакет запроса, который передаётся серверу.


Сервер работает в доверенной среде, его задача — выполнить gpg безопасным образом. Этой цели служит белый список консольных опций gpg, согласно которому сервер отфильтровывает полученные от клиента аргументы командной строки (прежде всего, команды типа --export-secret-keys). Клиентские файлы сохраняются во временную директорию, а их пути в аргументах командной строки соответствующим образом заменяются. Наконец, сервер вызывает gpg, а вывод программы (состоящий из потоков STDERR и STDOUT, кода завершения программы, а также сгенерированных файлов) посылается обратно клиенту.


Источник: https://www.pgpru.com/razrabotki/gpgremote


 
На страницу: 1, 2 След.
Комментарии [скрыть комментарии/форму]
— Гость (21/02/2015 15:33)   <#>

Клиент копирует файл, требующий расшифровки или подписи в /tmp, чтобы сделать его доступным серверу, или как?
— SATtva (21/02/2015 17:56)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Клиент пересылает файлы серверу, а тот сохраняет их в свой /tmp (или иную директорию).
— Гость (10/03/2015 11:00)   <#>
Данные передаются в открытом виде на сервер для шифрования и подписи?
Если данные передаются в зашифрованном виде с помощью ssl, то что мешает скомпроментированному клиенту все эти данные перехватывать? Возможен и гораздо более вероятен перехват данных и на пути между клиентом и сервером.
Единственно на что может годится, как я понял, это подписывать открытые данные.
— SATtva (10/03/2015 11:48)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

В документации чёрным по белому написано:
Аутентификация/шифрование канала связи лежит за пределами данного приложения. Для организации безопасной клиент-серверной коммуникации пользователь может использовать SSH- или VPN-туннелирование.

Хочу напомнить, что использовать GPG Remote на отдельных системах не обязательно, можно и на одной под разными пользователями.


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

В качестве примера. Допустим, пользователь опасается, что в его jabber- или email-клиенте содержится уязвимость, благодаря которой злоумышленник может скопировать закрытый ключ, которым подписываются/расшифровываются сообщения. Тогда он может установить и настроить GPG Remote. В этом случае пользовательское приложение уже не будет взаимодействовать с gpg напрямую и не сможет выполнить --export-secret-keys (одновременно с этим утащив пассфразу с помощью кейлоггера), что исключает риск расшифрования прежней переписки. В то же время, ничто не мешает скомпрометированному приложению сливать на сторону новую переписку. Своего рода PFS. Так или иначе, GPG Remote защищает именно ключ, а не данные.
— Гость (10/03/2015 13:48)   <#>

Пассфразу-то кто ему запретит похитить? Это же у вас выносится за скобки в модели угрозы. Пассфразу передаёт серверу клиент, поэтому уязвимый клиент может подменить pinentry собственной программой.
— SATtva (10/03/2015 13:57, исправлен 10/03/2015 14:07)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Никто, я же выше ясно написал:

одновременно с этим утащив пассфразу с помощью кейлоггера

Наличие GPG Remote не способно защитить парольную фразу на скомпрометированном клиенте. Но суть в том, что без самого ключа противнику от неё не будет никакой пользы.


Кстати, PFS в чистом виде здесь, конечно, нет: при компрометации пассфразы противник вполне может расшифровать данные, к которым имеет доступ, выполнив эту операцию через GPG Remote (пока пользователь, например, не уберёт ключ со связки).

— Гость (10/03/2015 15:30)   <#>

Правильное замечание. Ключ хоть и не украден, при консервативном подходе все данные всё равно надо считать скомпрометированными и менять подключ. В чём тогда смысл затеи с gpg-remote? ☺ Только в техническом усложнении расшифровки этих данных.
— SATtva (10/03/2015 16:01)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Степень контроля всё равно выше. Плюс, учитывая, что ведётся подробный лог операций, есть возможность как обнаружить неладное, так и автоматизировать какие-то контрмеры.
— unknown (10/03/2015 16:08)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
[петросянство]
Самое безопасное — использовать GPG-флоппинет, он же GPG-Airgap.
И разрабатывать ничего не надо. Поэтому местные параноики и не проявили особого интереса к проекту.
[/петросянство]
— Гость (10/03/2015 16:14)   <#>
Для хранения главного секретного ключа связки gpg-airgap и так используется, но это не решает всей проблемы — приложения требуют online-доступных секретных подключей, и вот с ними уже приходится делать вещи типа gpg-remote.
— Гость (10/03/2015 16:16)   <#>
[петросянство]
Как сказал мне один человек, самая лучшая защита секрета — это его отсутствие. Нет секретов — нет проблем, поэтому настоящие параноики вообще ничего не шифруют и компьютеров не держат, нечего им шифровать.
[/петросянство]
— SATtva (10/03/2015 16:21)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
[петросянство]
Настоящим параноикам нечего скрывать.
[/петросянство]
— SATtva (15/03/2015 08:06, исправлен 15/03/2015 08:08)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

В принципе, добавить подобие PFS (операционного, не криптографического) можно с помощью OTP. Пользователь генерирует на сервере серию коротких паролей, сервер их сохраняет локально, а пользователь записывает на бумажке/распечатывает/делает копию на смартфон (что удобнее/уместнее/безопаснее). Затем при использовании закрытого ключа пользователь дописывает такой пароль из списка к своей парольной фразе в диалоге pinentry и вычёркивает/удаляет его из списка. Если пароль верный, сервер обрабатывает запрос, как положено. Таким образом, компрометация пассфразы закрытого ключа сама по себе не позволит противнику воспользоваться ключом через GPG Remote.

— Гость (15/03/2015 15:20)   <#>
   Можно, но это не будет PFS даже в смысле ротации подключей [1]. Там при правильной организации процесса даже при полной компрометации всего, что онлайн (или даже оффлайн — это как организуете), предыдущая переписка расшифрована быть не может, а в этом подобии есть дополнительная завязка на неуязвимость сетевого сервиса gpg-remote. Впрочем, как дополнительная рюшечка — почему бы и нет? Кстати, есть (или были?) одноразовые пароли для аутентификации по SSH — то, что вы предлагаете, очень похоже на это.
   Вообще, у меня есть стойкое ощущение, что там, где позарез нужна PFS, вместо доморощенных PGP-велосипедов нужно полагаться на Tor и OTR, потому что своими костылями сильно это не улучшить, а переусложнение получается огромным.
— SATtva (15/03/2015 16:51)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118

Ну да, это скорее просто механизм контроля доступа.
На страницу: 1, 2 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3