Internet Relay Chat

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
irssi, un client IRC

Internet Relay Chat (IRC) è stata la prima forma di comunicazione istantanea (chat) su Internet. Consente sia la comunicazione diretta fra due utenti che il dialogo contemporeaneo di interi gruppi in "stanze" di discussione chiamate "canali".

Storia

Storicamente IRC precede il web e si trova fuori dal web.

IRC fu creato da Jarkko Oikarinen nell'agosto 1988. Fu creato per rimpiazzare un programma chiamato MUT (MultiUserTalk) che girava sulla BBS finlandese OuluBox. Jarkko Oikarinen trovò l'ispirazione dalla Bitnet Relay Chat che operava sulla rete Bitnet.

IRC divenne importante quando c'era ancora la Cortina di Ferro allo scopo di inviare notizie dall'URSS durante i blackout televisivi e radiofonici. Analogamente venne usata dai Kuwaitiani durante l'invasione delle truppe irachene nella Guerra del golfo.

Informazioni tecniche

L'RFC 1459 descrive i protocolli utilizzati e più recentemente IRC2 con il RFC 2810, il RFC 2811, il RFC 2812 e il RFC 2813 descrivono un insieme di proposte di estensioni al modello IRC (la traduzione in italiano di alcuni di questi documenti sono disponibili sull'RFC Project). Molte implementazioni IRC consistono nel protocollo IRC2 con vari add-ons che prevengono le incompatibilità causate delle differenze tra i software utilizzati per la gestione dei server di rete.

IRC è un protocollo di rete aperto che utilizza il protocollo di trasmissione TCP (Transmission Control Protocol) e opzionalmente l'SSL (Secure Sockets Layer). Un server IRC (chiamato IRCd) è in grado di connettersi con altri server IRC formando così una vera e propria rete di comunicazione. Gli utenti accedono alla rete IRC mediante la connessione di un client ad un server. Molti server IRC non richiedono un identificativo utente, ma prima per collegarsi l'utente deve comunque impostare un nickname.

IRC è un protocollo plaintext, questo significa che è possibile (comunque con qualche inconveniente) usare l'IRC come una connessione socket di tipo raw. Tuttavia non vi è modo di definire il carattere di decodifica dei messaggi e dei nicknames rendendo impossibile il filtraggio di caratteri non-ASCII.

Il mezzo di comunicazione fondamentale in una sessione IRC è il "canale", un gruppo di utenti identificato da un nome, dove tutti gli appartenenti possono mandare messaggi leggibili solo dagli utenti appartenenti allo stesso gruppo. Un canale irc si crea automaticamente al primo ingresso da parte di qualsiasi utente.
I nomi dei canali appartenenti a tutta un'intera rete IRC si identificano col carattere "#" iniziale, mentre quelli locali (specifici di un server) sono identificati con il carattere "&" (Quest'ultimo carattere potrebbe non essere disponibile su alcune reti irc). Per ovviare a problemi di desincronizzazione dei canali nel momento in cui dei server si fossero scollegati furono creati i canali "!" senza i problemi di sincronismo che però ottennero scarso successo anche per la mancanza di informazione agli utenti.

Il primo utente che entra in un canale acquisisce automaticamente dei privilegi che può poi passare a qualsiasi altro utente presente nel medesimo canale; questi utenti vengono chiamati channel operator o, in italiano "operatori di canale". Vi sono anche diversi utenti con privilegi differenti e con compiti di amministrazione del network; questi sono chiamati IRC Operator (abbreviato in IRCop, spesso erroneamente confuso in IR-Cop) o in italiano "operatori IRC".

Gli "Operatori del canale" possono impostare diverse opzioni su quel determinato canale , vediamole in dettaglio:

  • i (invite): canale a cui può accedere solo se si è invitati da un operatore
  • k (key): viene impostata una determinata chiave per entrare nel canale
  • l (limit): limite massimo del numero degli utenti per quel canale (oltre il numero impostato dal limit nessuno può più entrare nel canale; by-passabile tramite un invito da parte di un operatore)
  • m (moderate): solo gli operatori e gli utenti che da questi ultimi han preso un flag +v (voice) possono parlare sul canale
  • n (no outside message): gli utenti che sono al di fuori del canale non possono parlare all'interno di esso
  • o (operator): per assegnare o rimuovere lo stato di operatore ad un utente
  • p (private): il canale viene nascosto con "*private*" nelle richieste di WHOIS all'utente (nella richiesta vengono elencati i canali nei quali l'utente è presente)
  • s (secret): questa volta il canale non viene proprio visualizzato nelle richieste di WHOIS e neanche nella lista dei canali (comando LIST)
  • t (topic): l'argomento (topic) di quel canale può essere modificato solo da un operatore
  • b (ban): allontanare temporaneamente (fino alla rimozione del ban) un utente da un canale.
  • I (invited): si può invitare automaticamente una lista di persone nella chat. Da notare la I maiuscola.
  • e (excluded): dal ban con questo comando si possono escludere determinate persone

