Джаббер переходит на полное шифрование / Хабр

Джаббер переходит на полное шифрование / Хабр Сертификаты

Интересно, dukgo тоже переведет свои сервера на сие нововведение?

Действительно интересно, но неизвестно.

Cisco jabber сертефикаты — trunk allowed vlan without add

По поводу процесса подкидывания сертификатов у Cisco есть хорошая документация, а так же готовые howto’шки. Поэтому сам процесс я повторять не буду, лучше просто в конце поста добавлю хорошее видео с канала Cisco Support Community. В этой небольшой заметке я аккумулирую ответ на вопрос «как не сделать всё без прерывания сервиса, если у меня неудачная ситуация», потому что узнавать мне их пришлось на форумах поддержки и моей лаборатории. Рассматриваться будет самый тяжёлый случай: нам надо подтянуть сертификаты, «что бы Jabber не ругался на самоподписанные», а у нас кластер CUCM c Presence Redundancy Group, так ещё и все ноды (>4) забиты IP адресами.

  1. Убедитесь, что на всех нодах прописан актуальный DNS сервер
  2. Убедитесь, что дата и время на всех нодах верное и синхронизируется с актуального NTP сервера.
  3. Внесите А и PTR записи для всех нод в DNS сервер, если таковой ещё нет.
  4. Убедитесь, что Hostname на каждой ноде в Cisco Unified OS AdministrationSettingsIPEthernetHost InformationHostname соответствует DNS записи. Если соответствия нет — измените Hostname, либо DNS запись.
  5. Сгенерируйте CSR-запрос на любой из нод CUCM для SAN сертификата для сервиса tomcat. Загрузите SAN-сертификат как tomcat, root CA сертификат как tomcat-trust (если выпускающий центр сертификации является подчинённым, то необходимо загрузить всю цепочку сертификатов до корневого как tomcat-trust). Проверьте, что все сертификаты присутствуют на всех нодах (судя по жалобам на форумах поддержки — от версии к версии стреляет по разному). В моём случае (CUCM 10.5.2.13900-12 и IM&P 10.5.2.24900-8) SAN сертификат автоматически не загрузился на IM&P, а так же не подтянулся корневой сертификат из PKCS7 цепочки ни на одну из нод (сертификат подчинённого центра сертификации загрузился нормально).
  6. Перезапустите Cisco Tomcat на каждой ноде.
  7. Убедитесь, что на ваших телефонах прописан актуальный DNS сервер.
  8. Замените IP на FQDN в Cisco Unified CM AdministrationServer для всех нод. После проверьте состояние репликации БД.
  9. Теперь загрузите корневой сертификат (опять же, если у вас подчинённый центр сертификации, то всю цепочку) только на ноды IM&P как cup-trust и cup-xmpp-trust.
  10. Сгенерируйте cup CSR для каждой ноды и cup-xmpp CSR SAN.
  11. Выпустите сертификаты и загрузите их как cup (на каждую ноду — свой) и как cup-xmpp.
  12. Перезапустите сервисы SIP Proxy, Presence Engine и XCP Router.

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

Про сертификаты:  Купить реактивы Sigma-Aldrich (Сигма Алдрич)

Вы не поверите…

Джаббер переходит на полное шифрование / Хабр

Инструменты

В качестве системы шифрования мы будем использовать пакет с открытым кодом GnuPG (эй, не убегайте, это под Windiows тоже есть и очень даже юзерфрендли :)) и клиент Psi. Уверен, что в других клиентах процедура схожая. Я взял реализацию под windows, так как всё-таки её использует большинство пользователей, а юниксоиды, думаю, и сами разбирутся. В *nix в качестве удобного средства управления ключами можно посоветовать kgpg.

Предполагаю что у вас уже стоит jabber клиент, он настроен и соединение с сетью есть.

Какие сервера участвуют в тестовых днях и поддерживают манифест?

Jabber.org – главный сервер всея XMPP,

jabber.ccc.de – крупный немецкий сервер,

jabber.at — чуваки, которые сделали опенсорсную панель для регистрации на джаббер-серверах,

Какую выбрать связку jabber-сервер ios клиент с поддержкой сертификатов и push-notification?

