Passpoint (точка доступа 2.0)

PassPoint является Wi-Fi Alliance (WFA) протокол , который позволяет мобильным устройствам обнаруживать и аутентифицировать к Wi-Fi точек доступа , которые предоставляют доступ в Интернет.

Поддержка устройства

Для поддержки PassPoint, производителям устройств необходимо реализовать hardware/interfaces/wifi/supplicant/1.0 - hardware/interfaces/wifi/supplicant/1.0 или выше. Wi-Fi язык дизайна интерфейса HAL (HIDL) предусмотрено в проекте Android Open Source (AOSP) определяет HAL для просителя. Соискатель обеспечивает поддержку стандарта 802.11u, в частности, функции обнаружения и выбора сети, такие как Generic Advertising Service (GAS) и протокол сетевых запросов доступа (ANQP).

Реализация

Android 11 или выше

Для поддержки Passpoint на устройствах под управлением Android 11 или выше производители устройств должны обеспечить поддержку прошивки 802.11u. Все остальные требования для поддержки Passpoint включены в AOSP.

Android 10 или ниже

Для устройств под управлением Android 10 или ниже производители устройств должны предоставить поддержку как фреймворка, так и HAL / прошивки:

  • Платформа: включить точку доступа (требуется флаг функции)
  • Прошивка: Поддержка 802.11u

Для поддержки Passpoint реализуйте Wi-Fi HAL и включите флаг функции для Passpoint. В device.mk , расположенной в device/<oem>/<device> , изменить PRODUCT_COPY_FILES переменную окружения , чтобы включить поддержку PassPoint функции:

PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml

Все остальные требования для поддержки Passpoint включены в AOSP.

Проверка

Чтобы проверить свою реализацию функции Passpoint, используйте набор модульных и интеграционных тестов, представленных в Android Comms Test Suite (ACTS).

Модульные тесты

Запустите следующие модульные тесты пакета Passpoint.

Сервисные испытания:

atest com.android.server.wifi.hotspot2

Управленческие тесты:

atest android.net.wifi.hotspot2

Интеграционные тесты (ACTS)

АКТОВ PassPoint набор тестов, который находится в tools/test/connectivity/acts/tests/google/wifi/WifiPasspointTest.py , реализует набор функциональных тестов.

Подготовка точки доступа R1

Android поддерживает Passpoint R1, начиная с Android 6.0, что позволяет предоставлять учетные данные Passpoint R1 (выпуск 1) посредством загрузки через Интернет специального файла, который содержит информацию о профиле и учетных данных. Клиент автоматически запускает специальный установщик для информации Wi-Fi и позволяет пользователю просматривать части информации перед тем, как принять или отклонить контент.

Информация о профиле, содержащаяся в файле, используется для сопоставления с данными, полученными из точек доступа с поддержкой точки доступа, а учетные данные автоматически применяются для любой сопоставленной сети.

Эталонная реализация Android поддерживает EAP-TTLS, EAP-TLS, EAP-SIM, EAP-AKA и EAP-AKA '.

Механизм загрузки

Файл конфигурации точки доступа должен быть размещен на веб-сервере и должен быть защищен с помощью TLS (HTTPS), поскольку он может содержать пароль в открытом виде или данные закрытого ключа. Контент состоит из обернутого многостраничного текста MIME, представленного в UTF-8 и закодированного в кодировке base64 согласно разделу 6.8 RFC-2045.

Следующие поля заголовка HTTP используются клиентом для автоматического запуска установщика Wi-Fi на устройстве:

  • Content-Type должен быть установлен на application/x-wifi-config .
  • Content-Transfer-Encoding должен быть установлен в base64 .
  • Content-Disposition не должен быть установлен.

HTTP-метод, используемый для получения файла, должен быть GET. Каждый раз, когда HTTP-запрос GET от браузера получает ответ с этими заголовками MIME, запускается установочное приложение. Загрузка должна запускаться нажатием на элемент HTML, например кнопку (автоматические перенаправления на URL-адрес загрузки не поддерживаются). Такое поведение характерно для Google Chrome; другие веб-браузеры могут предоставлять или не предоставлять аналогичные функции.

