evolutio
Goto Top

Mikrotik speichert WLAN-Passwörter falsch oder gibt sie falsch aus

Hallo Leute,

ich habe heute den ganzen Tag (oder zumindest mehre Stunden) versucht ein Problem bei mir in der Konfiguration herauszufinden.

Jetzt ist mir folgendes aufgefallen:
Wenn man in WinBox unter "Wifi -> Security" eine neuen Eintrag anlegt und als Passwort eine Zeichenkombination mit bestimmten Sonderzeichen (in meinem Fall folgende Zeichenfolge '\") eingibt und man nachfolgend die Daten über die REST-Schnittstelle ausliest:

curl -k -u "USER:PASS" http://router.local/rest/interface/wifi/security | jq  

Kommt folgendes in meinem Fall raus:
[
  {
    ".id": "*1",  
    "authentication-types": "wpa2-psk,wpa3-psk",  
    "disabled": "false",  
    "encryption": "",  
    "name": "ap_private",  
    "passphrase": "'\\\""  
  },
]

Dementsprechend ist das Passwort ein falsches. Auch konnten sich alle Geräte nicht mehr mit dem richtigen Passwort anmelden.
Also gehe ich davon aus, dass WinBox oder RouterOS 7.17 das Passwort falsch escaped.

Installiert ist ROS 7.17

Meine Vermutung ist, dass ROS das in einer älteren Version mit dem escapeten Zeichen (\\) abgespeichert hat und es bei jeder Verbindung auch escaped hat ('\" eingegeben, '\\\" verwendet) . Anders kann ich es mir nicht erklären und es jetzt nicht mehr der Fall ist. Zumindest konnte ich dazu auch noch nichts im Netz finden. Aber gerne könnt ihr das ja auch mal bei euch ausprobieren. face-smile

Theoretisch sollte das bei euch z.B. mit dem Zeichen auch der Fall sein, wenn ihr in WinBox das Passwort neu abspeichert, dann sollten sich meiner Vermutung nach eure Geräte nicht mehr anmelden können.

Content-ID: 670784

Url: https://administrator.de/forum/mikrotik-speichert-wlan-passwoerter-falsch-oder-gibt-sie-falsch-aus-670784.html

Ausgedruckt am: 22.02.2025 um 13:02 Uhr

Michi91
Lösung Michi91 19.01.2025 aktualisiert um 02:52:52 Uhr
Goto Top
Für mich sieht das korrekt aus :-o

Dein Passwort: '\"
JSON: '\\\"

Das erste \ escaped das \ in deinem Passwort und das dritte im String escaped das "

Also in Sachen Syntax soweit korrekt. Aber Chars wie \ schreien nahezu nach Problemen... würde sowas einfach nicht verwenden..

Grüße
151183
Lösung 151183 19.01.2025 aktualisiert um 10:23:43 Uhr
Goto Top
Zitat von @Michi91:

Für mich sieht das korrekt aus :-o

Dein Passwort: '\"
JSON: '\\\"

Das erste \ escaped das \ in deinem Passwort und das dritte im String escaped das "
Dito , und das ist auch vollkommen korrekt. Im Mikrotik ist der Backslash das Escape-Zeichen, muss also selbst escaped werden um als literal interpretiert zu werden, genauso wie das " das ja in diesem Fall ansonsten das Ende der Zeichenfolge einleiten würde.
Da die Passphrase dem Router ausschließlich dazu dient das übermittelte Kennwort mit dem hinterlegten zu vergleichen entfernt er diese Escapes natürlich bei einem internen Vergleich wieder.
Für die Ausgabe muss das aber wieder escaped ausgegeben werden da sonst der Inhalt die JSON-Syntax sprengen würde.

Also in Sachen Syntax soweit korrekt. Aber Chars wie \ schreien nahezu nach Problemen... würde sowas einfach nicht verwenden..

👍 In WiFi Passwörtern oder SSID haben solche Sonderzeichen nichts zu suchen da je nach Implementierung am Client es zu Problemen kommen kann, genau das was der TO jetzt erfährt. Besser eine sehr lange (< 63 Zeichen) zufällige Zeichenfolge aus Ziffern und Buchstaben benutzen, oder gleich WPA-Enterprise wenn möglich.

https://community.tp-link.com/us/home/kb/detail/412692

Special Characters, such as ?, ", $, [, \, ], and +, are not allowed in your network settings, An apostrophe(’) may be used, but could be confusing for smart cameras, TV, and wireless printers, for example.
For Optimal Compatibility, We Would Recommend not using any Special Characters other than a Space in Your Network Name and Password.