XMPP - шифрование Openfire SSL - с чего начать? - PullRequest
0 голосов
/ 27 мая 2011

Я пытаюсь реализовать чат / совместную работу xmpp между двумя настольными клиентами C #, которые обмениваются данными XMPP через сервер Openfire. Подвох в том, что я должен защищать связь между этими клиентами и сервером через HTTPS. Есть ли конкретная библиотека илиСтратегия, которая лучше всего используется для достижения этой цели.Честно говоря, мне трудно даже найти место, с которого можно начать здесь.

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

Настоящей задачей здесь является попытка подключить моих клиентов к Openfire с использованием SSL.Хотя здесь и там есть сообщения на форумах, в частности на веб-сайте Ignite Realtime, мне еще не удалось найти однозначного объяснения о том, как правильно настроить сервер openfire и клиент для обеспечения безопасности этого соединения.

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

Вы должны взглянуть на Джингл и Либжингл . Я не использовал их, но я понимаю, что вам необходимо использовать Jingle для одноранговых соединений (XMPP чаще всего использует сервер для чата). Библиотека libjingle - это C ++, но ее можно вызвать из кода C # с помощью P / Invoke.

Исходя из вашего комментария об Openfire, вы должны проверить список библиотек для C # / .NET в http://xmpp.org/xmpp-software/libraries/, и популярный в http://www.ag -software.de / agsxmpp-sdk / . Это совместимые со стандартами библиотеки, которые включают примеры, показывающие, как подключиться к любому серверу XMPP. Если вы не хотите использовать специальное расширение, доступное на XMPP-сервере, вы сможете начать работу с ним. Если вы все еще боретесь, посмотрите книги О'Рейли по XMPP и Jabber (один из коллег написал это)

Рассматривали ли вы вообще использование WCF для этого или вы ограничены использованием XMPP? Есть несколько chat примеров .

0 голосов
/ 28 мая 2011

Вот соответствующий код из Jabber-Net , который использует system.net.security.SslStream :

m_stream = m_sslStream = new SslStream(m_stream, 
                                       false,
                                       ValidateServerCertificate, 
                                       ChooseClientCertificate);
...