Bernd K. schrieb:
um mein BHKW per WLAN zu steuern hab ich einen ESP-01S als Webserver
programmiert, welcher Befehle über den UART rausgibt und den
Antwort-String auf der Webseite darstellt. Das geht erstaunlich gut.
Um das BHKW übers Internet anschalten zu können, hätte ich dann doch
gerne einen Passwortschutz. Das könnte zwar man über einen "magischen
Parameter" in der URL bewerkstelligen. Etwas eleganteres wäre aber schon
wünschenswert. (Textfeld fürs Passwort z.B.). Wäre für eine Gehilfe sehr
dankbar.
Mit einer Gehhilfe kann ich Dir leider nicht helfen, aber grundsätzlich bietet HTTP ja bereits Authentifizierungsverfahren, wie die Damen und Herren Teilnehmer ja bereits geschrieben haben.
Allerdings möchte ich noch eine andere Möglichkeit ins Spiel bringen, um die Sicherheit Deiner Anwendung zu verbessern, nämlich HTTPS. Ich weiß nicht, welche Möglichkeiten Deine ESP32-Plattform dazu bietet, zur Not könntest Du aber auch einen beliebigen Webserver als Reverse Proxy vor Deine Anwendung schalten und die Verschlüsselung darauf terminieren. Ein schematisches Diagramm findest Du im Anhang. Das erfordert natürlich ein entsprechendes Gerät, auf dem dann ein Webserver läuft, der das kann. Vielleicht kann Deine Plattform das ja schon, oder hast Du ohnehin einen Rechner, etwa einen Raspberry Pi, der ständig läuft, oder planst eventuell etwas in dieser Richtung.
Die Lösung mit dem Reverse Proxy hätte zudem noch einen anderen, und wie ich finde, sehr eleganten Vorteil: Du könntest auch die Authentifizierung über die TLS-Verschlüsselung realisieren. Dazu müßtest Du eine eigene CA (Certification Authority) aufsetzen und könntest für alle, die auf Deine Steuerung zugreifen sollen, individuelle Client-Zertifikate ausstellen, welche von dieser CA signiert werden. Der Reverse Proxy muß dann nur noch überprüfen, ob ein Client ein Zertifikat vorweisen kann, das von Deiner CA signiert worden ist. Im Zweifelsfall ist es obendrein einfach, Zertifikate wieder zu entziehen, wenn zum Beispiel einem Deiner Nutzer ein Endgerät abhanden gekommen ist oder Du jemandem Dein Vertrauen entziehen mußt.
Auf diese Weise hättest Du zwar einen Aufwand, um die CA aufzusetzen und die Clientzertifikate auszustellen und zu verteilen, damit würdest Du ein sehr hohes Sicherheitsniveau erreichen. Das höchste Sicherheitsniveau würdest Du hingegen mit einer Zwei-Faktor-Authentifizierung erreichen, indem Du die von mir beschriebene Technik der TLS-Clientzertifikate mit einer paßwortbasierten Version kombinierst -- auch das könnte auf Deinem Reverse Prox stattfinden, ohne daß Du Deine Steuerung anfassen mußt.