LINUX.ORG.RU

Вопросы по GnuPG


0

1

Собственно:

  • Правильно ли я понимаю, что весь софт работающий с GnuPG общается с gnupg-agent через его сокет?
  • У меня есть идея для пущей безопасности вынести хранилище ключей на отдельную машину.
    Более того, мне нужно работать с ключами из виртуалки, а переносить туда хранилище ключей не хочу.
    Каким способом можно это осуществить?
  • Как ещё можно максимально усилить защиту хранилища ключей?


Собственно мысль по поводу перенаправления сокета видел тут:
http://superuser.com/questions/161973/how-can-i-forward-a-gpg-key-via-ssh-agent
Но либо у меня руки кривые, либо не будет это работать.

★★★

Последнее исправление: winddos (всего исправлений: 1)

winddos

Правильно ли я понимаю, что весь софт работающий с GnuPG общается с gnupg-agent через его сокет?

а зачем вообще использовать агент? это несекьюрно. (да, удобно, но не шифровать ещё удобнее)

winddos

У меня есть идея для пущей безопасности вынести хранилище ключей на отдельную машину.
Более того, мне нужно работать с ключами из виртуалки, а переносить туда хранилище ключей не хочу.
Каким способом можно это осуществить?

на машину или на виртуалку? Виртуалка != отдельная машина.

winddos

Как ещё можно максимально усилить защиту хранилища ключей?

перенести секретные ключи на отдельную машину (не виртуалку!) без всякой сети.
не использовать агенты.
НИКОГДА не хранить секретную инфу на HDD и уж тем более на флешках|SSD. только в памяти
забетонированный системник + автоматчики по периметру + колючая проволока + минные поля приветствуются.

drBatty ★★
()
Ответ на: комментарий от drBatty

а зачем вообще использовать агент? это несекьюрно.

Пожертвовать полу-автоматическим шифрованием почты я не могу.
Тем более я шифрую ещё и передаваемые файлы с жаббером.

на машину или на виртуалку? Виртуалка != отдельная машина.

Виртуалка нужна не для безопасности, просто я там держу отдельный vpn и софт которые именно через него должен работать.
Ну и виртуалку удобнее таскать между тремя основными компами.

перенести секретные ключи на отдельную машину (не виртуалку!) без всякой сети.

Я именно это и хочу сделать.

не использовать агенты.

Но это не вариант. :)

Шансов на дыры в агенте мало, мне просто надо быть уверенным что в случае рутования системы у меня не стырят ключи которыми автоматом подписываются письма.
Поэтому я хочу держать ключи на другой машине :)

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

Пожертвовать полу-автоматическим шифрованием почты я не могу.
Тем более я шифрую ещё и передаваемые файлы с жаббером.

это разве проблема, если у вас есть два ключа? (а уж тем более - два компьютера).

winddos

Виртуалка нужна не для безопасности, просто я там держу отдельный vpn и софт которые именно через него должен работать.
Ну и виртуалку удобнее таскать между тремя основными компами.

дык я и говорю - УДОБНЕЕ. Поймите: «Удобнее» это антоним к «Безопаснее».

winddos

Я именно это и хочу сделать.

сделайте. Какие проблемы? Вы можете иметь любое количество ключей. Совсем не обязательно всё завязывать на один.

winddos

Но это не вариант. :)

Шансов на дыры в агенте мало, мне просто надо быть уверенным что в случае рутования системы у меня не стырят ключи которыми автоматом подписываются письма.
Поэтому я хочу держать ключи на другой машине :)

ну вы хотите делить на ноль?

drBatty ★★
()
Ответ на: комментарий от drBatty

Поймите: «Удобнее» это антоним к «Безопаснее».

Тут я с тобой совсем не согласен.

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

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

сделайте. Какие проблемы?

Ну так я и спрашиваю, как сделать.
Кроме моего ключа есть ещё базы чужих которые надо синхронизировать.

В ssh-agent есть функция форвардинга, поэтому я могу хранить свои ключи только на основной машине.
Вот и думаю как получить аналогичный функционал для GPG

ну вы хотите делить на ноль?

В каком смысле?

Если я правильно понимаю, то через сокет гоняются только запросы на подпись/шифрование данных и даже запрос пароля производит уже не софт, а агент.
Соответственно угроза может заключаться исключительно при наличии дыры в агенте.
Т.е если я буду хранить ключи на сервере, то при повышении прав (любым способом) ключи быстренько утекут на сторону.
А если на сервере будет только сокет, то в случае получения прав злоумышленник сможет только подписать данные, но не украсть ключи.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

Когда же данные размазаны по 10 сервакам, то потом хрен вспомнишь где ты что забыл.

ктож заставляет размазывать?

