Sichere Verteilung
Trotz immer schnellerer Internet-Anbindungen kommen die Serverbetreiber mit Angeboten für ein breites Publikum nicht so recht in Gang. Das könnte sich ändern, wenn sie den Versand ihrer Inhalte per geschütztem Multicasting erledigen würden.
- Reto BĂĽrki
Kommunikation findet im Internet meistens mittels Unicasting statt, also mit einer Punkt-zu-Punkt-Verbindung zwischen beiden Teilnehmern. SMTP oder HTTP sind Beispiele für typische Unicast-Protokolle. Im Unterschied dazu versteht man unter dem Begriff "Multicast" die Übertragung von Daten von einem Kommunikationsteilnehmer zu einer Gruppe anderer, ohne dass der Sender dafür mehr Übertragungskapazität benötigt als für die Kommunikation mit nur einem Teilnehmer.
Daher kann Multicasting große Datenmengen zu mehreren Anwendern gleichzeitig transportieren, beispielsweise für rundfunkähnliche Anwendungen, TV-Übertragungen via Satellit oder Softwareupdates. Multicast-fähige Router kopieren die einzelnen Pakete und leiten sie zu den Teilnehmern des Dienstes weiter. Der Sender braucht also nur ein Paket zu senden, was den Ressourcenverbrauch bei vielen Empfängern im Vergleich zu Unicast erheblich senkt.
Neben der Reduktion der benötigten Bandbreite ist die gute Skalierbarkeit ein weiterer Vorteil von Multicasting, da es auf einem offenen Modell basiert. Ein Sender kann Daten an eine Multicast-Gruppe senden und muss dafür nicht einmal ein Mitglied dieser Gruppe sein. Teilnehmer können Daten einer Gruppe empfangen, indem sie dieser Gruppe beitreten. Das offene Modell erschwert andererseits die Entwicklung sicherer Multicast-Umgebungen sehr, da die gute Skalierbarkeit nicht auf Kosten der Sicherheit verloren gehen darf.
Obwohl Multicast-Protokolle schon seit längerem existieren, sind Praxisanwendungen rar. Der Grund dafür dürfte nicht nur in der fehlenden Infrastruktur (Multicast-fähige Router), sondern auch in ungelösten komplexen Sicherheitsfragestellungen liegen: Kunden von Börseninformationsdiensten möchten sicher sein, dass die empfangene Information authentisch ist, also wirklich vom angegebenen Server kommt. Anbieter digitaler TV-Programme möchten sicherstellen, dass tatsächlich nur zahlende Teilnehmer zuschauen, und anderen den Zugang verwehren. Bei Online-Videokonferenzen spielt der Aspekt der Vertraulichkeit eine wichtige Rolle, die versendeten Daten sollten, wenn möglich, verschlüsselt sein.
Eine erfolgreiche Verbreitung der Multicast-Technologie setzt also die Erfüllung diverser Sicherheitsanforderungen voraus. Der vorliegende Artikel erläutert wichtige Aspekte des sicheren Multicasting: geschützte Datenübertragung, Authentifizierung von Daten, Zugangskontrolle in Gruppen und das Schlüsselmanagement.
Viele Empfänger, wenig Ressourcen
Das gleichzeitige Öffnen mehrerer Unicast-Verbindungen, beispielweise bei Videokonferenz-Anwendungen, stellt hohe Anforderungen an die Bandbreite und ist nicht wirtschaftlich. Das Versenden der Pakete an eine Broadcast-Adresse kommt in der Praxis selten in Frage, da Broadcast-Pakete normalerweise das lokale Netz nicht verlassen sollten. Die beste Lösung ist das Senden der Videokonferenz-Daten an eine spezielle Adresse. Alle Hosts, die an der Konferenz teilnehmen, verarbeiten diese speziellen Pakete, sobald sie an der Netzwerk-Schnittstelle ankommen. Die Funktionsweise ähnelt derjenigen des Broadcasting, auch dort geht jeweils nur ein Paket auf die Reise. Der Unterschied liegt darin, dass ein Host nicht alle Multicast-Pakete verarbeitet, sondern nur diejenigen, die der Kernel des Betriebssystems als "interessant" ansieht. Solche Adressen heißen Multicast-Adressen.
Als Multicast-Adressen hat die IANA den Bereich von 224.0.0.0 bis 239.255.255.255 definiert. Die ersten vier Bits einer IP-Multicast-Adresse lauten also immer "1110", die übrigen 28 Bits identifizieren die so genannte Multicast-Gruppe, an die das Paket geht. Beim guten alten Analogradio entspräche das der Frequenz, die die Hörer für den Empfang eines Senders einstellen müssen. Im Fall von IP-Multicast muss der Kernel also sozusagen die "Frequenz" (die Multicast-Gruppe) für den Empfang von Multicast-Paketen erfahren, damit der Anwender zum Beispiel einer Videokonferenz beiwohnen kann. Er muss der Multicast-Gruppe "beitreten" (Join), um Daten zu empfangen.
Verständlicherweise reicht es nicht aus, dass eine Anwendung sich nur beim Kernel des Betriebssystems registriert, um die Daten einer Multicast-Gruppe zu erhalten. Dann würde der jeweilige Host jeglichen Multicast-Traffic vom Netzinterface empfangen und der Kernel darüber entscheiden, ob er die Daten akzeptieren oder verwerfen soll. Eine solche Vorgehensweise wäre eine Verschwendung von Bandbreite. In der Praxis teilt der Kernel daher beim Beitritt in eine Multicast-Gruppe dem lokalen Router (Next Hop) mit, an welchen Multicast-Gruppen er interessiert ist. Zu diesem Zweck kommt das speziell für das Management von Gruppen entwickelte Protokoll IGMP (Internet Group Management Protocol) zum Einsatz. Der Router propagiert die Information an die anderen Multicast-Router, und der jeweilige Host erhält bis zum Verlassen der Gruppe (Leave) die Daten der Multicast-Gruppe oder kann Daten an sie versenden.
Multicast-fähige Router generieren für die Verteilung der Multicast-Daten so genannte Bäume (Distribution Trees), die den Weg der Daten durch das Netz zu allen Empfängern festlegen. Weitere spezielle Protokolle tauschen Statusinformationen zwischen den Routern aus, darunter Protocol Independent Multicast (PIM) oder das ältere Distance Vector Multicast Routing Protocol (DVMRP). Die Abbildung rechts zeigt die Funktionsweise von Multicast schematisch.