# SILC

SILC (englisch: Secure Internet Live Conferencing, dt. etwa ‚Sichere Konferenz via Internet, in Echtzeit‘) ist ein Netzwerkprotokoll für sicheres Synchronous Conferencing und wird vor allem für MUC (Multi-User Chat, dt. Mehrbenutzer-Chat) verwendet.

## Funktionen und Funktionsweise

Ein SILC-Netzwerk kann (ähnlich einem IRC-Netz) auf mehrere Server verteilt sein. Trotz der oberflächlichen Ähnlichkeit zu IRC ist der interne Aufbau aber grundverschieden.
Ein wesentlicher Unterschied zu vielen anderen Chatprotokollen besteht darin, dass SILC sichere Kommunikation über unsichere Netze ermöglicht, da es die Möglichkeit bietet, Nachrichten auf dem gesamten Übertragungsweg verschlüsselt zu lassen (Ende-zu-Ende-Verschlüsselung).
So wie viele andere Konferenz- und Chatprotokolle bietet auch SILC Kanäle (Gruppen), Nicknamen, private Nachrichten und andere gebräuchliche Funktionen. Allerdings sind SILC-Nicknamen im Gegensatz zu vielen anderen Protokollen (z. B. IRC) nicht eindeutig: Ein Benutzer kann jeden Nicknamen verwenden, selbst wenn dieser schon verwendet wird. Die eigentliche Identifikation wird im Protokoll durch eine eindeutige Client ID vollbracht. Das SILC-Protokoll bedient sich dessen, um der Nicknamekollision Herr zu werden – ein Problem, das in vielen anderen Protokollen auftritt. Sämtliche in einem SILC-Netzwerk gesendete Nachrichten sind binär codiert, sodass in ihnen jeglicher Datentyp enthalten sein darf, einschließlich Text-, Video-, Audio- und andere Multimediadaten.
Durch die Struktur der SILC-Netze werden Netsplits, welche bei IRC auftreten können, verhindert.

### Bestandteile des Protokolls

Das SILC-Protokoll kann in drei Hauptbestandteile gegliedert werden:
* SILC-Schlüsselaustauschprotokoll (SILC Key Exchange (SKE) protocol)
* SILC-Authentifizierungsprotokoll
* SILC-Paketprotokoll.
Im SILC-Protokoll sind zusätzlich SILC-Befehle definiert, welche verwendet werden, um die SILC-Sitzung zu steuern.
Das SKE-Protokoll dient dazu einen Sitzungsschlüssel und andere Sicherheitsparameter, welche das SILC-Paket-Protokoll absichern, zu ermitteln. Das SKE selbst basiert auf dem Diffie-Hellman Schlüsselaustauschalgorithmus (eine Form der Asymmetrischen Kryptographie) und der Austausch wird mit digitalen Signaturen abgesichert. Das SILC-Authentifizierungsprotokoll wird nach einer erfolgreichen Ausführung des SKE-Protokolls angewandt um einen Client und/oder einen Server zu authentifizieren. Die Authentifizierung kann auf einer Passphrase oder auf digitalen Signaturen basieren und gestattet, wenn erfolgreich, Zugang zum entsprechenden SILC-Netzwerk. Das SILC-Paketprotokoll ist als sicheres Binärpaketprotokoll gedacht, welches gewährleistet, dass der Inhalt eines jeden Pakets (bestehend aus einem Paket-Header und Paket-Nutzdaten) abgesichert und authentifiziert ist. Die Pakete werden mittels Algorithmen abgesichert die auf Symmetrischer Kryptographie beruhen und authentifiziert unter Verwendung des Message-Authentication-Code-Algorithmus, HMAC.
SILC-Kanäle (Gruppen) werden durch symmetrische Kanalschlüssel abgesichert. Optional ist es möglich alle Kanalnachrichten digital zu signieren. Auch ist es möglich Nachrichten mit einem privat generierten Kanalschlüssel, welcher im Voraus von den Kanalmitgliedern vereinbart wurde, abzusichern. Private Nachrichten zwischen Nutzern in einem SILC-Netzwerk werden mit Sitzungsschlüsseln abgesichert. Es ist allerdings möglich, das SKE-Protokoll zwischen zwei Nutzern anzuwenden und den generierten Schlüssel zu verwenden, um private Nachrichten abzusichern. Optional können private Nachrichten digital signiert werden. Wenn Nachrichten mit einem durch das SKE-Protokoll generierten Schlüsselmaterial oder einem im Voraus vereinbarten Schlüsselmaterial (zum  Beispiel Passphrasen) abgesichert sind, dann bietet SILC sogar dann Sicherheit, wenn der SILC-Server kompromittiert worden sein könnte.

