Ich habe mich ja, bevor ich die Arbeit an Onyx begonnen habe, damit beschäftigt wie man dem System “MAX!” mehr Funktionen und Komfort geben kann. In einem früheren Blogpost hatte ich erwähnt, dass ich es in Erwägung gezogen habe die Internet-Schnittstelle des MAX!Cube zu benutzen um gewisse Steuerungsaufgaben zur erledigen. Bei diesen Versuchen habe ich natürlich auch das Kommunikationsprotokoll mitgeschnitten, um zu testen ob dieser Weg gangbar ist. Leider sind nicht sehr viele Steuerungsaufgaben über diesen Weg erreichbar, so dass ich die Idee verworfen hatte…
Heute habe ich mir die ELV MAX! App erneut aus dem Apple AppStore geladen, da ich mein iPhone zurücksetzen musste. Dabei ist mir folgende Passage aus der AppStore-Beschreibung ins Auge gefallen:
Über den MAX!Cube [...] können Sie das System per PC und aus dem Internet, sowie mit dieser App über einen verschlüsselten und gesicherten Kanal bedienen und einrichten.
Da kamen mir meine früheren Experimente in den Sinn. ELV wirbt damit dass der MAX!Cube AES-Verschlüsselte Kommunikation verwendet. Das funktioniert so, dass jeder MAX!Cube einen eindeutigen AES-Schlüssel hat und dieser bei der eq-3 AG hinterlegt ist. Dadurch kann die Portal-Software bei ELV, Xavax oder jedem anderen Distributor durch eine kurze Anfrage bei eq-3 die Daten des MAX!Cube entschlüsseln. Ich konnte zwar dem MAX!Cube sagen, dass er seinen zweiminütlichen Statusbericht bei mir abliefert; ohne den zugehörigen AES-Schlüssel, der entweder bei eq-3 anhand der Seriennummer erfragt oder per QR-Code von der Hauptplatine abgelesen werden kann, nutzte mir das jedoch gar nichts.
Zurück zu meinem heutigen AppStore-Besuch: Ich war überrascht dass die Software immer noch in Version 1.0.0 vorliegt (Das sind 7 Monate ohne Update, obwohl die App neben den im offiziellen ELV-Forum bekannten Usability-Prolemen auch ein schweres Sicherheits-Problem hat) und dass die oben zitierte Passage weiterhin im Beschreibungstext zu finden ist.
Zum eigentlichen Kernthema dieses Artikels
Um heraus zu finden, wie die MAX!-App funktioniert habe ich damals Fiddler benutzt. Das ist ein Proxy-Server, also ein Programm dass sich zwischen zwei Programme schaltet und deren Kommunikation überwachen kann. Ich habe das iPhone so konfiguriert, dass alle ausgehenden Daten über diesen Proxy-Server gesendet werden. Dabei war ich extrem erstaunt dass die App die Anmeldedaten im Klartext überträgt.
Benutzername: sebastian
Passwort: 123456
Die Daten werden von der iPhone-App (und dementsprechend vermutlich auch von der Android-App) im Klartext übertragen. Das wundert mich natürlich extrem. Der Kanal der eigentlich als sicher erachtet werden kann, das Heimnetzwerk in dem der MAX!Cube eingebunden ist, wird mit riesigem – und wie das ELV-Forum offenbart auch durchaus fehleranfälligem – Aufwand abgesichert und der Kanal der als unsicher eingestuft werden MUSS steht offen wie ein Scheunentor. Grad beim mobilen Zugriff vom Smartphone, dass über das öffentliche GSM-Netz, Access-Points im Hotel oder sonstige Kommunikationswege potenziell angreifbar ist wird auf Verschlüsselung verzichtet!
Bis dieses Problem gelöst ist kann ich leider nur dazu raten die offiziellen Apps zu meiden bis das Problem behoben ist. Vielleicht werden im selben Zug ja auch die bekannten Bedienungs-Probleme gelöst.
Und bis dahin könnte die App-Store Beschreibung angepasst werden: