Forum: Mikrocontroller und Digitale Elektronik NodeMCU MAC der Gegenstelle ermitteln


von Kugelfisch (Gast)


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

: Verschoben durch User
von Gerd E. (robberknight)


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.

von Kugelfisch (Gast)


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

von Joachim S. (oyo)


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.

von 50cent (Gast)


Lesenswert?

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

von Joachim S. (oyo)


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.

von Löter (Gast)


Lesenswert?


von Klaus (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Joachim S. (oyo)


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.

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
Noch kein Account? Hier anmelden.