SILC

Große Teile dieser Seite sind ursprünglich als Benutzerdokumentation zum SILC-Server des StuStaNet e.V. (silc.stusta.mhn.de) entstanden. Um sie auch dem "restlichen Internet" zugänglich zu machen habe ich sie bearbeitet und in meine Seiten eingebunden.

Was ist SILC?

SILC bedeutet Secure Internet Live Conferencing. Dabei handelt es sich um ein Chat Protokoll ähnlich dem IRC.
Der größte Unterschied zu anderen Chatprotokollen besteht darin, dass SILC sichere Kommunikation über unsichere Netzwerke bietet. Nachrichten werden im SILC Netzwerk immer verschlüsselt und authentifiziert.
Viele Schwächen anderer Chatprotokolle werden dadurch ausgeräumt. Nähere Informationen bietet die Seite silcnet.org, mit dem White Paper.

Seitenanfang

SILC Netze

Eine Liste der mir bekannten, öffentlich verfügbaren SILC Netze.

Seitenanfang

SILC Clients

Einige SILC Clients...

Seitenanfang

Erste Schritte

  • Zuerst einen Client runterladen.
    Im Moment bietet der offizielle Irssi-SILC Client die meisten Funktionen. Wer unter Windows (aber auch unter anderen Systemen) auf eine grafische Oberfläche nicht verzichten will, für den empfiehlt sich Gaim mit SILC-Plugin (s. Anleitung für Gaim)oder Silky. Durch die Weiterentwicklung kommen immer wieder neue Clients auf, die hier unter Umständen noch nicht aufgelistet sind.
  • Den Client installieren und starten. Beim ersten Start erstellt der Client seine Schlüssel. Dazu benötigt er unter Umständen einige Angaben.
  • Dann zum Server eine Verbindung aufbauen (z.B. silc.stusta.mhn.de).
    Bei den meisten Clients funktioniert das mit dem Befehl /server <Servername>. Nach dem Aufbau der ersten Verbindung zu einem Server zeigt der Client den Babbleprint des Serverschlüssels an. Dieser sollte mit dem Serverkey (sofern verfügbar) verglichen werden.
  • Mit /nick <nickname> einen Nicknamen setzen. (z.B. /nick Joe) Nicknamen sind im Gegensatz zum IRC nicht eindeutig, der gleiche Name kann mehrmals vergeben sein. Clients sind über ihren Schlüssel und nicht über den Nicknamen identifizierbar.
  • Mit /join <Channelname> einen Channel betreten und mitchatten. (z.B. /join stusta)
    Im Gegensatz zum IRC muss eine Channelname hier nicht mit # , & oder ! anfangen.
  • Eine Liste von existierenden Channels liefert /list.

Seitenanfang

Gebrauch des SILC Clients

Benutzer mit IRC Vorkenntnissen sollten keine Probleme im Umgang mit SILC Clients haben. Sie lassen sich sehr ähnlich bedienen. Es gibt ein paar neue Befehle und einige Befehle wirken anders als beim IRC (z.B. /notice).

Benutzern ohne Vorkenntnisse mit IRC sollte die Bedienung auch leicht fallen. Das Grundprinzip der meisten Clients ist gleich. Der Chat findet in Channels statt, die mit /join betreten werden. Zu jedem Channel gehört ein Textfenster, in dem der Chattext erscheint. Außerdem gibt es meist noch ein Textfenster mit Statusmeldungen. Im Irssi-SILC kann mit Strg-n und Strg-p zwischen den verschiedenen Fenstern gewechselt werden.
Zur Eingabe von Text und Befehlen gibt es eine Eingabezeile - entweder eine Eingabezeile für alle Fenster wie im Irssi-SILC oder für jedes Fenster eine eigene Eingabezeile wie im Silsa.

Im Irssi-SILC lässt sich das Look and Feel mit Hilfe des /set Befehls verändern.
Änderungen müssen mit dem Befehl /save gespeichert werden.
Eine genaue Dokumentation befindet sich bei silcnet.org.

Eine gute Grundeinstellung ist diese:

  • Damit der Client sich den Nicknamen merkt und dieser nicht zu jedem Programmstart eingegeben werden muss:
    /SET nick <nickname>
  • Für den Fall, dass die Farbdarstellung nicht funktioniert:
    /SET term_force_colors ON
  • Ein paar Fenstereinstellungen:
    /SET autocreate_own_query ON
    /SET autocreate_query_level MSG
    /SET window_auto_change ON
    /SET autocreate_windows ON
    /SET use_status_window ON
    /SET use_msgs_window OFF
    /SET autoclose_windows OFF
    /SET reuse_unused_windows ON
  • Automatisch zum Server silc.stusta.mhn.de verbinden und stusta joinen:
    /SERVER ADD -auto -silcnet StuStaNet silc.stusta.mhn.de 706
    /CHANNEL ADD -auto stusta StuStaNet
  • Hervorheben des Nicknamens:
    /HILIGHT nick

