Введение
Ничто так радикально не изменилось за последние несколько лет как наше отношение и поведение в том, что касается передачи информации. Компьютеры настолько вошли в нашу личную жизнь и работу, что полностью изменили способы обмена информацией, которые мы используем для общения с друзьями, членами семьи и деловыми партнёрами. А ведь ещё десяток лет назад ситуация была совсем другой. Особенно это касается работы, где зачастую коммуникация с деловыми партнёрами и клиентами происходит сейчас посредством электронной почты. В сущности, сама электронная почта стала мобильной, поскольку деловые люди для общения пользуются такими мобильными устройствами, как ноутбуки, КПК, а также мобильными телефонами с возможностью отправки e-mail. Это, в свою очередь, стало возможным, благодаря таким сетям передачи данных, как Universal Mobile Telecommunications System (UMTS) и General Packet Radio System (GPRS). Современное кредо коммуникации может быть таким: “На связи всегда и везде!”
Тем не менее, есть ситуации, когда нецелесообразно или неуместно пользоваться электронной почтой. Возможно, не стоит ради короткого вопроса отправлять целое письмо. Спам также является одной из причин того, почему многие не любят заглядывать в свой почтовый ящик.
Революционная новинка: мгновенный обмен сообщениями
Деловые люди всё больше и больше обращаются к тем же самым средствам коммуникации, которые обычные пользователи давно применяют с огромным успехом: к мгновенному обмену сообщениями (Instant Messaging, IM). Технология мгновенного обмена сообщениями подразумевает обмен текстовыми сообщениями в режиме реального времени с использованием сетевого программного обеспечения (мессенджера), как правило, через Интернет. IM-приложения позволяют двум и более пользователям обмениваться сообщениями, причём скорость ответа будет зависеть лишь от того, насколько быстро ваш собеседник сможет напечатать своё сообщение. Фактически, способ общения посредством мгновенного обмена сообщениями занимает промежуточное положение между телефонными звонками и перепиской по e-mail, потому что это не требует такой оперативности, как телефонный звонок, но более синхронно, чем e-mail.
Мгновенный обмен сообщениями постепенно внедряется в сферу бизнеса, потому что обладает большим преимуществом: общение в реальном времени.
Программное обеспечение и сети, необходимые для работы IM, можно получить совершенно бесплатно от таких мега-провайдеров, как AOL (ICQ), Yahoo и Microsoft. Израильская компания Mirabilis одна из первых предложила программное обеспечение мгновенного обмена сообщениями вместе с необходимой соответствующей инфраструктурой. Данная программа была выпущена в 1996 году, и многие пользователи сразу же узнают её по названию – ICQ. После выхода в свет этого мессенджера, количество его пользователей поразительно возросло, потому что он превосходил все существующие на тот момент альтернативные приложения.
Трудно выбрать: AIM, ICQ, Live Messenger и другие
В 1998 году AOL (America Online) купила Mirabilis. Поскольку к тому времени у компании AOL уже был свой IM-клиент – AOL Instant Messenger (AIM), она добавила поддержку протоколов ICQ в AIM, и наоборот, чтобы пользователи AIM и ICQ могли свободно обмениваться сообщениями друг с другом. Благодаря этому образовалась одна из самых крупных в мире IM-сетей, имеющая около 400 млн. зарегистрированных пользователей и захватившая более половины рынка мгновенного обмена сообщениями.
Вместе с AOL на рынок IM-клиентов “шагнули” такие компании, как Microsoft и Yahoo. Это привело к так называемой “IM-войне”, поскольку основные игроки пытались привлечь пользователей на свою сторону и делали акцент на своих функциях и преимуществах перед другими IM-приложениями. Со своим мессенджером Windows Live Messenger, ранее известном как MSN Messenger, компания Microsoft привлекла на свою сторону около 300 млн. пользователей, что сделало Live Messenger одним из наиболее часто используемых на сегодняшний день IM-клиентов (в мире, в России очень сильны позиции ICQ). По сравнению с Microsoft и AOL, Yahoo имеет скромную клиентскую базу, насчитывающую десятки миллионов пользователей. В конце сентября 2006 года Microsoft и Yahoo завершили двухмесячное бета-тестирование, в процессе которого они связали две свои IM-сети.
IM-клиенты AOL Instant Messenger и Windows Live Messenger обладают самым большим количеством пользователей в мире. Помимо возможности получения и отправки сообщений, пользователям придётся иметь дело с многочисленной рекламой.
Многообразие приводит к несовместимости
С точки зрения пользователя, одна из самых больших проблем, связанных с количеством программ мгновенного обмена сообщениями, заключается в сложности их взаимодействия. Поскольку все крупные производители разработали свои собственные уникальные протоколы, то даже их огромные усилия, направленные на взаимодействие разных протоколов, не позволяют преодолеть некоторые ограничения. Это значит, что в зависимости от того, какие IM-клиенты используются, пользователи могут столкнуться с трудностями при работе с определёнными программными функциями, такими, как передача файлов между собеседниками. Фактически, это означает, что если вы хотите взаимодействовать с большим числом партнёров посредством программ мгновенного обмена сообщениями, то вы должны зарегистрироваться во множестве IM-сетей, каждая из которых требует наличия собственного набора программного обеспечения. К тому же, важно учесть пользовательские соглашения каждого IM-сервиса, которые имеют свои нюансы.
Мультипротокольные IM-клиенты
Чтобы избежать необходимости установки множества программ мгновенного обмена сообщениями, можно вместо этого обратиться к такому мультипротокольному IM-клиенту, как Trillian, Miranda или Pidgin. Преимуществом таких приложений является то, что они уменьшают использование системных ресурсов, по сравнению с работой нескольких отдельных IM-клиентов. Кроме того, такие программы объединяют все контакты в едином интерфейсе. Однако даже такие многофункциональные программы сталкиваются с проблемами при использовании функций, специфичных для определённого IM-сервиса, например, видеоконференции. Из-за частых изменений в IM-протоколах и клиентах пользователям мультипротокольных IM-клиентов приходится ждать обновления их программ в соответствии с последними модификациями. Часто это препятствует доступу к этим сетям, до тех пор, пока программа не будет обновлена с учётом последних изменений IM-сервиса.
Мультипротокольные IM-приложения, такие, как Miranda, используются не всеми пользователями.
Закрытые системы представляют угрозу безопасности для своих пользователей
Коммуникационные протоколы больших IM-платформ являются закрытой собственностью их разработчиков и не имеют общедоступной документации. Для связи между конечными пользователями необходимо каждый раз проходить регистрацию на централизованных серверах сетей, поэтому пользователи находятся в зависимости от IM-системы. Именно последняя решает, с какими конкурирующими IM-протоколами следует открыть обмен сообщениями. Если сообщения шифруются по усмотрению пользователя, то применяется алгоритм шифрования, специфичный для данного IM-клиента, и, как правило, шифрование возможно, только если ваш собеседник использует тот же самый IM-клиент. Большинство бесед через существующие в настоящее время программы мгновенного обмена сообщениями считаются небезопасной формой обмена информацией. Разговоры могут быть “прослушаны”, что представляет серьёзную потенциальную угрозу конфиденциальности, особенно при использовании в бизнесе.
Ограничения, накладываемые лицензионным соглашением конечного пользователя
В дополнение к рискам безопасности, которыми обладают некоторые IM-платформы, включая программы от Microsoft, America Online, ICQ Inc. и Yahoo, не использующие шифрование сообщений, существуют ещё ограничения, накладываемые на использование этих сервисов. Например, AOL и Microsoft запрещают пользователям доступ к своим IM-сервисам, если для этого используются нелицензионные сторонние клиенты, к которым относятся популярные мультипротокольные IM-приложения. Это значит, что такие программы, как Trillian и Miranda, могут работать с этими сервисами нестабильно, потому что провайдеры этих сервисов только позволяют работать этим программам, но не заботятся о стабильности их работы.
Что ещё хуже, при использовании сети ICQ все передаваемые через неё данные становятся интеллектуальной собственностью компании ICQ, Inc., что прописано в “Приемлемой политике использования” (Acceptable Use Policy). Ограничения Microsoft менее обременительны, но, тем не менее, они предоставляют возможность компании свободно “использовать, копировать, распространять, отображать, публиковать и модифицировать ваши сообщения, публиковать ваше имя вместе с сообщениями и предоставлять такие права третьим лицам”. Аналогично, AOL не стесняется в присвоении и получении полных прав воспроизводить, отображать, распространять, изменять и рекламировать эти данные в любой среде.
Таким образом, использование какого бы то ни было IM-клиента крупной сети является довольно рискованным предприятием из-за наличия таких резких положений по правам провайдеров сервисов на передаваемую через них информацию. Если бы все учитывали только этот момент при принятии решения об использовании определённого сервиса, то AIM, ICQ и другие IM-сервисы давно бы уже прекратили своё существование.
XMPP: открытый и гибкий
Многие люди не готовы отказаться от использования программ мгновенного обмена сообщениями, но и не хотят принимать положения соглашения, которые описаны в предыдущем разделе. Тем пользователям, кто хочет иметь возможность свободного выбора IM-клиента без принятия обременительных обязательств, следует ознакомиться с Jabber.
Jabber открытый, хорошо документированный протокол, основанный на открытых XML стандартах: XMPP (Extensible Messaging and Presence Protocol) и XEP (XMPP Extension Protocol). Основы XMPP были заложены в проекте Jabber Project, который стартовал в 1998 году с целью разработать бесплатную альтернативу закрытым IM-платформам. XMPP был присвоен статус интернет-стандарта IETF в начале 2004 года, что отражено в документах RFC 3920 и 3921. XMPP, будучи протоколом, основанным на XML, является дружественным и легко расширяемым. Подробная информация о расширении XMPP доступна по адресу: http://www.xmpp.org.
Jabber постепенно продвигается вперёд; использование в бизнесе бесплатного программного обеспечения с открытым исходным кодом (Open Source Software) широко распространено и получает всё большую популярность.
Jabber развивается
Google предлагает IM-сервис под названием Google Talk, впервые представленный в августе 2005 года. Для своей работы он также использует сервер Jabber. С самого начала Jabber-сервер компании Google работал только с пользователями Google Talk, поэтому пользователи этого сервиса могли общаться только друг с другом. Однако в январе 2006 года Google сделала свою систему открытой, так что теперь пользователи любой системы Jabber могут общаться с пользователями Google Talk и наоборот.
Google также расширила протокол Jabber для поддержки VoIP. Компания опубликовала исходные коды этой библиотеки, известной как Jingle, в середине декабря 2005 года. Благодаря тому, что Jingle интегрирован в Jabber-клиенты сторонних разработчиков, использовать VoIP могут не только пользователи Google Talk.
Проект United Internet (Marken GMX, Web.de и 1&1) является ещё одним усилием по использованию платформы Jabber для мгновенного обмена сообщениями. Те, кто имеет почтовые учетные записи GMX или web.de, автоматически получают доступ и к Jabber.
Google Talk компании Google представляет собой одну из первых крупномасштабных разработок в области мгновенного обмена сообщениями с использованием XMPP.
Инфраструктура и функционирование Jabber-сети
Так же как и AIM, ICQ и Windows Live Messenger, Jabber использует архитектуру клиент/сервер. Как правило, соединения между Jabber-клиентами и серверами защищаются шифрованием SSL или StartTLS.
Также имеется возможность настроить сервер Jabber для работы в локальной сети. Это делает Jabber привлекательным для использования в сфере бизнеса, так как внутрикорпоративные разговоры через Jabber-сервис не покинут пределов LAN. Системные администраторы могут управлять регистрацией и доступом к Jabber-сервису, а также ограничивать использование для определённых пользователей и групп.
С другой стороны, общедоступная сеть Jabber в Интернете состоит из большого количества независимых серверов, каждый из которых управляет своими пользователями. Для связи между собой серверы используют специальный протокол типа “сервер-сервер”, который также поддерживает шифрование. Взаимодействие между серверами необходимо только в случае, если пользователь, зарегистрированный на сервере 1, хочет поговорить с пользователем, который зарегистрирован на сервере 2. Протокол “сервер-сервер” похож на почтовый протокол и может использовать систему доменных имён DNS для разрешения имён серверов в IP-адреса, чтобы сервер 1 мог установить связь с сервером 2.
Структура адреса Jabber
Так же, как и адрес e-mail, адрес Jabber состоит из нескольких компонентов. Идентификаторы Jabber-ID (JID) выглядят следующим образом: node@domain.tld, что позволяет их легко запоминать, как и e-mail адреса. На стороне клиента JID может быть ассоциирован с какими-либо ресурсами, что очень похоже на то, как ветка ресурсов (resource fork) ассоциируется с именами файлов в системе Mac OS. Это позволяет пользователям устанавливать несколько параллельных соединений с сервером Jabber, используя один и тот же JID для каждого соединения. Таким образом, например, пользователь может установить постоянное соединение со своего домашнего ПК с определённым Jabber-сервером, используя свой JID, и в то же время использовать этот же JID для подключения к сети Jabber с ноутбука в пути. В данных ресурсов можно установить приоритет, чтобы Jabber-сервер мог определить, какой именно IP-адрес использовать в конкретном сеансе разговора.
Шифрование разговоров
Помимо шифрования данных между Jabber-клиентом и Jabber-сервером и между различными серверами, Jabber позволяет также шифровать канал связи типа “клиент-клиент”. На самом деле, пользователи могут выбрать любой из трёх методов шифрования на этом уровне. Как в случае шифрования e-mail, один из методов использует стандарт шифрования S/MIME (Secure Multipurpose Internet Mail Extensions), описанный в RFC, однако эта реализация содержит много лишнего и сложна в изучении, поэтому большинство Jabber-разработчиков не используют его в своём ПО.
Одним из самых распространённых методов шифрования является метод, основанный на Open PGP. Это расширение XEP (XMPP Extension Protocol) описано в документации Jabber Open PGP Usage с оговоркой, что этот метод шифрования ещё не принят в качестве интернет-стандарта. Ещё одним недостатком является то, что при использовании шифрования, основанного на OpenPGP, существует потенциальная угроза безопасности: ключи шифрования, назначенные пользователю, могут не меняться в течение длительного периода, а следовательно, перехваченные разговоры могут быть расшифрованы, если ключ был украден или взломан при помощи brute-force. Таким образом, злоумышленники могут узнать об участниках разговора и о содержании их беседы.
Без правильного ключа расшифровка невозможна, что, безусловно, хорошо, поскольку шифрование IM-сообщений также важно, как и шифрование писем e-mail.
Чтобы уменьшить эту угрозу, был разработан специальный вид сообщений с шифрованием OTR (off-the-record). В этом случае используются временные одноразовые ключи шифрования, которые часто меняются в ходе бесед. OTR использует библиотеку для шифрования, разработанную Яном Голдбергом (Ian Goldberg) и Никитой Борисовым (Nikita Borisov), которые реализовали такие алгоритмы шифрования, как AES, SHA1-HMAC и различные версии RSA. OTR управляет обменом ключей и их отслеживанием. Для обмена ключами используется протокол Diffie-Hellman.
Третий метод шифрования для Jabber на данный момент находится на экспериментальной стадии. Он описан в документе XEP-0116: Encrypted Session Negotiation. Шифрование использует SSH, SSH Transport Layer Protocol и OTR и, может быть, однажды оно заменит два других вышеупомянутых метода. Однако на сегодняшний день на XMPP.org рекомендуется использовать его только в экспериментальных целях, а не для бизнес-решений.
Доступные в Jabber-клиентах методы шифрования зависят от того, что реализовали разработчики. Пользователи, которые хотят попробовать использовать метод OTR, могут обратить внимание на плагины Cyperpunks.ca, доступные для многих популярных Jabber-клиентов.
Взаимодействие с другими сетями мгновенного обмена сообщениями
Транспорты Jabber открывают шлюзы в AIM/ICQ и MSN
Помимо перехода всех ваших знакомых на использование Jabber существует альтернативный способ для общения с теми, кто имеет учётные записи AIM/ICQ или MSN/Yahoo. Для этого используются транспортные протоколы, разработанные для сервера Jabber. В соответствии с установленными на Jabber-сервер транспортными протоколами он получает возможность связываться с соответствующими сетями AIM, ICQ, MSN и Yahoo.
Этот подход отличается от описанного ранее подхода в мультипротокольных программах мгновенного обмена сообщениями. Клиент не обязан поддерживать работу с закрытыми IM-протоколами, которые используются крупными сетями, всем этим будет заниматься сервер. Также это даёт ещё одно преимущество – при обновлении одного из IM-протоколов нет необходимости вносить изменения в клиентов, а достаточно обновить только сервер, после чего клиенты смогут продолжить свою работу.
На основе Python созданы такие транспорты, как PyICQt, PyAIMt и PyMSNt. Ещё один транспорт разработан для работы с сетью IRC и известен как PyIRCt. Кроме того, некоторые коммерческие производители также предлагают интерфейсы, позволяющие пользователям Jabber пересылать текстовые сообщения SMS в сетях GSM.
Необходимы дополнительные функции Jabber
Чтобы использовать эти транспорты в других сетях, клиенты Jabber должны поддерживать функцию “service discovery” (обнаружение сервисов). Это позволяет клиенту узнать у сервера, какие транспорты он поддерживает, и, следовательно, доступ к каким сетям клиент может получить. Кроме того, сервер Jabber может предоставлять поддержку многопользовательских чатов и пользовательских каталогов Jabber. Многопользовательские чаты предоставляют возможность нескольким пользователям одновременно обмениваться текстовыми сообщениями в рамках одного разговора.
Список контактов пользователя хранится на сервере Jabber. Таким образом, любой пользователь, имеющий доступ к серверу, автоматически получает доступ к своему списку контактов, используя для этого свой JID, независимо от системы, через которую вошёл пользователь. Одна из наиболее привлекательных функций Jabber – это так называемые общие списки контактов (Shared Roster). Благодаря этому, администраторы могут определять списки контактов на сервере, а затем предоставлять их всем членам определенной группы, как только они зашли на сервер. Пользователи не могут изменять такие списки. Но зато это позволяет сотрудникам получать быстрый доступ к нужным контактам без необходимости вручную добавлять их в свой список контактов.
Обзор сервера Jabber
Серверы Jabber могу работать на различных платформах с различными типами лицензий и использовать ряд языков программирования. Выбор сервера зависит от количества пользователей, которое он должен обслуживать, а также от набора функций, которые он должен предоставлять.
Наиболее популярными серверами Jabber являются:
Лучший из них – ejabberd, написанный на языке программирования Erlang, специально разработанном в компании Ericsson для создания телекоммуникационных приложений. Такие приложения широко используются провайдерами телекоммуникационных услуг.
Управлять ejabberd очень легко при помощи web-интерфейса.
Большинство пользователей, регистрирующихся в сети Jabber, не хотят, или им не требуется организовывать свой собственный сервер. Для таких пользователей большую ценность представляет ресурс Server List (Список серверов) на сайте XMPP. Используя этот список серверов, Jabber-клиенты могут зарегистрироваться на одном или более сервере, если это позволяет сделать клиентская программа.
Jabber-клиенты
Как и в случае с серверами Jabber, список Jabber-клиентов достаточно длинный. В дополнение к чисто Jabber-клиентам, таким, как Gajim, Psi и Spark, можно найти плагины для мультипротокольных программ мгновенного обмена сообщениями (Trillian, Miranda), чтобы добавить в них поддержку работы с Jabber. Выбор клиента зависит от ваших потребностей и предпочтений. Отметим, что только ignite real-time предлагает сервер Jabber (Openfire) вместе с клиентом (Spark).
Spark примечателен большим набором предоставляемых функций.
Заключение: Jabber – достаточно эффективный и безопасный
Такие ставшие популярными программы мгновенного обмена сообщениями, как AIM, ICQ, MSN и другие, имеют недостатки в использовании, что придаёт большую привлекательность альтернативным клиентам. Что ещё хуже, положения лицензионного соглашения определяют права компании на передаваемую через её сервис информацию, что заставляет серьёзно задуматься о возможности использования таких программ в бизнесе.
Jabber предлагает эффективную альтернативу широко известным IM-сервисам и уже имеет достаточно большое сообщество пользователей. За исключением отсутствия полной поддержки мультимедиа, Jabber не имеет серьёзных недостатков.
Бесспорно, клиенты MSN и AIM предоставляют определённые функции, которых нет в Jabber на сегодняшний день. Однако потребности тех пользователей, которым не требуются функции мультимедиа, могут быть вполне удовлетворены использованием Jabber-клиента, Jabber ID и возможностью использования шлюзов в популярные IM-сервисы. Эти функции и открытые протоколы Jabber, обеспечивающие свободный доступ большому количеству пользователей к новым интересным расширениям протокола, делают Jabber привлекательной альтернативой закрытым IM-сетям и приложениям.