Добрый день!

Нужно развернуть корпоративный jabber-сервис. Клиенты в основном мобильные под iOS.

Обязательные условия:
– аутентификация по сертификатам,
– работающие push-уведомления,
– осмысленное содержимое сообщений проходит только через наш сервер и только в зашифрованном виде.
Важно, чтобы после прерывания связи на устройстве человеку доходили offline-сообщения, и он об этом узнавал.
Желательно: возможность управлять контакт-листами пользователей, roster groups.

В данный момент в качестве сервера рассматриваю Openfire и ejabberd. Можно и что-то проприетарное, если есть вариант попробовать trial.

Кто что пробовал? Какие результаты?

Как реализовать собственный IM-сервер для общения текстовыми сообщениями с клиентом для iPhone (push-уведомления обязательны)? – тут добрые люди подробно описали суть проблемы и возможную архитектуру решения, но конкретного ПО никто не рекомендовал.

С Openfire – пока непонятно, как к нему прикрутить push-notification. Готового плагина не нашел. Может кто-то знает решение?
C ejabberd не очень хочется связываться, но если есть положительные отзывы по работе с каким-то iOS клиентом, поделитесь.

Мотивация

Для чего может понадобится шифрование сообщений?

  1. Так как сеть XMPP федеративная и каждый может основать свой узел, то ставится вопрос доверия администратору данного сервера. Сервер могут сломать, сам админ может подбарижить данными и т.д.
  2. XMPP набирает популярность в качестве внутрикорпоративного обмена. Может быть сервер и не имеет выхода в Интернет, но никто не застрахован от приезда Party-van с маски-шоу внутри
  3. Цифровая подпись повышает надёжность идентификации. То есть вы точно знаете что в данный момент за компьютером сидит именно тот человек, который вам дал ключ, а не тот кто ломанул его аккаунт или воспользовался его отсутсвием его за компьютером

Немного теории

Сообщения шифруются с помощью криптосистемы с открытым ключом. Если не вдаваться в подробности, суть системы шифрования состоит в том, что существует пара ключей и некая процедура, которая может с помощью одного ключа преобразовать сообщение так, что обратное преобразование можно будет выполнить только с помощью другого ключа. Один из этих ключей называется закрытым и держится в тайне, другой же, напротив, называется открытым, и распространяется свободно. Таким образом, зашифровав сообщение открытым ключом можно быть уверенным, что его прочитает только владелец закрытого ключа, напротив, подписав что-то своим ключом автор даёт уверенность получателю сообщения в своём авторстве.
Можно объединить эти две процедуры и тогда содержимое будет известно только двум лицам, обладающими соответсвующими ключами. Наглядно это изображено на картинке:
Джаббер переходит на полное шифрование / Хабр

Про сертификаты:  ООО «РЭМЗ»

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

Получаем бесплатный ssl сертификат / comments / habr

Ну, в общем, если вы таки серьезно — то да, все сводится к тому, есть ли в системе CA-сертификат cacert.org или нет и отдельному вопросу — как он туда попал.

Сейчас ради интереса проверил на нескольких системах, куда имею доступ — где-то есть, где-то нет. Показательно нет на Ubuntu, что отдельно смешно 🙂

Я уже довольно давно не слежу за тем, как cacert.org прогрессирует в плане включения себя в основные ОС и браузеры, но сейчас поискал немножко какие-то списки и совместимости — всё действительно относительно грустно — видимо, с момента bugzilla.mozilla.org/show_bug.cgi?id=215243#c158 толком ничего не изменилось.

Принять манифест

Манифест может подписать любой разработчик/администратор джаббер-сервера. Чтобы подписать, просто добавьте своё имя и должность в список подписантов через пулл-реквест:

Шаг второй, добавление своего ключа в psi и импорт открытых ключей контактов

Итак, теперь надо сказать Psi, что нужно использовать ключ. Запускаем Psi, идём в настройки аккаунта, там во вкладке подробности нажимаем «выбрать openPGP ключ» и указываем наш ключ.

Джаббер переходит на полное шифрование / Хабр

После выбора ключа и переподключения к сети, Psi затребует пароль от закрытого ключа:

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