drBatty ★★
()
Ответ на: комментарий от drBatty

Ты предлагаешь размазывать, то есть хранить ключи на разных серверах.
А вообще вопрос треда не об этом.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

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

а зачем их вводить «на каждый чих»?

winddos

Ну так я и спрашиваю, как сделать.
Кроме моего ключа есть ещё базы чужих которые надо синхронизировать.

есть такая штука, как публичный keyserver. Почему вы не хотите их использовать?

winddos

Если я правильно понимаю, то через сокет гоняются только запросы на подпись/шифрование данных и даже запрос пароля производит уже не софт, а агент.
Соответственно угроза может заключаться исключительно при наличии дыры в агенте.

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

winddos

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

этот хак я вообще не понял. Где секретный ключ будет находится?

drBatty ★★
()
Ответ на: комментарий от winddos

winddos

Ты предлагаешь размазывать, то есть хранить ключи на разных серверах.

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

drBatty ★★
()
Ответ на: комментарий от drBatty

если у злоумышленника есть права рута, то он с лёгкостью подменит ваш агент своей версией.
этот хак я вообще не понял. Где секретный ключ будет находится?

Хранилище ключей будет находится на другом серваке, к которому нет никакого доступа, кроме проброшенного сокета.

Даже если получат рута, то ключи не унесут.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

Хранилище ключей будет находится на другом серваке, к которому нет никакого доступа, кроме проброшенного сокета.

не понимаю, как такое будет работать.

winddos

Вот секретные мне как раз и нужны на серверах. :)

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

drBatty ★★
()
Ответ на: комментарий от drBatty

не понимаю, как такое будет работать.

Ну существует же штатное перенаправление в ssh клиенте, а мне надо аналог для gpg.

Штатной реализации нет, но по идее локально весь софт общается с агентом через сокет.
Если правильно пробросить сокет на другую машину, то софт будет общаться с агентом так, как буд то он работает локально.
Это только идея, поэтому и спросил об этом здесь.


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

Я им подписываю шифрованные пиьсма с сайта, вот и все.
Естественно это отдельный ключ.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

Ну существует же штатное перенаправление в ssh клиенте, а мне надо аналог для gpg.

это что за «перенаправление»? Секретный ключ в OpenSSH хранится там же, где и работает клиент. И ничего никуда насколько я знаю «перенаправлено» быть не может. Точно также и для gpg-клиента.

winddos

Я им подписываю шифрованные пиьсма с сайта, вот и все.
Естественно это отдельный ключ.

ну расшифруйте его, если вам пароль лень вбивать. Всё будет также работать.

drBatty ★★
()
Ответ на: комментарий от drBatty

Ну смотри.

У меня на локалке в конфиге указано:
~/.ssh/config

Host remote1
Hostname 212.234.4.44
User root
Port 24793
ForwardAgent yes



Я захожу на первый сервер:
$: ssh remote1
У меня спрашивает пароль на мой ключ лежащий на локалке.

На сервере у меня такой конфиг:
~/.ssh/config
Host remote2
Hostname 112.234.5.55
User root
Port 24793

Поэтому я делаю:
$: ssh remote2 и попадаю на второй сервер без запроса пароля.

При этом на первом сервере моего ключа нет. :)
winddos ★★★
() автор топика
Ответ на: комментарий от drBatty

ну расшифруйте его, если вам пароль лень вбивать. Всё будет также работать.

Так я не хочу хранить ключи на сервере.
Хочется чтобы подпись данных производилась на другом сервере, а gpg просто слал запросы через сокет.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

Поэтому я делаю:
$: ssh remote2 и попадаю на второй сервер без запроса пароля. При этом на первом сервере моего ключа нет. :)

а зачем тебе вообще нужен первый сервер и ключи к нему? ты ломишься на второй, и тебя пускают по ключу. Вот и всё. Причём ключ у тебя в клиенте с пустым паролем. А ключа к первому у тебя нет. Вот ты и входишь туда не по ключу, а по паролю. Где тут forwarding мне непонятно.

winddos

Так я не хочу хранить ключи на сервере.

на КЛИЕНТЕ.

winddos

Хочется чтобы подпись данных производилась на другом сервере, а gpg просто слал запросы через сокет.

я не вижу в этом никакого смысла.

drBatty ★★
()
Ответ на: комментарий от drBatty

а зачем тебе вообще нужен первый сервер и ключи к нему? ты ломишься на второй, и тебя пускают по ключу. Вот и всё.

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

Причём ключ у тебя в клиенте с пустым паролем.

Нет

Вот ты и входишь туда не по ключу, а по паролю.

На первый сервер я иду по ключу, и потом на второй тоже по тому же ключу.
При этом ключ находится только у меня на локалке.

