Wi-Fi навигация
Использование Wi-Fi для позиционирования внутри помещений и indoor навигации применяется в тех случаях, когда GPS навигация не доступна. Достаточно точное определение местоположения людей и объектов внутри помещений доступно с помощью Wi-Fi.
Точность нахождения местоположения по Wi-Fi определяется количеством точек доступа, их типом и расположением, видом мобильного устройства.
К сожалению только современные смартфоны на Android могут обеспечить точность позиционирование в помещении 1 метр.
Навигация на базе Wi-Fi становится актуальной в связи с развитием и популяризацией решений по отслеживанию активов и сотрудников на предприятии.
Связаться с нами Wi-Fi Pадар

Wi-Fi позиционирование в помещениях

Как работает: В платфрме INP на карте задается расположение имеющихся в здании точек доступа. Используя метод мультилатерации определяется положение пользователя.

Технология: При wi-fi позиционировании используется индикатор уровня принятого сигнала — RSSI и уникальный идентификатор устройства — MAC-адрес.

Точность: Точность позиционирования в помещенит по Wi-Fi напрямую зависит от количества точек доступа и их расположения. Так же на точность влияет вид мобильного устройства пользователя и версия Android.

Доступность: Wi-Fi навигация только для Android устройств. У пользователя должно быть установлено мобильное приложение и включен wifi.
Преимущества навигации в здании с помощью WiFi ● Использование имеющихся в помещении Wi-Fi точек доступ. Нет потребности в развертывании дополнительной инфраструктуры и монтажа оборудования.
● Простое и быстрое масштабирования системы позиционирования в здании. Интеграция любых точек доступа вайфай в платформу.
● Большая территория покрытия, до 100 метров распространения wi fi сигнала для навигации в здании.
● Широкая распростарненность — наличие включенного wi fi почти в любом смартфоне пользователя.
Недостатки Wi-Fi навигации в помещениях. Позиционирование на основе Wi-Fi работает только на Android устройствах. Недоступность навигации по wi-fi для iOS мобильные устройства — не поддерживаются всех iPhone и iPad.
Относительно не высокая точность wifi навигации составляет около 10-15 метров. За исключением устройств поддерживающих навигацию по wi-fi rtt.
Большая задержка при позиционировании по wi-fi. Обновление координат происходит примерно раз в 30 секунд.


Применение wi-fi позиционирования в разных сферах. Определение местоположения внутри помещений с помощью Wi Fi уже давно используется в разных областях и зарекомендовало себя как наиболее дешевое решение. Наиболее часто wi-fi навигация применяется на выставках и экспоцентрах, треснпортных объектах, в музеях, офисах и складских комплексах. Мы предлагаем услуги по сбору MAC-адресов с помощью мобильного Wi-Fi радара.
Наши специалисты выезжают на заданные вами локации в определенное время и собирают пул MAC-адресов потенциальных клиентов для дальнейшего использования в маркетинговых целях на нашей платформе.
Кейсы использования
В промышленности навигация в помещениях на основе Wi-Fi является экономным способом контроля перемещаемого оборудования в цеху. Повышается безопасность работников (меньше происшествий), сокращается время простоя техники, становится доступной аналитика и статистика всех перемещений по промышленному предприятию.
На складах и в логистике используют wifi позиционирование для отслеживания потока товаров и грузов, перемещения сотрудников и оборудования. Геоинформационная система Indoors Navigation Platform дает точную информацию о местоположении материальных активов и пускорить их поиск сотрудниками за счет удобной навигации и построения точного маршрута.
В офисах Wi-Fi навигация внедряться в ГИС внутреннего позиционирования по зданиям. ГИС INP дает возможность построение маршрутов к нужному помещению, ведет по нему как в навигаторе, отправляет уведомления и предупреждения с привязкой к положению пользователя в здании. Администраторы здания получают возможность контролировать передвижение посетителей и взаимодействовать с ними за счет встроенного мессенджера в платформе.
На тарнспортных объектах wi-fi отслеживание способствует оптимизации внутренних процессов и повышению уровня комфорта перемещения пассажира. Аэропорты, вокзалы и транспортные узлы на основе wi-fi навигаци предоставляют мультимедийные карты посетителям и отслеживают пассажиропотоки.
На выставках, можно предоставить посетителям и экспонентам удобный сервис для быстрого поиска нужного выставочного стенда, кафе или автомобиля на парковке. Организаторы выставок могут собирать геоданные по посетителям и анализировать их потоки, оптимизирую располодение стендов и их стоимость в дальнейшем.
В музеях посредством Wi-Fi позиционирования можно создавать автоматизированные аудио гиды в мобильном приложении, тем самым предоставив более современный сервис посетителям, чем у конкурентов. Посетитель музея сможет быстро построить маршрут к заинтересовавшей его экспозиции.
Документация Мы предоставляем информацию о всех возможностях нашей платформы с детальным описанием интеграции API и SDK.
Поддержка Чтобы экономить время разработчиков мы оказываем консультации и техническую поддержку 24/7.
Просмотр и состояние Wi-Fi сетей из Android-приложения. Шаг № 83


