FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: mgernoth am 23 Mai 2013, 00:38:53

Titel: AES-Verschluesselung des HMLAN Netzwerkverkehrs
Beitrag von: mgernoth am 23 Mai 2013, 00:38:53
Hallo,

da sich bisher anscheinend noch niemand mit der Verschlüsselung des Netzwerkverkehrs zwischen Rechner und HMLAN auseinandergesetzt hat, habe ich mir das jetzt mal angeschaut und habe folgendes festgestellt:

Angehängt is ein Perl-Modul, welches AES-CFB implementiert (da ich kein funktionierendes CFB-Perl-Modul gefunden habe) und ein kleines Testprogramm, das eine verschlüsselte Terminalverbindung mit dem HMLAN aufbaut. Hier müssen die Variablen $key (steht auf dem HMLAN) und $hmlan (IP des HMLAN) richtig gesetzt werden.

Der Code ist nicht besonders schön, ich hab einfach ein bisschen rumgespielt bis es auf einmal funktioniert hat und ich Text lesen konnte ;-)

Evtl. kann mein Code als Beispiel genommen werden, um 00_HMLAN.pm um AES-Funktionalität zu erweitern.
Vielleicht (hoffentlich) ist auch die Verschlüsselung beim neuen Wired-Gateway genauso implementiert.

Gruß
  Michael
Titel: Aw: AES-Verschluesselung des HMLAN Netzwerkverkehrs
Beitrag von: Dirk am 23 Mai 2013, 09:46:08
Hi Michael,

das ist ja Klasse das du dich damit befasst hast, und vor allem dass es dann doch so "leicht" war.

Zitat... da sich bisher anscheinend noch niemand mit der Verschlüsselung des Netzwerkverkehrs zwischen Rechner und HMLAN auseinandergesetzt hat...
Das liegt vermutlich nur daran dass es auch ohne geht :)

ZitatVielleicht (hoffentlich) ist auch die Verschlüsselung beim neuen Wired-Gateway genauso implementiert.
Das hoffe ich auch. So wie ich das den Screenshots aus der Anleitung entnehme scheint das hier nämlich nicht abschaltbar zu sein.
Spätestens wenn meiner hier ist hätte ich mich damit also auseinander setzen müssen, da ich das gerne in meine HM485 Module integrieren möchte.

Gruß
Dirk
Titel: Aw: AES-Verschluesselung des HMLAN Netzwerkverkehrs
Beitrag von: martinp876 am 23 Mai 2013, 10:13:34
Hi Michael,

das ist die Verschlüsselung zwischen HMLAN und Rechner. Das betrifft nicht die zwischen HMLAN und den devices, korrekt? Bei HMLAN wird dies 'automatisch' von HMLAN gemacht. Bei einer CUL/CUNO muss man dann noch einmal umbauen - korrekt?

Wie schaltet man die Verschlüsselung zwischen HMLAN und Rechner ein? Ich werde einmal experimentieren, um es zu verstehen.

Danke schon einmal

Gruss Martin
Titel: Aw: AES-Verschluesselung des HMLAN Netzwerkverkehrs
Beitrag von: mgernoth am 23 Mai 2013, 10:34:31
Hi Martin,

Zitat von: martinp876 schrieb am Do, 23 Mai 2013 10:13das ist die Verschlüsselung zwischen HMLAN und Rechner. Das betrifft nicht die zwischen HMLAN und den devices, korrekt?

Korrekt. Ich wollte erst verstehen, wie ELV AES implementiert, bevor ich mich an die Signierung auf der Funk-Schnittstelle mache...

ZitatBei HMLAN wird dies 'automatisch' von HMLAN gemacht. Bei einer CUL/CUNO muss man dann noch einmal umbauen - korrekt?

Ja, genau. Wobei es das Problem des unbekannten Default-Schlüssels in allen Geräten gibt (und ich nehme mal schwer an, dass man diesen kennen muss, um einen eigenen zu setzen). Aber mal schauen, wann ich Zeit finde mich diesem Problem zu widmen. Das wird aber wahrscheinlich länger als 3h dauern.

ZitatWie schaltet man die Verschlüsselung zwischen HMLAN und Rechner ein?

Die kann man in der Windows-Software zur Konfiguration des Interfaces de-/aktivieren. Standardmässig ist sie aktiviert, man könnte also einen neuen HMLAN direkt mit fhem benutzen, wenn fhem die AES-Verschlüsselung des Netzwerkverkehrs beherrscht.

Gruß
  Michael
Titel: Aw: AES-Verschluesselung des HMLAN Netzwerkverkehrs
Beitrag von: mgernoth am 18 Juni 2013, 21:07:37
Hallo,

Zitat von: mgernoth schrieb am Do, 23 Mai 2013 00:38Vielleicht (hoffentlich) ist auch die Verschlüsselung beim neuen Wired-Gateway genauso implementiert.

Die Antwort hierauf lautet: Fast

Auf dem Wired-Gateway ist ein Passwort aufgedruckt, nicht mehr der AES-Schlüssel direkt. Dieses Passwort wird einfach einmal mit MD5 gehasht und das Ergebnis ist dann der AES-Schlüssel (nachdem ich dadrauf gekommen bin, komme ich mir dämlich vor so etwas wie PBKDF2 zu vermuten und zu versuchen...).

Die Kommunikation läuft auch leicht anders ab, da es jetzt bei jedem Kommando eine Sequenznummer gibt, so wird aus "V00112233445566778899aabbccddeeff" zum IV-Austausch jetzt "V01,00112233445566778899aabbccddeeff". Und der Banner kommt im Klartext.

Nach einem erfolgreichen IV-Austausch antowrtet das Wired-Gateway dann mit SXX, ich kann dann aber nichts weiteres mehr bewirken, keine Reaktion auf "K" oder andere bekannte Kommandos. Und per Hand generierte Daten auf dem Bus werden auch nicht ausgegeben.

Im Anhang mal ein neues hmlan-crypt-test.pl, welches jetzt auch mit dem Wired-Gateway klar kommt.


$ ./hmlan-crypt-test.pl
H10,01,eQ3-HMW-LGW,1.0.4,KEQ0123456
S12 <- das hier ist verschlüsselt.


Gruß
  Michael
Titel: Aw: AES-Verschluesselung des HMLAN Netzwerkverkehrs
Beitrag von: Dirk am 18 Juni 2013, 21:11:35
Cool. Danke für die Forschung.
Dann kann man das dann ja auch in die HM485 Module implementieren.
Das schaue ich mir mal an sobald ich das Interface hier habe.

Gruß
Dirk