Где тут forwarding мне непонятно.

man ssh

я не вижу в этом никакого смысла.

А я вижу, продолжим спор?

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

На первый сервер я иду по ключу, и потом на второй тоже по тому же ключу.
При этом ключ находится только у меня на локалке.

что-то слабо верится.

winddos

man ssh

читал.

winddos

А я вижу, продолжим спор?

ну вообще конечно заманчиво заходить по ssh туда, куда у меня нет доступа через промежуточный сервер, к которому доступ есть. Вот только это в принципе невозможно.

drBatty ★★
()
Ответ на: комментарий от drBatty

читал.

У тебя нет описания ключа -A и опций «ForwardAgent yes»?

Вот статья там есть:
http://www.symantec.com/connect/articles/ssh-and-ssh-agent
Там как раз говориться о том, что это несколько уменьшает безопасность, хотя и не оставляет доступа к ключам с промежуточного сервера.

ну вообще конечно заманчиво заходить по ssh туда, куда у меня нет доступа через промежуточный сервер, к которому доступ есть.

Ну у меня есть доступ и напрямую, и через промежуточный сервер.
Т.е и на промежуточном и на конечном серверах лежит мой публичный ключ.

Но приватный есть только на локалке, видимо ты где то меня не понял.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

У тебя нет описания ключа -A и опций «ForwardAgent yes»?

есть.

winddos

Вот статья там есть:
http://www.symantec.com/connect/articles/ssh-and-ssh-agent
Там как раз говориться о том, что это несколько уменьшает безопасность, хотя и не оставляет доступа к ключам с промежуточного сервера.

ну и что?

winddos

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

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

drBatty ★★
()
Ответ на: комментарий от drBatty

ну и что?

Ну это у тебя надо спросить.
Это ведь ты говоришь про то что я ввожу пароли, что оно невозможно и так далее.
А вообще тред вообще не о том, ssh-agent лишь как аналогию привел.

если можно зайти и напрямую?

На чужой пробекдореный сервак тоже напрямую ходить?

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

На чужой пробекдореный сервак тоже напрямую ходить?

а чем безопаснее не напрямую? ИМХО тоже самое.

winddos

А вообще тред вообще не о том, ssh-agent лишь как аналогию привел.

есть вроде gpg-agent, только смысл-то?

drBatty ★★
()
Ответ на: комментарий от drBatty

есть вроде gpg-agent, только смысл-то?

У него нет форвардинга...

а чем безопаснее не напрямую?

Ну вот когда станешь чужие сервера ломать, ответишь.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

winddos

У него нет форвардинга...

угу. в ssh тоже нет. как был ключ на клиенте, так он там и остаётся.

drBatty ★★
()

софт работающий с GnuPG общается с gnupg-agent через его сокет

В последних версиях да. Раньше, кажется, его не было.

Каким способом можно это осуществить

Вынеси обработку. Т.е. подними на своей машинке какой-то сервис, и пусть он и подписывает/расшифровывает присланное. Хотя, зачем защищать ключ, если им кто попало воспользоваться может?

максимально усилить защиту хранилища ключей

Вынести их на железяку. После этого тебе придётся защищать pin/пароль к ней - тоже удовольствия не много.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Хотя, зачем защищать ключ, если им кто попало воспользоваться может?

Ну дополнительная защита лишь как пример.
Дело не в безопасности в данном случае.

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

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

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

Но ещё мне кажется, что безопаснее проэкспортить виртуалке файловую систему с ключами :)

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Т.ч. вполне можно обойтсь прокачкой его сокета.

Ну собственно это мне и надо.

Но ещё мне кажется, что безопаснее проэкспортить виртуалке файловую систему с ключами :)

Чем лежащие в ФС приватные ключи лучше, чем сокет с другой машины?
Хотя честно говоря я сам не могу сказать.

winddos ★★★
() автор топика
Ответ на: комментарий от winddos

Чем лежащие в ФС приватные ключи лучше, чем сокет с другой машины?

Тем, что для их использования нужен пароль. И воспользоваться им программа сможет только когда ты захочешь ввести его. В случае же висящего сокета, пароль уже у агента в кеше, и удалённая система может расшифровать без твоего ведома всё, до чего дотянутся копыта.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

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

Но с другой стороны если ключ в кэше один, то все таки безопаснее будет хранить его на удаленном сервере с доступом через сокет.
Т.к этим ключем подписывается вся исходящая почта, а потому:
1 - Если он будет лежать на сервере, то пароль будет лежать там же в любом случае.
2 - А так будет только сокет.

Наверное дествительно глупо говорить о безопасности в данном случае, но мне все ещё нужно решение для юзания на виртуалбоксе)

winddos ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.