Unter der Marke Sonoff vertreibt die Firma ITEAD aus Shenzhen (China) eine Reihe ESP8266-basierender Smart-Home Produkte, die sich in der Bastlergemeinde steigender Beliebtheit erfreuen. Der ESP8266 ist ein programmierbarer SoC mit WLAN-, UART- und SPI-Schnittstelle. Dieser lässt sich mit beliebiger Firmware bespielen und eignet sich daher für viele Projekte.
Für unseren Test nutzten wir den Sonoff Basic WiFi Wireless Switch samt Original-Firmware und der dazugehörigen App „eWeLink“.

Einrichtung

Zur Ersteinrichtung muss die Kopplungstaste des Geräts 5 Sekunden gedrückt werden. Hiernach öffnet es ein eigenes, gesichertes WLAN-Netz, über das es gekoppelt werden kann. Nach Eingabe der Daten des zukünftig zu verbindenden WLAN-Netzwerks wird der Basic Switch in der App angezeigt.

Hauptmenü der App nach Ersteinrichtung

Online-Kommunikation

Abgesehen vom Setup findet keine Direkt-Kommunikation zwischen App und dem Sonoff Gerät statt, sämtliche Schaltbefehle werden über die Cloud (Amazon AWS EU) geleitet.

Die Verbindung des Sonoff Switchs zur Cloud des Herstellers ist TLS1.2 verschlüsselt und somit gut geschützt. Die App kommuniziert identisch verschlüsselt mit den Cloudservern, allerdings finden nach Schließen der App einige unverschlüsselte Verbindungen statt, hauptsächlich zu Analyse-Diensten von Tencent und Xiaomi.

Xiaomi Analysedienst

App

Nach dem Dekompilieren der App fanden wir einige gut obfuskierte Klassen vor. Mangels einer Certificate-Pinning-Implementation sind die verschlüsselten Teile der Webanfragen nur gegen einfache Man-in-the-Middle-Angriffe geschützt. Für einen erfolgreichen Man-in-the-Middle-Angriff wäre es allerdings für den Angreifer erforderlich, auf dem Gerät des Benutzers ein Zertifikat zu installieren, sodass die Kommunikation unbemerkt belauscht oder manipuliert werden kann.

In den gesicherten Appdaten werden wichtige, schützenswerte Daten, wie z.B. das WLAN-Passwort, im Klartext gespeichert. Das führt aber zu keiner Abwertung, da dieser Appbereich nur bei gerooteten Smartphones ohne Einschränkungen ausgelesen werden kann.

Schwerer wiegt jedoch die ausführliche Logdatei, die die App im öffentlichen Teil des Speichers (also für jeden lesbar) hinterlegt. Darin finden sich im Klartext unter anderem Tokens, API Schlüssel und auch die Zugangsdaten für den Sonoff-Account.

App Protokolldatei

Firmware-Update & Hardware

Die Firmware kann über die App aktualisiert werden. Dieses Verfahren hatten sich bisher auch Entwickler zu Nütze gemacht, um eigene Firmwares auf das Gerät aufspielen zu können. (z.B. SonOTA) Hierdurch konnten frei verfügbare Firmwares wie Tasmota oder EasyESP aufgespielt werden, welche aber nicht Bestandteil dieses Tests waren.
Mit der zum Testzeitpunkt verfügbaren Firmware-Version 1.6.0 wurde das Firmware-Update-Verfahren geändert und 3rd Party Software vom Update-Prozess ausgeschlossen .

Eine andere Möglichkeit, eine alternative Firmware aufzuspielen, wurde vom Hersteller offengelassen bzw. absichtlich platziert. So sind nach Öffnen des Gehäuses Lötpunkte für eine serielle bzw. FTDI-Schnittstelle sichtbar, über die der ESP8266 direkt geflasht werden kann.

Datenschutz

In puncto Datenschutz können leider keine Punkte vergeben werden, da zum Testzeitpunkt keine Datenschutzerklärung verfügbar war. Lediglich eine kurze Beschreibung der benötigten, allerdings auch zahlreichen Android App Berechtigungen ist vorhanden. Diese gehen weit über den nötigen Funktionsumfang der App hinaus, was den faden Beigeschmack hinterlässt, dass personenbezogene Daten gesammelt und von chinesischen Unternehmen ausgewertet werden könnten.

Android App Berechtigungen

Fazit

Die reine Funktionalität der App und des Sonoff Basic WiFi Wireless Switch ist gut verschlüsselt und gegen einfache Angriffe abgesichert. Der Gesamteindruck wird allerdings durch die unverschlüsselte Kommunikation zu chinesischen Analysediensten, die vielen Berechtigungen der Android App sowie die im öffentlichen Bereich des Smartphones gespeicherte, ausführliche Protokolldatei sehr stark getrübt.