Чат — основная форма общения в современном мире. Даже с близкими людьми мы можем общаться в мессенджерах чаще, чем разговаривать вживую. Подавляющее большинство популярных решений являются централизованными и проприетарными, то есть они управляются узким кругом лиц, а большинство их внутренних процессов абсолютно неподвластно конечному пользователю. Существуют и свободные проекты, например, XMPP (Jabber), Matrix, ActivityPub и еще немалое количество менее популярных проектов и протоколов.

Свободные проекты отличаются полной открытостью исходного кода клиентской и серверной частей — любой желающий может развернуть полноценную экосистему на своих мощностях без какой-либо зависимости от основных разработчиков. Человек с навыками программирования может провести аудит исходного кода, чтобы оценить уровень безопасности, а также самостоятельно изменить любую часть программы, или вовсе написать свой клиент под нужный протокол.

Время рождения протокола "ирки", "ирц", или IRC — всё одно — хорошо ощущается по одному факту: у IRC нет официального логотипа. Видимо, в конце 80-ых уделяли мало внимания красивой обложке программного обеспечения. Несмотря на это, IRC — настоящий титан своей ниши среди современников того времени: синхронизированная работа нескольких серверов в рамках одной IRC-сети, различные роли пользователей (операторы, администраторы, несколько категорий доступа для рядовых юзеров), групповые чаты, личные сообщения, простота разработки ботов, крайне низкое потребление системных ресурсов сервера.

Эта статья посвящается протоколу IRC (Internet Relay Chat), который старше многих читателей. IRC берет свое начало в 1988 году и законно является первым массовым стандартизированным мессенджером! Архитектурно он считается устаревшим, но предлагаю взглянуть на него с другой стороны — это самый минималистичный из массовых протоколов общения!

К слову, электронная почта также является безнадежно устаревшей, но благодаря открытости протокола мы по сей день имеем тысячи независимых серверов и миллионы пользователей, которые регулярно проверяют свой почтовый ящик. Пока господа капиталисты тянут одеяло каждый на себя, стараясь закабалить пользователей в своих ламповых социальных сетях, абстрагируясь от остального мира, свободные массовые протоколы уверенно удерживают нишу всемирного взаимодействия. Те же Apple и Microsoft мирятся с потребностью уникального инструмента и предоставляют пользователям свои сервера электронной почты. Уместно вспомнить и Вконтакте, который в 2021 году вдруг начал рекламировать свою электронную почту.

Незаметно для себя, мы привыкли к СМС-подтверждениям регистрации и повсеместную привязку аккаунтов к номеру телефона (считайте, что к паспортным данным). Мессенджер, который вовсе может работать без регистрации — из области фантастики! Вразрез современным настроениям, протокол IRC позволяет войти в общий чат или использовать личные сообщения без какой-либо регистрации: ни пароля, ни логина, только никнейм и — добро пожаловать.

IRC настолько анархистско-минималистичный, что им можно пользоваться без клиентов, а для написания бота не потребуется никакого API. Подключиться к серверу и написать пару ласковых слов можно при наличии утилиты вроде telnet или netcat, которые позволят писать напрямую в сокет IRC-сервера.

Пример подключения через telnet

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

Благодаря возрасту протокола, сегодня доступно большое количество различных клиентов, обеспечивающих комфортное использование IRC. Самые популярные: HexChat, Quassel IRC, Konversation и Kvirk, также существует много симпатичных клиентов под смартфоны (в этом опыт небольшой, могу посоветовать только Revolution). В век JavaScript и повсеместного использования веб-браузеров нельзя обойтись без веб-клиента, самые видные из которых: The Lounge, KiwiIRC и qwebirc. Особым спросом пользуется консольный клиент без графической оболочки WeeChat.

Я младше протокола, но каждый день с удовольствием его использую. И мог бы решить, что рехнулся, но посмотрите: масса современных клиентов поддерживаются по сей день. Это означает, что IRC кому-то нужен.

Не будем сильно вдаваться в ретроспективу и перечислять возможные компьютеризированные сферы общества девяностых и начала нулевых, где использовался IRC — он использовался везде ввиду отсутствия аналогов. Главный вопрос: где IRC используется сегодня.

При вынашивании темы, я планировал рассказать о IRC в качестве чата в корпоративной сети, который прост в использовании и администрировании. Однако, сегодня ассортимент чатов для офисов так велик, что тратить время рассказами про офисный IRC в 2021 году — пустая трата времени.

Реально "иркой" пользуются люди, которые начали делать это еще во времена ее популярности — отсюда большая распространенность IRC среди бывалых программистов. Наверняка каждый встречал где-либо упоминание freenode (или libera chat), а также поддомены irc. у самых разных ай-ти проектов (в большей степени у свободных, которые нуждаются в активном общении внутри сообщества). Было бы упущением не упомянуть RusNet — самую крупную русскоязычную IRC-сеть общей тематики.

Если обратить внимание на то, какие средства общения популярны в скрытых сетях, в частности, в I2P, можно удивиться — за мелкими исключениями IRC до сих пор является монополистом. С одной стороны объяснение простое: скрытыми сетями пользуется та же горстка гиков, что и другими IRC-серверами, но давайте взглянем на это под другим углом...