Всем привет. Рассмотрев в прошлой статье №82 способ использования интерактивного рисунка для нашего Android-приложения Smart House, теперь научимся просматривать состояние сети wi-fi включение/выключение, а также список доступных сетей используя компонент BroadcastReceiver. Рассмотрим способы диагностики, отладки программы, используя логи и всплывающие сообщения.
Научимся слушать внешние события и производить реакцию на них, используя BroadcastReceiver, который выполняет действие по получению Intent (намерение), который, в свою очередь, является механизмом по получению одной операции а также для объявления о запуске активности или сервиса, направленных на выполнение каких-либо действий (как правило, речь о работе с определенной частью данных) или для передачи уведомлений о том, что произошло некое событие. В нижеприведенном коде мы используем логи и всплывающие сообщения для отладки программы. Для использование первого метод требует на вход тэг и текст сообщения, например Log.d (TAG, “Hello”) с фильтром debug. Тэг представляет собой метку для облегчения поиска в дальнейшем. И с помощью окошка Logcat в Android Studio или Eclipse можем отслеживать данные сообщения. У меня почему то они не всегда срабатывают, поэтому полезно будет еще применить всплывающие сообщения с помощью статического метода makeText, который создает View-элемент Toast.
Toast.makeText(context, text, duration).show();
где context – используем текущую Activity , т.е. this ; — text – текст, который надо показать; — duration – продолжительность показа ( Toast.LENGTH_LONG — длинная, Toast.LENGTH_SHORT — короткая); — show () – отображение на экране.
Ниже создаем класс WiFiMonitor, который наследуется от BroadcastReceiver и следит за состоянием сети и получает ее описание. Используем логи и всплывающие сообщения.
class WiFiMonitor extends BroadcastReceiver < private String LOG_TAG = "WiFiMonitor"; @Override public void onReceive(Context context, Intent intent)/Вызывается, когда BroadcastReceiver получает трансляцию Intent. String action = intent.getAction();//Метод getAction(),для поиска действий, связанных с намерением. Считываем действие Log.d(LOG_TAG, action);//Выводим действие в лог, с фильтром debug. В окне LogCat. ConnectivityManager cm = (ConnectivityManager)context.getSystemService(CONNECTIVITY_SERVICE);//Получаем объект класса ConnectivityManager, который следит за состоянием сети NetworkInfo activeNetwork = cm.getActiveNetworkInfo();//Получаем объект класса NetworkInfo для получения описания состояния сети boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();//Проверяем подключение Log.d(LOG_TAG,"isConnected: "+isConnected);//Выводим состояние сети true or false Toast.makeText(context, "isConnected: "+isConnected, Toast.LENGTH_LONG).show();//Всплывающее сообщение
Ниже на рисунке пример работы на эмуляторе и скриншот реального девайса:
![]()
![]()
Выводим состояние сети либо wi–fi либо мобильный интернет.
if (!isConnected) return; boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;//Проверяем это Wifi или нет. Log.d(LOG_TAG,"isWiFi: "+isWiFi);//Выводим состояние сети Toast.makeText(context, "isWiFi: "+isWiFi, Toast.LENGTH_LONG).show();
Ниже на рисунках пример работы:
![]()
![]()
if (!isWiFi) return; WifiManager wifiManager = (WifiManager) context.getSystemService(WIFI_SERVICE);// Используем getSystemService (Class) для извлечения WifiManager для управления доступом Wi-Fi. WifiInfo connectionInfo = wifiManager.getConnectionInfo();//Возвращает динамическую информацию о текущем соединении Wi-Fi, если таковая активна. Log.d(LOG_TAG,connectionInfo.getSSID()); Toast.makeText(context, "Connected to Internet: "+connectionInfo.getSSID(), Toast.LENGTH_LONG).show(); > >
Ниже на рисунках пример работы:
![]()
![]()
Хочется добавить что эмулятор не поддерживает некоторые функции устройства , а именно (https://developer.android.com/studio/run/emulator.html):
What's not supported
· Wi-Fi (except API level 25 system images do support Wi-Fi);
· Bluetooth;
· NFC;
· SD card insert/eject;
· Device-attached headphones;
· USB;
Поэтому мы использовали API level 25, для эмулирования WI-FI. На рисунках ниже API 27 может показывать только состояние сети мобильного интернета, API25,в дополнение, имеет поддержку WI_FI.
![]()
![]()
Теперь в методе onCreate, который отвечает за установку параметров и инициализации активности, переопределим методы для выше описанного класса. Зарегистрируем объект данного класса в системе, и с помощью фильтра IntentFilter получаем необходимое событие, а именно изменение сетевого подключения. Если параметры нашего Intent совпадают с условиями этого фильтра, то Activity вызывается. Ниже код.
public void onCreate() < super.onCreate(); mWiFiMonitor = new WiFiMonitor(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);//Произошло изменение сетевого подключения. registerReceiver(mWiFiMonitor,intentFilter); >@Override public void onTerminate()
Этот метод предназначен для использования в эмулируемых средах обработки. Он никогда не будет вызываться на реальном устройстве Android, где процессы удаляются, просто убивая их. При этом не выполняется код пользователя (включая этот обратный вызов).
Если вы переопределите этот метод, вы должны выполнить вызов суперкласса.
Для просмотра сетей Wi-Fi и вывода информации создадим еще один класс и наследуемся от BroadcastReceiver.
static class ScanReceiver extends BroadcastReceiver < private String LOG_TAG = " "; @Override public void onReceive(Context context, Intent intent) < WifiManager wifi = (WifiManager) context.getSystemService(WIFI_SERVICE);//Извлекаем WifiManager для управления доступом Wi-Fi. List scanResultList = wifi.getScanResults();//Возвращает результаты последнего сканирования точки доступа. for (Object scanResult : scanResultList)< Log.d(LOG_TAG,scanResult.toString()); Toast.makeText(context, "click"+scanResult.toString(), Toast.LENGTH_LONG).show(); >context.unregisterReceiver(this); > >
И будем производить поиск сетей по нажатию на кнопку. Ниже код и рисунок работы на эмуляторе и реальном устройстве. Работу с кнопкой в Android-приложении мы частично рассматривали в прошлой статье а также в приложении подключения AVR к ОС Android.
button.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View v) < final WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); ScanReceiver scanReceiver = new ScanReceiver(); registerReceiver(scanReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)); wifi.startScan(); >>); requestPermissions(new String[,1); >
![]()
Для работы данного приложения необходимо внести разрешения в файл Манифеста, , в корневом теге .
Разрешения описывают сами себя. При запуске только этих разрешений мы можем получить следующее сообщение в логе:
E/WifiService: Permission denial: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
Данных разрешений хватало до Android 6.0 ApI23 . C появлением данного API и выше политика изменилась. Теперь необходимо добавить
где первый получает доступ к приблизительному местоположению, второй — приложение сможет получать доступ к точному местоположению. Два последних разрешения являются опасными.
И в методе OnCreate пропишем следующую строку.
requestPermissions(new String[],1);
![]()
Здесь мы запрашиваем разрешение для данного приложения. Эти разрешения должны запрашиваться в манифесте и должны иметь уровень защиты #PROTECTION_DANGEROUS, опасный, независимо от того, объявлены ли они платформой или сторонним приложением. Пользователи предоставляют разрешения для приложений во время работы приложения, а не при установке приложения. Этот подход упрощает процесс установки приложения, поскольку пользователю не нужно предоставлять разрешения при установке или обновлении приложения. Рисунки ниже:
Ниже исходники и ресурсы.
Все, добавляем код в наше приложение SmartHouse. Теперь мы имеем доступ к сетям. В последующем мы выведем сети Wi-Fi в листинг и научимся выбирать определенную и подключаться к ней. В следующей статье вернемся к контроллеру STM32 и свяжем его с ESP8266, который по нашей задумке будет управляющим элементом в системе умный дом. На этом сегодня и остановимся. Всем пока.
Немного об анализаторах Wi-Fi покрытия на Android
Ни для кого не секрет, что сети Wi-Fi довольно сильно подвергаются воздействию помех, а на пути распространения беспроводного сигнала могут встречаться стены и другие объекты, и после очередного такого препятствия электромагнитная волна может просто не выполнить свое предназначение. В век цифровых технологий визуализировать можно все что угодно, и даже то, как распространяются невидимые человеческому глазу сигналы Wi-Fi-диапазона.
Когда есть инструмент, позволяющий визуально показать уровень сигнала сразу на карте местности, это намного облегчает восприятие картины сети в целом. Такие инструменты позволяют сразу загружать план здания, а пройдясь по нему с включенным Wi-Fi приемником можно получить тепловые карты радиопокрытия и множество других полезных данных:

Скриншот выше сделан в программе Acrylic Wi-Fi (для ОС Windows), позволяющей строить тепловые карты с использованием данных из Google Map, но и для мобильных устройств существуют не менее эффективные программные продукты. Большинство инструментов для анализа Wi-Fi покрытий на базе OS Windows предлагают большое количество функциональных возможностей. Кстати здесь мы проводили обзор некоторых из них, распространяющихся бесплатно, или условно бесплатно (демоверсия и/или с урезанным функционалом). Но если вам не нужны все фишки расширенных Windows-приложений с определением источников помех или более качественной визуализацией, то программное обеспечение на базе Android может помочь решить ряд важных задач.
Приложения-анализаторы Wi-Fi-покрытия в Google Play не являются редкостью, их там представлено довольно большое количество, но мы при выборе приложения отталкивались от нескольких факторов: бесплатное распространение, возможность строить тепловые карты и наличие необычного функционал (чего-то большего, чем просто мониторинг каналов). В результате перечень из десятков приложений удалось сократить до 4-х. В обзор вошли такие программы как: Wi-Fi Analyzer and Surveyor, Wi-Fi Visualizer, iMapper Wi-Fi Pro, и WiTuners Mobile:
Wi-Fi Analyzer and Surveyor
На примере этого Wi-Fi-анализатора рассмотрим принцип работы в приложении более подробно, для других программных продуктов некоторые пункты пошаговой настройки мы опустим и перейдем непосредственно к анализу возможностей.
Приложение Wi-Fi Analyzer and Surveyor от компании ManageEngine имеет очень простые функции и распространяется совершенно бесплатно. У программы нет даже расширенной платной версии. Установщик весит около 6 Мбайт. Когда вы открываете приложение, после первой его настройки вы можете перейти на страницу Analyzer или Surveyor. При этом в режиме Analyzer производится мониторинг Wi-Fi-сетей, которые видит ваше устройство, а в Surveyor можно добавить план этажа из памяти вашего устройства или облачного хранилища:

После того, как карта помещения была добавлена, приложение предлагает вам «прогуляться» по зданию и в тех точках, где вы находитесь, произвести замеры радиопокрытия, делается это длительным нажатием на экран монитора вашего смартфона. После того как вы прошлись по всем контрольным точкам, можно завершить «обследование» территории и вывести отчет, нажав кнопку «End Survey». При этом если вы производите замеры, и Wi-Fi сигнал в определенной точке не обнаружен, то вы получите соответствующее оповещение от программы:

В описании программы указано, что можно сфотографировать план помещения и загрузить его в программу для дальнейшей работы с ним. Давайте добавим немного антуража и посмотрим, что из этого выйдет. В качестве исходных данных выберем план эвакуации из здания под кодовым названием «Пентагон», сфотографированный, как и указано в описании программы, на тот же смартфон:

Во вкладке «Surveyor» нажимаем «Add Plan» и загружаем сделанное фото напрямую из фотогалереи. Далее перемещаемся в нужную точку на карте и нажимаем на экран смартфона, тут же на карте появляется информация об уровне зафиксированного Wi-Fi сигнала. Безусловно, радует то, что приложение запоминает уровень сигнала от всех доступных ТД в измеренных точках. На скриншотах ниже приведены уровни сигнала в измеренных точках для трех случайно выбранных сетей:

Обратите внимание, что было сделано одинаковое количество замеров на всех трех скриншотах, но в зависимости от того, какую сеть вы выбираете в выпадающем меню (в нашем примере это сети dlink, uraldelo, WiFi-DOM.ru) на карте отображаются уровни сигнала конкретной сети. Если смартфону не удалось обнаружить одну из этих сетей в точках замера, то она, соответственно, не будет отображена на карте.
К сожалению, выбрать отдельную точку доступа, чтобы увидеть радиус ее действия не получится, можно выбрать только ее SSID. Разница в том, что если несколько точек доступа используют одинаковый SSID, то приложение не может определить, разное оборудование создает такую зону покрытия, или одно. Также приложение позволяет отобразить данные с эффектом тепловой карты, а не только дать отчет об уровне сигнала в указанной точке:

Скажем прямо, эффект так себе… Возникло предположение, что для создания полноценной тепловой карты нужно сделать достаточно большое количество измерений, но эта затея не увенчалась успехом:
Эффект тепловой карты (HeatMap Report) лишь слегка излучает за пределы первоначального размера точек, которые вы видите в отчете об уровне сигнала (Signal Strenght), поэтому по факту вы просто видите размытые точки. Как мы увидим далее, все другие программные инструменты анализа Wi-Fi покрытия используют определенные алгоритмы предсказания, чтобы заполнить эти пробелы и создать более полную тепловую карту без необходимости обходить каждый квадратный метр здания. Поэтому, в плане построения тепловых карт программа Wi-Fi Analyzer and Surveyor не очень удобна.
Давайте еще немного задержимся на этой программе и скажем пару слов об инструменте «Analyzer» рассматриваемого приложения. Здесь можно найти 4 вкладки внизу экрана, каждая из которых содержит тривиальные и доступные почти в каждом подобном приложении данные:

Во вкладке «Channel» отображена информация о доступных точках доступа (ТД) и каналах на которых они работают в виде столб-диаграмм. Далее вкладки «Interference» и «Signal», которые приводят ту же самую информацию, что и ранее (во вкладке «Channel»), но непосредственно на предмет интерференции и уровня сигнала от каждой точки доступа (так сказать, для более удобного восприятия):

Здесь можно выбрать, какие точки доступа следует отобразить на основе сведений об уровне сигнала (лучший (Best), хороший (Good), слабый (Weak) или показать все (All)). И последняя вкладка – «Wi-Fi Details» (или сведения о Wi-Fi) показывает текстовый список доступных точек и основную информацию о них: SSID, MAC-адреса, уровень сигнала, используемый канал для передачи данных. К сожалению, отсутствует информация о применяемом алгоритме шифрования сети.
В настройках анализатора вы можете установить интервал сканирования или отключить его в принципе, что может быть полезно, если вам просто нужно получить доступ к ранее проведенным измерениям. Кроме того, в программе можно дать какой-либо сети придуманное вами имя, которое поможет отслеживать эти сети в дальнейшем. Эти простые настройки могут помочь при постоянной работе с конкретными сетями.
Wi-Fi Visualizer
Приложение Wi-Fi Visualizer от ITO Akihiro также распространяется бесплатно и обеспечивает очень простую функциональность для построения тепловых карт, а также несколько других полезных инструментов.
После открытия Wi-Fi Visualizer вы увидите экран сканирования «Scan», в котором отображаются сведения о текущем соединении с Wi-Fi-точкой доступа. Наряду с состояниями беспроводной сети он также показывает ширину канала, центральный канал и максимальную скорость передачи данных (правда, не всегда все эти параметры программа может определить):

Вы также можете просматривать вкладки на этой же странице, позволяющие увидеть занятость каналов и их графическое представление в диапазонах 2,4 ГГц и для каждого подмножества диапазонов 5 ГГц, но было бы удобнее видеть все полосы 5 ГГц на одной странице:

Также, на странице сканирования есть вкладка со списком доступных SSID. Отфильтровать список нельзя, но можно упорядочить устройства по SSID и BSSID. На этой же странице «Scan» есть возможность сохранить список устройств и графики с информацией и состоянии канала, к которым можно будет вернуться и просмотреть их позже. Это довольно удобная функция, которую предлагают далеко не все бесплатные приложения:
На этом функции сканирования заканчиваются, и мы можем перейти к рассмотрению тепловых карт, — соответствующая вкладка «Heatmap»:

На странице «Heatmap» вы можете назвать и создать новый проект. Когда вы добавляете план этажа (это может быть простая картинка), вы также как и в предыдущей программе указываете свое местонахождение на карте, программа регистрирует точку доступа и сохраняет ее скорость передачи данных и мощность в указанной точке. К сожалению, в отличие от рассмотренного ранее приложения, программа регистрирует статистику только для той ТД, к которой вы подключены в данный момент. Это не совсем удобно и может быть проблемой в том случае, если вы хотите увидеть, влияют ли сигналы от одной точки на другую на тепловой карте. В данной программе сделать это просто невозможно. Но благодаря адаптивному алгоритму предсказания уровня сигнала, можно строить более равномерные тепловые карты:

Перейдем к не менее интересной вкладке «Network Map» (ниже под «Heatmap»). Здесь на экране вы можете просмотреть дерево устройств, обнаруженных в сети. По факту, это простой IP-сканер, который показывает IP, MAC-адреса и сетевые имена устройств в сети (таких как маршрутизаторы/коммутаторы/беспроводные ТД) в дополнение к клиентским устройствам. Это отличная бонусная функция, которая не наблюдается в большинстве других приложений для анализа Wi-Fi сетей:

На вкладке «Chart of Signal Strenght» (сила сигнала) вы можете просматривать график зависимости изменения уровня сигнала от времени (данные показаны для той точки доступа, к которой вы подключены). Хоть эта функция и очень проста, но она также и очень удобна. На графике приведена статическая линия, указывающая типичную пограничную линию роуминга на -80 дБм. Можно, удаляясь от точки доступа, понять на каком расстоянии от нее будет наблюдаться указанное затухание в -80дБм и в дальнейшем учесть это при организации бесшовного радиопокрытия:

На вкладке «Setting» приводится информация о характеристиках вашего устройства: поддерживаемые частоты и максимальная скорость передачи данных.
Таким образом, если вам нужен неплохой инструмент для анализа радиопокрытия и Wi-Fi сетей в целом, это приложение стоить добавить в свой арсенал. Подобные решения хорошо подойдут для анализа малых беспроводных сетей, особенно если вы являетесь единственным системным администратором в своей фирме. С его помощью можно проводить экспресс-анализ при проектировании или расширении существующей Wi-Fi сети.
В этой части статьи мы рассмотрели работу двух из четырех обещанных приложений. Во второй части мы рассмотрим работу еще двух программных решений с не менее интересными возможностями, позволяющими производить анализ радиопокрытия, — это iMapper Wi-Fi Pro и WiTuners Mobile.
- Блог компании НАГ
- Софт
- Сетевое оборудование
- Сотовая связь
Лайк, если читаешь логи!: запускаем Hotspot 2.0 на сети Wi-Fi в метро
Делимся опытом создания закрытой сети Wi-Fi в метро с использованием технологии Hotspot 2.0, первой статистикой, рекомендациями по безопасности. А также приглашаем к открытому тестированию новой сети.

С середины февраля на зеленой, а с конца апреля на всех линиях московского метро запущена новая закрытая сеть Wi-Fi — MT. Сеть работала в тестовом режиме. Все это время мы проводили внутренние тесты силами сотрудников, а также наблюдали за стабильностью работы точек доступа и контроллеров, возможным влиянием на сервис в открытом SSID MT_FREE.
Запуск этой сети не прошел незамеченным среди наших пользователей. По разным каналам мы получили несколько вопросов о том, как получить учетные данные. Но многие не оставляли попыток подключиться через придуманные учетки. За все время, пока был доступен этот SSID, зарегистрировано 14 488 уникальных запросов авторизации. Более того, некоторые абоненты даже писали нам послания, используя форму для ввода User-Name. Одно из таких посланий, — фразу «Лайк, если читаешь логи!», — было особенно приятно прочесть. Взаимный лайк!

Давайте кратко рассмотрим предпосылки к за пуску закрытой сети, возможности и ограничения, технический аспект внедрения Hotspot 2.0.
Зачем нужна закрытая сеть MT?
Запуск закрытой сети с использованием учетных данных, уникально идентифицирующих устройство или пользователя, обсуждался нами неоднократно. Драйверами запуска являются, в первую очередь, вопросы безопасности. Необходимо исключить возможность подключения к фишинговым точкам с нашим SSID и делать это прозрачно, чтобы от пользователя не требовалось никаких дополнительных действий. Хотя практически весь чувствительный трафик в интернете зашифрован с помощью TLS, абоненты считают сети Wi-Fi без шифрования менее надежными.
Другая причина запуска сети с авторизацией по учетным данным — тренд на рандомизацию MAC-адресов устройств при подключении к Wi-Fi сетям. Этот тренд все заметнее проявляется на Android-устройствах. Причем, если раньше переменные MAC-адреса были атрибутом недорогих смартфонов (главным образом, китайских) и использовались производителями просто в силу нехватки официально зарезервированных пулов MAC-адресов, то недавно Google официально сообщил о внедрении подобной технологии в ОС Android с целью предотвращения трекинга абонентов. Это создает препятствия для полноценного использования публичного Wi-Fi в России, так как при каждом входе потребуется повторная идентификация устройства (в соответствии с постановлениями Правительства 758 и 801). Таким образом, MAC-адрес постепенно перестает быть приемлемым средством идентификации устройства в сети.
Краткий обзор функций Hotspot
В поисках решения указанных проблем мы обратили внимание на технологию Hotspot 2.0, которую развивают в том числе Wi-Fi Alliance и Wireless Broadband Alliance. При первом рассмотрении технология должна закрыть все возникающие потребности — защищенное подключение к проверенному SSID и шифрованное соединение. Ниже приводим сравнение новой парадигмы организации операторских Wi-Fi-сетей и текущего состояния.

Сравнение подходов к организации Wi-Fi сетей – до и после внедрения технологии Hotspot 2.0.
Стек Hotspot 2.0 включает в себя три ключевые технологии:
- Возможность принятия решения о подключении к сети и выполнения подключения самим устройством без действий со стороны пользователя (802.11u) вне зависимости от SSID;
- Безопасное и приватное пользование сетью – шифрование трафика на радио части (802.11i, или в терминологии Wi-Fi Alliance всем известный WPA2);
- Набор методов аутентификации и авторизации по учетным данным и управление учетными данными (EAP, провиженинг).

Вряд ли ошибусь, если предположу, что у многих читателей технология Hotspot 2.0 ассоциируется с Offload (выгрузкой трафика) из Wi-Fi сети в мобильную.
Действительно, наибольшее количество внедрений Hotspot 2.0 произошло у мобильных операторов, и первопроходцем здесь является AT&T. Этому есть объяснение — обязательным условием работы мобильной связи является наличие в устройстве физической или виртуальной SIM-карты. Вкупе с операторскими профилями и возможностью обновления их «по воздуху» это условие обеспечивает прозрачный для клиента провиженинг (в контексте Hotspot 2.0 — передача учетных данных, их валидация и применение в операционной системе).
При этом клиентский опыт в операторской Wi-Fi-сети становится сравним (а при некоторых условиях и лучше), чем опыт в мобильной сети. Кейс также применим и для MVNO-операторов, но все зависит от схемы работы с хост-оператором. Для остальных операторов, таких как мы, основной вызов — это вопрос провиженинга устройств и всего, что с этим связано. Попробуем разобраться.
Все дело в учетных данных
Учетные данные – это сущность, которая позволяет уникально идентифицировать пользователя. Эти данные должны быть надежно защищены, чтобы злоумышленник не мог перехватить и переиспользовать их. Наличие учетных данных решает проблему MAC-аутентификации, когда можно «прослушать» радио-эфир с помощью сниффера, узнать и подменить MAC-адрес с чужого устройства.
Наиболее распространенными типами учетных данных и методов аутентификации являются:
- SIM-карта, методы EAP-SIM, EAP-AKA
- Пара логин и пароль, EAP-PEAP, EAP-TTLS
- Сертификат, EAP-TLS
Настройка вручную — это сложный процесс, сильно зависящий от особенностей конкретной ОС. Для абонентов это крайне неудобно. Передача учетных данных через сеть с автоматической настройкой устройства может быть хорошим решением. Этот процесс будем называть провиженингом, и здесь как раз кроется главное ограничение технологии на текущем этапе развития.
Эволюция Hotspot 2.0
На данный момент выпущено три релиза Hotspot с нетривиальными обозначениями 1, 2, 3. А технология все еще называется 2.0. На самом деле Hotspot 2.0 это набор стандартов, определяющий новый подход к организации операторских Wi-Fi-сетей, когда опыт пользования такими сетями сравним с использованием мобильной сети. А в рамках релизов (1, 2, 3) формируются сами стандарты, на соответствие которым проводится сертификация устройств.
Так, основная «фишка» первого релиза и по совместительству база технологии — это стандарт IEEE 802.11u. Поддержка 802.11u необходима как на стороне инфраструктуры Wi-Fi-сети (точек доступа и контроллеров), так и на стороне клиентских устройств. В ситуации с «железом» особых проблем не наблюдается: все больше и больше вендоров поддерживает стандарт, т.к. на более-менее современных чипах реализация протокола программная. А вот ситуацию с клиентскими устройствами исследуем чуть позже.
Второй релиз стандартизирует процесс провиженинга и новую специфическую инфраструктуру — Online Signup Server (OSU). Это сервер, который осуществляет формирование и передачу настроек сети на клиентские устройства.
Недавно опубликованный Release 3 развивает инструменты провиженинга. При беглом просмотре я не заметил новых «киллер-фич», да и под рукой нет пока устройств и инфраструктуры, чтобы пощупать его на практике. Если увидим интерес читателей, можем попробовать более подробно рассмотреть функции и отличия каждого релиза в другой статье.
Провиженинг
Исследуем вопрос проникновения стека технологий Hotspot на клиентских устройствах. Для этого воспользуемся инструментом от Wi-Fi Alliance, где представлены результаты сертификации устройств. Сертификация — процесс добровольный, поэтому результаты есть не для всех устройств. Так, например, сертификацию прошло всего несколько устройств от Apple — iPhone 3, iPhone 4, iPad. Тем не менее все актуальные iOS устройства поддерживают весь необходимый стек Hotspot 2.0, и, что важно, делают это практически единообразно от версии к версии.
Таким образом, смотрим на результаты сертификации, за исключением iOS устройств, за период с 2012 (публикация первого релиза). Визуализируем полученную статистику в виде диаграммы ниже. Вывод — только каждое пятое не-iOS устройство поддерживает первый релиз (802.11u), каждое десятое — имеет стандартизованный интерфейс провиженинга. Такая ситуация осложняет массовое применение.

Проникновение Hotspot 2.0 на клиентских устройствах (за исключением iOS)
С технической точки зрения результат провиженинга — это наличие на устройстве валидных учетных данных и других необходимых настроек для определенного SSID или Wi-Fi-сети. Второй релиз стандартизировал структуру представления настроек сети в виде XML-документов и механизмы их передачи на устройства. Набор настроек сети, содержащий, в частности, учетные данные, называется сетевым профилем (Profile). Первоначально похожее решение было предложено Apple, но в итоге было стандартизировано его развитие со значительными изменениями. Ниже на скриншоте приведен пример профиля для iOS. Более того, любой пользователь Mac OS может потренироваться в создании профилей, используя утилиту Apple Configurator и следуя официальной документации.

Пример профиля для iOS
Как выглядит процесс провиженинга для пользователя? На рынке есть несколько коммерческих решений OSU, — GlobalReach Odyssys, Ruckus CloudPath, Aruba ClearPass, — поэтому мы можем посмотреть процесс на примере одного из них. По ссылке приведены скриншоты для решения от GlobalReach Odyssys. Ссылку необходимо открывать только в браузере Safari, иначе ОС смартфона не распознает файл профиля (имеет расширение mobileconfig) и не предложит его установить.
Здесь установка профиля показана с максимальным количеством шагов со стороны пользователя, например, когда помимо смартфона есть еще и Apple Watch (да, на часы можно поставить профиль и они будут подключаться к Wi-Fi). Web-провиженинг iOS-устройств возможен только через браузер Safari, это требование ОС. Провиженинг Android-устройств, в зависимости от версии, может выполняться как через браузер, так и с использованием приложения.


В целом алгоритм настройки сети одинаков для всех устройств:
- пользователь подключается к открытой сети Wi-Fi (возможен сценарий подключения к специальной закрытой сети, где будет доступен только OSU) или использует мобильный интернет для открытия страницы OSU;
- на следующем шаге идентифицируем пользователя (подтверждение по СМС, ввод учетных данных от личного кабинета, идентификация через приложение);
- на стороне бэкенда генерируем учетные данные, сохраняем и передаем пользователю;
- учетные данные и настройки сети сохраняются на устройстве пользователя;
- устройство готово к работе в сети Hotspot 2.0, никаких дополнительных действий со стороны устройства не требуется, нужно только оказаться в зоне действия такой сети.
Использование приложения сокращает необходимость действий до минимума, до одного-двух. Но, к сожалению, технология активно движется только в сторону развития и стандартизации web-провиженинга, протокола управления мобильными устройствами (OAM DM), тогда как возможность использования приложения никак в стандарте не отражена. Тем не менее производители мобильных ОС внедряют функционал программной настройки параметров сети Hotspot 2.0, но реализации у разных вендоров значительно отличаются, нет универсальности.
Промежуточный итог
Суммируя все вышеизложенное, подводим краткие итоги обзора и текущего состояния технологии:
- Может решить проблему рандомизации MAC-адресов;
- Может исключить возможность подключения к поддельным SSID злоумышленников для наших пользователей;
- Требует провиженинга учетных данных;
- Низкое проникновение части стека технологии (802.11u, провиженинг) на Android-устройствах;
- Стандартизован web-провиженинг;
- Cтандартизован провиженинг с использованием протокола OMA DM, сфера применения которого ограничена корпоративными сетями;
- Несмотря на стандартизацию, реализация и поддерживаемый функционал зависит от вендора (особенно актуально для Android).
Внедрение Hotspot 2.0 на масштабной сети
В процессе запуска необходимо было решить несколько крупных задач.
1. Внесение изменений на оборудовании беспроводной сети
Наши самые большие сети, в метро Москвы и Санкт-Петербурга, построены на оборудовании Cisco, которое поддерживает технологию Hotspot 2.0. Задача настройки всех контроллеров на подвижном составе была, наверное, самой объемной. Предварительно разработанный и протестированный эталонный конфиг контроллера с помощью автоконфигуратора (о нем мы писали в отдельной статье) был применен на все составы. Применение растянулось в несколько этапов. Сначала на зеленой ветке московского метро, для оценки локальных эффектов и влияния, а затем и на всю сеть. Сейчас на всем подвижном составе метро Москвы развернут второй SSID MT.
2. Доработка на стороне внутренней инфраструктуры, в частности на RADIUS-сервере
Так как у нас RADIUS-сервер полностью собственной разработки, нам пришлось реализовывать поддержку EAP и внутреннего метода аутентификации.
3. Выбор типа учетных данных и метода аутентификации
Выбор должен не только обеспечить надежную и прозрачную для абонента аутентификацию и авторизацию в сети, но и сохранить работоспособность наших текущих и перспективных моделей монетизации. Напомню, что именно монетизация (через рекламу и дополнительные услуги) позволяет нам предоставлять доступ к сети бесплатно.
Тип учетных данных выбираем между парой логин/пароль и сертификатом X.509. На первый взгляд, использование сертификата выглядит более надежным, современным и перспективным. Например, можно организовать применение этого же сертификата для аутентификации в приложениях (даже в нашем собственном личном кабинете), причем прозрачно. Однако вопрос управления пользовательскими сертификатами в масштабе большой публичной сети (а не ограниченной корпоративной, когда есть физический доступ к устройствам) выглядит нетривиальным, особенно с учетом различия в реализациях производителями.
Поэтому делаем выбор в пользу пары логин/пароль. Метод — TTLS, так как широко используется для международного межоператорского Wi-Fi роуминга. Для аутентификации сервера и исключения возможности подключения к поддельным SSID (есть нюансы, рассмотрим их в разделе про безопасность) выпустим ключ и сертификат, закрытую часть которого разместим на AAA сервере, а открытую включим в профиль. Таким образом на этапе подключения будет происходить аутентификация сервера авторизации.
4. Провиженинг
Самый сложный вопрос, который до конца не закрыт. Нам необходимо обеспечить передачу учетных данных на устройства пользователя с минимальным количеством действий со стороны владельца, а лучше вообще прозрачно для него. Необходимо обеспечить одинаковый флоу для владельцев iOS и Android, где не только от версии к версии ОС, но и у устройств разных производителей настройка учетных данных может кардинально отличаться. Универсального решения, к сожалению, пока нет. У нас были идеи переложить функционал провиженинга и управления подключением к сети Wi-Fi на мобильное приложение, как универсальное решение, но мы столкнулись с ограничениями обеих платформ.
В данный момент мы продолжаем исследования, и, возможно, в финальной версии будут изменения в процедуре провиженинга или части функционала. Мы по-прежнему считаем идею использования приложения наиболее перспективной и удобной для пользователя и продолжаем эту идею развивать.
Но с чего-то нужно начинать, и так как на всех iOS-устройствах процесс провиженинга унифицирован, мы начали внедрение Hotspot 2.0 именно с гаджетов Apple. Нами был разработан web-сервис провиженинга. Приглашаем всех принять участие в открытом тестировании новой сети, подробные инструкции в конце статьи.
Про безопасность
Провиженинг сетей Wi-Fi и учетных данных с помощью профилей iOS — это только малая часть функционала MDM (Mobile Device Management). В руках злоумышленников функционал может привести к негативным последствиям для пользователей, вплоть до полного блокирования устройства или управления им третьими лицами. В частности, через профиль могут быть добавлены ограничения по установке/удалению приложений, злоумышленник может управлять установкой приложений, может направить трафик пользователя через свой прокси и т.д. Поэтому процесс установки профиля требует повышенного внимания пользователя — необходимо убедиться, что профиль выпустила доверенная компания.
Сейчас единственным прозрачным способом провиженинга iOS-устройств для работы в Hotspot 2.0-сетях является установка профилей. Мы хотели бы дать несколько рекомендаций по установке профилей, которые будут полезны не только в контексте настройки Wi-Fi:
- Установку профилей необходимо производить только из надежного источника. Надежность источника подтверждается валидной цифровой подписью. Валидная подпись в окне установки профиля обозначается зеленой надписью – Проверен или Verified. Можно так же обратить внимание на домен для которого выпущен сертификат. В нашем случае это hotspot.wi-fi.ru. В дальнейшем может быть произвольным в домене wi-fi.ru. Не рекомендуется устанавливать профиль с не валидной подписью.

Пример валидного и невалидного профиля

- Перед установкой сертификата вы видите, какие изменения и настройки будут сделаны. Наш профиль содержит настройки Wi-Fi-сети и Intermediate-сертификат для аутентификации RADIUS-сервера. Во вкладке «Более подробно» можно посмотреть детальную информацию о настройках Wi-Fi-сети и устанавливаемых сертификатах. Не рекомендуется устанавливать профиль, где в настройках Wi-Fi сети установлен «Прокси».
- Крайне не рекомендуется устанавливать сертификаты содержащие другие настройки, особенно SCEP — это позволит злоумышленникам получить полный контроль над устройством установив любой профиль без вашего участия.

Пример профиля с различными ограничениями функционала мобильного устройства
- Для Android-устройств основная рекомендация — в настройках Wi-Fi-сети убедиться, что используется сертификат сервера, иначе будет возможность подключения к поддельным SSID. В отличии от iOS, Android предоставляет пользователю больше свободы, но и ответственности — есть возможность отключать/использовать сертификат вручную. Поэтому лучше положиться на автоматический провиженинг и руками настройки не изменять.

Открытое тестирование
На данный момент Hotspot 2.0 еще не достигла своей зрелости и находится на этапе развития и становления, но мы хотим быть компанией, которая сделает первый шаг в популяризации и внедрении этой новой технологии в России. Для нас, как для оператора популярного городского сервиса, это способ повысить безопасность публичного Wi-Fi. По сути, разворачивая Hotspot 2.0 на сеть MT_FREE в Московском метро, мы создаем крупнейшую в Европе публичную сеть Wi-Fi с шифрованным соединением на уровне радио.
Мы запускаем открытое тестирование технологии Hotspot 2.0 на сети в метро для пользователей iOS. Для этого необходимо пройти процедуру провиженинга, перейдя по ссылке wi-fi.ru/hotspot и установив профиль. После этого подключение к сети Wi-Fi и доступ к безопасной среде будет происходить автоматически, как только ваше устройство появится в зоне действия MT_FREE (и, как следствие, MT).
Мы сообщим о результатах открытого тестирования в отдельном тексте. Поэтому огромная просьба: активно участвовать в тестировании и присылать отзывы по работе новой сети на hotspot@maximatelecom.ru.
Инструкция по установке профиля
Ссылку с сервисом генерации профилей wi-fi.ru/hotspot необходимо открывать только с iOS устройств и в браузере Safari. Это ограничение операционной системы. Такой сценарий провиженинга используем только на время открытого тестирования сети. В ближайшее время мы планируем выпустить уже целевой вариант с использованием приложения.
Флоу установки профиля для iOS до версии 11 включительно и начиная с 12 различаются. Ниже представлен флоу для версий до 11 включительно:


Отличия во флоу установки профиля для iOS с версии 12:


Инструкция по удалению профиля
Профиль генерируется со сроком действия до 30 ноября 2019 года. По истечении этого срока профиль удаляется автоматически без действий со стороны пользователя. Если возникла необходимость удаления профиля раньше, это можно сделать вручную.

- Блог компании MaximaTelecom
- Сетевые технологии
- Беспроводные технологии