Кажется, мой iPhone забыл пароль от корпоративной Wi-Fi сети

Всем привет!

Уже и не думал что вернусь к этому кейсу, но Cisco Open Air Wireless Marathon подтолкнул меня вспомнить и рассказать про личный опыт, когда чуть больше года назад мне довелось потратить довольно много времени над изучением проблемы с беспроводной сетью на базе Cisco и телефонами iPhone. Мне поручили разобраться над вопросом одного из руководителей: «Почему после перезагрузки iPhone не может автоматически подключиться к Wi-Fi сети, а при ручном подключении просит ввести логин и пароль?».

Кажется, мой iPhone забыл пароль от корпоративной Wi-Fi сети

Сведения о Wi-Fi сети:

Беспроводной контроллер — AIR-CT5508-K9.
Версия ПО контроллера — 8.5.120.0.
Точки доступа — в основной массе AIR-AP3802I-R-K9.
Метод аутентификации — 802.1x.
RADIUS-сервер — ISE.
Проблемные клиенты — iPhone 6.
Версия ПО клиентов — 12.3.1.
Частота 2,4ГГц и 5ГГц.

Поиск проблемы на клиенте

Изначально были попытки решить проблему с наскока на клиенте. К счастью, у меня была такая же модель телефона, как у заявителя, и я мог проводить тестирование в удобное для меня время. Проверил проблему на своем телефоне — действительно, сразу же после включения телефон пытается подключиться к ранее известной ему корпоративной сети, но примерно секунд через 10 остается неподключенным. Если выбрать SSID вручную, то телефон просит ввести логин и пароль. После их ввода всё работает корректно, но после перезагрузки телефон снова не может автоматически подключиться к SSID, несмотря на то, что логин и пароль были сохранены, SSID значился в списке известных сетей, автоподключение включено.

Были произведены безуспешные попытки забыть SSID и добавить его заново, сбросить сетевые настройки телефона, обновить телефон через iTunes и даже обновиться на beta-версию iOS 12.4 (на тот момент самой последней). Но всё это не помогало. Также были проверены модели коллег — iPhone 7 и iPhone X, на них проблема тоже воспроизводилась. А вот на телефонах с Android проблема не зафиксирована. Дополнительно был создан тикет в Apple Feedback Assistant, но до текущего дня ответ на него не получен.

Поиск проблемы на беспроводном контроллере

После всего вышеперечисленного было решено искать проблему в WLC. Параллельно я открыл тикет в Cisco TAC. По рекомендации TAC обновил контроллер до версии 8.5.140.0. Поигрался с различными таймерами и Fast Transition. Не помогло.

Для тестирования я создал новый SSID с аутентификацией 802.1x. И вот это поворот — на новом SSID проблема не воспроизводится. Вопрос инженера TAC заставляет задуматься — какие изменения на Wi-Fi сети мы делали до того, как проблема проявилась. Начинаю вспоминать… И есть одна зацепка — изначально проблемный SSID долгое время имел метод аутентификации WPA2-PSK, но для повышения уровня безопасности мы сменили его на 802.1x с доменной аутентификацией.

Проверяю зацепку — меняю метод аутентификации на тестовом SSID с 802.1x на WPA2-PSK, а затем обратно. Проблема не воспроизводится.

Надо думать изощренней — создаю еще один тестовый SSID с аутентификацией WPA2-PSK, подключаю к нему телефон, запоминаю в телефоне SSID. Меняю аутентификацию на 802.1x, аутентифицирую телефон с доменной учетной записью, включаю автоподключение.

Перезагружаю телефон… И да! Проблема повторилась. Т.е. главный триггер — смена на известном телефону SSID метода аутентификации с WPA2-PSK на 802.1x. Я сообщил об этом инженеру Cisco TAC. Совместно с ним несколько раз воспроизвели проблему, сняли дамп трафика, в котором было видно, что телефон после включения запускает фазу аутентификации (Access-Challenge), но через некоторое время отправляет на точку доступа diassociation message и отключается от нее. Это явная проблема на стороне клиента.

И снова на клиенте

За неимением контракта поддержки с Apple, была долгая, но успешная попытка дозвониться до их второй линии поддержки, в которой я рассказал о проблеме. Затем было множество самостоятельных попыток найти и определить причину проблемы в телефоне и она была найдена. Проблема оказалась во включенной функции "iCloud keychain". Довольно полезная функция, отключать которую на телефонах для workaround я и заявитель проблемы не захотели. По моему предположению, телефон не может перезаписать информацию о методе подключения к известным SSID на серверах iCloud. О находке было сообщено Apple, на что они признали, что такая проблема есть, известна разработчикам, и будет исправлена в будущих релизах. В каком именно не сообщили. Не готов сказать, как обстоят дела на текущий момент, но в начале декабря 2019 года проблема всё еще воспроизводилась на iPhone 11 Pro Max с iOS 13.

Заключение

Для нашей компании проблема решилась благополучно. Ввиду того, что наименование компании было изменено, было решено изменить и корпоративный SSID. А новый SSID был уже сразу создан с аутентификацией 802.1x, что не являлось триггером для проблемы.

Источник: habr.com