Параметры портала авторизации


10

Существует несколько параметров портала, которые можно применить к устройству Android, settings put globalнаиболее известным из которых является

settings put global captive_portal_detection_enabled 0

полностью отключить проверку портала в неволе (для Android <8). Может ли кто-то объяснить, как использовать другие - например, чтобы определить «пользовательский сервер портала в неволе для фольги»? Например, нельзя просто сделать

settings put global captive_portal_server example.com

так как это в большинстве случаев приведет к окончательному сбою проверки портала в неволе (предыстория: при этом проверка портала создаст URL-адрес http://example.com/generate_204и проверит его, ожидая определенного ответа).

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

Примеры (если я правильно понял):

  • captive_portal_mode (Android 8+?):
    • 0: Не пытайтесь обнаружить плененные порталы
    • 1: Предложить пользователю войти в систему
    • 2: Немедленно отключиться от сети и не подключаться к ней в будущем
  • captive_portal_detection_enabled (Android <8?):
    • 0: Полностью отключить неавторизованные проверки портала
    • 1: Включить (по умолчанию)

Хотя эти примеры довольно просты: как использовать другие параметры?

Ответы:


12

Настройка поведения портала в неволе

  • captive_portal_detection_enabled (<= Android 7.1.1)
    • работает как описано в теле вопроса
  • captive_portal_mode (> = Android 7.1.2)
    • работает как описано в теле вопроса

Настройка URL портала (ов)

  • captive_portal_server (<= Android 6.0.1)
    • Сервер, на котором находится generate_204страница, используемая для внутреннего создания URL-адреса для обнаружения неавторизованного портала ( new URL("http", mServer, "/generate_204");устарел с Android 7.0, см. Ниже)
  • captive_portal_use_https (> = Android 7.0)
    • 0: Не используйте HTTPS для проверки сети
    • 1: Использовать HTTPS (по умолчанию)
  • captive_portal_http_url (> = Android 7.0)
    • URL-адрес, используемый для обнаружения неактивного портала HTTP - используется в паре с captive_portal_use_https(установлено на 0)
    • > = Android 7.1.1: ОС больше не добавляет generate_204URL-адреса автоматически, что дает возможность ввода URL-адреса
  • captive_portal_https_url (> = Android 7.0)
    • URL-адрес, используемый для обнаружения HTTPS-портала: использовать в паре с captive_portal_use_https(установить в 1)
    • > = Android 7.1.1: ОС больше не добавляет generate_204URL автоматически

Требование к используемому URL

Код ответа HTTP 204 («без содержимого») с сервера используется для проверки, дополнительный контент не требуется: возьмите, например, URL-адрес обнаружения по умолчанию, curl clients3.google.com/generate_204возвращает пустой и проверяет ответ HTTP, добавляя --write-out %{http_code}возврат 204. '

Небольшой список доступных URL-адресов серверов портала в материковом Китае (лично проверено)

https://captive.v2ex.co/generate_204 (размещено на v2ex.com)

https://connect.rom.miui.com/generate_204 (размещено на Xiaomi, по умолчанию используется в MIUI)

https://noisyfox.cn/generate_204 (размещено на noisyfox.cn)

https://www.google.cn/generate_204 & https://developers.google.cn/generate_204 (размещено в Google)

https://www.qualcomm.cn/generate_204 (размещено в Qualcomm)

Дальнейшие заметки

Источник также упоминает параметры captive_portal_user_agent, captive_portal_fallback_urlи captive_portal_other_fallback_urls:

  • captive_portal_fallback_url (> = Android 7.1.1) очевидно должен содержать один URL, а
  • captive_portal_other_fallback_urls содержит несколько дополнительных URL-адресов (список, разделенный запятыми, поэтому URL-адреса могут не содержать запятую).

Но я лично проводил тесты на Android 8.0.0, и оба запасных параметра не работают. Предполагая, что они являются объявлениями без реализации на данный момент.

Некоторые примеры настроек портала Android в Китае демонстрируют использование некоторых из указанных выше настроек:

настройки оболочки adb поставьте глобальный captive_portal_http_url http://www.google.cn/generate_204
настройки оболочки adb поставьте глобальный captive_portal_https_url https://www.google.cn/generate_204
настройки оболочки adb поставьте глобальный captive_portal_fallback_url http://www.google.cn/generate_204
настройки оболочки adb поставьте глобальные captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204

Зная, что «оловянные фольги» могут даже создать собственную службу проверки. С Apache:

RewriteEngine On
RewriteCond% {REQUEST_URI} / generate_204 $
RewriteRule $ / [R = 204, L]

или с Nginx:

location / generate_204 {return 204; }

Ссылки

1 , 2 (китайский), 3 (китайский)


1
Связанный пост - и, по крайней мере, с MM, используется следующий код: new URL("http", mServer, "/generate_204");mServerинициализацией, captive_portal_serverесли установлен) - так что это должно быть просто имя сервера (или IP) там (что, скорее всего, было одной из причин, по которой он не удался для меня) на устройстве ММ). Не уверен, когда это изменилось тогда - но из того, что вы пишете, вероятно, с N. Для 204 я нашел это - так что, похоже, я правильно предположил: только код 204, никакого контента.
Иззи

@Izzy К сожалению, 2 варианта отката не работают. Использование значения по умолчанию captive_portal_https_urlи размещение доступного URL-адреса captive_portal_fallback_urlне устраняет перекрестную пометку, и то же самое относится и к вставке captive_portal_other_fallback_urls- captive_portal_https_urlпрямая установка - единственный выход. Обратите внимание, что тесты проводятся под LTE вместо WiFi, потому что по какой-то причине мой школьный WiFi всегда будет направлять меня на портал авторизации, даже если я установлю совершенно недействительный URL.
Энди Ян

Эти резервные параметры могли быть введены в Oreo (обратите внимание, что мы посмотрели на код Oreo, чтобы найти их). Думаю, ты проверил нугу, верно? // Хорошая идея включить небольшой список серверов. AFAIK там тоже было g.cnдоступно;)
Иззи

1
@ Иззи О, да, я этого не понимал, я еще не прошивал ни одно из своих устройств с LOS15. Может быть, стоит проверить, и если это сработает, я обновлю и проконтролирую вас, чтобы очистить комментарии. Кроме того, сертификат HTTPS g.cn, как говорят, истек на материке, поэтому он больше не может использоваться для HTTPS. // Но подождите ... Исходный код 7.1.2 также содержит ссылку на captive_portal_fallback_url.
Энди Ян

Как и во многих новых функциях, ссылки иногда появляются до того, как функция будет завершена. И указанный файл в основном определяет константы, а не функциональность, верно?
Иззи
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.