Gli utenti nell'ambito del canale possono avere i seguenti attributi:

  • v (voice): assegna o rimuove la possibilità di parlare nel canale (se è applicato +moderate al canale)
  • o (operator): assegna o rimuove lo stato di operatore del canale. Gli operatori hanno molti privilegi rispetto agli utenti semplici e possono cambiare le opzioni del canale)

In alcuni network esistono questi altre opzioni in aggiunta alle precedenti:

  • h (halfop): in molti server lo stato di HalfOp (operatore di aiuto, inteso come "di supporto") è dato alle persone che aiutano gli operatori. Questi hanno meno privilegi degli operatori, ma sempre di più degli utenti semplici.
  • a (service admin): Protect o Admin. Ha poteri superiori agli operatori
  • q (founder): fondatore del canale. I fondatori hanno accesso superiore rispetto agli operatori, e possono cambiare opzioni particolari, che dipendono dal server.

Analogamente, gli utenti possono:

  • i (invisible): rendersi invisibili in alcune liste utenti di ricerca (questa opzione non rende però invisibili da un canale).
  • o (server operator): operatore del server. Gli operatori del server possono cacciare un utente dal network, oppure mettere una kline sul server (una sorta di ban, ma questa volta sul server).
  • O (network operator): operatore del network. Questo può aggiungere GLine, una sorta di Kline che sono valide per tutti i server di quel network.
  • s (server): ricevere notizie riguardante il server
  • w (wallops): inviare delle "bastonate" (forse intese come forti messaggi inviati ad utenti che si comportano male?)

Alcune reti IRC utilizzano delle loro particolari modalità non elencate perché non sono valide per tutte le reti.

Le connessioni IRC sono un ghiotto obiettivo per cracker malintenzionati, in quanto, pur essendo cifrate, prendono, per loro stessa natura, lunghi periodi di tempo di connessione. È necessario pertanto assicurare a queste connessioni, una accurata politica di sicurezza in grado di proteggerle dagli attacchi di script kiddie che cercano di prenderne il controllo (IRC takeover war).

La connessione IRC viene utilizzata, da parte degli script kiddies come "laboratorio" per "provare" diversi tipi di attacchi in rete, per esempio inviando falsi messaggi di tipo ICMP (Internet Control Message Protocol) al fine di disturbarne gli utenti. Questi messaggi non vengono intercettati dal protocollo TCP. Vedi anche nuke.

Tuttavia ultimamente con l'entrata in scena dei Bouncer (BNC) e dei virtual host, è molto difficile per queste persone malintenzionate portare a termine un attacco.

Reti di comunicazione

Attualmente, in tutto il mondo, ci sono diverse centinaia di reti IRC attive. Eseguono diverse implementazione di server IRC, e sono amministrate da vari gruppi di Operatori IRC, ma tutti i protocolli utilizzati dagli utenti IRC presentano similitudini, per cui in tutte le reti irc si può accedere col medesimo client senza problemi.

Le reti IRC più importanti sono tradizionalmente chiamate "The Big Four" — e la possibilità di entrare in questa lista privilegiata, dipende dalle statistiche del traffico di rete. Queste sono:


La differenza tra i vari network sta nella gestione delle implementazioni. IRCnet ad esempio è fedele all'implementazione storica di IRC e può essere definita la rete più anarchica poiché non prevede alcun controllo di nickname o canali. Al contrario altre reti hanno sviluppato sistemi per registrare i nickname o i canali debellando così l'uso di bot e i problemi causati dall'ircwar.

Altre reti IRC abbastanza grandi sono:

In italia, la rete IRC con più server è Azzurra anche se la rete con più utenti (dovuto anche al fatto della presenza del server storico tin.it) è IRCnet che tra l'altro ha nel canale #italia uno tra i canali con più utenti di tutto il mondo.

Poiché girano su molti server (di provider differenti), le chat IRC non presentano la lentezza di caricamento delle chat accessibili da siti web. Per la diversità dei provider d'accesso, non è tecnicamente possibile creare chat a pagamento, come vanno diffondendosi in vari siti web con connessioni dialer a numeri speciali.

