Geöffneter Vollautomat | Controller des Bedienpanels |
Mitschnitt zweier Telegramme der Buskommunikation |
Geöffneter Vollautomat | Controller des Bedienpanels |
Mitschnitt zweier Telegramme der Buskommunikation |
Sollte es einmal so weit sein, dass sogar der Kühlschrank mit der Heizung und der Waschmaschine spricht um ein möglichst Strom effizientes Miteinander zu gewährleisten, wird das aller Wahrscheinlichkeit nach über Funk passieren. Doch eine Kommunikation über Funk ist alles andere als sicher und so muss der Sicherheitsaspekt von Beginn an in die Entwicklung internetfähiger Haushaltsartikel mit einfließen. Ich experimentiere zur Zeit mit einem kleinen Linuxboard, das unter anderem eine WLAN-Schnittstelle hat.
Sollte dieses Board einmal zum steuern eines Haushaltsgegenstandes verwendet werden, bleibt zu überlegen, wie die Kommunikation von der Kontrollstelle zum Board gesichert werden kann. Eine Möglichkeit wäre das erstellen eines abgeschlossenen WiFi Netzwerks das nur zur Steuerung der Geräte dient und nicht mit dem Internet verbunden ist. Das führt allerdings nicht dazu, dass das Gerät im Internet erreichbar ist, was unserem Ziel nicht gerecht wird. Eine zweite Möglichkeit ist eine normale HTTP Verbindung mit HTTP Auth zu implementieren. Somit ist schon mal eine einfache Sicherheitsebene dazugekommen und das Gerät steht nicht mehr jedem Internetteilnehmer zur Verfügung. Die nächste Schicht wäre eine Verschlüsselte Kommunikation über HTTPS. Dadurch wird das Passwort nicht mehr sichtbar übertragen und einem eventuellen Mithörer bleibt der Anmeldeprozess verborgen. Ein Passwort ist allerdings selten sicher, wenn man dem Benutzer keine vorgegebenen Grenzen setzt. Deshalb bietet sich die Kombination aus Passwort und Zertifikatslogin an. Dabei besitzt der Client ein Public / Private Schlüsselpaar und ein Passwort mit dem das Zertifikat im Client geöffnet werden kann.
Um eine SSL Verbindung über HTTPS zur Fonera zu ermöglichen, benötigt man einen anderen Webserver als den Busybox httpd. Ich habe mich für den mini-httpd entschieden, der bringt auch die Erweiterung für SLL nämlich matrixssl mit. Im OpenWrt Wiki findet sich eine gute Anleitung, wie man mini-httpd mit SSL durchführt. Anders als in der Anleitung angegeben muss allerdings das Paket mini-httpd-matrixssl anstelle von mini-httpd-openssl installiert werden. Ansonsten kann der Anleitung gefolgt werden. Jetzt steht auf der Fonera nur noch HTTPS mit einem eigenen Zertifikat zur Verfügung. Der nächste Schritt ist nun ein Frontend zu Anmeldung auf der Fonera zu programmieren.
Ich habe für ein zukünftiges Projekt vor, die Kommunikation über WLAN laufen zu lassen. Dazu benötige ich ein Modul, das mir WLAN so umsetzt, dass ich entweder verschiedene GPIOs steuern kann, oder Daten an einen einen UART Port weiter gibt. Ich habe in meiner Sammlung noch eine Fonera der ersten Generation, also ein Linuxboard mit WiFi, Ethernet, GPIOs und UART. Die Fonera muss zu diesem Unterfangen allerdings eine neue Firmware bekommen. Die einfachste Methode das zu tun ist, den Bootloader über das serielle Interface anzusprechen, wie das in diesem Artikel beschrieben ist.
Fonera ohne Gehäuse |
Der nächste Schritt ist es die Konfiguration von OpenWRT zu ändern. Dazu können wir entweder eine Verbindung über SSH aufbauen, oder weiter in der seriellen Konsole bleiben. Als erstes benötigt man das wpa_supplicant Paket um zu verschlüsselten Netzwerken eine Verbindung aufbauen zu können, dass sich mit opkg installieren lassen.
opkg update
opkg install wpa-supplicant
Der verfügbare Editor ist Vi und zu bearbeiten sind die Dateien /etc/config/network
config 'interface' 'loopback'
option 'ifname' 'lo'
option 'proto' 'static'
option 'ipaddr' '127.0.0.1'
option 'netmask' '255.0.0.0'
config 'interface' 'lan'
option 'proto' 'dhcp'
config 'interface' 'wan'
option 'ifname' ' '
option 'proto' 'none'
und /etc/config/wireless
config 'wifi-device' 'wifi0'
option 'type' 'atheros'
option 'channel' 'auto'
option 'disabled' '0'
config 'wifi-iface'
option 'device' 'wifi0'
option 'network' 'lan'
option 'mode' 'sta'
option 'ssid' 'WLAN-SSID'
option 'encryption' 'psk2'
option 'key' 'WLANPASSWORT'
Nachdem die Dateien geändert wurden kann mit dem Befehl wifi up das Netzwerksystem gestartet werden. Zu beachten ist, das in dieser Konfiguration der Ethernet Port deaktiviert ist. Der nächste Schritt wird dann sein zu bestimmen, ob die GPIOs der Fonera ausreichen um die gewünschten Funktionen ausführen zu können.