Состав файла

В кодировке Base64 содержание должно состоять из содержимого MIME из нескольких частей с Content-Type из multipart/mixed . Следующие части составляют отдельные части составного содержимого.

Часть Content-Type (без кавычек) Необходимый Описание
Профиль application/x-passpoint-profile Всегда ОМА-DM SyncML отформатирован полезная нагрузка , содержащая PassPoint R1 PerProviderSubscription отформатирован MO для HomeSP и Credential .
Сертификат доверия application/x-x509-ca-cert Требуется для EAP-TLS и EAP-TTLS Единая полезная нагрузка сертификата X.509v3 в кодировке base64.
EAP-TLS ключ application/x-pkcs12 Требуется для EAP-TLS Структура PKCS # 12 ASN.1 в кодировке base64, содержащая цепочку сертификатов клиента, по крайней мере, с сертификатом клиента и связанным с ним закрытым ключом. Контейнер PKCS 12, а также закрытый ключ и сертификаты должны быть в виде открытого текста без пароля.

Секции профиля должны быть переданы в кодировке Base64, UTF-8 кодировкой текста XML , который определяет часть HomeSP и Credential поддерев в технической спецификации PassPoint R2 версии 1.0.0, раздел 9.1.

Узел верхнего уровня должен быть MgmtTree и непосредственный подузел должен быть PerProviderSubscription . Пример файла XML появится в примере профиля OMA-DM XML .

Следующие узлы поддерева используются при HomeSP :

  • FriendlyName : Должен быть установлен; используется как отображаемый текст
  • FQDN : Обязательно
  • RoamingConsortiumOI

Следующие узлы поддерева используются при Credential :

  • Realm : Должен быть непустой строкой
  • UsernamePassword : Требуется для EAP-TTLS со следующими узлами , установленными:

    • Username : Строка , которая содержит имя пользователя
    • Password : Base64 строка в кодировке (набор для cGFzc3dvcmQ= , то в кодировке base64 строка для «пароль», в примере ниже)
    • EAPMethod/EAPType : Должен быть установлен в 21
    • EAPMethod/InnerMethod : Должен быть установлен в одном из PAP , CHAP , MS-CHAP или MS-CHAP-V2
  • DigitalCertificate : Требуется для EAP-TLS. Необходимо установить следующие узлы:

    • CertificateType установлен x509v3
    • CertSHA256Fingerprint набор для правильного SHA-256 дайджест сертификата клиента в ключе MIME разделе EAP-TLS
  • SIM : Требуется для EAP-SIM, EAP-AKA, и EAP-AKA. EAPType поле должно быть установлено в соответствующий тип EAP и IMSI , должно совпадать с IMSI одной из SIM - карт , установленных в устройстве в момент инициализации. Строка IMSI может состоять либо полностью из десятичных цифр, чтобы обеспечить полное совпадение, либо из нуля или более десятичных цифр, за которыми следует звездочка (*), чтобы ослабить соответствие IMSI только префиксу. Например, строка IMSI 123 * соответствует любой SIM-карте с IMSI, начинающимся с 123.

В Android 11 представлены возможности, которые делают подготовку Passpoint R1 более гибкой.

Отдельное доменное имя для аутентификации, авторизации и учета (AAA)

PassPoint сетевых администраторов , которые требуют домена AAA имя указано независимо от полного доменного имени (FQDN) рекламируемой сетью через Access Network Query Protocol (ANQP) можно указать разделенных точкой с запятой список полных доменных имен в новом узле под Extension поддерева . Это необязательный узел, и устройства под управлением Android версии 10 или ниже игнорируют этот узел.

  • Android : Android поддерево расширение

    • AAAServerTrustedNames : Требуется для сервера AAA доверенных имен со следующими узлами , установленными:

      • FQDN : Строка , которая содержит сервер AAA доверенных имен. Используйте точки с запятой для разделения доверенных имен. Например, example.org;example.com .