Storicamente IRC precede Internet e si trova fuori del web. Come nelle Usenet i contenuti inviati sono immediatamente visibili da più siti e su tutti i server d'accesso, e non sono più cancellabili, delle discussioni (non in chat room private) è tenuta traccia nei fili di log che sono di pubblico dominio.

IRC offre le funzionalità tipiche delle chat più evolute: possibilità di creare profili-utente con dati personali, chattare, invio di messaggi privati, scambio di file, organizzare meeting della chat.

Client IRC

Le reti IRC hanno dato luogo alla creazione di "client automatici" chiamati "bot", abbreviazione di "robot". Il primo "bot" fu scritto da Greg Lindahl e serviva da moderatore automatizzato per il gioco Wumpus.

Quelli più recenti (tra tutti eggdrop) sono invece usati per automatizzare la moderazione dei canali nelle reti sprovviste di servizi irc (come NickServ, ChanServ e altre implementazioni) anche se sono spesso solo di fastidio agli utenti (oltre che per i server che si ritrovano un carico maggiore di utenti da gestire). Sono solitamente sviluppati in linguaggio Java e permettono uno standard di funzionalità che spaziano dall'invio di messaggi privati all'e-mail di utenti non connessi, all'apertura di chat room private con utenti in linea, all'invio di emoticon all'interno dei messaggi.

IRC open source

Il network italiano Azzurra nel 2005 ha preso la decisione di rilasciare il codice sorgente del suo demone IRC sotto licenza GNU GPL.

IRC moderni

IRC ha subito una notevole evoluzione nel tempo. Software più recenti di gestione dei server hanno aggiunto nuove funzioni e caratteristiche.

  • Services: sono servizi gestiti da "bot" che permettono la registrazione dei nickname (NickServ) e dei canali irc (ChanServ), ma anche l'invio di messaggi per utenti non connessi in quel momento (MemoServ).
  • Extra Modes: I sistemi originali IRC usavano un serie di modalità standard, ora le nuove caratteristiche permettono di rimuovere i codici colore dai testi, o per nascondere un utente al fine di proteggerlo dagli attacchi di hacker malintenzionati (denial of service).
  • Proxy Detection: molti server moderni implementano la possibilità di individuare e bloccare utenti che tentano di connettersi attraverso proxy mal configurati, spesso per compiere abusi del servizio (ad esempio "IRC War").

Lo slang di IRC

Su IRC spesso può capitare di imbattersi in acronimi usati in sostituzione di frasi fatte, il più delle volte in inglese ma non necessariamente:

  • ircwar - serie di azioni svolte da malintenzionati con lo scopo di rovinare la tranquillità della rete
  • takeover - tipica azione dell’ircwar attraverso la quale un utente prende il controllo di un canale; impossibile all'interno dei network che implementano un servizio di gestione canali (chanserv);
  • nuke - qualunque tipo di attacco in grado di disconnettere un utente dal server irc
  • ROTFL - Rolling On the Floor Laughing ( "... mi sto rotolando sul pavimento dalle risate")
  • RTFM - Read The F* Manual ("vatti a leggere il f* manuale")
  • ASAP - As Soon As Possible ("quanto prima")
  • RE - REturned ("sono rientrato")
  • BTW - By The Way ("ad ogni modo")
  • AFAIK - As Far As I Know ("per quanto ne sappia")
  • BRB - Be Right Back ("ritorno subito")
  • KISS - Keep It Short, Stupid! ("sei prolisso! falla breve")
  • LOL - Laughing Out Loud (risata ad alta voce)
  • AFK - Away From keyboard (non al computer)
  • FYI - For Your Information (per tua informazione)
  • IMO - In My Opinion ("secondo me")
  • IMHO - In My Humble Opinion ("secondo il mio modesto parere")
  • STFU - Shut The Fuck Up. ("chiudi il becco")
  • BYOB - Bring Your Own Beer. ("porta la tua birra")
  • AKA - Also Known As. ("conosciuto anche come")
  • ASL - Age Sex Location. ("Età sesso località")
  • LMAO - Laughing My Ass Out. ("mi spacco dalle risate")
  • {P} - ("Bacio con la lingua - Usato nello slang Bg di mIRC (IRC)")

(Vedi anche: Glossario informatico e Aiuto:Glossario)

Miscellanea

IRC è ormai un protocollo utilizzato in tutto il mondo. Per individuare un'ora standard è stata scelta la convenzione UTC.

Voci correlate

Collegamenti esterni