DSL fernkonfiguriert

Seite 6: Bestellter Rückruf

Inhaltsverzeichnis

Näher betrachtet läuft die Autoprovisionierung nach einem simplen Muster wie im vereinfachten Diagramm ab. Ein ausführliches Beispiel in Form eines TCP-Mitschnitts haben wir an Ende dieses Artikels gestellt.

Vereinfachtes Ablaufdiagramm einer Autoprovisionierung: Die Konfigurationsdaten werden in einem einzigen Schritt – mittels SetParameterValues – zum Teilnehmergerät übertragen.

TR-069 spezifiziert nur eine Richtung für den Verbindungsaufbau, nämlich vom CPE zu einem bestimmten ACS. Diese Aktion kann eines von fünf Ereignissen auslösen: Ein Neustart, das Laden der Werkseinstellungen, ein vom ACS gesetztes Intervall für regelmäßige Rückmeldungen (PeriodicInformInterval), eine Verbindungsaufforderung des ACS (Connection Request) sowie Änderungen von Parametern, auf die das CPE laut Maßgabe des ACS achten soll (Active Notification). Zu den Notification-Parametern gehört in der Grundeinstellung die Internet IP-Adresse. In der Praxis folgt daraus für die meisten TR069-Router, dass sie sich nach jeder Internet-Einwahl beim ACS melden – denn die weitaus meisten Geräte haben keine statische öffentliche IP-Adresse, sondern eine dynamische, die sich eben bei jeder Einwahl ändert.

Die Verbindungsaufforderung, Connection Request, ist keine vollständige TR-069-Verbindung, sondern soll lediglich das CPE veranlassen, eine solche aufzubauen. Der Connection Request setzt voraus, dass das CPE den ACS mindestens einmal kontaktiert und dabei die für den Request erforderlichen Daten übertragen hat. Das sind die aktuelle IP-Adresse, der für diesen Zweck vom CPE-Hersteller ausgewählte Port (zusammen bilden sie den Connection Request URL), ein gerätespezifischer Pfadname sowie die ACS-Credentials.

Beim Connection Request dürfen keine Daten zum CPE übertragen werden; das CPE muss etwaige so empfangene Daten verwerfen. Der ACS muss sich beim Connection Request per Digest-Authentifizierung mittels seiner Credentials beim CPE anmelden. Die Credentials liegen als modifizierbare Parameter auf dem CPE vor und sind nur dem ACS und dem CPE bekannt. Weil die URL und der Schlüssel normalerweise nicht öffentlich bekannt sind, gehen die Autoren der Spezifikation davon aus, dass das Verfahren ausreichend sicher ist.

Für den Connection Request sind unverschlüsselte HTTP-Verbindungen vorgeschrieben und HTTPS-verschlüsselte ausdrücklich verboten, weil die Autoren davon ausgehen, dass die einzig interessanten Daten, die bei dieser Kurzverbindung übermittelt werden – die Credentials des ACS – ohnehin durch die Digest-Authentifizierung ausreichend verschlüsselt und somit geschützt sind (sobald das CPE den Befehl HTTP-GET auf die ConnectionRequestURL erhält, antwortet es mit "Authentication required"). Hat sich der ACS authentifiziert, wird die Verbindung getrennt und das CPE ruft zurück; seinen HTTP-Server nimmt das CPE beim Connection Request nicht in Betrieb. Zur Vermeidung von DoS-Attacken darf das CPE nur eine begrenzte Anzahl von Verbindungen pro Minute annehmen; Details nennt die Spezifikation nicht, aber Fachleute halten Werte von unter 10 pro Minute für sinnvoll.

Nach dem TCP-Verbindungsaufbau zum ACS sendet das CPE einen InformRequest. Dabei übermittelt es allgemeine Geräteinformationen wie Herstellername, Seriennummer, Software- und Hardwareversion, die Daten für den Connection Request und, sofern bereits vom ACS gesetzt, auch den Provisioning-Code.

Der ACS quittiert den InformRequest mit InformResponse. Hat das CPE keine weiteren Requests in der Warteschlange, signalisiert es das mit einem leeren HTTP Post. Nun prüft der ACS, ob das CPE den Provisioning-Code mitgeschickt hat. Wenn ja, ist das CPE konfiguriert. Wenn nein, wird der zugehörige, vom Service Configuration Manager bereitgehaltene Konfigurationsdatensatz in SetParameterValues Request gekapselt und mit dem Provisioning-Code an das CPE übertragen. Das CPE teilt per SetParameterValueResponse mit, ob der Provisionierungsprozess erfolgreich war. Wenn beide Seiten ihre Requests abgearbeitet haben, wird die Verbindung nicht mehr benötigt und das CPE baut die TCP-Verbindung zum ACS ab.

TR-069-fähige Geräte sind mit ihrem für den Connection Request geöffneten Port im Internet exponiert; vorstellbar sind daher Angriffe, die das Ziel haben, den Router unter Kontrolle zu bringen, um etwa Online-Banking-Zugriffe auf präparierte Server umzuleiten. Deshalb müssen die Sicherheitsmaßnahmen bei TR-069 deutlich schärfer sein als bei herkömmlichen Konfigurationsverfahren, die auf LAN-Verbindungen gründen. Eine erste Schranke gegen unbefugte Zugriffe ist der Verbindungsaufbau – eingehende TR-069-Verbindungen darf ein CPE nicht annehmen, sondern kann sie immer nur selbst zu seinem, in der Firmware gespeicherten ACS-URL hin initiieren.