## Geschichte

SILC wurde von Pekka Riikonen entworfen und erstmals im Sommer 2000 veröffentlicht.

## Implementierungen
### Clients

| Name | Plattform(en) | Lizenz | Internetauftritt |
| Pidgin | Windows/Linux & Unices (GIMP-Toolkit) | GPL | http://pidgin.im/ |
| Silky | Windows/Linux & Unices (GIMP-Toolkit) | GPL | http://silky.sourceforge.net/ |
| Colloquy | Mac OS X (Cocoa) | GPL | http://colloquy.info/ |
| irssi mit SILC-Plug-in | Linux & Unices (Kommandozeile) | GPL | http://penguin-breeder.org/silc/ |
| SILC Client | Windows/Linux & Unices (Kommandozeile) | GPL | http://silcnet.org/ |
| kopete_silc | Linux & Unices | GPL | http://www.brokenpipe.de/hp/wiki.cgi/KopeteSilc |

### Bots

* Samadhi

## Netzwerke

Diese Auflistung erhebt keinen Anspruch auf Vollständigkeit.
| Netzwerk | Round Robin | Einzelserver | Serverlisten und Infos | Motto, Beschreibung, Besonderheit | Angemeldete Clients 1. Nov. 07 zwischen 22:45 und 23:00 |
| SILCNet | silc.silcnet.org | | http://silcnet.org/ | »SILC Network (SILCNet) is the very first SILC network, and is also the official SILC network.« | 408 |
| silcnyet | silc.silcnyet.org | | http://silcnyet.org/ | »where crypto matters« | 22 |
| c3d2 (CCC Dresden) | silc.c3d2.de bzw. silc.dresden.ccc.de | | https://www.c3d2.de/wiki/SILC | silc.toidinamai.de ist auch erreichbar als Tor hidden service via t3oisyiugzgvxph5.onion | 30 |
| compsec | silc.compsec.net | | http://www.compsec.net… | | 165 |
| luusa | silc.luusa.org | | http://www.luusa.org… | Linux/Unix Usergroup Sankt Augustin | 19 |
| Netz ohne Namen | | silc.riseup.net silc.immerda.ch | | Dieses Netz hat keinen Namen. | 40 |
| Étoilé Projekt | | silc.etoile-project.org | | | 1 |
| NMRC-NET | | hell.nmrc.org silc.caughq.org dodo.unspecific.com cheshire.unspecific.com | | DC214 und NMRC | 27 |
| FFII Schweiz | | silc.bsdprojects.net penrose.bsdprojects.net | | | 7 |
| SFOBUG | | silc.sfobug.org | | San Francisco OpenBSD Users Group | 2 |
| zerties | | silc.brokenpipe.de | https://www.zerties.org… | cccrbg | 7 |
| silc.perl.lt | | silc.perl.lt tornado.ktu.lt | http://silc.perl.lt… | Litauisch | 6 |
| Networld | | silc.networld.to | http://silc.networld.to | A small SILC Server which can be used by everybody and is used by MokSec. | 6 |
| Netzwerk | Round Robin | Einzelserver | Serverlisten und Infos | Motto, Beschreibung, Besonderheit | Angemeldete Clients 1. Nov. 07 zwischen 22:45 und 23:00 |