28 июля 2007 г.

Почему XMPP? Часть 4. Безопасность и покой.

Последняя на сегодняшний день статья Aaron Toponce о Jabber.

Почему XMPP? Часть 4. Безопасность и покой.

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

Шифрование данных - одна из моих самых любимых тем. Я много раз писал о безопасности и давал много презентаций. Я не считаю себя экспертом, но вполне разбираюсь в этой теме, по крайней мере с тех пор, как в 2001 году создал свой GnuPG ключ. Поскольку шифрование данных является столь важной частью моей повседневной жизни, для меня важно использовать протокол, который поддерживает его нативно. Это еще одна причина тому, чтобы выбрать Jabber. Присмотримся получше и включим воображение.

Для начала, воображение. Представьте, что вы работаете на крупном предприятии. Вы используете icq для связи со своими коллегами и возможно даже клиентами. В течение дня вы спорите с коллегой о том, что он(а) делает, на ваш взгляд, неправильно. У нее к вам тоже есть аналогичные претензии. Постепенно вы приходите в праведный гнев и перестаете стесняться каких бы то ни было выражений. Вы ведь никогда не ладили с ним(с ней), и у него(нее) есть несколько друзей, которые хотят ему(ей) помочь любыми доступными способами. Зная о том, что сообщения icq передаются по сети открытым текстом, вы запускаете Wire Shark и отлавливаете все icq пакеты, наблюдая за его(ее) разговором с друзьями о вас. Да, вы сможете видеть весь текст после очистки TCP дампа.

Я не смирюсь со сниффингом пакетов в копоративной сети. Речь о том, что если вас поймают, то вас уволят (если, конечно, вы не из персонала IT). Но, урок есть урок. Используя доступные инструменты сниффинга пакетов, вы можете заполучить логины, пароли и целые разговоры по протоколам IM, которые не используют шифрования. В их числе MSN, AIM, icq, Yahoo! и большинство других. С моей точки зрения все, что передается без шифрования, есть дыра в безопасности. Итак, используя протоколы, которые не шифруют свой траффик, вы просто сами напрашиваетесь на неприятности.

И тут на сцене появляется Jabber. Когда появился XMPP, SSL был явлением первой важности. Каждый аккаунт Jabber, должен был быть соединен шифрованным потоком. Конечно же, изначально SSL использовался по умолчанию. Теперь, с появлением TLS, Jabber по умолчанию использует TLS. Некоторые сервера Jabber поддерживают и SSL, и TLS для максимальной обратной совместимости. В любом случае, вы можете быть уверены, что траффик между вами и сервером на 100% шифрован. Это означает, что сколько бы времени злоумышленник не пытался отловить пакеты с помощью сниффинга, он не сможет заполучить информацию аккаунта, пароль или содержание разговора.

К сожалению, шифрование производится дважды: на клиенте и на сервере. Это означает, что на компьютере пользователя и на сервере могут открытым текстом храниться логи разговоров. В качестве примера: если вы используете Gmail в качестве аккаунта Jabber, вы можете заглянуть во вкладку "Чаты" в веб-интерфейсе Gmail. По умолчанию, логи всех ваших бесед хранятся в вашем аккаунте Gmail (но при желании их можно отключить). Они хранятся открытым текстом после расшифровки их сервером. Меня, и, к счастью, команду разработчиков XMPP, это беспокоит. Почему мы не можем использовать механизм шифрования "клиент-клиент" вместо "клиент-сервер(-сервер)-клиент"? К счастью, в следующих релизах XMPP планируется поддержка такой функции. В любом случае, по проводам идет шифрованный поток и вы можете не беспокоиться насчет не в меру ретивых сотрудников, пытающихся сниффить ваши пакеты в надежде выведать, что же вы говорите о них друзьям. :)

Шифрованием данных никого не удивишь. Многие клиенты включают в себя различные плагины сторонних разработчиков, дающие возможность шифрования в режиме "клиент-клиент" вне зависимости от протокола. Я уже когда-то писал об этом, в надежде хотя бы на какое-то подобие стандарта в этой области. Однако, все эти инструменты просто шифруют текст сообщений, оставляя доступным IP в пакете. Представьте себе шифрование целого пакета "от и до", без единого нешифрованного байта. Именно к этой цели и стремятся разработчики XMPP.

Благодаря децентрализации XMPP, установка Jabber в локальной сети - это еще один способ достичь безопасности. Не только шифруя пакеты, но и изолируя их от внешней сети в принципе - о таком уровне безопасности многие даже и не мечтали! Используя проприетарные IM-сети, вы автоматически ставите себя в зависимость от двух вещей: Интернета и IM-провайдера. Установив на предприятии собственный сервер XMPP, вы получаете невероятно удобное положение: вам совсем не нужно подключение к Интернету и надежный внешний IM-провайдер. В этом случае именно вы держите штурвал в своих руках, и мне кажется, что такого уровня безопасности другими методами вам просто не достичь. Зачем рассылать пакеты по всему Интернету, если они все равно вернутся к вам на предприятие?

Надеюсь, что этот плюс в пользу XMPP убедит пользователей других IM-сетей перейти на Jabber и избавиться от своих проприетарных аккаунтов. Безопасность важна всегда, и почему другие сети до сих пор не занялись ею, остается для меня загадкой. Объединив сторонние плагины шифрования и внутреннюю корпоративную сеть, вы сделаете ваш сервер Jabber защищенным от ненужных глаз. Команда разработчиков XMPP занята усовершенствованием безопасности Jabber, поэтому мне кажется, что этот протокол должен стать единственным используемым всеми. Просто вглядитесь в возможности.

© Aaron Toponce, 'Why XMPP Part 4- Security Means Peace Of Mind', немного вольный перевод: vonderer.

PS. К слову сказать, в пользовательском соглашении icq черным по белому (или какими-то другими, но все равно довольно контрастными цветами) явно прописано примерно следующее: "пользователь icq отказывается от всех интеллектуальных прав на материал, переданный с помощью icq". Как люди после такого прямого заявления о том, что все, что они пишут, может быть на совершенно законных основаниях прочитано (а еще более меня раздражает, что об этом говорят напрямую, вероятно исходя из мнения "пользователь==идиот"), соглашаются и начинают этим пользоваться, мне до сих пор не понятно. Единственная причина, как мне кажется, - у нас, в России, никто не читает пользовательских соглашений, только флажки ставят - лишь бы быстрее начать писать.

Для пользователей beta.ya.ru, которая до сих пор отказывается адекватно работать с этим блогом, ЕЩЕ РАЗ пытаюсь добавить его в свой я.ру:
25680257.b47f3f5fbfa22cb6dcd942986f9ed7fd.1185645117.8a2a514dff43e029f67ece40af8234a5

2 комментария:

Юрий комментирует...

спасибо за статью

Kirk комментирует...

Статья просто отличная!
Автор +1!

Отправить комментарий