NodeMCU MAC der Gegenstelle ermitteln

Gast #4942835
Lesenswert?

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
#4942856
Lesenswert?

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.
Gast #4943037
Lesenswert?

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
#4943274
Lesenswert?

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.
#4944064
Lesenswert?

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.
#4944086
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren