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

Printed on: February 7, 2025 at 07:02 o'clock

Michi91
Solution Michi91 Jan 19, 2025 updated at 01:52:52 (UTC)
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
Solution 151183 Jan 19, 2025 updated at 09:23:43 (UTC)
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.