Самозаверяющие частные корневые центры сертификации
Сетевые администраторы точек доступа, которые управляют своими сертификатами изнутри, могут предоставлять профили с частным самозаверяющим центром сертификации для аутентификации AAA.
Разрешить установку профилей без сертификата корневого центра сертификации
Сертификат корневого ЦС, прикрепленный к профилю, используется для аутентификации сервера AAA. Сетевые администраторы точки доступа, которые хотят полагаться на общедоступные доверенные корневые центры сертификации для аутентификации своих серверов AAA, могут предоставлять профили без сертификата корневого центра сертификации. В этом случае система проверяет сертификаты сервера AAA на соответствие общедоступным сертификатам корневого центра сертификации, установленным в хранилище доверенных сертификатов.

Подготовка точки доступа R2

В Android 10 появилась поддержка функций Passpoint R2. Passpoint R2 реализует онлайн-регистрацию (OSU), стандартный метод предоставления новых профилей Passpoint. Android 10 и выше поддерживает создание профилей EAP-TTLS с использованием протокола SOAP-XML через открытый OSU ESS.

Для поддерживаемых функций Passpoint R2 требуется только справочный код AOSP, никаких дополнительных драйверов или поддержки микропрограмм не требуется). Справочный код AOSP также включает реализацию по умолчанию пользовательского интерфейса Passpoint R2 в приложении «Настройки».

Когда Android обнаруживает точку доступа Passpoint R2, платформа Android:

  1. Отображает список поставщиков услуг, объявленных точкой доступа в средстве выбора Wi-Fi (в дополнение к отображению идентификаторов SSID).
  2. Предлагает пользователю выбрать одного из поставщиков услуг, чтобы настроить профиль точки доступа.
  3. Проводит пользователя через процесс настройки профиля точки доступа.
  4. Устанавливает полученный профиль Passpoint после успешного завершения.
  5. Связывается с сетью контрольной точки с помощью недавно подготовленного профиля контрольной точки.

Возможности Passpoint R3

В Android 12 представлены следующие функции Passpoint R3, которые улучшают взаимодействие с пользователем и позволяют сетям соответствовать местным законам:

Условия и положения
Принятие условий и положений требуется по закону в некоторых местах и ​​местах для обеспечения доступа к сети. Эта функция позволяет при развертывании сети заменять небезопасные перехватывающие порталы, использующие открытые сети, на безопасную сеть точек доступа. Уведомление отображается для пользователя, когда необходимо принять условия.
URL информации о объекте
Позволяет операторам сетей и площадкам предоставлять пользователю дополнительную информацию, такую ​​как карты мест проведения, каталоги, рекламные акции и купоны. Уведомление отображается пользователю, когда сеть подключена.

Другие особенности Passpoint

В Android 11 представлены следующие возможности Passpoint, которые улучшают взаимодействие с пользователем, энергопотребление и гибкость развертывания.

Срок действия и уведомление
Обеспечение сроков истечения срока действия в профилях позволяет платформе избежать автоматического подключения к точкам доступа с просроченными учетными данными, которые неизбежно завершатся ошибкой. Это предотвращает использование эфирного времени и экономит батарею и пропускную способность серверной части. Платформа отображает уведомление для пользователя, когда сеть, соответствующая их профилю, находится в пределах досягаемости и срок действия профиля истек.
Несколько профилей с одинаковым полным доменным именем
Операторы, которые развертывают сети точек доступа и используют несколько идентификаторов наземных мобильных сетей общего пользования (PLMN), могут предоставлять несколько профилей точек доступа с одним и тем же полным доменным именем, по одному для каждого идентификатора PLMN, который автоматически сопоставляется с установленной SIM-картой и используется для подключения к сети.

В Android 12 представлены следующие возможности Passpoint, которые улучшают взаимодействие с пользователем, энергопотребление и гибкость развертывания:

