Hi, wie einige vielleicht mitbekommen haben, arbeite ich seit einiger Zeit an dem Projekt TOISWITCH, das ich auch hier vorgestellt habe: Beitrag "TOISWITCH - IoT I/O-Server für ESP8266" Ich suche nun nach einer Möglichkeit, das OTA von meinem lokalen Fileserver auf einen Fileserver im Internet zu verlagen, damit auch andere Nutzer einfach ein Update durchführen können. Hat jemand von euch Erfahrungen damit, welche Filehoster sich hier anbieten? Im wesentlichen benötige ich eine direkte gleichbleibende Download-URL zur jeweils aktuellsten Version der webserver.bin - Datei. Der Download sollte zusätzlich noch per SSL gesichert sein, ohne Client-Authentication. Aber das ist ja mittlerweile Standard. Derzeit ist das Projekt bei Sourceforge gehostet. Dort gibt es zwar direkte Downloadlinks, allerdings sind diese mit einem Token versehen, das sich imHo mit neuer Dateiversion ändert (oder ändern kann). Zudem sind die Links scheinbar derart lang, das sich die ESP8266 OTA implementierung gern mal dran verschluckt und dann direkt beim OTA INIT mit Kernel Panic neustartet. Von meinem persönlichen Server im LAN und auch testweise von Mikrocontroller.net funktioniert es hingegen ohne Probleme. Any Ideas? Und noch etwas: Wie verhält sich die OTA-Funktion des Espressif IDF, wenn das Zertifikat wegen Ablauf ausgetauscht wurde? Hat da jemand Erfahrung? gruß tobi
Noch eine Anmerkung: ich verwende keine Google-Services, Google Docs oder Code ist also keine Option.
Tobias W. schrieb: > Ich suche nun nach einer Möglichkeit, das OTA von meinem lokalen > Fileserver auf einen Fileserver im Internet zu verlagen, damit auch > andere Nutzer einfach ein Update durchführen können Ganz ehrlich: Security technisch ist dass ein No-Go. Ich habe schon jedes mal Schiss wenn ich meinen Fernseher übers Internet update. Aber so ein ESP8266 hat keine Sicherheit gegen Missbrauch durch Men-In-The-Middle. Ich würde das nicht tun. > Der Download sollte zusätzlich noch per SSL gesichert sein, ohne > Client-Authentication. Aber das ist ja mittlerweile Standard. Da fängt es aber schon an. SSL ist nur mit Zertifikaten sicher, die man bei Bedarf widerrufen kann. Die dazu nötige Infrastruktur fehlt dem ESP komplett.
> Ganz ehrlich: Security technisch ist dass ein No-Go.
Das habe ich gerade auch so gedacht. :-D
Aber wisst ihr was noch 10x schlimmer ist? Die Vorstellung das
es normal, noetig und wichtig ist andauernd die Firmware von
irgendwelchen Geraeten upzudaten.
Man baut Hardware so das sie in der Regel problemlos und gut
funktioniert. In seltenen Ausnahmefaellen kann man dann auch mal
die Firmware updaten. Und weil das selten ist, kann man auch damit
leben wenn das mit etwas Aufwand verbunden ist.
Man sollte sich nicht an Software gewoehnen die so schludrig zusammen
gehustet ist das man dreimal im Jahr ein Update braucht.
Olaf
Olaf schrieb: > Man sollte sich nicht an Software gewoehnen die so schludrig zusammen > gehustet ist das man dreimal im Jahr ein Update braucht. Leider habe ich beim Smart TV kaum eine andere Wahl. Wenn z.B. Netflix nur einen Black Screen zeigt, dann fordern die mich zuerst zu upgrade auf, vorher reden die gar nicht mir mir. Habe ich gemacht, immer noch Black screen. Am nächsten Tag war der Fehler verschwunden. Dafür zickt jetzt die Bluetooth Verbindung zu den Lautsprechern. Ich muss sie jetzt nach jedem Einschalten manuell aufbauen, mit ca. 15 Tastendrücken auf der Fernbedienung - sehr nervig. Auf analoge Kabel kann ich nicht ausweichen, weil der TV keinen analogen Ausgang hat (WTF?). Auf das optische Kabel kann ich auch nicht ausweichen, weil die Lautsprecher keinen solchen Eingang haben. Ich habe mir einen Adapter (optisch -> analog) besorgt, aber dann bemerkt, dass die Lautstärke-Tasten der Fernbedienung nicht auf den optischen Ausgang wirken (WTF?). Und das alles nur wegen Netflix. Ein Zurück gibt es nicht. Ich liebe Samsung ............ nicht
Gerade ob der Sicherheit arbeite ich mit SSL und prüfe das Server Zertifikat und das update selbst. Damit werden MITM Attacken schon erheblich erschwert. Und sorry, meine Frage bezog sich auch nicht auf Probleme mit anderen Geräten. Bitte diskutiert diese ggf. in einem anderen thread. Meine Software befindet sich in laufender Weiterentwicklung wie andere home Projekte in diesem Bereich auch (z.B. Tasmota). Daher möchte ich eine einfache Update Möglichkeit geben. Eine andere Variante wäre z.B. ein update per lokalem file upload . Hätte da jemand evtl. ein Beispiel für mich?
Tobias W. schrieb: > er Download sollte zusätzlich noch per SSL gesichert sein, ohne > Client-Authentication. Aber das ist ja mittlerweile Standard. Das entschärft doch das Sicherheits-Problem deutlich. Bau dir deine eigene PKI, der ESP8266 akzeptiert dann nur Verbindungen zu deinem Server. Wenn sich ein Hacker selber was mit Letsencrypt & Co nachbaut, wird die Verbindung direkt abgelehnt. Das erfordert aber Einarbeitung, ein simpler Webhoster mit Standard HTTPS reicht nicht! Du wirst dann einen eigenen Webserver brauchen, der nur mit deiner PKI arbeitet. Aber das ist gar nicht verkehrt, damit hast du vollen Zugriff auf die HTTP Header, falls du damit eine Versions-Unterscheidung machen willst. Das heißt also, vServer mieten. Oder wenn es "nichts" kosten soll, bei uberspace einen Server mieten und einen eigenen Webserver-Prozess durch deren Firewall raus reichen. Dann brauchst du aber eine zusätzliche Infrastruktur, die den ESP auf den "krummen" Firewall Port schubst, weil der sich ggf. mal ändern könnte.
Hi Andre, danke dafür. Über eine eigene PKI habe ich auch schon nachgedacht. Ich weiß aber noch nicht, ob ich das umsetzen werde. Schließlich handelt es sich um ein reines homebrew Projekt ohne kommerzielle Absichten, da sollte der Aufwand im Rahmen bleiben. So möchtr ich z.b. keinen eigenen Server hochziehen müssen. Daher wäre es für mich momentan ausreichend, das Server Zertifikat zu verifizieren. Daher bitte ich weiter um Vorschläge für Filehosting Anbieter, welche feste download links und SSL anbieten. Gern auch mit der Option eine eigene PKI zu nutzen oder alternativ um Ideen wie sich ein lokaler file upload umsetzen lässt. Und eine Frage an tasmota/elecpow/... Nutzer: wie ist das update dort gelöst? Via lokalem file upload oder via OTA?
hacker-tobi@gmx.net schrieb: > Schließlich handelt es sich um ein reines homebrew Projekt Ich nutze gerne die ESP-01 Module weil ich sie zum Upgrade einfach heraus nehmen kann um sie mittels USB Adapter an den Laptop zu stecken. Meine wenigen Projekte mit ESP-12 Modul haben einen "Flash"-Taster und drei Stifte, an die ich mein USB-UART Adapterkabel stecke. Beides finde ich durchaus praktikabel.
Hallo Stefan, das ist für mich nicht praktikabel, da es durchweg um fest verbaute Module geht, welche z.b. in fest verklebten LED Lampen sitzen. Daher die Frage nach Anbietern die ich für die Ablage von OTA files nutzen kann oder alternativ wie ich einen file upload via web interface realisieren kann. Nur zur Klarstellung : OTA ist in der Software aktuell bereits implementiert, nur eben mit einem lokalen Server. Das ist für mich OK, andere Benutzer können diesen Server aber nunmal nicht nutzen. I am sorry, aber ich bin ein wenig genervt. Bis jetzt war nur eine Antwort dabei, die sich mit meiner konkreten Frage beschäftigt hat.
Probiere mal:
1 | #define OTA_SERVER_URL "https://netcologne.dl.sourceforge.net/project/toiswitch/Software/build/webserver.bin" |
hacker-tobi@gmx.net schrieb: > I am sorry, aber ich bin ein wenig genervt. Bis jetzt war nur eine > Antwort dabei, die sich mit meiner konkreten Frage beschäftigt hat. Das ist hier leider immer mehr so, die wenigsten Antworten drehen sich um die eigentliche einfache (An-)Fragen. Aber mehr oder weniger gute ungefragte Ratschläge (meist auch noch OT) kommen da immer... :-( Im Prinzip reicht doch jede Webspace, die quasi "Unlimited TRAFFIC" = download ermöglicht. Das könnte ja sogar ein freigegebener USB-Stick an Deiner eigenen FRITZ!Box per Dynamisches DNS und Let’s Encrypt sein. Oder eben die kleinsten Webspaces, z.B. so etwas, classic 1.0: https://wint.global//linux-hosting-pakete-plesk/ Um "Hochverfügbarkeit" wird es da ja nicht gehen, oder?
Ich hab mir das mal bei tasmota angeschaut. Dort wird für OTA mit http ohne SSL gearbeitet. Das ist zwar einfach zu implementieren aber zu unsicher für meine Begriffe. Alternativ gibt es noch den file upload über das web interface. Hat das schon mal jemand mit dem espressif IDF ohne arduino gebaut? Das werd ich mir mal ansehen und evtl selber bauen. Ansonsten bin ich nachwievor für Vorschläge zu filehostern dankbar.
Mario M. schrieb: > #define OTA_SERVER_URL "https://netcologne.dl.sourceforge.net... sourceforge nutzt z.B. Load Balancer und gleicht auch seine Server nicht gleichzeitig sofort ab (wie auch...), da gab es schon in anderen Projekte Probleme, wenn auf einen direkten speziellen Downloadserver (per "hardcode") von sourceforge verlinkt wurde ((Nicht-)Erreichbarkeit, unterschiedliche Versionsstände...).
@gerFG: das hilft mir weiter. Danke für den link zu wint.global. das muss ich mir mal ansehen könnte das sein was ich suche!
@Mario: Deinen Beitrag mit dem Linki hatte ich übersehen. Auch um Dokus etc ablegen zu können, habe ich mir jetzt mal eine Domain bestellt. Trotzdem werde ich auch probieren, was passiert, wenn ich den Link für OTA nutze. Danke!
hacker-tobi schrieb: > Hat das schon mal jemand mit dem espressif IDF ohne arduino gebaut? Das Projekt WordClock mit WS2812 (STM32 mit ESP8266 als "WLAN-Coprozessor") unterstützt sowohl OTA (Server steht bei Hetzner) als auch local File-Upload per Webbrowser, um sowohl den ESP8266 als auch den angeschlossenen STM32 zu flashen. Allerdings ist der ESP8266 mit der Arduino-IDE programmiert, nicht mit dem espressif IDF. Sources: https://github.com/ukw100/wordclock24h Speziell für ESP8266: https://github.com/ukw100/wordclock24h/tree/main/ESP8266/ESP-WordClock (nein, es wird nicht SSL verwendet)
:
Bearbeitet durch Moderator
Hi, ich habe mittlerweile eine Domain bei wint.global aufgezogen. Der Link für OTA wurde angepasst, das File ist unter http://toiswitch.de/webserver.bin verfügbar! Die Domain selbst werde ich auch noch mit Leben füllen. Danke für alle produktiven Antworten! gruß tobi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.