Ce SO Q&A intitulé: Existe - t-il une norme qui définit ce qui est un SSID et un mot de passe valides? répond à certaines de vos questions.
extrait
La section 7.3.2.1 de la spécification 802.11-2007 ( http://standards.ieee.org/getieee802/download/802.11-2007.pdf ) définit les SSID.
Un SSID valide est de 0 à 32 octets avec un contenu arbitraire. Un SSID de longueur 0 indique le SSID générique (dans les trames de demande de sonde par exemple).
Aucun jeu de caractères n'est associé au SSID - une chaîne de 32 octets de NUL-octets est un SSID valide.
Cela implique:
- vous ne devez jamais utiliser de fonctions de chaîne normales lors de la manipulation de SSID génériques (strcpy () et amis).
- vous ne devez pas supposer que le SSID est imprimable lorsque, par exemple, vous le connectez au disque
Il y a aussi ce commentaire sur la réponse à la question SO:
Il existe une version mise à jour de la norme ( http://standards.ieee.org/getieee802/download/802.11-2012.pdf ), qui définit le SSIDEncoding
champ. Il peut être UNSPECIFIED
(pour les données arbitraires) ou UTF8
.
Je voudrais donc regarder la dernière norme pour obtenir des conseils et m'assurer que vous pouvez gérer ce qui est légal sur la base de cela.
Quoi d'autre?
De plus, je pourrais être enclin à me protéger en normalisant l'entrée d'un utilisateur en utilisant une forme de fonction de codage d'URL (quelque chose qui fonctionnerait avec les SSID évidemment) ou simplement en supprimant les caractères illégaux et en ne les autorisant tout simplement pas avant d'écrire ces chaînes dans ce fichier .
Des personnages étranges?
Les seuls problèmes que j'ai pu trouver avec les caractères étranges / spéciaux liés au interfaces
fichier étaient ces types de bogues qui ont été déposés contre l'installateur Debian.
l'installateur Debian m'a demandé mes informations de réseau sans fil et les a utilisées avec succès pour se connecter sans fil au réseau. Il a également écrit mes informations de réseau sans fil dans / etc / network / interfaces. Cependant, la clé WPA que j'ai entrée contenait au moins un caractère spécial, et l'installateur Debian n'a pas échappé ni cité les caractères spéciaux dans / etc / network / interfaces. Le résultat a été qu'au redémarrage, le système s'est bloqué pendant très longtemps pendant le processus de démarrage alors qu'il tentait (sans succès) de se reconnecter au réseau sans fil. J'ai résolu le problème en citant simplement la clé WPA répertoriée dans / etc / network / interfaces. Cela devrait se produire automatiquement si la clé contient des caractères spéciaux.
Il y avait aussi ces bogues, l'un lié aux espaces dans le SSID, les autres liés à la phrase secrète:
Dans les deux cas, il semblerait que le fait d'encapsuler les chaînes avec des guillemets soit suffisant pour protéger les valeurs pour les deux.
Exemples supplémentaires
Documents officiels
En fouillant dans la documentation officielle, j'ai trouvé ce morceau ici:
Les documents officiels montrent cet exemple:
ap_scan=2
network={
ssid="test adhoc"
mode=1
frequency=2412
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="passphrase"
}
Il semblerait donc que les espaces soient autorisés, tant qu'ils sont correctement cités. Cet exemple explique également comment fournir un SSID avec des espaces à l' iwconfig
outil:
Ajoutez le nom (ssid) du réseau que vous souhaitez créer / rejoindre. Utilisez des guillemets simples s'il y a un espace dans le nom.
$ sudo iwconfig eth1 essid 'name'
Webconverger
J'ai trouvé cet exemple qui semble être Debian sous le capot, donc l'exemple peut être approprié à votre situation, mais c'est difficile à dire avec certitude. Je ne le mentionne que parce qu'il montre un exemple de la façon dont je m'attendais à ce qu'une méthode de codage URI soit exposée pour protéger contre les caractères illégaux.
extrait
Exemple 4 "Espaces dans l'ESSID", diffusant l'essid 'Hopstock Gjestenett', avec clé WPA uiopzxcv
Veuillez éviter les espaces dans les ESSID. Dans ce cas, nous contournons un encodeURI ('Hopstock Gjestenett'), pour obtenir la recette de démarrage suivante:
wpa-ssid=Hopstock%20Gjestenett wpa-psk=uiopzxcv
Ainsi, vous pourrez peut-être encoder les espaces qui apparaissent dans les SSID à l'aide de %20
.
SSID
En creusant encore plus, j'ai trouvé ce commentaire sur la page Wikipedia sur Service set (réseau 802.11) .
Chaque BSS ou ESS est identifié par un identificateur d'ensemble de services (SSID) - une chaîne de 1 à 32 octets. Il s'agit normalement d'une chaîne lisible par l'homme et donc communément appelée «nom du réseau». 6 Dans un IBSS, le SSID est choisi par le périphérique client qui démarre le réseau, et la diffusion du SSID est effectuée dans un ordre pseudo-aléatoire par tous les périphériques qui sont membres du réseau.
Ce commentaire est étayé par cette présentation de Blackhat EU 2013, intitulée: Exploitation pratique à l'aide d'un identifiant de service malveillant (SSID) .
extrait
- Aucune restriction définie quant aux caractères pouvant être utilisés dans un SSID (IEEE Std 802.11 ™ -2012)
- Certaines limitations basées sur les produits
- Certaines limitations de caractères (ascii uniquement)
- Unicode
Donc, techniquement, tout caractère est autorisé dans un SSID, différentes implémentations telles que Windows XP, Windows 7, par rapport à diverses versions de Linux autorisent / interdisent des sous-ensembles de caractères dans les SSID.
Références
wpa-ssid my ssid
.