SILC (Secure Internet Live Conferencing) est unprotocole réseau de discussion en temps réel. Il est sur le principe très similaire au protocoleIRC, mais il s'en démarque néanmoins par l'utilisation massive de techniques de cryptographie forte.
Le protocole SILC peut être divisé en trois parties principales : leProtocole d'Échange de Clé SILC (ou SKE pourSILC Key Exchange), leProtocole d'Authentification SILC (ouSILC Authentication protocol) et leProtocole 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 (notammentIRC), les pseudonymes SILC ne sont pas uniques[1] ; 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 laclé 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éesmultimédia).Le protocole SKE est utilisé pour établir laclé 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 decryptographie asymétrique), et l'échange est protégé par un système designature 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 unrouteur). L'authentification peut être basée sur unephrase de passe ou sur lasignature 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 lacryptographie symétrique et authentifiés au moyen de l'algorithmeHMAC (qui est uncode 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[2],[3]. 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 lesclé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[4]. 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 unephrase de passe), alors SILC fournit une sécurité même en cas de compromission des serveurs SILC.
Le protocoleIRC à la base ne fournit aucune réelleconfidentialité, car les messages sont visibles en forme simple sur tout le réseau et il est aussi possible de les modifier. Certains serveursIRC utilisent des extensionsSSL pourchiffrer 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 lacryptographie 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.
Un réseau SILC est réparti sur plusieurs serveurs, tout commeIRC. À la surface, SILC ressemble à l'IRC, mais son fonctionnement est très différent[5].
Le protocole SILC fut conçu parPekka Riikonen de 1996 à 1999, et fut présenté au public à l'été 2000[6],[7] (sous la forme d'un logiciel client et un logiciel serveur). Les spécifications[8] 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é[9] au protocole SILC l'utilisation exclusive duport 706 (pour les protocolesTCP etUDP), qui est un port privilégié.
Il n'existe à ce jour qu'une seule implémentation serveur du protocole SILC :SILC Server[10].
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 paquetageSILC Toolkit.
On citera par exemple :
Le développement deSilky a été officiellement abandonné le, après plusieurs années d'inactivité[11]. La dernière nouvelle publiée sur le site web de ce logiciel expliquait qu'il allait être complètement réécrit.
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 :
silc.silcnet.org), qui est le réseau "officiel" lancé et maintenu par les personnes chargées du développement du projet SILC ;silc.compsec.net) ;silc.dg-sc.org, le réseau SILC du groupe DegenereScience[14].