Gaim ist ein Chat Client, der verschiedene Protokolle unterstützt. Darunter sind ICQ, AIM, MSN Messenger, Yahoo, IRC, Jabber und ab Version 0.78 auch SILC.
Bei Gaim entfällt die direkte Eingabe von Befehlen wie /server und /join. Sie werden über die grafische Oberfläche veranlasst.

  • Nach dem ersten Start muss ein neues Konto für SILC eingerichtet werden (Accounts -> Add, Show more Options aktivieren). Hier SILC als Protokoll auswählen.
  • Screen Name ist der Nickname, der im Chat erscheint. Passwort und Alias wird nicht benötigt und kann freigelassen werden.
  • Als Server wird beispielsweise silc.stusta.mhn.de mit Port 706 eingetragen werden.
    Jetzt können die Einstellungen mit Save gesichert werden
  • Anschließend das gerade erstellte Konto auswählen und eine Verbindung aufbauen (Sign on).
  • Während des Verbindungsaufbaus muss der Schlüssel des SILC-Servers akzeptiert werden (Fingerprint vergleichen).<
  • Ist die Verbindung aufgebaut, so erscheint das Buddy-Fenster.
    Über das Menü (Buddies -> Join a Chat) kann ein Channel betreten werden. Einfach den Channelnamen eingeben (z.B. stusta), eine Eingabe im Feld Passphrase ist nur bei geschützten Channels nötig.
  • Das Fenster für den Channel ist ähnlich wie bei den oben beschriebenen Clients aufgebaut mit einem Eingabefeld unten, einem Textfenster darüber und der Personenliste auf der rechten Seite.

Seitenanfang

Referenz der wichtigsten SILC Befehle

Eine detaillierte Auflistung der SILC Befehle befindet sic hier oder kann mit /help im Irssi-SILC Client abgefragt werden.

action away ban cmode cumode detach file
getkey info invite join key kick kill
list me motd msg names nick notice
part ping quit server smsg stats topic
umode users watch whois whowas

Grundlegende Befehle

/join <channel> [<passphrase>] [-cipher <cipher>] [-hmac <hmac>] [-founder]

dient zum betreten eines Channels. Im Gegensatz zum IRC müssen Channelnamen nicht mit einem # oder ! beginnen.
Wird der Name eines nicht existierenden Channels angegeben, so wird ein neuer Channel gegründet.
-cipher und -hmac finden nur Verwendung, wenn der Channel noch nicht existiert.
Mit der Option -founder kann beim Betreten des Channels founder Status gesetzt werden. Damit können bestehende limit, ban oder invite-only Einstellungen übergangen werden. Möglich ist dies nur für den Client, der sich als Founder identifizieren kann.

z.B.: /join stusta

/me <message>

sendet eine action Nachricht in den aktuellen Channel.

z.B.: /me hat hunger
bewirkt im aktuellen Channel die Ausgabe: * joe hat hunger

/msg [-channel] <target> <message>

schickt eine private Nachricht an einen anderen Client. <target> ist dann ein Nickname.
Mit der Option -channel kann eine Nachricht an einen Channel geschickt werden. Diese ist dann keine private Nachricht.
Mit /smsg können Nachrichten signiert verschickt werden.

z.B.: /msg joe Hi!

/nick <nickname>

ändert den Nicknamen.

z.B.: /nick joe

/part [<channel>]

bewirkt das Verlassen des aktuellen oder des angegebenen Channels.

z.B.: /part stusta

/quit [<message>]

beendet die Verbindung zum Server und den Client.
Dabei kann noch eine Nachricht angegeben werden.

z.B.: /quit Gute Nacht!

/server <servername>

baut die Verbindung zu einem Server auf.
Die Syntax von /server unterscheidet sich bei verschiedenen Clients. Beim Irssi-SILC Client bringt /help server weitere Informationen.

z.B.: /server silc.stusta.mhn.de

/users <channel>

Listet die Benutzer im angegebenen Channel auf.

z.B.: /users stusta

/whois [<nickname>[@<server>]] [<count>] [<Requested Attributes>] [<Client ID>]

Mit Whois werden beim Server Informationen über einen Benutzer (Nickname oder Client ID) abgefragt. count ist die maximale Anzahl an Ergebnissen.

z.B.: /whois joe

Weitere Befehle

/action <channel> <message>

wirkt wie /me benötigt aber den Channel als zusätzlichen Parameter.

z.B.: /action stusta gähnt
bewirkt im Channel stusta die Ausgabe: * joe gähnt

/away [<message>]

