Atomare Datenkrake - Die Datenschleuder - CCC
Atomare Datenkrake - Die Datenschleuder - CCC
Atomare Datenkrake - Die Datenschleuder - CCC
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
• ejabberd: (src/randoms.erl:53):<br />
seed vom random mit now()<br />
get_string() -><br />
random_generator ! {self(), get_random, 65536*65536},<br />
receive<br />
{random, R} -><br />
integer_to_list(R)<br />
end.<br />
<strong>Die</strong>ses benutzt das Random-Modul aus Erlang.<br />
Somit haben zumindest aktuelle Server-Implementationen<br />
(außer Jabberd1-1.4.4, der aber<br />
schon zwei Jahre alt ist) keine kryptographisch<br />
hochwertigen zufälligen Stream-IDs, da die<br />
benutzten Pseudo-Random-Number-Generators<br />
mit der Zeit des Server-Startups initialisiert<br />
werden. Mit der „Last Activity“-Erweiterung<br />
kann die Server-Startup-Zeit sekundengenau<br />
angefragt werden. <strong>Die</strong>se eröffnet zumindest die<br />
theoretische Möglichkeit, die Stream-ID vorherzusagen.<br />
Beim ejabberd werden als Seed auch<br />
die Mikrosekunden benutzt.<br />
Server-Server-Kommunikation<br />
Auch bei der Server-Server-Kommunikation<br />
sollte sowohl SASL als auch TLS benutzt werden.<br />
Zusätzlich gibt es noch „server dialback“,<br />
das gegen domain spoofing schützen soll. Eine<br />
Server-Server-Verbindung sieht also wie folgt<br />
aus: jabber.foo.com stellt eine Verbindung mit<br />
jabber.bar.com auf Port 5269 her. jabber.bar.com<br />
kontaktiert dann jabber.foo.com, um zu überprüfen,<br />
ob jabber.foo.com auch tatsächlich der<br />
Rechner ist, von dem aus die Verbindung aufgebaut<br />
wurde. Anschließend passiert das gleiche<br />
für den Rückkanal, also fängt jabber.bar.com an,<br />
die Verbindung zu initiieren.<br />
<strong>Die</strong> verschiedenen Server-Implementationen<br />
können wohl untereinander via TLS kommunizieren.<br />
Eine genauere Untersuchung fand nicht<br />
statt, da eine Benutzerin den Status der Verbindung<br />
von einem Server zu einem anderen Server<br />
nicht nachprüfen kann. Aus Sicherheitsgründen<br />
muß davon ausgegangen werden, daß<br />
die Verbindung nicht verschlüsselt wird.<br />
24 24<br />
nothinG to hide<br />
Fazit<br />
Falls dem Server vertraut wird, ist für eine<br />
Benutzerin unklar und nicht überprüfbar, ob<br />
die Server-Server-Kommunikation verschlüsselt<br />
wird oder nicht. Somit kann möglicherweise<br />
jeder Rechner im Netzwerk Daten von Server<br />
jabber.foo.com zu Server jabber.bar.com mitlesen.<br />
Das einzige, wo man sich sicher sein kann, ist<br />
die eigene Client-Server-Kommunikation, falls<br />
das Zertifikat erfolgreich verifiziert wurde. <strong>Die</strong><br />
Client-Server-Kommunikation des Gegenübers<br />
muß nicht zwingend verschlüsselt sein. Hier<br />
muß je nach Expertise und geistigem Zustand<br />
des Gegenübers abgewogen werden.<br />
Bei TLS/SSL wird die Kommunikation zwischen<br />
den einzelnen Komponenten verschlüsselt,<br />
also vom Client zum Server, dann vom Server<br />
zu Server, dann vom Server zum Client. <strong>Die</strong><br />
einzelnen Server haben die kompletten Kommunikationsdaten<br />
unverschlüsselt vorliegen.<br />
Falls die Empfängerin momentan nicht online<br />
ist, wird die Nachricht auch unverschlüsselt auf<br />
dem Server des Empfängers gespeichert.<br />
Eigener Server vertrauenswürdig<br />
Falls nur dem Server von Alice vertraut wird,<br />
nicht aber dem von Bob, bleiben weiterhin<br />
sowohl die Nachrichten als auch die Verbindungsdaten<br />
und die Presence für den Server<br />
von Bob unverschlüsselt. Auch der Eintrag von<br />
Alice in Bobs Roster ist für den Server von Bob<br />
nachvollziehbar.<br />
Der besondere Schutz der Nachricht wird im<br />
nächsten Szenario detailliert behandelt.<br />
Server nicht vertrauenswürdig<br />
Als nächstes Szenario wird wieder betrachtet,<br />
daß Alice eine Nachricht an Bob schicken will.<br />
<strong>Die</strong>smal wird allerdings dem Server nicht vertraut.<br />
<strong>Die</strong>ses kann verschiedene Gründe haben:<br />
Der Anwenderin unbekannt, wer Zugriff auf<br />
die Server hat; ob die Zugriffsberechtigten<br />
möglicherweise mit Angreiferinnen oder Insti-<br />
die datenschleuder. #93 / 2008