Hallo, eine kurze Beschreibung meines Problems. Über einen NodeMCU Controller steuere ich mehrere elektrische Verbraucher über eine HTML Seite, soweit funktioniert die Schaltung auch. Im nächsten Schritt möchte ich nun das Steuerbefehle nur von bestimmten Geräten akzeptiert werden, daher habe ich mir überlegt die MAC Adresse des Senders als "Schlüsssel" zu verwenden. Meine Frage ist nun, wie kann ich mit der Programmiersprache LUA die MAC Adresse des Senders ermitteln? Gibt es evtl. eine andere Möglichkeit dieses Problem zu lösen? Danke Kugelfisch
:
Verschoben durch User
Kugelfisch schrieb: > Im nächsten Schritt möchte ich nun das > Steuerbefehle nur von bestimmten Geräten akzeptiert werden, daher habe > ich mir überlegt die MAC Adresse des Senders als "Schlüsssel" zu > verwenden. keine gute Idee. Jeder (oder jedes bösartige Programm) in Deinem LAN kann ganz einfach die verwendeten MAC-Adressen im LAN herausbekommen, denn sie werden in ARP-Broadcasts an alle Stationen gesendet. Dann kann der Angreifer einfach die MAC eines erlaubten Geräts verwenden und bekommt Zugriff. Verwende lieber ein Passwort zum Zugriffsschutz, so wie es gängig ist. Besser wäre natürlich noch zusätzlich die Verbindung per HTTPS zu verschlüsseln.
Hallo, in meiner Anwendung geht es um die Lichtsteuerung der Kinderzimmer, ich möchte mit meiner MAC Abfrage nur verhindern das Kind_A bei Kind_B das Licht ein bzw. ausschaltet. Eine Passwortabfrage reduziert aus meiner Sicht die intuitive Bedienung der Lichtsteuerung. Danke Kugelfisch
Kugelfisch schrieb: > Hallo, > > in meiner Anwendung geht es um die Lichtsteuerung der Kinderzimmer, ich > möchte mit meiner MAC Abfrage nur verhindern das Kind_A bei Kind_B das > Licht ein bzw. ausschaltet. Eine Passwortabfrage reduziert aus meiner > Sicht die intuitive Bedienung der Lichtsteuerung. Die MAC des Clients herauszufinden scheint in der NodeMCU/LUA-API tatsächlich derzeit nicht vorgesehen zu sein. Wenn es jetzt aber eh keine hochsichere Lösung sein muss, sondern es im Grunde genügt, dass die eigenen Kinder nicht sofort darauf kommen, wie es überlistet werden kann, dann hätte ich folgende Ideen: 1. Weise jeder MAC-Adresse eine feste IP zu, so dass es eine 1:1-Zuordnung von MAC- und IP-Adressen gibt, und macht die Identifizierung über die IP-Adresse statt über die MAC. 2. Identifiziere die Clients durch Cookies. 3. oder identifiziere die verschiedenen Clients z.B. durch Fingerprinting gewisser HTTP-Header, die sie bei den HTTP-Requests senden. Wobei die sicherste Methode vermutlich Cookies wären.
Joachim S. schrieb: > Die MAC des Clients herauszufinden scheint in der NodeMCU/LUA-API > tatsächlich derzeit nicht vorgesehen zu sein. naja, vielleicht doch mal das Manual genauer lesen/verstehen...? https://nodemcu.readthedocs.io/en/master/en/modules/wifi/#wifistagetmac
50cent schrieb: > Joachim S. schrieb: >> Die MAC des Clients herauszufinden scheint in der NodeMCU/LUA-API >> tatsächlich derzeit nicht vorgesehen zu sein. > > naja, vielleicht doch mal das Manual genauer lesen/verstehen...? > https://nodemcu.readthedocs.io/en/master/en/modules/wifi/#wifistagetmac Der Umstand, dass Du auf
1 | wifi.sta.getmac() |
verweist, lässt eher vermuten, dass Du selbst das Manual und/oder die Problemstellung genauer lesen/verstehen solltest.
Naja, wenn der Sender seine eigene MAC in der Payload mit sendet, kann der Empfänger die erkennen, ohne in die Tiefen des TCP/IP Stacks hinabtauchen zu müssen. Damit ließe das gewünschte erreichen. Der TO könnte auch versuchen, ob ihm https://nodemcu.readthedocs.io/en/master/en/modules/wifi/#wifiapgetclient weiterhilft. MfG Klaus
Klaus schrieb: > Naja, wenn der Sender seine eigene MAC in der Payload mit sendet, Da der Sender vermutlich irgendwelche Notebooks oder Tablets mit darauf laufendem Webbrowser sind, wird das nicht drin sein.
Löter schrieb: > http://www.esp8266.com/viewtopic.php?p=48223#p48223 Mit Deinem Posting empfiehlst Du offenbar, das über das Event
1 | wifi.eventmon.AP_STACONNECTED |
zu machen. Stattdessen könnte man auch auch gleich die Daten aus
1 | wifi.ap.getclient() |
nutzen, das wäre einfacher. Aber Problem bei beiden Lösungen: Das funktioniert halt nur, wenn der ESP im Access-Point-Modus betrieben wird - und ich gehe einfach mal davon aus, dass er stattdessen im Station-Modus betrieben werden soll.
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.