setzt den Status away, also dass man nicht am Rechner ist, mit der Begründung <message>. Auf eine Ankommende Nachricht wird dem Absender diese Begründung angezeigt.
/away ohne Parameter löscht den away Status.

z.B.: /away brb

/ban <channel> [+|-[<nickname>[@<server>[!<username>[@<hostname>]]]]]

bearbeitet die ban-Liste eines Channels, die Liste der Benutzer, die einen Channel nicht betreten dürfen. Der Befehl kann nur von Channel Operatoren angewendet werden.

z.B.: /ban joe

/cmode <channel> +|-<modes> [{<arguments>}]

setzt (+) oder entfernt (-) Channel Modi. Die mit (*) markierten Modi können nur von Founder geändert werden, alle anderen von den Channel Operatoren.

p privater Channel
s geheimer Channel
k Channel benutzt eigenen Schlüssel(*)
i betreten nur mit Einladung (s. /invite)
t Topic kann nur vom Founder oder Operator geändert werden.
m Normale Benutzer dürfen nicht sprechen. (*)
M Operatoren können nicht sprechen. (*)
l <limit> Maximale Benutzeranzahl.
a <passphrase> Passwort festlegen, das zum Betreten eines Channels benötigt wird.(*)
c <cipher> Verschlüsselung festlegen. (*)
h <hmac> HMAC festlegen. (Hash Message Authentication Code)(*)
f [<pubkeyfile> <privkeyfile> [<privkey passphrase>]] Founder Authentifizierung setzen. (*) Dieser Modus bleibt auch nachdem der Founder den Channel verlassen hat bestehen. Er kann dann später wieder seinen Status wiedererlangen.

z.B.: /cmode stusta +t

/cumode <channel> +|-<modes> {<arguments>}

setzt (+) oder entfernt (-) Modi der Clients in einem Channel. Die meisten Modi können nur vom Founder oder den Channel Operatoren geändert werden.

a <nickname> [@<server>]

Alle Modi setzen/entfernen

f <nickname>[@<server>] [<pubkeyfile> <privkeyfile> [<privkey passphrase>]]

Channel Founder, also derjenige Benutzer, der einen neuen Channel eröffnet. (s. /join) Der Channel Founder darf bestimmte Channel Modi setzen.
Der Client indentifiziert sich über seinen Schlüssel. Werden keine Schlüsseldateien angegeben, dann wird das Standardschlüsselpaar benutzt.

o <nickname> [@<server>]

Channel Operator. Kann nur von Founder oder Operator vergeben werden.

b <nickname> [@<server>]

Channel Nachrichten blockieren. Ein Client darf dies nur auf sich selbst anwenden. Der Server wird dann keine Channel Messages mehr zum Client schicken.

u <nickname> [@<server>]

Channel Nachrichten von normalen Benutzern blockieren. Nur Nachrichten von Founder und Operatoren werden vom Server gesendet.

r <nickname> [@<server>]

Channel Nachrichten von Robots blockieren.

q <nickname> [@<server>]

Quiet. Operatoren und Founder können damit Benutzern das Senden von Nachrichten verbieten. Der Benutzer kann es nicht selbst wieder aufheben. Quiet kann nicht auf sich selbst angewendet werden.

z.B.: /cumode stusta +o joe

/file send <filepath> <nickname> [<local IP> [<local port>]] [-no-listener]
/file accept [<nickname>]
/file close [<nickname>]
>

steuert den Dateitransfer zwischen SILC Clients. Der eigentliche Transfer findet ausserhalb des SILC Netzwerkes statt. Bevor er beginnt wird das SILC Key Exchange Protokoll zwischen den Clients ausgeführt.

end

sendet eine Anfrage auf Dateitransfer an <nickname>.
Wenn <local IP> und <local port> weggelassen werden, dann wird die IP des eigenen Rechners benutzt um den empfangenden Client zu binden.
Bei -no-listener wird der Client nicht lokal gebunden. Das ist nützlich, wenn NAT (Network Address Translation) angewendet wird.

accept

startet den Transfer. Wenn <nickname> weggelassen wird, wird die letzte Anfrage angenommen.

close

beendet den laufenden Transfer oder weist Anfragen zurück.

z.B.: /file send joes.txt jim

/getkey <nickname oder server name>

holt den Public Key eines Servers oder eines anderen Clients.

z.B.: /getkey joe

/info [<server>]

zeigt Informationen über den Server an.

z.B.: /info silc.stusta.mhn.de

