Wie Skype & Co. Firewalls umgehen
Peer-to-Peer-Software ist der Albtraum eines Netzwerk-Admins. Um m?glichst direkt Pakete mit dem Gegen?ber austauschen zu k?nnen, bohrt sie mit raffinierten Tricks L?cher in Firewalls, die eigentlich keine Pakete von drau?en reinlassen sollen.
Hinter einer Firewall, die das System vor den Gefahren aus dem Internet sch?tzen soll, sitzen immer mehr Rechner. Im Idealfall realisiert diese Firewall-Funktion ein Router, der auch noch die lokale Netzwerkadresse des PC passend auf die ?ffentliche IP-Adresse umsetzt (Network Adress Translation, NAT). So kann kein Angreifer von au?en den PC erreichen - Verbindungsaufbau ist nur von drinnen nach drau?en m?glich.
Problematisch wird das nat?rlich, wenn zwei Rechner jeweils hinter so einer NAT-Firewall sitzen und trotzdem direkt miteinander reden sollen - beispielsweise weil ihre Besitzer via Voice over IP miteinander telefonieren wollen. Das Dilemma ist offensichtlich: Egal, wer von den beiden wen anruft - die Firewall des Gegen?bers wehrt den vermeintlichen Angriff ab und wirft die Datenpakete einfach weg; ein Gespr?ch kommt nicht zustande. So w?rde das ein Netzwerkadministrator jedenfalls erwarten.
Aufgebohrt
Doch wer schon einmal die popul?re Internet-Telefonie-Software Skype eingesetzt hat, wei?, dass die hinter einer NAT-Firewall genauso reibungslos funktioniert, als hinge der PC direkt am Internet. Denn die Erfinder von Skype & Co. haben sich f?r dieses Problem etwas einfallen lassen.
Selbstverst?ndlich muss jede Firewall auch Pakete ins lokale Netz hereinlassen - schlie?lich will der Anwender Webseiten betrachten, E-Mails lesen und so weiter. Dazu muss die Firewall die zugeh?rigen Datenpakete von au?en an den Arbeitsplatzrechner im LAN weiterleiten. Sie tut dies aber nur, wenn sie zu der ?berzeugung gelangt, dass ein Paket die Antwort auf ein ausgehendes Datenpaket darstellt. Dazu f?hrt ein NAT-Router Tabellen, welcher interne Rechner mit welchem externen gesprochen hat und welche Ports die beiden dabei verwendet haben.
Der Trick der VoIP-Software besteht nun darin, der eigenen Firewall vorzugaukeln, es existiere eine Verbindung, der sie die sp?ter eingehenden Datenpakete zuordnen soll. Zugute kommt Skype dabei die Tatsache, dass die Audiodaten f?r VoIP ohnehin ?ber das verbindungslose UDP verschickt werden. Anders als bei TCP, das in jedem Paket zus?tzliche Verbindungsinformationen transportiert, sieht eine Firewall bei UDP nur die Adressen und Ports von Quell- und Zielsystem. Stimmen die bei einem eingehenden UDP-Paket mit den Daten eines NAT-Tabelleneintrags ?berein, leitet sie das Paket guten Gewissens an den internen Rechner weiter.
Vermittlung
Eine wichtige Aufgabe beim Gespr?chsaufbau mit Skype ?bernimmt ein Vermittlungsserver, mit dem beide Kommunikationspartner in st?ndigem Kontakt stehen. Dies geschieht ?ber eine TCP-Verbindung, die die Clients selber aufbauen. Der Skype-Server wei? somit st?ndig, unter welcher Adresse ein Skyper aktuell im Internet zu erreichen ist. Die eigentlichen Telefonverbindungen laufen wenn irgend m?glich nicht ?ber den Skype-Server. Stattdessen tauschen die Clients diese Daten direkt aus.
Angenommen Alice will ihren Freund Bob anrufen. Ihr Skype-Client teilt diesen Wunsch dem Skype-Server mit. Der wei? dabei schon einiges ?ber Alice: An der ankommenden Anfrage sieht er, dass Alice derzeit unter der IP-Adresse 1.1.1.1 zu erreichen ist und ein kurzer Test enth?llt, dass ihre Audiodaten immer von UDP-Port 1414 kommen. Diese Informationen ?bermittelt der Skype-Server an den Skype-Client von Bob, den er laut seiner Datenbank derzeit unter der IP-Adresse 2.2.2.2 erreicht und der bevorzugt den UDP-Port 2828 verwendet.
(f?r Bildbeschreibung siehe Artikel)
heise Security - Know-how - Wie Skype & Co. Firewalls umgehen