Diese SO Q & A mit dem Titel: Gibt es einen Standard, der definiert, was eine gültige SSID und ein gültiges Passwort sind? beantwortet einige Ihrer Fragen.
Auszug
In Abschnitt 7.3.2.1 der 802.11-2007-Spezifikation ( http://standards.ieee.org/getieee802/download/802.11-2007.pdf ) werden SSIDs definiert.
Eine gültige SSID ist 0-32 Oktette mit beliebigen Inhalten. Eine SSID mit der Länge 0 gibt die Platzhalter-SSID an (z. B. in Testanforderungsrahmen).
Der SSID ist kein Zeichensatz zugeordnet - eine 32-Byte-Zeichenfolge aus NUL-Bytes ist eine gültige SSID.
Dies impliziert:
- Sie sollten niemals normale Zeichenfolgenfunktionen verwenden, wenn Sie generische SSIDs (strcpy () und Freunde) bearbeiten.
- Sie sollten nicht davon ausgehen, dass die SSID druckbar ist, wenn Sie sie beispielsweise auf der Festplatte protokollieren
Es gibt auch diesen Kommentar zur Antwort auf die SO-Frage:
Es gibt eine aktualisierte Version des Standards ( http://standards.ieee.org/getieee802/download/802.11-2012.pdf ), die das SSIDEncoding
Feld definiert . Es kann sein UNSPECIFIED
(für beliebige Daten) oder UTF8
.
Daher würde ich mich an den neuesten Standard halten und sicherstellen, dass Sie sich mit den rechtlichen Bestimmungen befassen können.
Was sonst?
Außerdem könnte ich geneigt sein, mich selbst zu schützen, indem ich die Eingaben eines Benutzers mithilfe einer URL-Codierungsfunktion normalisiere (was offensichtlich mit SSIDs funktionieren würde) oder einfach unzulässige Zeichen streife und sie einfach nicht zulasse, bevor diese Zeichenfolgen in diese Datei geschrieben werden .
Seltsame Charaktere?
Die einzigen Probleme, die ich mit seltsamen / speziellen Zeichen im Zusammenhang mit der interfaces
Datei finden konnte, waren diese Arten von Fehlern, die gegen den Debian-Installer eingereicht wurden.
debian-installer hat nach meinen Informationen zum drahtlosen Netzwerk gefragt und diese erfolgreich verwendet, um eine drahtlose Verbindung zum Netzwerk herzustellen. Außerdem wurden meine Informationen zu drahtlosen Netzwerken in / etc / network / interfaces geschrieben. Der von mir eingegebene WPA-Schlüssel enthielt jedoch mindestens ein Sonderzeichen, und das Debian-Installationsprogramm hat die Sonderzeichen in / etc / network / interfaces nicht maskiert oder zitiert. Das Ergebnis war, dass das System beim Neustart während des Startvorgangs sehr lange hängen blieb, als es (erfolglos) versuchte, erneut eine Verbindung zum drahtlosen Netzwerk herzustellen. Ich habe das Problem behoben, indem ich einfach den in / etc / network / interfaces aufgeführten WPA-Schlüssel zitiert habe. Dies sollte automatisch geschehen, wenn der Schlüssel Sonderzeichen enthält.
Es gab auch diese Fehler, einer in Bezug auf Leerzeichen innerhalb der SSID, der andere in Bezug auf die Passphrase:
In beiden Fällen scheint es ausreichend zu sein, die Zeichenfolgen in doppelte Anführungszeichen zu setzen, um die Werte für beide zu schützen.
Zusätzliche Beispiele
Offizielle Dokumente
Beim Durchstöbern der offiziellen Dokumentation habe ich dieses Bit hier gefunden:
Die offiziellen Dokumente zeigen dieses Beispiel:
ap_scan=2
network={
ssid="test adhoc"
mode=1
frequency=2412
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="passphrase"
}
Es scheint also, dass Leerzeichen zulässig sind, solange sie korrekt zitiert werden. Außerdem gibt es dieses Beispiel, in dem erläutert wird, wie eine SSID Leerzeichen für das iwconfig
Tool bereitgestellt wird:
Fügen Sie den Namen (ssid) für das Netzwerk hinzu, das Sie erstellen / beitreten möchten. Verwenden Sie einfache Anführungszeichen, wenn der Name ein Leerzeichen enthält.
$ sudo iwconfig eth1 essid 'name'
Webconverger
Ich habe dieses Beispiel gefunden, das unter der Haube Debian zu sein scheint, daher mag das Beispiel Ihrer Situation angemessen sein, aber es ist schwer sicher zu sagen. Ich spreche es nur an, weil es ein Beispiel dafür zeigt, wie ich erwartet hätte, dass eine URI-Codierungsmethode zum Schutz vor illegalen Zeichen verfügbar gemacht wird.
Auszug
Beispiel 4 "Spaces in the ESSID", das essid 'Hopstock Gjestenett' mit dem WPA-Schlüssel uiopzxcv sendet
Bitte vermeiden Sie Leerzeichen in ESSIDs. In diesem Fall umgehen wir mit einem encodeURI ('Hopstock Gjestenett'), um das folgende Boot-Rezept zu erhalten:
wpa-ssid=Hopstock%20Gjestenett wpa-psk=uiopzxcv
So können Sie möglicherweise die Leerzeichen codieren, die in SSIDs angezeigt werden %20
.
SSIDs
Als ich noch tiefer grub, fand ich diesen Kommentar von der Wikipedia-Seite auf Service Set (802.11-Netzwerk) .
Jedes BSS oder ESS wird durch eine Service Set Identifier (SSID) identifiziert - eine 1 bis 32-Byte-Zeichenfolge. Dies ist normalerweise eine für Menschen lesbare Zeichenfolge und wird daher üblicherweise als "Netzwerkname" bezeichnet. 6 In einem IBSS wird die SSID vom Clientgerät ausgewählt, das das Netzwerk startet, und die Übertragung der SSID wird von allen Geräten, die Mitglieder des Netzwerks sind, in einer pseudozufälligen Reihenfolge ausgeführt.
Dieser Kommentar wird durch diese Präsentation von Blackhat EU 2013 mit dem Titel: Praktische Nutzung unter Verwendung einer SSID (Malicious Service Set Identifier) untermauert .
Auszug
- Keine definierten Einschränkungen hinsichtlich der Verwendung von Zeichen innerhalb einer SSID (IEEE Std 802.11 ™ -2012)
- Einige Einschränkungen basierend auf Produkten
- Einige Zeichenbeschränkungen (nur ASCII)
- Unicode
Technisch gesehen ist also jedes Zeichen in einer SSID zulässig. Unterschiedliche Implementierungen wie Windows XP, Windows 7 und verschiedene Linux-Versionen erlauben / verbieten Teilmengen von Zeichen in SSIDs.
Verweise
wpa-ssid my ssid
.