- Ich habe eine Tapo-Kamera gekauft, um meinen Hund im Haus zu beobachten, und dabei unerwartet die Funktionsweise von TP-Link-Geräten und der App rückwärts analysiert
- Um den Onboarding-Prozess und die Struktur der verschlüsselten API-Kommunikation zu untersuchen, kamen verschiedene Techniken zum Einsatz, darunter MITM, APK-Decompiling und das Erstellen von Entschlüsselungsskripten
- Durch die Entdeckung des initialen Administrator-Passworts und des Ableitungsprozesses für Sitzungsschlüssel konnten verschlüsselte Nachrichten entschlüsselt und Probleme mit der unzuverlässigen Synchronisierung zwischen Gerät und Cloud-Konto erkannt werden
- Durch die Analyse des gesamten Onboarding-Ablaufs wurden die wichtigsten API-Aufrufe, Kontenerstellung, Passwortänderung und der Wi‑Fi-Verbindungsprozess per Bash-Skript automatisiert
- Es werden Schwachstellen im Sicherheitsdesign der Tapo-Firmware, eine wenig ausgereifte Verschlüsselungsimplementierung und eine unregelmäßige Kontensynchronisierung aufgezeigt – typische Merkmale günstiger IoT-Geräte
Projektüberblick
- Der Autor kaufte und nutzte eine günstige Tapo-Kamera zur Beobachtung seines Hundes in der Wohnung
- Während der Nutzung führten umständliche Einrichtung und mangelnde verfügbare Informationen im Netz dazu, dass er die Funktionsweise des Produkts genauer untersuchte
- Unerwartete Probleme bei der Integration mit frigate und beim Aktivieren von 2way audio weckten das Interesse an einer direkten Onboarding-Methode ohne Cloud-Anbindung
Analyse von Onboarding- und Authentifizierungsstruktur
- Um den Verbindungsprozess der Tapo-Kamera zu analysieren, wurden MITM proxy und das dynamische Hooking-Tool frida verwendet, um den Datenverkehr zwischen App und Kamera abzufangen
- Da aktuelle Apps häufig Schutzmechanismen wie Proxy-Ignorierung und certificate pinning besitzen, ist ein Ansatz mit dynamischen Tools wirksam
- Nach dem Einrichten dieser Umgehungsstruktur konnte im Onboarding-Flow der Kamera der Vorgang des Default-Logins mit dem Administrator-Konto genau nachvollzogen werden
- Es wurde festgestellt, dass die Default-Login-API unabhängig vom Passwort des Cloud-Kontos mit einem gerätespezifischen Standardpasswort arbeitet
Verschlüsselungsstruktur und Suche nach dem Standardpasswort
- Durch APK-Decompiling (mit JADX) und Codeanalyse wurde das Standardpasswort des
admin-Kontos (TPL075526460603) ermittelt
- Dass bereits verknüpfte Kamerageräte selbst nach einer Änderung des Cloud-Passworts diese Änderung nicht erkennen, bestätigte die fehlerhafte Passwortsynchronisierung zwischen App und Kamera
- Nachdem das Standardpasswort bekannt war, konnte durch Implementierung der Ableitungslogik für die Sitzungsschlüssel (
lsk, ivb) die verschlüsselte API-Kommunikation in Echtzeit entschlüsselt werden
mitmproxy-Skripting und API-Analyse
- Unter Bezug auf das Open-Source-Projekt PyTapo wurde der tatsächliche API-Ablauf des Tapo-Onboardings präzise analysiert
- Mit dem Skript
tapo_decrypt_pretty.py wurden
- der Login-Handshake erkannt
- Sitzungsschlüssel extrahiert
- verschlüsselte APIs entschlüsselt und gut lesbar ausgegeben sowie als JSON gespeichert
- Aus der vollständigen Liste der Onboarding-API-Aufrufe wurden nur die relevanten Hauptschritte ausgewählt und daraus ein automatisierter Workflow erstellt
- Wi‑Fi-Liste abrufen (
scanApList)
- RTSP/ONVIF-Konto aktivieren
- Administrator-Passwort ändern
- Wi‑Fi verbinden
Automatisierung und Ergebnisse
- Mit dem Bash-Skript (
tapo_onboard.sh) wurde der gesamte oben beschriebene Onboarding-Prozess vollautomatisch ausgeführt
- Standard-Login als admin
- Wi‑Fi auswählen und verbinden
- Logo aus dem Kamerafeed entfernen
- RTSP/ONVIF aktivieren
- Administrator-Passwort zurücksetzen
- In der Struktur der Kamera-Firmware wurden folgende Eigenschaften und Schwachstellen festgestellt
- Einige APIs verwenden SHA-256-Hashes, andere behalten veraltete Verfahren wie MD5 bei
- Es existieren 2 öffentliche Schlüssel, aber es ist unklar, in welcher Situation welcher Schlüssel verwendet werden soll
- Die Passwortsynchronisierung zwischen App und Gerät ist äußerst instabil
Fazit und Eindruck
- Die Sicherheitsstruktur von Tapo-Kamera-Firmware und API wirkt provisorisch und wenig ausgereift
- Das Projekt vermittelte indirekt praktische Einblicke in Sicherheitslücken günstiger IoT-Geräte und die Realität unvollständiger Onboarding-Systeme
- Das eigentliche Ziel des Projekts – den Hund zu überprüfen – wurde erreicht; zu sehen war meist, wie der Hund auf dem Sofa oder dem Bett schläft
Noch keine Kommentare.