Украшенный префикс идентичности
При аутентификации в сетях с украшением приставкой, декорированное префикс идентичности позволяет сетевым операторам обновить идентификатор доступа к сети (NAI) для выполнения явного маршрута через несколько прокси - серверов внутри в сети AAA (см RFC 7542 ). Android 12 использует эту функцию в соответствии с спецификацией WBA для расширения PPS-MO .
Предстоящая деаутентификация
Позволяет операторам сети сигнализировать устройству о том, что служба недоступна для учетных данных, используемых для аутентификации в сети, в течение определенного времени (указанного с помощью задержки тайм-аута). После получения этого сигнала устройства не будут пытаться повторно подключиться к сети с теми же учетными данными, пока не истечет время задержки. Напротив, устройства, которые не поддерживают эту функцию, могут неоднократно пытаться повторно подключиться к сети, пока служба недоступна.

Примеры XML-профилей OMA-DM PerProviderSubscription-MO

Профиль с учетными данными имени пользователя и пароля (EAP-TTLS)

В следующем примере демонстрируется профиль для сети с:

  • Сеть дружественное имя набора в Example Network
  • FQDN набор для hotspot.example.net
  • OI консорциума роуминга (для роуминга)
  • Credential Превед user , пароль password закодированы Base64, и набор царств к example.net
  • Метод EAP набор для 21 (EAP-TTLS)
  • Фаза-2 внутренний набор способ MS-CHAP-V2
  • Альтернативные доменные имена AAA , установленные в trusted.com и trusted.net
<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>i001</NodeName>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>Example Network</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>hotspot.example.net</Value>
        </Node>
        <Node>
          <NodeName>RoamingConsortiumOI</NodeName>
          <Value>112233,445566</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>example.net</Value>
        </Node>
        <Node>
          <NodeName>UsernamePassword</NodeName>
          <Node>
            <NodeName>Username</NodeName>
            <Value>user</Value>
          </Node>
          <Node>
            <NodeName>Password</NodeName>
            <Value>cGFzc3dvcmQ=</Value>
          </Node>
          <Node>
            <NodeName>EAPMethod</NodeName>
            <Node>
              <NodeName>EAPType</NodeName>
              <Value>21</Value>
            </Node>
            <Node>
              <NodeName>InnerMethod</NodeName>
              <Value>MS-CHAP-V2</Value>
            </Node>
          </Node>
        </Node>
      </Node>
      <Node>
        <NodeName>Extension</NodeName>
        <Node>
            <NodeName>Android</NodeName>
            <Node>
                <NodeName>AAAServerTrustedNames</NodeName>
                <Node>
                    <NodeName>FQDN</NodeName>
                    <Value>trusted.com;trusted.net</Value>
                </Node>
            </Node>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

Профиль с учетными данными цифрового сертификата (EAP-TLS)

В следующем примере демонстрируется профиль для сети с:

  • Сеть дружественный набор имен для GlobalRoaming
  • FQDN набор для globalroaming.net
  • OI Консорциума роуминга (для роуминга)
  • Realm набор для users.globalroaming.net
  • Учетные данные с цифровым сертификатом с указанным отпечатком пальца
<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>i001</NodeName>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>GlobalRoaming</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>globalroaming.net</Value>
        </Node>
        <Node>
          <NodeName>RoamingConsortiumOI</NodeName>
          <Value>FFEEDDCC0,FFEEDDCC1,009999,008888</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>users.globalroaming.net</Value>
        </Node>
        <Node>
          <NodeName>DigitalCertificate</NodeName>
          <Node>
            <NodeName>CertificateType</NodeName>
            <Value>x509v3</Value>
          </Node>
          <Node>
            <NodeName>CertSHA256Fingerprint</NodeName>
            <Value>0ef08a3d2118700474ca51fa25dc5e6d3d63d779aaad8238b608a853761da533</Value>
          </Node>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

Профиль с учетными данными SIM-карты (EAP-AKA)

В следующем примере демонстрируется профиль для сети с:

  • Сеть дружественного имя набор в Purple Passpoint
  • FQDN набор для wlan.mnc888.mcc999.3gppnetwork.org
  • SIM - удостоверение с PLMN идентификатором 999888
  • Метод EAP набор для 23 (EAP-AKA)
