Мы вчера писали о внеочередной смене ICQ протоколов компанией AOL, вследствие чего, все неофициальные клиенты ICQ, которые распространены среди пользователей стран СНГ, включая такие популярные мессенджеры, как QIP и Miranda, оказались неработоспособными почти в один миг. Это уже далеко не первая проделка подобного рода американской компании. Она несколько раз пыталась менять свои протоколы в надежде избавиться от неофициальных клиентов, которые мешали ведению бизнеса компании. Но, на этот раз, ее программисты постарались лучше, чем было до этого. Вот что удалось выяснить у разработчиков мессенджера Miranda IM - одного из самых популярных ICQ клиентов среди жителей СНГ:
Вчера, около 13.00 МСК почти все пользователи неофициальных клиентов после входа в сеть и загрузки контакт-листа получали от пользователя с UIN 1 сообщение о том, что используемая версия клиента не используется и неавторизованная. На официальном сайте, прямо на главной странице появилось сообщение, гласящее о том, что отныне поддерживаются только официальные версии программ, которые вот прям тут и можно скачать.
Пользователи, которые уже находились в сети, никаких изменений не почувствовали и не были отключены от сервера. У тех, кто пытался подключиться в первые час-полтора это получалось с переменным успехом: это объясняется тем, что сеть icq распределенная, и состоит из множества серверов, и даже после входа вас могут перебросить на другой. Судя по всему, изменения применялись на них по очереди.
Немного технических деталей. Процедура входа проходит вполне обычно: проходит инициализация протокола, отсылка capabilities, загрузка серверного контакт-листа и собственных данных. Примерно в это время и приходит сообщение от номера один, и после этого получить что-либо с сервера становится невозможно.
Решив, что сегодня повторилась ситуация 8-го декабря, когда клиенты перестали работать из-за того что во время логина идентифицировали себя как icq5.1 и более ранние версии, мы попробовали идентифицировать себя как icq6.5 последней модели. Это не принесло никаких результатов. Стало понятно, что в этот раз AOL пошел путем глубокой защиты — видимо теперь уже стали учитываться отправляемые капсы (capabilities, информация о поддерживаемых клиентом фишках протокола). Действительно, подмена их набора на тот, что использует icq6 помогла, однако только на время первого входа — если после этого переподключиться, то это уже не поможет. Судя по всему в последовательность входа и начальной инициализации внесли какие то изменения, при невыполнении которых клиент считается альтернативным. Разработчики QIP высказали предположение о том, что серверу нужен некий дополнительный ключ, который может как просто быть зашит в клиент, так и вычисляться на основе полученной от сервера информации.
Кроме того хочу заметить интересный факт — эти изменения затронули только жителей стран СНГ. Когда я связался с нашими разработчиками из Чехии и Германии они были слегка в недоумении — у них все работало прекрасно. Кроме того мы успешно смогли подключиться с миранды, используя американский прокси-сервер, так что есть подозрения о том, что это целенаправленная травля разрабатываемых в России альтернативных мессенджеров.
Сейчас разработчик QIP, INF, поделился со мной мыслью о том, что все дело в используемом начальном значении идентификатора последовательности у отправляемых пакетов. Все неофициальные клиенты генерируют их случайным образом, и это может быть тот самый ключ. Основная проблема заключается в том, чтобы узнать алгоритм его генерации.
Как видим, компании AOL довольствоваться результатами "войны" с неофициальными ICQ клиентами пришлось не долго. Сегодня в полночь, на официальной странице мессенджера QIP разработчики представили новую версию - QIP Infium (build 9022), которая теперь без всяких проблем работает с новыми протоколами американской компании.