/invite <channel> [<nickname>[@<hostname>]
/invite <channel> [+|-[<nickname>[@<server>[!<username>[@<hostname>]]]]]

lädt einen Benutzer in einen Channel ein oder bearbeitet die Invite Liste eines Channels.

z.B.: /invite stusta joe

/key msg <nickname> set|unset|list|agreement|negotiate [<arguments>]
/key channel <channel> set|unset|list|change [<arguments>]

dient zum setzen oder aufheben eines privaten Schlüssels für private Nachrichten oder Channels.

msg

Betrifft Schlüssel für private Messages mit <nickname>

channel

Betrifft Schlüssel für den Channel <channel> (* für aktuellen Channel)

set [<key> [<cipher>] [<hmac>]] [-responder]

Nimmt den Schlüssel in Benutzung.
Wenn <key> nicht angegeben wird, dann wird das vereinbarte Material benutzt. Negotiate muss dann vorher durchgeführt werden.
Beim Typ msg führt die Angabe von * als <key> dazu, dass ein zufälliger Schlüssel erstellt wird. Die Option -responder muss beim Typ msg von einem der beiden Clients gesetzt werden.

unset [<number>]

Hebt einen Schlüssel auf. Wird <number> weggelassen, dann werden alle Schlüssel aufgehoben.

list

Listet gesetzte Schlüssel auf.

change [<number>]

change kann nur im Zusammenhang mit dem Typ channel benutzt werden. Ein privater Channelschlüssel wird damit gewechselt.

agreement [<hostname> [<port>]]a

Sendet eine Anfrage auf Schlüsselvereinbarung an einen Client.
Es kann auch als Antwort auf eine Anfrage zur Schlüsselvereinbarung gesendet werden.

negotiate [<hostname> [<port>]]

Begint die eigentliche Schlüsselvereinbarung. <nickname> muss vorher auf die Anforderung auf Schlüsselvereinbarung geantwortet haben.

z.B.: /key msg joe agreement 10.2.1.7 5000

/kick <channel> <nickname>[@<hostname>] [<comment>]

kickt einen Client aus einem Channel. Die Ausführung erfordert Operator- oder Founderstatus. Der Founder kann nicht gekickt werden.

z.B.: /kick stusta joe

/kill <nickname>[@<hostname>] [<comment>] [-pubkey]

dient zum einen SILC Operatoren dazu Clients aus dem Netzwerk zu entfernen. Zum anderen kann ein Client sich damit selbst aus dem Netzwerk entfernen. Dazu muss -pubkey angegeben werden.

z.B.: /kill joe -pubkey

/list [<channel>]

Listet Channelnamen, die Anzahl an Clients im Channel und das Topic auf.

/motd [<server>]

zeigt die Message Of The Day eines Servers an.

/names [-count | -ops -halfops -voices -normal] [<channels> | **]

zeigt ähnlich /who die Benutzer im angegebenen Channel an.

z.B.: /names stusta

/notice <message>

sendet eine notice an einen Nick oder Channel. Meist wird dies von Bots und Skripten benutzt.

/ping

sendet ein Ping an den Server und zeigt die Antwortzeit an.

/smsg [-channel] <target> <message>

wirkt wie /msg, sendet jedoch eine signierte Nachricht, die der Empfänger mit Hilfe des öffentlichen Schlüssels überprüfen kann.
Der Irssi-SILC Client zeigt eine erfolgreich verifizierte signierte Nachricht durch ein [S] vor dem Nicknamen an. [F] zeigt, dass die Verifikation fehlgeschlagen ist und [?] bedeutet, dass eine Verifikation nicht möglich ist, weil der öffentliche Schlüssel des Absenders nicht lokal gecached ist. Fehlende Schlüssel können mit /getkey geholt werden.

z.B.: /smsg joe Hi!

/stats

zeigt statistische Informationen über den Server an.

/topic <channel> [<topic>]

zeigt und/oder ändert das Topic des angegebenen Channels.

z.B.: /topic stusta Joe was here!

/umode +|- <modes>

bearbeitet die Modi eines Clients. Einige der Modi kann der Client nicht selbst setzen.

aAlle Modi entfernen
sServer Operator (nur entfernen)
rRouter Operator (nur entfernen)
ggone (s. /away)
iindisposed
bbusy
ppaging
hhyper active
tRobot
PBlockiert private Nachrichten, die nicht mit einem privaten Nachrichtenschlüssel verschlüsselt sind.
wWatching verhindern.
IInvite-Nachrichten blockieren.

z.B.: /umode +h

/watch [-add | -del <nickname>]

verwaltet die Watchlist. Wenn Benutzer der Watchlist das Netz betreten oder verlassen, wird eine Benachrichtigung gesendet.
Benutzer können dies durch setzen des umode +w verhindern. Durch gleichlautende Nicknamen kann es zu Benachrichtigungen über andere Benutzer kommen.

z.B.: /watch -add joe

/whowas <nickname>[@<server>] [<count>]

Ähnlich /whois, liefert aber Ergebnisse über Nicknamen, die zuvor benutzt wurden.

z.B.: /whowas joe

Seitenanfang

Anmelden