IRC sécurisé

IRC sécurisé

Sommaire

Principe et raisons

La plupart des connexions aux réseaux IRC sont souvent en clair, non chiffrées. Généralement, les utilisateurs n'y prêtent pas véritablement attention, mais le problème devient évident lorsque qu'il est nécessaire d'utiliser un mot de passe pour s'identifier auprès des services IRC. Les mots de passe étant transmis en clair, comme toutes les données de la connexion, ils peuvent être potentiellement interceptés par une tierce personne écoutant le trafic du réseau.

La parade consiste donc à chiffrer des données pour protéger les informations (conversations, mots de passe, logins des IrcOp...). Ainsi, le trafic entrant et sortant du serveur ne sera lisible que par les machines destinataires légitimes. D'une manière générale, pour assurer la sécurité d'un réseau, les opérateurs devraient systématiquement utiliser des connexions sécurisées pour éviter le sniffing et ainsi, le vol de leurs mots de passe

Technique

Le chiffrement / sécurisation d'une connexion IRC suit un procédé standard utilisé avec d'autres types de protocoles (comme HTTPS par exemple. Le client IRC va d'abord négocier avec le serveur pour créer un tunnel de sécurité (via un port dédié) dans lequel les données circuleront (par vérification et échange de clés publiques et de certificats). Ce n'est qu'une fois que ce tunnel est prêt que la session IRC démarre. L'utilisation d'une connexion IRC sécurisée ne diffère en rien de l'utilisation d'une connexion normale, mis à part que le client peut parfois afficher un message d'alerte si le certificat lui semble incomplet (cas des certificats auto-signés, par exemple).

En général, le serveur signale au client que les données sont chiffrées en affichant avant le MOTD les caractéristiques de la connexion, par exemple :

-irc.serveur.com- *** You are connected to irc.serveur.com with TLSv1-AES256-SHA-256bits

TLSv1 indique la version du système de sécurisation, AES est le protocole de cryptage, SHA est le hash, et 256, la longueur de la clé utilisée. Ces informations varient bien entendu en fonction des protocoles de cryptages et longueurs de clés utilisés et/ou disponibles sur le serveur ou le client.

Et par la suite, l'Usermode +z est appliqué au client, le marquant comme sécurisé. Ce mode permet aussi à l'utilisateur de rejoindre des canaux nécessitant le chiffrement des données, comme les canaux réservés aux administrateurs/opérateurs, ou autres.

À ce propos, lorsque l'utilisateur se connecte à un serveur et veut savoir si ce dernier supporte les connexions sécurisées, il suffit de passer en revue la liste des modes utilisables sur le serveur. Ces informations s'affichent toujours dès l'établissement de la connexion, avant le MOTD, comme ceci :

Welcome to the MyServer IRC Network Utilisateur!Username@host.isp.com
Your host is irc.server.com, running version Unreal3.2.7
This server was created Mon Jan 14 2008 at 10:15:24 CET
irc.server.com Unreal3.2.7 iowghraAsORTVSxNCWqBzvdHtGp lvhopsmntikrRcaqOALQbSeIKVfMCuzNTGj
NAMESX SAFELIST HCN MAXCHANNELS=30 CHANLIMIT=#:30 MAXLIST=b:60,e:60,I:60 NICKLEN=30 CHANNELLEN=32 TOPICLEN=307 KICKLEN=307
AWAYLEN=307 MAXTARGETS=20 WALLCHOPS are supported by this server
WATCH=128 SILENCE=15 MODES=12 CHANTYPES=# PREFIX=(qaohv)~&@%+ CHANMODES=beI,kfL,lj,psmntirRcOAQKVCuzNSMTG NETWORK=MyServer
CASEMAPPING=ascii EXTBAN=~,cqnr ELIST=MNUCT STATUSMSG=~&@%+ EXCEPTS INVEX are supported by this server

Dans les listes des modes (« iowghra... »), si le mode « z » apparait, cela signifie que le chiffrement est supporté par le serveur. Pour utiliser la connexion sécurisée, il faut donc se renseigner auprès d'un IRCOp ou d'un Administrateur pour connaitre le numéro du port dédié.

Implémentation du côté client

La plupart des clients IRC modernes implémentent des fonctions permettant de se connecter à un serveur IRC disposant d'un ou plusieurs ports dédiés aux session sécurisées. Certains clients gèrent ces fonctions en natif (comme KVIrc, XChat, ou encore Irssi si celui-ci est compilé avec le support SSL), là où d'autres clients comme mIRC par exemple nécessitent l'ajout de bibliothèques de chiffrement comme OpenSSL (libeay32.dll et ssleay32.dll par exemple). Il suffit donc ensuite de se connecter au serveur en passant par le port dédié aux connexions sécurisées; par exemple : 7000 (Comme convention, non officielle) au lieu de 6667.

Pour certains clients, il est parfois nécessaire d'ajouter un paramètre à la commande de connexion pour signaler qu'il va falloir utiliser le chiffrement. Sous mIRC, il suffit de placer un « + » juste avant le numéro du port (exemple : /server irc.server.com:+6668), ou bien parfois, le commutateur « -ssl » peut aussi être utilisé. Cela varie d'un client à l'autre.

Implémentation du côté serveur

L'implémentation du système de chiffrement sur un serveur se fait au moment de la préparation à la compilation (pour un serveur tournant sous un système Linux/UNIX ou FreeBSD). En fonction du serveur (UnrealIRCd, Bahamut, etc.), il faut configurer le script pour qu'il intègre les modules de chiffrement quand la compilation sera effectuée. Cela passe parfois par une question demandant si l'utilisateur désire que le serveur supporte les connexions de type SSL. Si l'on répond par l'affirmative, le système recherchera les modules de type OpenSSL ou autres pour installer le support du chiffrement et générer la clé et le certificat du serveur (auto-signé dans ce cas, si l'on ne dispose pas de certificat délivré par une autorité officielle). Pour créer le certificat, le script pose une série de questions à l'utilisateur telles que : le nom du site, l'emplacement géographique, etc. Une fois cette étape passée, la compilation peut être lancée.

