TR-064 und die Zwei-Faktor-Authentifizierung

PeterPawn

IPPF-Urgestein
Mitglied seit
10 Mai 2006
Beiträge
15,619
Punkte für Reaktionen
1,947
Punkte
113
Ich weiß nicht, ob ich es wirklich ausreichend getestet habe, aber ich stelle es einfach mal als Behauptung meinerseits in den Raum und hoffe, daß ich damit anderen TR-064-Benutzern einiges an Grübeleien erspare - sollte jemand gegenteilige Erfahrungen gemacht haben oder noch machen, einfach her damit.

Im Zuge der Einführung der 2FA sperrt AVM jetzt alle Zugriffe über ein TR-064-Interface, wenn die dort aufgerufene Funktion (bei aktivierter 2FA in den Einstellungen) zusätzlich abgesichert ist im GUI. Konkret habe ich das anhand der "X_AVM-DE_GetConfigFile" im "deviceconfig"-Interface bemerkt und getestet.

Es wird auch kein spezieller Fehler zurückgegeben oder ähnliches ... die lapidare Antwort ist "500 Internal Server Error" und durch die TLS-Verbindung ist da mit einem Packet-Dump auch nichts wirklich zu sehen, wenn man mit einem "higher level"-Framework ans Werk geht und nicht selbst die TCP-Verbindung (nach der Entschlüsselung) kontrolliert - ich kenne das als "Fehlerbild" aber auch zur Genüge, wenn man wirklich mal einen falsch parametrierten Aufruf macht.

Wenn man an dieser Stelle also nicht tatsächlich absolut sicher weiß, daß der verwendete Aufruf tadellos funktionieren müßte, dann kommt man schnell ins Grübeln und hinterfragt den eigenen Code ... dabei war hier definitiv alles in Ordnung und ich mußte nur die 2FA abschalten, damit das - ohne jede Änderung - auch wieder funktionierte.

Nun ist es sicherlich ein Widerspruch, wenn man das GUI mit 2FA besser absichert und parallel bleibt das TR-064-Interface dann komplett offen ... aber zumindest eine entsprechende "Erwähnung" sollte es in der AVM-Dokumentation für Developer doch geben und auch eine getrennte Abschaltung der 2FA für TR-064 (die man ja dann auch gerne wieder über 2FA erst einmal bestätigen muß) sollte vielleicht eine Überlegung wert sein.

Will man etwas im Moment über TR-064 nutzen (und dank fehlender Dokumentation und weiterer Änderungen an dieser Stelle, kann man nicht einmal genau vorher sagen, welche Funktion nun zusätzlich gesperrt ist und welche halt einfach nur nicht funktioniert - gibt es ja auch genug), hat man nur die Wahl zwischen Pest (es geht halt nicht) oder Cholera (es geht alles - auch das GUI - ohne 2FA). Das ist auch alles andere als befriedigend und führt wieder zu einem weiteren Grund, die 2FA generell abzuschalten ... auch keine wirkliche Lösung.

Zumindest sollte es aber möglich sein, das Problem mal "anzureißen" in der Dokumentation und die dann auch mal an dieser Stelle zu aktualisieren ... für die HA-Funktionen ging das Anfang Juli ja auch. Wenn an einer Funktion dann einfach mal dranstehen würde, daß die bei 2FA nicht nutzbar ist, dann kann man sich einiges an Aufwand bei der Fehlersuche sparen.
 
Bei AVM hat sich letztens etwas auf der Seite https://avm.de/service/schnittstellen/ getan ... es gibt jetzt eine Dokumentation für das "X_AVM_DE-Auth"-Interface.

Leider wird zwar der richtige Name der PDF-Datei in der Liste angezeigt (x_auth.pdf), aber der Link dahinter zeigt auf eine falsche Datei ... der korrekte wäre dann: https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/x_auth.pdf

Damit kann man jetzt den Status der 2FA abfragen (sowohl den generellen als auch den für den - im TR-064-Request - verwendeten Benutzer) und auch den 2FA-Prozess anschieben, damit man ein Token erhält, mit dem man in der Folge (indem man es im SOAP-Request mitsendet) auch die "geschützten" Funktionen aufrufen kann.

Was jetzt noch recht hilfreich wäre, ist eine Liste der Interfaces und Funktionen, die über die 2FA gesichert sind ... das mit dem Return-Code aus dem 8xx-Bereich für "authentication required" kann ich jedenfalls bisher nicht nachvollziehen - siehe #1, bei mir gibt (oder zumindest gab) es bisher eigentlich immer ein "500 Internal Server Error", wenn ein Aufruf wegen der 2FA scheitert.

EDIT: Für die Korrektur des falschen Links auf Seite 3 in der Dokumentation des IGD2-Interfaces hat es am Ende dann aber auch nicht gereicht - vermutlich müßte man dafür erst einen Support-Case eröffnen, wenn man eine Änderung erreichen will. Dieser Mühe unterziehe ich mich aber nicht ... jedenfalls nicht freiwillig.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: JonneFelix
Was jetzt noch recht hilfreich wäre, ist eine Liste der Interfaces und Funktionen, die über die 2FA gesichert sind ... das mit dem Return-Code aus dem 8xx-Bereich für "authentication required" kann ich jedenfalls bisher nicht nachvollziehen

Sorry für die gewisse Leichenfledderei, aber vielleicht ist es für den ein oder anderen hilfreich die Actions zu kennen. Folgende Actions sind nach meinem Wissensstand 2FA gesichert

Service-Type DeviceConfig: X_AVM-DE_GetConfigFile und X_AVM-DE_SetConfigFile
Service-Type X_AVM-DE_AppSetup: SetAppVPN und SetAppVPNwithPFS
Service-Type X_VoIP: X_AVM-DE_SetClient, X_AVM-DE_SetClient2, X_AVM-DE_SetClient3, X_AVM-DE_DialSetConfig, X_AVM-DE_DialNumber und SetVoIPCommonCountryCode

