Это SO Q & A под названием: Существует ли стандарт, который определяет, что является действительным SSID и паролем? отвечает на некоторые ваши вопросы.
выдержка
Раздел 7.3.2.1 спецификации 802.11-2007 ( http://standards.ieee.org/getieee802/download/802.11-2007.pdf ) определяет идентификаторы SSID.
Допустимый SSID - 0-32 октета с произвольным содержимым. SSID длины 0 указывает на подстановочный SSID (например, в кадрах запроса зондирования).
Нет набора символов, связанного с SSID - 32-байтовая строка из NUL-байтов является действительным SSID.
Из этого следует:
- Вы никогда не должны использовать обычные строковые функции при работе с общими SSID (strcpy () и friends).
- Вы не должны предполагать, что SSID можно распечатать, например, когда он записывается на диск
Также есть комментарий к ответу на вопрос SO:
Существует обновленная версия стандарта ( http://standards.ieee.org/getieee802/download/802.11-2012.pdf ), которая определяет SSIDEncoding
поле. Это может быть UNSPECIFIED
(для произвольных данных) или UTF8
.
Поэтому я хотел бы обратиться к последнему стандарту для руководства и убедиться, что вы можете разобраться с тем, что на этом основано.
Что еще?
Кроме того, я могу быть склонен защищать себя, нормализуя ввод пользователя, используя некоторую форму функции кодирования URL (что-то, что, очевидно, будет работать с SSID), или просто убирать недопустимые символы и просто не разрешать их до записи этих строк в этот файл. ,
Странные персонажи?
Единственные проблемы, которые я мог найти со странными / специальными символами, связанными с interfaces
файлом, были эти типы ошибок, которые были поданы против установщика debian.
debian-installer запросил информацию о моей беспроводной сети и успешно использовал ее для беспроводного подключения к сети. Он также записал информацию о моей беспроводной сети в / etc / network / interfaces. Однако введенный мною ключ WPA содержал как минимум один специальный символ, и debian-installer не экранировал и не заключал в кавычки специальный символ (ы) в / etc / network / interfaces. В результате при перезагрузке система очень долго зависала в процессе загрузки, пытаясь (безуспешно) повторно подключиться к беспроводной сети. Я исправил проблему, просто цитируя ключ WPA, указанный в / etc / network / interfaces. Это должно произойти автоматически, если ключ содержит специальные символы.
Также были следующие ошибки: одна связана с пробелами в SSID, другие - с парольной фразой:
В любом случае может показаться, что для защиты значений для обоих достаточно заключить строки в двойные кавычки.
Дополнительные примеры
Официальные документы
Копаясь в официальной документации, я нашел этот бит здесь:
Официальные документы показывают этот пример:
ap_scan=2
network={
ssid="test adhoc"
mode=1
frequency=2412
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="passphrase"
}
Поэтому может показаться, что пробелы разрешены, если они указаны правильно. Также есть этот пример, объясняющий, как предоставить SSID с пробелами для iwconfig
инструмента:
Добавьте имя (ssid) для сети, которую вы хотите создать / присоединить. Используйте одинарные кавычки, если в имени есть пробел.
$ sudo iwconfig eth1 essid 'name'
Webconverger
Я нашел этот пример, который выглядит как Debian под капотом, так что пример может соответствовать вашей ситуации, но трудно сказать наверняка. Я поднял его только потому, что он показывает пример того, как я ожидал, что метод кодирования URI будет открыт для защиты от недопустимых символов.
выдержка
Пример 4 "Пробелы в ESSID", передача essid 'Hopstock Gjestenett' с ключом WPA uiopzxcv
Пожалуйста, избегайте пробелов в ESSID. В этом случае мы используем обходной путь для encodeURI ('Hopstock Gjestenett'), чтобы получить следующий загрузочный рецепт:
wpa-ssid=Hopstock%20Gjestenett wpa-psk=uiopzxcv
Таким образом, вы можете кодировать пробелы, которые отображаются в SSID, используя %20
.
SSIDs
Копая еще глубже, я нашел этот комментарий на странице Википедии о наборе услуг (сеть 802.11) .
Каждый BSS или ESS идентифицируется идентификатором набора услуг (SSID) - строкой от 1 до 32 байтов. Обычно это читаемая человеком строка, и поэтому ее обычно называют «сетевым именем». 6 В IBSS SSID выбирается клиентским устройством, которое запускает сеть, и широковещательная передача SSID выполняется в псевдослучайном порядке всеми устройствами, которые являются членами сети.
Этот комментарий подкреплен презентацией Blackhat EU 2013 под названием: « Практическая эксплуатация с использованием идентификатора вредоносного набора услуг (SSID)» .
выдержка
- Нет определенных ограничений относительно того, какие символы могут использоваться в SSID (IEEE Std 802.11 ™ -2012)
- Некоторые ограничения на основе продуктов
- Некоторое ограничение характера (только ascii)
- Unicode
Таким образом, технически любой символ разрешен в SSID, различные реализации, такие как Windows XP, Windows 7, в отличие от различных версий Linux позволяют / запрещают подмножества символов в SSID.
Ссылки
wpa-ssid my ssid
.