LINUX.ORG.RU

Jabber + GPG для большого количества пользователей

 , , , ,


0

2

Привет!

На разных форумах, включая этот, для безопасного использования Jabber рекомендуют использовать Jabber + GPG. А как рекомендуется организовать управление ключами если пользователей много.. допустим 1000? Если их 5-15 то ладно - можно и каждому сделать по паре ключей.. обменяться публичными и всё. А если их 1000 и они меняются? ..и какие-то могут быть свои, а кто-то со стороны. Как-то сгруппировать может.

Второй вопрос сопутствующий - покачто это тестируется на CentOS в виртуальной машине (там установлен ejabberd) и разные клиенты на том же компьютере. К сервису подлючаюсь через форвард портов VirtualBox-a. Есть пара ключей для 1 пользователя в Gajim - почему не достаточно если его публичный GPG ключ подкрепит себе 2-ой пользователь в Psi+ ? Во первых, в PSi+ не появляется иконка, чтоб переписка была шифрованной, во вторых 1-ый пользователь в Gajim, получая сообщение, видит системное сообщение, что оно не зашифровано. Это исправляется только если в Psi+ 2-ой человек подключит себе зачем-то и свой приватный ключ отдельный. Чего так?

Если что-то не хватает\не понятно - обязательно спрашивайте.

Спасибо!



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

рекомендуют использовать Jabber + GPG

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

Это исправляется только если в Psi+ 2-ой человек подключит себе зачем-то и свой приватный ключ отдельный.

Для зашифровки на отправителе нужен публичный ключ, для расшифровки на получателе нужен соответствующий приватный ключ. Поэтому при шифрованной беседе двух человек участвует две связки ключей.

Чтобы защитить сообщение от подмены в пути (т.к. публичный криптографический ключ может гулять по рукам), отправитель ставит свою электронную подпись на каждом отправленном сообщении. Для этого ему нужен свой приватный ключ подписи. Получатель проверяет подпись с помощью публичного ключа подписи отправителя.
В каждой связке ключей присутствует ключ зашифровки (публичный крипт.ключ), и приватный крипт.ключ расшифровки, а также два ключа для генерации и проверки ЭЦП. Когда делаешь gpg --export, то из связки извлекаются все публичные ключи и формируется новая связка, именуемая публичным gpg-ключом. Новая связка подписывается с помощью приватного ключа, т.е. является самоподписанной.

Итого: при беседе двух человек по GPG используются две связки ключей, что в сумме даёт четыре пары ключей (две пары криптографических, две пары подписных), т.е. 8 «сырых» алгоритмических ключей. Поэтому доступ к приватным ключам на клиенте необходим для расшифровки входящих и для подписи исходящих.

Чтобы добить мозг, добавлю, что криптографический и подписной ключи в связке на самом деле являются заменяемыми «подключами», и ещё есть мастер-ключ в связке, который обычно указывает на подписной подключ связки.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 4)

На разных форумах, включая этот, для безопасного использования Jabber рекомендуют использовать Jabber + GPG.

Ещё рекомендуют OTR.

risenshnobel ★★★
()

А как рекомендуется организовать управление ключами если пользователей много.. допустим 1000? Если их 5-15 то ладно - можно и каждому сделать по паре ключей.. обменяться публичными и всё. А если их 1000 и они меняются? ..и какие-то могут быть свои, а кто-то со стороны. Как-то сгруппировать может.

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

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

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

Почему так сложно? Почему один ключ для подписи и для шифрования не использовать?

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

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

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

Почему один ключ для подписи и для шифрования не использовать?

1. Потому что DSA не умеет шифровать, а Elgamal плохо умеет подписывать.

2. Потому что для шифрования используется публичный ключ, а для подписи приватный. Тогда в случае RSA+RSA получается, что нужно секретный ключ подписи передавать адресату для зашифровки))

shahid ★★★★★
()

Если их 5-15 то ладно - можно и каждому сделать по паре ключей.. обменяться публичными и всё. А если их 1000

SKS OpenPGP keyserver + LDAP например.

и они меняются?

Нужно осилить сети доверия. Эта 1000 человек должна доверять к 5-10 «главным» ключам (людям) и доверять их подписям на других ключах. Тогда все ключи, имеющие кворум подписей главных ключей, автоматически будут «доверенными» для тысяч.

