Wie in mehreren Fachmagazinen bereits berichtet, stellen Steckdosen von einem Hersteller aus Fernost ein großes Sicherheitsrisiko im heimischen Netzwerk dar. Es geht hier jedoch nicht nur um Steckdosen, sondern um eine ganze Produktpalette, welche sehr kommunikationsfreudig mit dem Produzenten ist. Die Produkte selbst sind meist sehr günstig, weswegen viele gerne zugreifen. Was die Käufer sich jedoch ins Haus holen wird nur in den Datenschutzbedingungen der Handyapp am Rande erwähnt. Um was geht es eigentlich genau und wie kann man sich selbst helfen, wenn man solche Steckdosen im Einsatz hat? Diese Fragen möchte ich in diesem Beitrag erläutern.
Günstiger Einstieg für viele Anbieter
Durch den Hersteller „Tuya“, haben viele Hersteller die Möglichkeit sich günstig ins Smarthome geschäft einkaufen zu können. Es wird eine relativ breit gefächerte Produktpalette angeboten und von schaltbaren Steckdosen bis zu Lichtschaltern oder Fensterkontakten ist alles dabei. Hersteller die Interesse haben können sich bei „Tuya“ für relativ kleines Geld einkaufen und mit einer Software ihre Produktpalette zusammenstellen. Diese wird dann bei „Tuya“ produziert und unter dem Herstellernamen verkauft. Zum Einsatz beim Kunden kommt dann meist die „Smartlife“ App von „Tuya“. Mit dieser werden die Geräte eingerichtet und verwaltet. Dafür muss der Kunde einen Account anlegen und die Datenschutzbedingungen akzeptieren. Diese sind jedoch so undurchsichtig, das sie kaum jemand versteht und ob europäische Datenschutzgesetze damit eingehalten werden ist sehr fraglich. Die App sowie die Geräte kommunizieren dauerhaft mit einem Server von „Tuya“ und sind diesbezüglich sehr Mitteilungsbedürftig. Im Smarthomebereich ist es normal, das Geräte gerne und oft kommunizieren, jedoch ist in diesem Fall sehr unübersichtlich was genau gesendet wird.
Durch die einfache und günstige Möglichkeit von Herstellern sich als Reseller einzukaufen, können diese hohe entwicklungskosten sparen. „Tuya“ garantiert hier eine schnelle Herstellung eines Demogeräts und verspricht einen Anlauf der Massenproduktion nach bereits 15 Tagen. Dies ist für Reseller ein sehr lukratives Angebot, denn neben Entwicklungskosten für das Gerät selbst wird auch die Cloudanbindung und Weiterentwicklung von „Tuya“ übernommen. Somit entstehen weniger Folgekosten für den Reseller, denn dieser erkauft sich hiermit ein rundum Sorglos-Paket.
Military Grade Security wird versprochen
„Tuya“ verspricht hier eine „Military Grade Security“, also einen sehr hohen Sicherheitsstandart. Wie gut es damit bestellt ist, wurde jedoch schon aufgedeckt. Beim Einrichten der Geräte werden bereits der Netzwerkname und der WLAN-Key unverschlüsselt an den Cloudserver des Herstellers übertragen. Des weiteren werden diese Daten auch in der Software auf dem Gerät selbst abgespeichert, ebenfalls unverschlüsselt. Doch das ist nicht die Einzige gravierende Sicherheitslücke. Die Darstellung einiger möglichen Angriffsszenarien hat Michael Steigerwald, Gründer der vTrust GmbH, ende 2018 vorgestellt. Ein Video vom kompletten Vortrag kannst du dir hier ansehen.
Greifbare Sicherheitslösung für den Verbraucher?
Gleichzeitig mit der Präsentation der Mängel hat Herr Steigerwald auch eine Lösung für den Verbraucher präsentiert. Diese ist mit etwas technischem Verständnis leicht umsetzbar und sorgt für eine Insellösung. Zudem könnte es sein das der Aktor um einige Funktionen erweitert wird, dies war bei mir mit den „Gosund SP1“ und „Gosund SP111“ Steckdosen der Fall. Für die Insellösung wird eine neue Firmware aufgespielt, diese startet anschließend einen Webserver lokal auf dem Gerät und spricht damit nicht mehr mit externen Servern. Lediglich die mögliche Updatefunktion löst auf Befehl eine Anfrage ins Internet aus und fragt damit die aktuellen Versionsstände ab. Jedoch sollte jeder wissen, das die Garantie des Herstellers durch solch eine Modifikation erlischt und auch die „Smart Life“ Mobileapp nicht mehr funktioniert. Wer die Fernsteuerung von Unterwegs also zwingend benötigt, muss sich entweder eine andere Lösung suchen oder auf die custom Firmware verzichten und das Sicherheitsrisiko eingehen.
Ein großer Vorteil ist das MQTT-Protokoll was über die neue Firmware läuft. Damit ist es beispielsweise möglich die Aktoren direkt mit OpenHab zu verbinden und anschließend zu steuern. Bei meinen „Gosund SP1“ und „Gosund SP111“ Steckdosen konnte ich zusätzlich zum Schaltbefehl noch einige Istwerte auslesen und übertragen. Somit ist es nun möglich auch die aktuelle Leistung und einen Gesamtstromzähler zu bekommen. Welche Daten der Aktor liefert, hängt jedoch immer vom Gerät und der internen Verdrahtung selbst ab.
Vorraussetzungen für eine custom Firmware
Die neue Firmware kannst du schnell und einfach aufspielen. Du solltest dir allerdings bewusst sein, dass dies einen unsachgemäßen Gebrauch darstellt und somit jegliche Garantie erlischt. Dieses Risiko sollte es dir jedoch bei den geringen Kosten der Steckdose wert sein um dein Netzwerk und deine Daten zu schützen.
Für den Vorgang benötigst du einen Raspberry Pi mit WLAN, ich habe es mit einem Raspberry Pi 3 probiert. Ausserdem benötigst du eine bereits lauffähige Linuxdistribution. Da mein Openhab bereits seit einiger Zeit stabil läuft, habe ich diesen Raspi genommen, da es für mich kein Problem darstellt dort ein Backup aufzuspielen.
Solltest du ebenfalls das Aufspielen der Firmware mit einem laufenden System durchführen wollen oder müssen, so solltest du vorher ein Backup ziehen. Auch sollte erwähnt werden, dass du mit dem Raspberry am Besten eine LAN-Verbindung herstellst, da das WLAN für den Flashvorgang benötigt wird. Auf dem Raspberry müssen alle bestehenden Webserver abgeschaltet werden und nach dem Vorgang ist ein Neustart des Systems empfehlenswert um alles wieder auf Anfang zu setzen.
Als nächstes benötigst du auch ein Smartphone oder ein anderes WLAN-fähiges Endgerät, denn während dem Flashvorgang wird ein Accesspoint über den Raspberry geöffnet. Damit sich in diesem ein Client aufhält, denn manchmal funktioniert es nicht anders, musst du dich während des Flashens mit deinem Smartphone oder einem anderen WLAN-Fähigen Gerät auf den Accesspoint verbinden.
Zu guter letzt benötigst du noch dein smartes „Tuya“-Gerät was du flashen möchtest. Wenn du dir unsicher bist, findest du auf GitHub eine Liste in der schon viele Geräte eingetragen sind, mit welchen der Flashvorgang funktioniert hat. Solltest du eines besitzen das nicht aufgeführt ist, aber dennoch von dir geflasht wurde, so kannst du es über einen Pull-Request gerne der Liste hinzufügen lassen.
Vorbereitungen zum Flashen
Verwendet habe ich ein Openhabian System. Dies ist eine Linuxversion, welche auf Raspbian aufbaut und mit vorinstalliertem OpenHab kommt.
Im ersten Schritt logst du dich via SSH in deinen Raspberry ein und schaltest Openhab und den Nginx-Server ab. Für den Flashvorgang benötigst du später den HTTP-Port und dieser wird sonst vom Nginx-Server und OpenHab blockiert. Dies benötigst du natürlich nur, wenn du Openhabian benutzt und dein OpenHab-System bereits auf dem Raspberry läuft, mit welchem du auch Flashen möchtest. Openhab und Nginx kannst du über folgende Befehle via SSH schnell und einfach beenden:
/etc/init.d/nginx stop
/etc/init.d/openhab2 stop
Als nächstes installierst du das Softwarepaket „git“ um die nötigen Dateien herunterladen zu können. Ausserdem erstellst du einen Ordner für die Dateien im Homverzeichniss, wechselst in diesen und führst den Download sowie die Installation aus. Dies kannst du alles durchführen, indem du die Befehle wie nachstehend nach und nach verwendest:
sudo apt-get install git
sudo mkdir /home/firmwareflash/
sudo cd /home/firmwareflash/
sudo git clone https://github.com/ct-Open-Source/tuya-convert
sudo cd tuya-convert
sudo ./install_prereq.sh
Nun ist alles was du für das Flashen der neuen Firmware benötigst installiert, der Flashvorgang kann losgehen.
Flashvorgang durchführen
Starte zuerst das neu installierte Programm zum Flashen mit dem Befehl:
sudo ./start_flash.sh
Den nun erscheinenden Text solltest du dir aufmerksam durchlesen und anschließend mit der Eingabe von „yes“ bestätigen.
Das Script beginnt damit alle Vorbereitungen zu treffen. Es öffnet einen Access-Point und startet alle notwendigen Dienste damit es los gehen kann. Damit werden alle Dienste simuliert, welche normalerweise von „Tuya“ geliefert werden. Nun bekommst du auch einen WLAN-Key und eine SSID angezeigt. Auf dieses Netzwerk solltest du dich mit einem WLAN-Fähigen Gerät verbinden. Ich habe hierzu mein Smartphone benutzt.
Als nächstes versetzt du dein „Tuya“-Gerät in den Smartconfig-Modus. Dies funktioniert meist durch langes Drücken der Schalttaste, bis diese schnell zu blinken beginnt. Ist es soweit und die LED am Gerät blinkt schnell, kannst du in deinem SSH-Fenster einmal mit der Entertaste bestätigen und die Software sucht nun selbständig nach deinem „Tuya“-Gerät. Es kann vorkommen das dieser Vorgang ein bis zwei Minuten dauert. Erkennen kannst du es, wenn die LED an deinem Gerät zu blinken aufhört.
Nun beginnt das Flashscript damit ein Backup der aktuellen Firmware deines „Tuya“-Gerät zu ziehen. Es werden eine ganze weile also viele Zeichen in deiner SSH-Konsole runter rattern. Hat das Script sein Backup vollzogen, spielt es die nötigen Komponenten für die custom Firmware auf. Anschließend bekommst du die IP-Adresse deiner Steckdose und einen Installationsbefehl angezeigt und das Script beendet sich.
Flashvorgang durchführen
Wenn du zu diesem Zeitpunkt dich doch umentscheidest und lieber die originale Firmware verwenden möchtest, kannst du dies jetzt mit dem folgendem Befehl erledigen:
curl http://10.42.42.42/undo
Ansonsten kannst du die endgültige Installation mit einem Curl-Aufruf starten:
curl http://10.42.42.42/flash3
Hast du diesen Befehl abgesendet beginnt das „Tuya“-Gerät damit die costum Firmware vom Raspberry herunter zu laden und zu installieren.
Dies kann wieder einige Minuten dauern, da der Chip erst die Installation durchführen muss. Anschließend startet er neu und öffnet einen Accesspoint. Dieser hat den Namen „Sonoff-XXX“, das X steht hier für Zahlen. Auf diesen wählst du dich nun mit einem Endgerät ein und rufst im Browser die Adresse “ http://192.168.4.1″ auf. Damit kommst du auf die Konfigurationsoberfläche deiner neu geflashten Firmware. Nun kannst du mit der Einrichtung beginnen.
Es ist auch möglich andere custom Firmwarepakete aufzuspielen, jedoch habe ich nur die mitgelieferten probiert und habe damit gute Erfahrungen sammeln können. Wer dennoch etwas anderes möchte, muss sich erst informieren ob dies bei seinem entsprechenden „Tuya“-Gerät überhaupt funktioniert.
Hast du alle „Tuya“-Geräte fertig geflasht, ist es nun noch nötig den Raspberry neu zu starten, zumindest wenn du Openhab installiert hast und die Aktion von diesem Raspi aus durchführst. Nach dem Neustart fahren alle Dienste wie gewohnt hoch und das Openhab-System steht wieder ganz normal zur Verfügung.
Fazit
Es ist davon auszugehen das Nutzer weltweit betroffen sind. Der Hersteller gibt an bereits mehr als 10.000 Geräte verkauft und hergestellt zu haben. Von der angepriesenen „Military Grade Security“ ist jedoch nicht viel zu sehen. Daraus lernen wir mal wieder, das man alles genau hinterfragen sollte. Wenigstens ist es möglich mit der custom Firmware das Problem zu beseitigen und die Geräte weiterhin nutzen zu können. Meiner Meinung nach sogar besser als zuvor, da durch das MQTT Protokoll anschließend lokal mit Openhab die Zustände besser überwacht und bedient werden können. Ausserdem ist es möglich sich mit der OpenHabCloud auch wieder alles auf eine Mobilanwendung zu schieben. Dadurch hat man am Ende keine Verluste, eher im Gegenteil. Durch die weiteren Werte welche die Geräte mit der custom Firmware liefern, ist es damit sogar möglich die Verbrauchswerte zu übertragen und weiter zu verarbeiten.
Aus diesem Grund werde ich auch weiterhin Geräte des Herstellers kaufen und verwenden, jedoch direkt nach Ankunft eine custom Firmware aufspielen. Dies ist für mich eine sehr günstige Alternative um schnell an schaltbare Aktoren zu kommen. Das Flashen funktionierte bei mir bisher immer Tadellos. Verwendet habe ich von „Gosund“ die Steckdosen „SP1“ und „SP111“. Anhand der Geräteliste auf Github konnte ich entsprechend schnell das passende Geräteprofil raussuchen und damit meine Geräte wieder zur Funktion bewegen.
Solltest du noch Fragen zu diesem Thema haben, kannst du diese gerne entweder in den Kommentaren oder im Forum los werden 🙂