Secure Internet Live Conferencing

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}

SILC (Secure Internet Live Conferencing) est un protocole réseau de discussion en temps réel. Il est sur le principe très similaire au protocole IRC, mais il s'en démarque néanmoins par l'utilisation massive de techniques de cryptographie forte.

Fonctionnement

Description du protocole

Le protocole SILC peut être divisé en trois parties principales : le Protocole d'Échange de Clé SILC (ou SKE pour SILC Key Exchange), le Protocole d'Authentification SILC (ou SILC Authentication protocol) et le Protocole de Paquet SILC (SILC Packet protocol). Le protocole SILC définit en outre des Commandes SILC, utilisées pour gérer la session SILC. SILc fournit des canaux (groupes), des pseudonymes, des messages privés, et d'autres fonctionnalités courantes. Mais, au contraire de nombreux autres protocoles (notamment IRC), les pseudonymes SILC ne sont pas uniques<ref>{{#invoke:Langue|indicationDeLangue}} Community feature: SILC, a new generation secure chat protocol, Pekka Riikonen, 2002</ref> ; un utilisateur peut prendre n'importe quel pseudonyme, même s'il est déjà utilisé par quelqu'un d'autre. L'identification protocolaire réelle se fait par un identifiant unique, dérivé de la clé publique de l'utilisateur ; de cette manière, le protocole SILC est en mesure de régler le problème de la collision de pseudonymes, problème que l'on retrouve dans beaucoup d'autres protocoles. Tous les messages échangés au sein d'un réseau SILC voyagent dans un format binaire, ce qui leur permet de contenir n'importe quel type de données (y compris texte, son, vidéo, et autres données multimédia). Le protocole SKE est utilisé pour établir la clé de session, ainsi que d'autres paramètres de sécurité visant à protéger le Protocole de Paquet SILC. SKE est lui-même basé sur l'algorithme d'échange de clé Diffie-Hellman (un exemple de cryptographie asymétrique), et l'échange est protégé par un système de signature numérique. Si le protocole SKE se termine avec succès, c'est alors le Protocole d'Authentification SILC qui entre en jeu afin d'authentifier un client et/ou un serveur (et/ou un routeur). L'authentification peut être basée sur une phrase de passe ou sur la signature numérique ; si tout se passe bien, elle donne accès au réseau SILC auprès duquel on souhaitait s'authentifier. Le Protocole de Paquet SILC se veut un protocole de paquet binaire sécurisé, assurant que le contenu de chaque paquet (entête suivi de données réelles) est sécurisé et authentifié. Les paquets sont sécurisés au moyen d'algorithmes basés sur la cryptographie symétrique et authentifiés au moyen de l'algorithme HMAC (qui est un code d'authentification de message).

Les canaux (groupes) SILC sont protégés chacun par une clé symétrique de canal. Il est possible (c'est une option) de signer numériquement tous les messages de canal<ref>{{#invoke:Langue|indicationDeLangue}} Est-il possible de signer numériquement les messages dans SILC ? dans la FAQ SILC Crypto (traduction française).</ref>,<ref>{{#invoke:Langue|indicationDeLangue}} Comment puis-je envoyer des messages de canal signés numériquement ? dans la FAQ SILC Client (traduction française).</ref>. Il est également possible de protéger les messages au moyen d'une clé de canal générée en privé, et sur laquelle les membres du canal se seront préalablement mis d'accord. Les messages privés entre utilisateurs d'un réseau SILC sont protégés par les clés de session. Il est cependant possible de passer par le protocole SKE entre deux utilisateurs, et d'utiliser la clé générée pour protéger les messages privés. Les messages privés peuvent en outre être signés numériquement<ref>{{#invoke:Langue|indicationDeLangue}} Comment puis-je envoyer des messages privés signés numériquement ? dans la FAQ SILC Client (traduction française).</ref>. Quand les messages sont sécurisés par du matériel généré au moyen du protocole SKE, ou sur lequel les utilisateurs se sont préalablement mis d'accord (par exemple une phrase de passe), alors SILC fournit une sécurité même en cas de compromission des serveurs SILC.

Comparaison par rapport au protocole IRC

Le protocole IRC à la base ne fournit aucune réelle confidentialité, car les messages sont visibles en forme simple sur tout le réseau et il est aussi possible de les modifier. Certains serveurs IRC utilisent des extensions SSL pour chiffrer le trafic, mais ce n'est pas une solution complète car l'administrateur peut toujours intercepter le message et rien ne confirme l'identité de l'envoyeur.

SILC remédie à ce problème à l'aide de la cryptographie asymétrique et d'un système sophistiqué d'échange de clefs, ce qui permet aux messages d'êtres transmis d'un utilisateur à l'autre sans que même l'administrateur du serveur puisse intercepter le message sous sa forme simple. La communication entre les multiples serveurs SILC dans un réseau est également sécurisée.

Topologie d'un réseau SILC

Un réseau SILC est réparti sur plusieurs serveurs, tout comme IRC. À la surface, SILC ressemble à l'IRC, mais son fonctionnement est très différent<ref>{{#invoke:Langue|indicationDeLangue}} Secure Internet Live Conferencing, conférence donnée le 28 décembre 2003 par Christian Horchert et Frank Becker au Chaostreff Dresden (groupe local du Chaos Computer Club, à Dresde).</ref>.


Histoire

Le protocole SILC fut conçu par Pekka Riikonen de 1996 à 1999, et fut présenté au public à l'été 2000<ref>{{#invoke:Langue|indicationDeLangue}} Historique du protocole SILC</ref>,<ref>{{#invoke:Langue|indicationDeLangue}} Traduction en langue française de la FAQ du Projet SILC</ref> (sous la forme d'un logiciel client et un logiciel serveur). Les spécifications<ref>{{#invoke:Langue|indicationDeLangue}} Spécifications du protocole SILC</ref> du protocole furent proposées à l'IETF en 2004, mais la publication fut finalement refusée, et SILC n'est donc pas un protocole agréé par l'IETF. L'IANA a cependant attribué<ref>{{#invoke:Langue|indicationDeLangue}} Liste des numéros de ports TCP et UDP attribués par l'IANA</ref> au protocole SILC l'utilisation exclusive du port 706 (pour les protocoles TCP et UDP), qui est un port privilégié.


Logiciels

Côté serveur

Il n'existe à ce jour qu'une seule implémentation serveur du protocole SILC : SILC Server<ref>{{#invoke:Langue|indicationDeLangue}} Bref aperçu de SILC Server</ref>.

Côté client

Plusieurs logiciels client permettent de se connecter à des serveurs ou à des réseaux SILC. Ces logiciels utilisent généralement pour cela libsilc, une bibliothèque de fonctions appartenant au paquetage SILC Toolkit.

On citera par exemple :

Le développement de Silky a été officiellement abandonné le Modèle:Date-, après plusieurs années d'inactivité<ref>{{#invoke:Langue|indicationDeLangue}} Modèle:Lien brisé</ref>. La dernière nouvelle publiée sur le site web de ce logiciel expliquait qu'il allait être complètement réécrit.


Réseaux SILC

La disponibilité d'un logiciel serveur sous licence libre a favorisé l'apparition de réseaux SILC indépendants, où l'on peut librement se connecter :

  • SILCNet (silc.silcnet.org), qui est le réseau "officiel" lancé et maintenu par les personnes chargées du développement du projet SILC ;
  • Compsec<ref>{{#invoke:Langue|indicationDeLangue}} http://compsec.net/</ref> (silc.compsec.net) ;
  • le réseau SILC des utilisateurs d'OpenBSD<ref>{{#invoke:Langue|indicationDeLangue}} http://silc.peereboom.us/index.html</ref> ;
  • silc.dg-sc.org, le réseau SILC du groupe DegenereScience<ref>{{#invoke:Langue|indicationDeLangue}} Random #024</ref>.

Notes et références

Modèle:Références


Voir aussi

Articles connexes

Liens externes

Modèle:Palette Modèle:Portail