Ещё среди 1000 человек может быть пара крипто-джедаев, которые выставляют очень большой срок годности связки ключей, затем приватный мастер-ключ отсоединяют от своей связки ключей, переносят его на флешку, пристегнутую к трусам. Под_ключи в основной связке имеют небольшой срок истечения, и они изредка обновляются с использованием мастер-ключа на флешке тихо и незаметно заливая на keyserver. Остальные 1000 клиентов через периодическую синхронизацию ключей подтягивают обновившиеся изнутри связки ключей и доверяют им, при этом никто может быть и не в курсе, что какой-то там подключ у кого там обновился.

* Связка ключей без мастер-ключа (приватного) не может подписывать другие ключи и, следовательно, вносить какие-либо изменения в собственную связку.

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

рекомендуют использовать Jabber + GPG

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

a kak достичь той же надёжности другим способом более удобным?

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

У RSA длина подписи в байтах ощутимо больше, чем у DSS. Глаза режет, когда письмо в две строчки и рядом RSA-подпись прикреплена на несколько килобайт.

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

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

psi+, ekg2, poezio, mcabber.. продолжать?

а вообще otr для этого удобнее.

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

a kak достичь той же надёжности другим способом более удобным?

А что подразумевается под «надежностью»?

Из топика ясно, что нужно jabber+GPG. Тогда следует помнить, что:
1. Для большинства юзеров GPG — это реально сложно.
2. Для добавления одного юзера в сеть шифрованного общения, придется идти к нему домой, подружить gpg с sks-сервером, заапрувить набор главных ключей, отточить остальные моменты, в первую очередь автополучение gpg-ключей с sks-сервера. Это всё мелкие задачи, но в сумме — это человеко-часы и человеко-дни.
3. Зашифрованные данные GPG почти не привязаны ни ко времени, ни к сессии общения: если сообщение задержится в пути или потеряется, то сеанс связи не нарушается.
4. Следовательно (из п.3), при использовании GPG нет forward secrecy, т.е. однажды перехваченные сообщения могут быть расшифровать при похищении ключа расшифровки в будущем.

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

ekg2, poezio, mcabber.. продолжать?

Уже вижу консольные jabber-клиенты в инсталляциях на тысячи человек. Можно не продолжать, реально.

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

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)
Ответ на: комментарий от shahid

ekg2 умеет gtk, плавда оно сдохло.

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

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

Да, otr намного удобнее сабжа. Но у него свои проблемы, начиная с отвала шифрованной сессии на плохом канале и заканчивая часто недопиленной поддержкой на клиентах. Из удобных в повседневном использовании встречал только jabber+ESession, но у него с поддержкой на клиентах так же, как и у GPG.

ТС'у ещё можно посоветовать bitmessage с адресной книгой и броадкастами.

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

У RSA длина подписи в байтах ощутимо больше, чем у DSS. Глаза режет, когда письмо в две строчки и рядом RSA-подпись прикреплена на несколько килобайт.

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

Тогда эллиптическая криптография. Там как раз, насколько я знаю, подпись очень короткая получается.

Как ни крути, два ключа это перебор. Хотя, конечно, зависит от User Interface, можно сделать так, что будет незаметно.

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

С мобилы/по gprs если с сообщениями работать, то DSA маленькая и генерится быстро, чего не скажешь об тормозной и жирной RSA.
+ Если сгенерил Elgamal-ключ, то будет связка ключей с DSA-подписью и соответствующим DSA-мастер-ключом.
Так зачем платить больше?

Тогда эллиптическая криптография.

gpg с поддержкой ECC всё ещё не зарелизился. Потом ещё года два надо подождать, пока все обновятся на ветку 2.1.

насколько я знаю, подпись очень короткая получается.

Да, ECDSA короткий. Отчасти из-за своей молодости.

Как ни крути, два ключа это перебор

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

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)
Ответ на: комментарий от shahid

2. Ну так... Публичный ключ нужен чужой, а приватный - свой. Всё сходится. Шифруешь сообщение публичным ключом адресата, результат подписываешь своим приватным. Адресат проверяет подпись твоим публичным, расшифровывает своим приватным. В чём проблема? Знать чужие приватные ключи никакой необходимости нет, если речь об этом.

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