Mit übersehen meinte ich: Bedienung von Dingen im Haushalt per Smartphone und eben Daten
upload den andere machen. Wo ist der Zugriffsschutz bei diesen?
Da Twittert die Katze und die Heizung wird ein und ausgeschaltet von Unterwegs...
Und jeder mit Tablet vorm Haus kann sämtliche Passwörter mitschreiben?
So einfach ist das mit dem Tablet vorm Haus sicher auch nicht. Falls Du ein WLAN hast, ist das hoffentlich nach WPA2 Standard verschlüsselt, das ist zwar auch nicht 100%ig, aber es ist schon ein wenig Aufwand nötig, um das zu knacken. Ansonsten, wer soll denn einen HTTP-Request von Deinem Arduino zu Deinem Webserver mitloggen? Klar, ein Man in de Middle ist immer möglich, aber nicht mal eben so. Und mal ehrlich wieso sollte jemand so viel kriminelle Energie aufwenden, um Deine Sensordaten zu verfälschen?
Ich gebe Dir recht, unverschlüsslte Kommunikation liefert immer verschiedenste Angriffsvektoren. Aber ein möglicher Angriffspunkt ist erstmal noch keine direkte Gefahr. Es ist immer eine Frage der Risikoabschätzung.
Fakt ist, das SSL mit dem Arduino aufgrund von Speichermangel und fehlender Rechenleistung nicht geht. Wenn Dir das so wichtig ist, würde ich mir mal den Raspberry Pi anschauen, da hast Du ein komplettes Linux mit allen Tools die man sich für sichere Kommunikation wünscht.
Ich persönlich sehe erstmal kein sehr großes Risiko, wenn ich von drinnen nach draussen kommuniziere. Also der Arduino per HTTP-GET (oder POST) Daten in Richtung Web schickt. Damit ist der Arduino schonmal nicht direkt von aussen erreichbar und auch nicht direkt angreifbar.
Damit ein reelles Risiko besteht, muss also
1.) Jemand in der Lage sein an irgendeiner Stelle die übermittelten Daten mitzusschneiden.
- auf meinem Webserver? Dann hab ich eh verloren :-), denn dann habe ich ein ganz anderes Problem
- in meinem Heimnetz? Das kann bei hinreichender Verschlüsselung des WLAN nur jemande innerhalb des Netzes sein (Risiko gering, außer ich wohne in einer WG)
- auf dem Weg vom Router zum Webserver. Hier kann maximal ein Provider oder ISP an die Daten. Das ist zwar technisch möglich, aber unwahrscheinlich. Warum sollte das jemand machen?
2.) Mal angenommen, jemand schafft es tatsächlich die Daten mitzuschneiden. Dann muss er immer noch:
- auf den Inhalt der Daten schliessen und verstehen was er damit anfangen kann
- die Daten manipulieren, um erstmal irgendeinen Effekt zu erreichen
- verstehen welche gesendeten Daten was bedeuten und was man damit bewirken kann
- Am Ende gezielt manipulierte Daten senden, um z.B. meine Heizung auszuschalten?
Das Ganze setzt einen nicht geringen Aufwand voraus. Der muss sich ja am Ende irgendwie auszahlen. Das meine ich mit Risikoabschätzung.
wie ich im ersten posting schrieb habe ich basic access authentication ja auf ein Verzeichnis gemacht
und als ichs testen wollte eben dabei festgestellt das https nicht geht.
HTTP-Auth hat nichts mit HTTPS zutun. Beim HTTP-Auth wird vom Client ein Hashwert über einen Username:Passwort-String übermittelt, den der Webserver mit dem gespeicherten Wert aus Username und Passwort vergleicht. Stimmt der Hash, gewährt er Zugriff, ansonsten nicht. Übermittelt wird als der Hash-Wert im Klartext, nicht das Passwort selbst. Du hast natürlich recht, liest jemand den Haswert mit, hat er Zugriff. Riskobewertung: siehe oben :-)
HTTPS ist am Ende nur HTTP durch eine SSL (Secure Socket Layer) gesicherte Verbindung. Hier einigen sich Client und Server über ein public Key Verfahren auf einen symetrischen Session Schlüssel, mit dem dann die Nutzdaten der Verbindung ver- und entschlüsselt werden. Das geht mit dem Arduino eben nicht.
HTTP-Auth geht mit dem Arduino übrigens ohne Probleme. Das erhöht auf jeden Fall die Sicherheit auf der Webserver-Seite, da jemand nur Zugriff erhält, wenn er es schafft, den Login-Hashwert zu erraten oder zu beschaffen. Jemand der also per Zufall über die URL zum Datenloggen oder was auch immer stolpert, hat damit erstmal keine Chancen Schaden anzurichten. Google und Co. hast Du damit auf jeden Fall auch ausgesperrt.
Mario.