Регистрация практически в любой современной социальной сети, почтовом сервисе или мессенджере подразумевает получение кода подтверждения через СМС. Когда-то это вызывало много возмущений, но теперь даже нахваленные Signal и Telegram привязываются к номеру телефона. Я не понимаю о какой приватности может идти речь, когда аккаунт ассоциирован с моими паспортными данными. Даже если вы используете левые сим-карты для регистрации, сам факт того, что требуется сим-карта — тревожный звонок. Анекдот из жанра "1984", где было Министерство любви, занимающееся пытками: у нас повсеместно развернулись филиалы Министерства приватности.

Пользователи скрытых сетей уважают приватность в высшем ее проявлении, то есть заботятся о своей анонимности (рассуждения на эту тему "всё ли в даркнете — криминал" отражены в отдельной статье).

На контрасте с популряными мессенджерами, IRC заставляет задуматься над современными трендами: оправдывает ли защита от спама привязку каждого аккаунта к паспортным данным пользователя, более того, если сервис позиционирует себя ориентированным на приватность? Скрытые сети в этом вопросе выступают мерной линейкой, демонстрируя максимально возможную анонимность в общении.

Но не всё так радужно — есть и ложка дёгтя. Главным образом IRC потерял свою популярность из-за отсутствия оффлайн-сообщений. Мы привыкли заходить в любой мессенджер и получать сообщения, отправленные нам в период оффлайна, но в IRC не всё так просто для обычного пользователя. Протокол не предусматривает отправку сообщения пользователю, которого нет в сети в настоящий момент. Название Internet Relay Chat хорошо отображает суть — IRC является всего лишь релеем, транзитным звеном, а не сервером хранения сообщений.

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

На скриншоте приведен веб-интерфейс ZNC — наиболее популярного решения, которое устанавливается на любой VPS в пару команд. Баунсер ZNC является многопользовательским, то есть может обслуживать множество клиентов. При использовании баунсера, конечный пользователь для подключения использует не адрес IRC-сервера, а адрес ZNC, указывая регистрационные данные от аккаунта баунсера.

Для комфортного одновременного использования IRC с разных устройств (ПК, лэптоп, смартфон) можно использовать Quassel Core, который является аналогом ZNC, но ориентирован на повышенное качество синхронизации между устройствами пользователя (для подключения используется кроссплатформенный клиент Quassel Client).

Вторая по важности проблема — отсутствие медиа: ни передачи файлов, ни красочных стикеров, ни видеоконференций. Стандартный размер сообщения IRC не превышает килобайта, поэтому бессмысленно даже пытаться передавать медиа-файлы внутри настоящих сообщений (клиент отправляет не более одного сообщения в секунду, поэтому с массовой отправкой мелких сообщений тоже не получится). Для передачи файлов предусмотрен протокол DCC (Direct client-to-client), который подразумевает прямое соединение пользователей. В большинстве случаев это невозможно из-за отсутствия прямой доступности пользователей относительно друг друга, либо из-за отсутствия поддержки протокола клиентским приложением одной из сторон. В конечном счете для передачи файлов чаще всего используют сторонние файлообменники. Если делать ремарку к скрытым сетям — отсутствие медиа вовсе можно считать плюсом, так как медиа-файлы — это дополнительные метаданные, гипотетически являющиеся утечкой чувствительных данных о пользователе.

Последний упрек общественности в адрес IRC — отсутствие шифрования. Это обвинение в сторону IRC столь же оправдано, как и в адрес большинства современных мессенджеров. Безопасность подключения к серверу давно решена использованием TLS (такое же шифрование используется при открытии сайтов по протоколу HTTPS), что защищает от перехвата и анализа трафика по пути следования от пользователя до сервера. В случае скрытых сетей никто не может прослушивать трафик априори, поэтому TLS-шифрование для IRC-серверов, например, в I2P, не требуется вовсе.

На стороне сервера все сообщения передаются (или хранятся) в открытом виде (также, как личные сообщения во Вконтакте, Facebook, Инстаграм и далее по списку). Это значит, что администратор может видеть содержимое передаваемых сообщений. Для решения данной проблемы существует несколько плагинов для сквозного шифрования от пользователя до пользователя: OTR (хорошо поддерживается в HexChat), Blowfish (тестировал в Quassel), а также другие подобные инструменты, которые можно найти через поисковые системы при соответствующем запросе. Если пользователи используют сквозное шифрование, на стороне сервера сообщения проходят в зашифрованном виде и угроза мониторинга сообщений снимается.

Если захотелось попробовать IRC, но не знаете куда зайти — заходите в ILITA IRC. ILITA — это сеть серверов, созданная в 2016 году (отсылка к элитарности является иронией). Ее главное отличие от остальных заключается в том, что связь между серверами сети осуществляется через I2P, что не позволяет серверам с разным уровнем анонимности друг друга скомпрометировать. Адреса для подключения можно найти на веб-страницах:

  • I2P: http://irc.ilita.i2p/

  • Yggdrasil: http://[324:71e:281a:9ed3::41]/

  • Tor: http://ilitafrzzgxymv6umx2ux7kbz3imyeko6cnqkvy4nisjjj4qpqkrptid.onion/