Gruß,
Edge
 
  • Like
Reaktionen: JonneFelix und fggsk
Moin Peter,

ich arbeite aktuell an einem Projekt, bei dem ich automatisiert eine Verbindung zu einer FRITZ!Box herstellen und dabei die Zwei-Faktor-Authentifizierung (2FA) nutzen möchte. Ich habe zunächst versucht, das Python-Paket <span>FritzConnection</span>dafür zu verwenden, musste aber feststellen, dass die 2FA dort offenbar gar nicht unterstützt wird.

Daraufhin habe ich versucht, die 2FA manuell über SOAP-Requests nachzubilden. Konkret habe ich <span>RequestChallenge</span>und <span>SetConfig</span> aus dem <span>X_AVM-DE_Auth</span>-Interface genutzt, aber ich stoße immer wieder auf Fehler (401 Unauthorized oder 500 Internal Server Error), auch wenn ich mit korrektem Benutzernamen und Passwort per Digest-Authentifizierung arbeite.

Ich habe gesehen, dass du in einem Forumbeitrag erwähnt hast, dass du es geschafft hast, mit dem TR-064-Protokoll und der 2FA umzugehen. Könntest du mir vielleicht kurz erläutern, wie du den 2FA-Workflow umgesetzt hast oder mir einen Tipp geben, was ich konkret übersehe? Insbesondere würde mich interessieren, wie genau du den Authentifizierungsprozess mit dem Token erfolgreich umgesetzt hast.

Mein Ziel ist es, dass mein Python-Programm automatisch die benötigten Funktionen (z.B. für eine automatisierte Anrufsteuerung) auf der FRITZ!Box nutzen kann, ohne die Sicherheitseinstellungen (2FA) komplett ausschalten zu müssen.

Vielen Dank im Voraus und beste Grüße,
Jonne
 
Dieser Thread hier ist 7 1/2 Jahre alt und AVM hat in dieser Zeit naturgemäß auch an der 2FA weitere Änderungen vorgenommen. Neben der Einführung von TOTP nach RFC 6238 gibt es mittlerweile auch jede Menge offizielle Dokumentation und eine entsprechende Schnittstelle für TR-064: https://fritz.com/fileadmin/user_upload/Global/Service/Schnittstellen/x_auth.pdf - nur wird dort (afaik) nur die 2FA per Anruf oder Button unterstützt und kein TOTP.

Warum das so ist, verstehe ich auch nicht wirklich - denn damit ver- bzw. behindert AVM irgendwie JEDE automatische Änderung von Einstellungen, die man für sicherheitsrelevant hält (vermutlich gehört selbst der Faxversand für jedes einzelne Fax immer noch dazu?) und zwingt die Kunden, die solche Lösungen brauchen (ich finde garantiert jede Menge "use cases" für derartiges), komplett auf die 2FA zu verzichten.

Vermutlich traut man der Sicherheit der eigenen Implementierung nicht (die entsprechenden Daten für TOTP sind in den Sicherungsdateien der Benutzer-Accounts enthalten) und ist auch nicht gewillt, dem Besitzer/Benutzer die notwendigen Einstellmöglichkeiten an die Hand zu geben (m.W. gibt es auch intern in der Firmware dafür nichts), um die Aktionen, für die eine 2FA gefordert wird, feiner granuliert selbst zu konfigurieren.

Meines Wissens besteht die einzige Möglichkeit für solche Lösungen derzeit (noch?) darin, die Eingabe des Wertes für ein TOTP über entsprechende HTTP-Requests (für das "normale" FRITZ!OS-GUI) zu simulieren - da kann über einen AHR (AJAX HTTP request) zum richtigen Zeitpunkt eine SID für eine per 2FA authentifizierte Sitzung erzeugt werden. Wie lange das noch möglich ist bzw. wie weit da inzwischen auch die Trennung von SID (session ID, https://fritz.com/fileadmin/user_up...ical_Note_-_Session_ID_deutsch_2021-05-03.pdf) für das GUI und für TR-064-Aufrufe vorangekommen ist, weiß ich auch nicht.

Andererseits bemüht sich AVM offenbar auch nach Kräften, da JEDWEDE Möglichkeit einer Automatisierung (EDIT: selbst die automatische Eingabe aus einem Password-Safe) zu behindern - m.W. hat sich auch bei der Eingabe des TOTP bisher immer noch nichts geändert ggü. dem damaligen Stand: https://www.ip-phone-forum.de/threads/fritz-box-7590-laborserie-07-39-–-sammelthema.312181/post-2476697

Andere Wege (u.a. die Eingabe von Telefon-Codes über CAPI-Schnittstelle) funktionieren nach meiner Kenntnis jedenfalls nicht - wie geschrieben, ich vermute einfach, daß man bei AVM inzwischen ziemlich paranoid ist. Selbst die Abschaltmöglichkeit für die 2FA versucht man ja mittlerweile vor dem Besitzer zu verstecken: https://www.ip-phone-forum.de/threads/fb7590-und-andere-boxen-ab-os-7-50-bestätigungen-deaktivieren.314515/post-2524118 - wie lange das überhaupt noch möglich ist und ob nicht irgendwann auch die Einstellung in der ar7.cfg komplett verschwindet, wissen wohl nur die (AVM-)Götter (oder diejenigen, die sich bei AVM dafür halten) …
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Ldwg2002
Kostenlos!

Statistik des Forums

Themen
248,872
Beiträge
2,303,466
Mitglieder
378,532
Neuestes Mitglied
Nik320