Infos zu TR-069

Die Abkürzung «TR-069» steht für «Technical Report 69». Eine Bezeichnung die ideenlos, wenn nicht gar langweilig klingt. Aber das wofür TR69 steht, sorgt zurzeit für Kontroversen. TR69 wird als «Einfallstor für Spionagesoftware» oder gar als «Modem-Trojaner» bezeichnet. Was ist dran an diesen Behauptungen? Der folgende Artikel enthält eine kurze Einführung zum Thema.

TR69 ist bei Lichte betrachtet nicht mehr als ein Protokoll, das die Kommunikation zwischen einem Endgerät und einem Kontrollserver regelt. Endgeräte werden CPE’s (Customer Premises Equipment) genannt und sind in aller Regel Endgeräte beim Kunden: DSL-Modems, Router, ATA-Boxen, usw. CPE kann per Definition aber auch weiter gefasst werden. Nahezu bei jeder Komponente in einem Netzwerk kann TR69 zum Einsatz kommen. Auf der anderen Seite steht der Kontrollserver, der ACS (Access Control Server) genannt wird. Seine Aufgabe besteht darin, vermöge des TR69 Protokolles Informationen mit einem CPE auszutauschen. Dabei ist klar geregelt, wie die Kommunikation aufgebaut ist, welche Informationen dabei fliessen und welche Authorisierungsmechanismen zum Zuge kommen. Die erste wichtige Frage lautet nun aber: was sind das für Informationen, die ausgetauscht werden?

Leistungsumfang

Um diese Frage beantworten zu können, muss kurz auf das Leistungsspektrum von TR69 eingegangen werden. Dieses umschliesst drei Funktionen zur automatischen Fernkonfiguration und Fernwartung eines CPE:

  1. Konfiguration – Um die Konfiguration eines CPE beim Kunden zu erleichtern sieht TR69 vor, dass ein CPE nach der ersten Inbetriebnahme mit einem ACS Kontakt aufnimmt und von diesem seine Basiskonfiguration erhält. Dabei ist genau festgelegt, welcher (oder welche) ACS für diese Operation in Frage kommen. Bei DSL-Modems ist dies der DSL-Provider, mit dem der Kunden einen Vertrag abgeschlossen hat.

    Im Detail funktioniert das Spiel so: Das CPE bestimmt, welche Konfigurationsparameter von einem ACS abgefragt und verändert werden können. Beim einer Fritz!Box 7170 sind dies mehr als 400 Parameter! Das CPE liefert dem ACS auf Anfrage eine Liste dieser Parameter und ihrer Werte. Der ACS kann nun seinerseits diese Werte verändern und an das CPE zurück senden. Dieses Abfragen und Modifizieren von Parametern auf dem CPE kann beliebig oft vom ACS initiiert werden, ist also nicht an die Erstkonfiguration des CPE gebunden.

  2. Firmware Upgrade – TR69 beschreibt einen Mechanismus, der das Aktualisieren der CPE-Firmware, also zum Beispiel der Betriebssoftware auf dem DSL-Modem ermöglicht. Hierbei erhält das CPE eine enstprechende Anfrage vom Server, in der enthalten ist, wo eine neue Version der Firmware heruntergeladen werden soll. Der ACS sendet dem CPE also nicht die Firmware selbst, sondern nur eine Adresse, von der die Firmware heruntergeladen und installiert wird. In der Regel ist dies eine durch Passwort geschützte Datei auf einem Webserver des Providers.
    Der Vollständigkeit halber muss erwähnt werden, dass die Download-Funktion noch weitere Optionen bietet. Neben der Firmware ist auf einigen Geräten der Austausch von Webseiten des integrierten Webservers oder von anderen Dateien möglich. Bei der Download-Operation wird jeweils ein Funktionsnummer mitgeliefert, die den Typ des Downloads bestimmt.
  3. Wartung – Dazu gehören Funktionen wie das Auswerten von Logdateien, das Ermitteln von Traffic-Statistiken oder ein Neustart des Gerätes.

Sicherheit

Grundsätzlich gilt: Wer mit TR69 auf ein CPE zugreifen kann, ist klar festgelegt. Der TR69 Client auf einem CPE enthält die IP-Adresse eines ACS und die Authorisierungsparameter (Benutzername/Passwort), die vom ACS bei jeder Sitzung mitgeliefert werden müssen. Damit Passwörter nicht im Klartext durch das Netz gesendet werden, kommen SSL oder eine HTTP Digest-Authorisierung zum Einsatz. Obwohl TR69 ein asynchrones Protokoll ist, erfolgt der Aufbau einer Sitzung stets vom CPE aus. Dieser Sitzungsaufbau erfolgt periodisch, kann aber auch nach bestimmten Ereignissen (z.B Reboot) initiiert werden. Beim Sitzungsaufbau sendet das CPE eine sogenannte «Inform» Anfrage an den ACS. Dieser entscheidet dann, was damit zu geschehen hat. Antwortet er gemäss den TR69 Regeln auf die Anfrage, kommt die Sitzung zustande und der Server kann nun seinerseits Anfragen an das CPE stellen.