По настроению ознакомьтесь с видео про IRC, в котором рассказываются общие факты и также упоминается ILITA IRC.

Комментарии (20)


  1. ermouth
    11.10.2021 10:24
    +10

    Несколько дополнений.

    Первый публично доступный чат сделал CompuServe на 8 лет раньше, назывался он CB Simulator, потому что имитировал поверх проприетарной CIS-сети концепцию citizens band radio (это несколько десятков радиоканалов вокруг частоты 27МГц, по сути чатов по радио, даже в СССР эта частота была свободна).

    На IP-сетях первый протокол был Zephyr, он появился годом раньше IRC, правда, использовал UDP.

    Непубличные (военные, правительственные, университетские и тп) реализации идеи чата самого разного сорта существовали к тому моменту примерно уже лет 15.


    1. pureacetone Автор
      11.10.2021 10:35
      +1

      Спасибо за замечание по-существу. Чтобы более явно преподнести мысль о всевозможных менее популярных и менее стандартизированных предшественниках IRC (о протоколах распространения информации вроде E-mail не говорим, речь именно о моментальных сообщениях), заменил фразу "IRC является первым стандартизированным мессенджером" на "IRC является первым массовым стандартизированным мессенджером".


  1. dekeyro
    11.10.2021 11:29
    +2

    До сих пор захожу на некоторые каналы на которы тусил 15 лет назад...


  1. inkvizitor68sl
    11.10.2021 12:30

    Хорошие были времена)


  1. Aleator13
    11.10.2021 15:37

    в юношестве сидел в mirc, подозреваю они имеют много общего.


    1. pureacetone Автор
      11.10.2021 15:38
      +4

      Да. mIRC - это один из популярных клиентов IRC для Windows OS. Фактически, вы сидели в IRC. Но в силу популярности клиента mIRC, "мирком" называли сам IRC)


  1. csar
    11.10.2021 16:34
    +3

    Эх, Bitchx... Во времена были


    1. JuriM
      15.10.2021 23:04

      Даа, помню очень легко рута можно было получить на линуксе собеседника через какуюто очередную дыру в биче :)


  1. ignat99
    11.10.2021 17:49

    Слышал, что ребята из Италии хотели пару лет назад криптографию на баунсер прикрутить и сделать работающего клиента с Android. Вероятно и с платёжной системой.
    Есть ли какие то подвижки по подобным баунсерам?

    TLS это не совсем то, так как IRC одноранговая сеть и докладывать о факте соединения на "доверенные" сервера это, IMHO, не очень хорошее решение.


  1. d7s2di
    11.10.2021 18:19

    Да, пользовался. Mirc, потом bitchX и irssi, которым пользуюсь по сей день.

    Сколько веселья было связано с написанием всяких интересных скриптов для мирка и всучивания их несведущим пользователям... Помнится, там даже scripts.ini (или как-то так), можно было переписать, передав этот файл по ctcp. А сколько уж музла было вытянуто через тот же ctcp, ух.

    Ну а еще освоил слепой десятипальцевый метод, когда начал сидеть в irc.


  1. kiberangel
    11.10.2021 21:55
    +8

    IRC is just multiplayer notepad


    1. d3vil_st
      12.10.2021 18:05
      +1

      Слышал другое определение: Пересылка стрингов по tcp.


  1. litos
    12.10.2021 08:16

    У нас в городе был интернет провайдер (которым являлась сама атс и для своих клиентов) который на диалапе брал не за время соединения, а за трафик.... было очень круто во времена диалапа, так как те, у кого был их телефон стационарный могли сидеть в irc круглосуточно и тратить мегабайта 2-3 интернет-трафика в день (а всякий другой трафик кроме irc они блокировали на своей windows 98 установив фаирвол типа atguard и открывали только порт irc сервера) и платить какие-то совсем копейки по тем временам за интернет.


    1. saege5b
      17.10.2021 01:04

      мне 10-15 метров на месяц-два хватало :)

      эх... а сейчас и под 100Гб за месяц не удивляешься.


  1. nad_oby
    12.10.2021 10:59
    +1

    Freenode вот только убили, да.

    Чего не ожидалось совсем, грусть.


    1. aureliano_b
      05.11.2021 06:19
      +2

      ну так все переместились на Libera Chat незамедлительно :)


  1. JerleShannara
    14.10.2021 11:26
    +3

    /me slaps $username around a bit with a large trout


  1. Timoffey
    14.10.2021 19:51
    -7

    Discord вполне себе хорошая современная альтернатива IRC. Без необходимости телефонного номера. С кучей плюшек + изначально точился под геймеров, так что лучшее решение для голосового общения.


    1. dikey_0ficial
      16.10.2021 16:59
      -5

      интересно, почему минусуют
      да, дискорд реально похож по структуре на IRC, он удобен и красив, хотя и проприетарный и сделан на электроне


  1. Viz0ne
    15.10.2021 20:09

    Кто помнит "Sprint" ?