Secure Internet Live Conferencing

Werbung
Secure Internet Live Conferencing
Christian Horchert <[email protected]>
Frank Becker <[email protected]>
Chaostreff Dresden http://www.c3d2.de
2004-03-07, 6. Chemnitzer Linux Tag
© Chaostreff Dresden (c3d2)
This presentation is protected by the GNU General Public License version 2 or any newer
Was ist SILC?
Netzwerkprotokoll für
authentifizierte und verschlüsselte
Live Kommunikation
Unterstützt Chat- und Instant Messenger Systeme.
/join linuxtag
Seite 2 of 30
Agenda
●
Geschichte und Zukunft von SILC
●
Kommunikationsprotokoll
●
SILC-Nutzung
●
Software
●
Silc Netzwerk
Seite 3 of 30
Geschichte/Entwicklung
●
entwickelt von Pekka Riikonen, seit '96
●
Entwicklung mehrmals unterbrochen
●
1. Veröffentlichung 2000,
●
SILC-Client 1.0 Okt. 2003
●
z. Zt. “Reifung” des Protokolls
●
Protokoll specs bei IETF eingereicht, momentan
in “draft phase” (wird bald RFC)
●
Version 1 von silcd und toolkit wird bald ...
Seite 4 of 30
Das Protokoll
Seite 5 of 30
Protokoll
wichtigste Merkmale:
●
alle Nachrichten sind verschlüsselt und
authentifiziert
●
Schlüssel von Server oder Nutzer verwaltet
●
Nachrichten über Server-Netz geschickt
●
Dateien mittels sftp (P2P)
Seite 6 of 30
Netzwerk Topologie
normaler Client Traffic
lokale Nutzer
Session-Keys
joined Channels
andere info cached
Client
Client
(unique ID)
SILC key exchange
Connection Auth
Server
Client
Seite 7 of 30
Netzwerk Topologie
Client-Client traffic
Client
1 SILC key exchange
Connection Auth
Client
2
Server
pre-shared
key
Client
Seite 8 of 30
Netzwerk Topologie
Client
Server-Router Traffic, Cell
Server
Client
Server
(unique server ID)
Client
SILC key exchange
Connection Auth
Router
Client
Server
Backup-Router
Seite 9 of 30
Netzwerk Topologie
Router-Router Traffic
Router
Router
Router
Hybrid Ring Mesh
Router
Router
Router
Seite 10 of 30
Paket Format Überblick
IP
Header
TCP
Header
SILC
Header
Packet Data
session key
session or other key
HMAC
HMAC, integrety ensured
SILC payload
Seite 11 of 30
SILC Key Exchange (SKE)
(1) Initiator sendet seine Methoden (cipher, hash
Funktion, HMAC Funktion, Public Key Algorithmus)
(2)Antwortender wählt Methoden
(3)Diffie-Hellman Schlüsselaustausch
zusätzlich Austausch öffentlicher Schlüssel
(4)Mutual authentication mode
->: Session key
Seite 12 of 30
SILC Verbindungsauthentifizierung
●
erfolgt gleich nach SKE
●
Autentifizierung der Verbindungsparteien (z.B.
Client zu Server)
●
basierend auf:
Passphrase (packet encrypted) oder
Public-Key (Challenge an Client gesendet)
->: authentifizierter Client
Seite 13 of 30
Private Nachricht mit Session Keys
Client A
Server X
Server Y
Client B
Nachricht
decrypt &
encrypt
Nachricht
decrypt decrypt
&
&
encrypt encrypt
session key
SILC
Network
session key
decrypt decrypt
&
&
encrypt encrypt
decrypt &
encrypt
session key
Seite 14 of 30
Private Nachricht mit Private Key
Client A
Server X
Server Y
Nachricht
decrypt &
encrypt
Client B
Nachricht
message
pass trough
SILC
Network
message
pass trough
decrypt &
encrypt
key
Seite 15 of 30
Channels
●
benannte Gruppe, alle teilnehmenden Clients
empfangen die selben Nachrichten
●
Channel Namen sind eindeutig, max. 256 Zeichen
Seite 16 of 30
●
Channel Nachrichtenzustellung
Alle Nachrichten in einer Cell sind verschlüsselt
und authentifiziert mit einem Channel key
●
Nachrichten zwischen Cells sind mit dem Session
Key verschlüsselt
●
regelmäßiges Re-keying
●
zusätzl.: Key wird neu generiert, wenn Channel
gegründet wird oder Client dazu kommt/verläßt
●
Private Keys sind möglich(passphrase, publickey)
Seite 17 of 30
Channel Nachrichtenzustellung
Cell 1
(Channel Key 1)
Client
Server
Client
Client
Router
decrypt encrypt
message message
Server
Cell 2
(Channel Key 2)
SILC
Network
Client
Client
Server
Router
decrypt encrypt
message message
Seite 18 of 30
SILC-Nutzung
Seite 19 of 30
SILC-Nutzung: Nicks
●
keine eindeutigen Nickname
●
keine Nick Services (um Nick wars zu verhindern)
●
Authentifiziert und Identifiziert durch Public Key
●
Attribute und Present Modi
●
andere nützliche Modi
–
blocking non op msgs
–
blocking private msgs
–
marking / blocking bot msgs
–
reject watching
Seite 20 of 30
SILC-Nutzung: Channels
●
joining und founding eines channels (Backup
vom key!!!)
/cmode +f channel
●
keine channel services nötig (takeovers sind sehr
schwierig)
●
kann privat, geheim, moderiert, nur invite, limitiert sein
●
channel keys setzten
Seite 21 of 30
SILC-Nutzung: Channels mit
Geheimnis
●
key besorgen per mail, Telefon, ...
/JOIN channel
/CMODE +k
/KEY CHANNEL channelname set secret
●
Muss von jedem Client gemacht werden
●
=> NutzerD (und Server Admin) kann keine
Nachrichten mitlesen
Seite 22 of 30
SILC-Nutzung: Channel mit Public
Channel Keys
●
Key per Mail besorgen, /getkey, ...
/JOIN channel
/CMODE channel +C +pubkeyUserA \
+pubkeyUserB +pubkeyUserC
●
NutzerB und NutzerC join w/ /JOIN channel
-auth
●
=> NutzerD (und Server Admin) können nicht
mitlesen
Seite 23 of 30
SILC-Nutzung: Messaging
●
Nachrichten können signiert werden (mit /SMSG)
[?] fukami: signed msg, you don't have the key
[S] fukami: signed msg, you've got the key
●
MIME Nachrichten
/SCRIPT LOAD silc-mime.pl
/MMSG -CHANNEL channelname path/to/file
●
private Nachrichten mit Key schützen
Seite 24 of 30
SILC-Nutzung: Absicherung
privater Nachrichten
●
Shared Secret per Telefon, Mail, Fax...
/KEY MSG UserA set secret
/KEY MSG UserB set secret
●
=> gesicherte Kommunikation
Seite 25 of 30
SILC-Nutzung: Datei-Transfer
●
Dateiaustausch (p2p) mit sftp
/FILE SEND path/to/file UserB
/FILE ACCEPT UserB
/FILE CLOSE (um Session sofort zu beenden)
mit -no-listener falls hinter NAT
Seite 26 of 30
Programme und Frameworks
●
silcd
●
silc-client
●
silc-toolkit
●
Silky
●
gaim
●
jsilc
●
samadhi
Seite 27 of 30
SILC Netzwerk
●
Verbinde Dich zu einem Server in Deiner Nähe
●
silc.silcnet.net macht Round-Robin DNS mit
allen SILCNet Servern
●
mehrere Server Verbindungen sind möglich
Seite 28 of 30
einige Credits
●
●
●
●
●
Pekka Riikonen (Hauptentwickler, SILCNet Admin, gaim-Plugin)
Timo "cras" Sirainen (Irssi/SILC client)
Jochen "c0ffee" Eisinger (SILC plugin/ Silc-Client Maintainer)
Toni Willberg (Silky)
Giovanni Giacobbi (silcconfig,silclog, silcd bugfixes, RPM Pakete)
●
Lubomir "salo" Sedlacik (NetBSD Pakete, Projekt Server Admin)
●
Tamas Szerb (Debian Packete)
●
●
●
Mika "Bostik" Boström (Man-pages, Fehlersuche)
Juha Räsänen (ElGamal Implementierung)
Ville Räsänen (Client-teil des STATS-Kommandos, Einige ROBXOdoc Formatierungen, Fehlersuche)
●
Patrik Weiskircher (whois Attribute, Fehlersuche)
Seite 29 of 30
Links
●
SILC-Seite: Anleitungen, FAQs, White Papers,
vorkompilierte Pakete von silcd, silc-client (rpm,
deb) und vieles mehr: http://silcnet.org
●
Irssi-plugin: http://penguin-breeder.org/silc/
●
Silky: http://silky.sf.net
●
Ports for NetBSD, FreeBSD, OpenBSD, Darwin
Seite 30 of 30
Herunterladen