Eine Sitzung kann auch vom ACS eingeleitet werden. Dazu sendet der Server eine Anfrage an eine vom CPE festgelegte Webadresse. Die Anfrage ist jedoch nur gültig, wenn der ACS sich korrekt authorisiert. Dazu muss der Server eine Benutzer/Passwort-Kombination senden, die auf dem Modem vor der Auslieferung gespeichert worden ist und vom ACS nicht verändert werden kann! Zusätzlich empfiehlt TR69, dass die vom CPE zur Verfügung gestellte Adresse nach jeder Sitzung verändert wird. Damit wird dem Missbrauch des asynchronen Modus zusätzlich vorgebeugt.

Die meisten CPE Clients sind selbst konfigurierbar: Sie erlaube das Konfigurieren einzelner Funktionen oder können als ganzes ausgeschaltet werden. Bei ZyXEL Modems geschieht dies bequem über ein Menu, das via Telnet erreichbar ist. Bei der Fritz!Box ist es eine Datei tr069.cfg, die im Ordner /var/flash zu finden ist. Dort legt der Besitzer fest, ob er Firmware-Upgrades erlaubt und wie oft sein Gerät eine Session zum ACS initiiert. Duch das Ändern eines Passwortes kann zudem der asynchrone Modus deaktiviert werden. Und wem TR69 gänzlich suspekt ist, dem steht es frei, es komplett auszuschalten.

Für und Wider

Obwohl es grundsätzlich möglich ist, eine Überwachungssoftware via ACS zu installieren, ist die Bezeichnung «Einfallstor für Trojaner» übertrieben und führt zu falschen Ängsten und Verdächtigungen. Denn ausschliesslich der Provider hat Zugriff auf das CPE. Im Alltag ist TR69 nichts anderes als ein Protokoll, das dem Kunden die Arbeit abnimmt, wenn er seinen DSL-Router in Betrieb nimmt. Mit TR69 werden alle wichtigen Parameter für das Gerät beim ACS abgeholt und gespeichert, so dass dass das Gerät sofort betriebsbereit ist. Der Firmware-Upgrade kann den Kunden sogar vor Angriffen schützen, wenn damit Schwachstellen in der Betriebssoftware behoben werden.

Auf der anderen Seite kann TR69 für eine übertriebene Kontrolle des Providers missbraucht werden. Ein wichtiger Schlüssel dazu bieten die Parameter-Attribute. Jeder Parameter eines CPE kann mit zwei Attributen ausgezeichnet werden: «Notify» und «Access». Das Access-Attribut legt fest. wer diesen Parameter einsehen oder ändern darf. Theoretisch ist es möglich, damit den Zugriff des ACS einzuschränken. In der Praxis wird dieses Attribut von den meisten TR69-Clients noch nicht oder nur zum Teil genutzt. Interessanter ist das Notify-Attribut: Es legt fest, was geschieht, wenn der Besitzer des CPE den Wert eines Parameters verändert. Es kann bestimmt werden, dass der neue Wert sofort oder beim nächsten «Notify» (siehe oben) an den ACS gesendet wird. Mit andern Worten: Der Provider kann protokollieren, welche Parameter zu welchem Zeitpunkt vom Kunden verändert worden sind.

Dokumentation

Der Umfang und die Funktionsweise von TR69 ist im Dokument «TR-069 Amendment» genau beschrieben. Leider gebricht es dem Dokument an Struktur und Verständlichkeit. Es ist an vielen Stellen nur schwer verdaulich. Erschwerend kommt hinzu, dass der mehr als 100 Seiten umfassende Text nicht ein einziges Beispiel gibt. Wer also selbst eine TR69-Schnittstelle entwickeln will, steht einigen Schwierigkeiten gegenüber. Als weitere Informationsquelle kann der englische Wikipedia-Artikel genannt werden. Dieser enthält eine gute Zusammenfassung der Materie sowie Links zu einigen kommerziellen ACS-Anbietern.

…Ist das alles? Ja, leider. Jedenfalls im Moment. Ich habe selber eine ACS-Software entwickelt und viel Zeit damit verbracht, im Internet nach Informationen zu recherchieren. Die beiden gebotenen Links bleiben vorerst das spärliche Ergebnis dieser Suche. Auch wer nach freier Software fragt, wird enttäuscht. Denn im Moment gibt es noch keine TR69-Projekte.

3 Gedanken zu „Infos zu TR-069

  1. Markus

    Hoi Benjamin

    gut, gibt’s Autoren wie Dich – merci für dieses kompakte Memo.
    Mir hat’s sehr geholfen!

    Grüess – Markus

  2. Pingback: Benjamin Stocker » Blog Archive » Fünf Jahre stocki@solnet

  3. firefly

    danke. war sehr interessant. wenn einer eine freie software kennt um die daten vom server auszulesen, also die zB den router emulieren kann, kann er sie ja mal hier posten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert