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.
SILC Netze
Eine Liste der mir bekannten, öffentlich verfügbaren SILC Netze.
- www.silcnet.org, *das* SILC-Netz
- www.stustanet.de, hier bin ich meist zu finden (silc.stusta.mhn.de:706)
- www.so36.net
- www.compsec.net
SILC Clients
Einige SILC Clients...
- Irssi-SILC. Bietet alle Funktionen, hat aber keine grafische Oberfläche
- Gaim. Ab Version 0.78 verfügt Gaim über ein SILC Plugin. (s. auch hier)
- Silky. Grafischer Client, GTK basiert.
- Ansonsten sind noch erwähnenswert Bombyx, milc, Silsa, das Plugin für Irssi und der Bot Samadhi.
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.
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 Port706
eingetragen werden.
Jetzt können die Einstellungen mitSave
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.
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
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!
ändert den Nicknamen.
z.B.: /nick joe
bewirkt das Verlassen des aktuellen oder des angegebenen Channels.
z.B.: /part stusta
beendet die Verbindung zum Server und den Client.
Dabei kann noch eine Nachricht angegeben werden.
z.B.: /quit Gute Nacht!
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
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
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
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
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
Listet Channelnamen, die Anzahl an Clients im Channel und das Topic auf.
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
sendet eine notice an einen Nick oder Channel. Meist wird dies von Bots und Skripten benutzt.
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!
zeigt statistische Informationen über den Server an.
zeigt und/oder ändert das Topic des angegebenen Channels.
z.B.: /topic stusta Joe was here!
bearbeitet die Modi eines Clients. Einige der Modi kann der Client nicht selbst setzen.
a | Alle Modi entfernen |
s | Server Operator (nur entfernen) |
r | Router Operator (nur entfernen) |
g | gone (s. /away ) |
i | indisposed |
b | busy |
p | paging |
h | hyper active |
t | Robot |
P | Blockiert private Nachrichten, die nicht mit einem privaten Nachrichtenschlüssel verschlüsselt sind. |
w | Watching verhindern. |
I | Invite-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