<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>i001</NodeName>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>Purple Passpoint</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>purplewifi.com</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>wlan.mnc888.mcc999.3gppnetwork.org</Value>
        </Node>
        <Node>
          <NodeName>SIM</NodeName>
          <Node>
            <NodeName>IMSI</NodeName>
            <Value>999888*</Value>
          </Node>
          <Node>
            <NodeName>EAPType</NodeName>
            <Value>23</Value>
          </Node>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

Консультации по авторизации

Устройства под управлением Android 8.x или Android 9 с профилем EAP-SIM Passpoint R1, EAP-AKA или EAP-AKA не будут автоматически подключаться к сети Passpoint. Эта проблема затрагивает пользователей, операторов и службы, уменьшая разгрузку Wi-Fi.

Сегмент Влияние Размер удара
Операторы связи и поставщики услуг точек доступа Повышенная нагрузка на сотовую сеть. Любой оператор связи, использующий Passpoint R1.
Пользователи Упущенная возможность автоматического подключения к точкам доступа Wi-Fi оператора связи, что привело к увеличению затрат на передачу данных. Любой пользователь с устройством, работающим в сети оператора связи, поддерживающей Passpoint R1.

Причина отказа

Passpoint определяет механизм сопоставления объявленного поставщика услуг (ANQP) с профилем, установленным на устройстве. Следующие правила сопоставления для EAP-SIM, EAP-AKA и EAP-AKA 'представляют собой частичный набор правил, направленных на сбои EAP-SIM / AKA / AKA':

If the FQDN (Fully Qualified Domain Name) matches
    then the service is a Home Service Provider.
Else: If the PLMN ID (3GPP Network) matches
    then the service is a Roaming Service Provider.

Второй критерий был изменен в Android 8.0:

Else: If the PLMN ID (3GPP Network) matches AND the NAI Realm matches
    then the service is a Roaming Service Provider.

С этой модификацией система не обнаружила совпадений с ранее работавшими поставщиками услуг, поэтому устройства Passpoint не подключались автоматически.

Обходные пути

Чтобы обойти проблему измененных критериев сопоставления, операторы связи и поставщики услуг должны добавить область идентификаторов доступа к сети (NAI) к информации, опубликованной точкой доступа точки доступа.

Поставщикам сетевых услуг рекомендуется реализовать обходной путь на стороне сети, чтобы ускорить развертывание. Обходной путь на стороне устройства зависит от OEM-производителей, которые получат список изменений (CL) от AOSP, а затем обновят устройства на месте.

Сетевое исправление для операторов связи и поставщиков услуг Passpoint

Обходной путь на стороне сети требует перенастройки сети для добавления элемента ANQP области NAI, как указано ниже. Спецификации Passpoint не требуют элемента ANQP области NAI, но добавление этого свойства соответствует спецификациям Passpoint, поэтому совместимые со спецификацией клиентские реализации не должны нарушаться.

  1. Добавьте элемент ANQP области NAI.
  2. Установить царство подполе NAI , чтобы соответствовать Realm профиля , установленного на устройстве.
  3. Установите следующую информацию для каждого типа EAP:

    • EAP-TTLS: Набор EAPMethod(21) и поддерживаемые типы внутренних аутентификации ( PAP , CHAP , MS-CHAP или MS-CHAP-V2 )
    • Протокол EAP-TLS: Установить EAPMethod(13)
    • EAP-SIM: Набор EAPMethod(18)
    • EAP-AKA: Set EAPMethod(23)
    • EAP-AKA ": Set EAPMethod(50)

Исправление устройства / AOSP для OEM-производителей

Для реализации устройства на сторону обходного пути, производители должны выбрать патч CL AOSP / 718508 . Этот патч может быть применен к следующим выпускам (не относится к Android 10 и выше):

  • Android 9
  • Android 8.x

Когда патч подбирается, OEM-производителям необходимо обновить устройства в полевых условиях.