Il s'agit ensuite de configurer correctement le serveur pour déterminer le ou les ports permettant les connexions sécurisées. Cette configuration se fait généralement dans le fichier ircd.conf ou unrealircd.conf dans le Listen Block ou « P:Line ». On y précise les numéros de ports standards non-sécurisés (6667 le plus souvent), et ensuite, le ou les ports sécurisés, en ajoutant les paramètres et options nécessaires indiquant au serveur d'utiliser le chiffrement pour ces ports précis. Par ailleurs, les chemins exacts des fichiers contenant la clé publique et le certificat doivent figurer dans la configuration principale du serveur IRC. En général, ces fichiers se trouvent dans le dossier contenant l'exécutable du serveur.

Perte de connexion/synchronisation

L'IRC étant un protocole nécessitant la vérification de l'exactitude des données transmises, il se base donc sur le modèle de transmission TCP. Cela signifie donc que si la connexion subit une latence trop élevée, une désynchronisation ou une perte de paquet non récupérable, la session est considérée comme nulle et est terminée automatiquement par le client ou le serveur. Il va donc de soit que le tunnel de sécurité fonctionne aussi selon ces mêmes règles. Une absence de réponse d'un côté ou de l'autre, une perte de synchronisation des clés de chiffrement, ou simplement un Ping Timeout (latence excessive) va entrainer la fermeture du tunnel, et avec lui, la fin de la session IRC. De cette façon les données ne sont pas transmises au hasard sans vérification de la part du système. La session sécurisée se remet en place lors de la reconnexion du client.


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article IRC sécurisé de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Liste des ports logiciels — Pour consulter un article plus général, voir : Port (logiciel). Liste des ports TCP/UDP. Afin de permettre aux clients de connecter des serveurs, des numéros de ports logiciels sont bien connus. Les informations qui suivent sont en général… …   Wikipédia en Français

  • Liste Des Ports Logiciels — Pour consulter un article plus général, voir : ports logiciels. Liste des ports TCP/UDP. Afin de permettre aux clients de connecter des serveurs, des numéros de ports logiciels sont bien connus. Les informations qui suivent sont en général… …   Wikipédia en Français

  • Liste des ports — logiciels Pour consulter un article plus général, voir : ports logiciels. Liste des ports TCP/UDP. Afin de permettre aux clients de connecter des serveurs, des numéros de ports logiciels sont bien connus. Les informations qui suivent sont en …   Wikipédia en Français

  • Schéma d'URI — En informatique, un schéma d’URI est le premier niveau de la structure de nommage des identifiants uniformes de ressources (URI). Toutes les URIs sont construites à partir d’un nom de schéma, suivi de deux points (« : ») puis du reste… …   Wikipédia en Français

  • Secure Internet Live Conferencing — Pile de protocoles 7.  Application 6.  Présentation 5.  Session 4.  Tr …   Wikipédia en Français

  • I2P — Le Réseau Anonyme Développeur https://www.i2p2.de/team.html …   Wikipédia en Français

  • Secure Shell — Fonction Session à distance sécurisée Sigle SSH Port 22 RFC …   Wikipédia en Français

  • Telnet — Pour les articles homonymes, voir Telnet (homonymie). Pile de protocoles 7.  Application 6.  …   Wikipédia en Français

  • Extensible Messaging and Presence Protocol — Fonction Messagerie instantanée Sigle XMPP Port 5222 RFC …   Wikipédia en Français

  • HTTP — Hypertext Transfer Protocol Pile de protocoles 7 • Application 6 • Présentation 5 • Session 4 • …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”