Допустим, вы обменялись с кем-то ключами, по есть отдали свой открытый ключ и получили чей-то открытый. Теперь нужно привязать ключ к конкретному аккаунту. Для этого заходим в WinPT, заходим в key->import, далее выбираем файл с ключом нужного человека.

Всё, открытый ключ импортирован в систему. Стоит сказать, что Psi считывает состояние ключей только при запуске, так что после того как мы добавили новый ключ надо перезапустить Psi. Кликаем правой кнопкой мыши на нужный контакт и выбираем «Присвоить ключ OpenPGP», присваиваем контакту его ключ. Теперь мы можем проверить электронную подпись нашего контакта:

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

Шаг первый, загрузка по и генерация закрытого и открытого ключей

Для пользователей Windows специально создан пакет программ

, который существенно облегчает работу с GPG.

, выбираем необходимые компоненты и устанавливаем.

Джаббер переходит на полное шифрование / Хабр

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

Про сертификаты:  Как защитить WLAN с помощью сертификатов | Windows IT Pro/RE | Издательство «Открытые системы»

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

Шаг третьий. обмениваемся шифрованными сообщениями

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

Последнее сообщение в шифрованном виде выглядит так:

Ejabber и сертификат | памятка на будущее

В связи с внедрением шифрования в xmpp , я озаботился поменять шифровальную пару, сертификат и проверить свой сервак на соответствие “текущему моменту” так сказать.

Важно: в поле Subject DN значение CN должно равняться домену, а не имени сервака. Что принципиально отличается от https,  например. Этот так, на память.

Забавно, но у меня создалось впечатление, что возможная суть происходящего:

  • заставить людей покупать сертификаты. Не, конечно, пока можно удовольствоваться бесплатным, но принуждение завязываться на чью-то сертификацию… Чего-то попахивает кидаловом.
  • получить возможность отключить любой кусок xmpp пространства. У кого CA, тот ведь может и отозвать сертификат. И временно заблокировать. Счета ведь блокируют, а почему бы не отключить тех кто не согласен с единственно верными, скажем, демократическими ценностями.

Что меня смущает:

  • IM Observatory спокойно относится к алгоритмам шифрования, длине ключа. А вот за самоподписанный сертификат сразу следует “кидок” с “A” на “F” по их шкале европейских ценностей: “Certificate is not trusted, grade capped to F. Ignoring trust: A.” На алгоритмы наплевать, а вот пользоваться “правильным” CA это суперважно, да, да.
  • принуждение пользоваться сервисом (в данном случае – сертификацией) от “правильных” CA напрягает.
  •  хорошо, сейчас “зачистят” xmpp-пространство от “неправильных” сертификатов. Кто мешает потом также зачистить и от бесплатных? Или по какому ещё признаку. Какого … кучка коммерсантов решает, кто может передавать xmpp сообщения, а кто нет. Почту тоже отдадим “эффективным” менеджерам?
  • спешка. Ну, куда гнать?
  • зачем отключать тех, кто не перешел на шифрование? Ну, сделайте пометку на сообщения, которые проходили нешифрованным каналом.
  • сервера не готовы, клиенты не готовы, инструкций “кот наплакал”.
  • Нафига всё это? Не, модно, все дела. А кроме “пальцев”?
  • представьте – завтра запретили http. Остался только https…

Конспирология какая-то. Но, скажем, в ssmtp обошлись ведь без диктата производителей сертификатов. Что, теперь, вместо твиттерных, будут делать джабберные революции? В общем, что-то мне не нравится этот процесс…

jabber-grade

Прикольно, да?…

Заключение

Итак, как видно, шифровать сообщения на лету очень просто, для конечного юзера не меняется практически ничего, а надёжность системы возрастает. Может быть это и сподвигнет кого-то перейти на xmpp/jabber.

Но всегда нужно помнить:

  1. Шифрование не отменяет голову. Храните пароль от ключей в секрете, сделите за кейлоггерами, вирусами и прочим.
  2. Это

Спасибо за внимание, надеюсь было интересно. 🙂

Оцените статью
Мой сертификат
Добавить комментарий