Logowanie do portalu przechwytującego to proces, w którym po podłączeniu do Wi‑Fi najpierw widzisz stronę powitalną lub formularz logowania, a dopiero potem otrzymujesz dostęp do internetu. Taki portal przechwytujący może wymagać akceptacji regulaminu, podania e‑maila, płatności lub jedynie kliknięcia przycisku „Połącz”. Jeśli chcesz wiedzieć, jak to działa technicznie, co z tym wspólnego ma Android, ChromeOS i projekty WiFi4EU, oraz jak to bezpiecznie skonfigurować – przeczytaj dalszą część artykułu.
Co to jest portal przechwytujący?
W hotelach, na lotniskach, w samolotach czy w miejskich hotspotach często spotykasz tę samą sytuację: sieć Wi‑Fi jest widoczna, urządzenie łączy się z punktem dostępowym, ale strony www nie otwierają się od razu. Przeglądarka zamiast tego pokazuje stronę logowania lub ekran z warunkami korzystania – to właśnie portal przechwytujący. Działa on jak filtr między Twoim urządzeniem a internetem, dopóki nie przejdziesz krótkiego procesu uwierzytelniania.
Od strony sieci portal jest elementem logiki w kontrolerze Wi‑Fi, routerze lub zewnętrznym serwerze, który przekierowuje pierwsze żądania HTTP/HTTPS na stronę logowania. Sieć dopuszcza wtedy tylko ruch do tego serwera, a pozostałe pakiety blokuje albo przekierowuje, aż system uzna, że użytkownik jest „zalogowany”. Dopiero po pozytywnej autoryzacji reguły zapory i serwera DHCP/NAT zmieniają się tak, by ruch do internetu był dozwolony.
Portal przechwytujący nie jest stroną banku ani komunikatora – to element sieciowy kontrolujący dostęp do internetu przez publiczne lub firmowe Wi‑Fi.
W projektach dotowanych, takich jak WiFi4EU, portal pełni również funkcję rozliczeniową: rejestruje liczbę realnych użytkowników, czas sesji i wyświetla obowiązkowy element identyfikacji wizualnej programu.
Jak działa logowanie do portalu przechwytującego na Androidzie?
Android od wersji 5.0 ma wbudowany mechanizm wykrywania portalu przechwytującego. Gdy telefon łączy się z nową siecią, moduł Network Stack uruchamia usługę NetworkMonitor, która sprawdza, czy za połączeniem kryje się standardowy dostęp do internetu, czy też konieczne jest logowanie. To właśnie ta logika decyduje, czy zobaczysz powiadomienie „Zaloguj się do sieci Wi‑Fi”, czy połączenie zadziała od razu.
Do Androida 10 włącznie rozpoznawanie takiej sieci opierało się na sondach HTTP wysyłanych do specjalnych adresów kontrolnych (np. connectivitycheck.gstatic.com). System wysyłał prosty, nieszyfrowany request i oczekiwał statusu 204 lub 200. Jeśli zamiast odpowiedzi dostawał przekierowanie HTTP, zakładał, że sieć jest portalem przechwytującym i otwierał aplikację logowania.
Jak działa Captive Portal API?
Od Androida 11 logika została rozbudowana o Captive Portal API, które pozwala sieciom wprost poinformować urządzenie, że wymagają logowania. Protokół wykorzystuje opcję DHCP 114 opisaną w dokumencie RFC7710bis. Punkt dostępowy podczas przydziału adresu IP przekazuje w tej opcji adres URL interfejsu API portalu.
Telefon po połączeniu pyta ten adres o plik JSON. W odpowiedzi otrzymuje m.in. pola captive, user-portal-url, venue-info-url oraz seconds-remaining. Jeśli wartość „captive” jest ustawiona na true, system od razu wie, że ma wyświetlić interfejs logowania, bez polegania na mniej pewnych sondach HTTP/HTTPS. Jeśli jest false, Android uznaje, że użytkownik jest już online i kontynuuje standardową weryfikację łączności.
Captive Portal API sprawia, że wykrywanie portalu przechwytującego jest stabilniejsze, bo sieć sama deklaruje, czy wymaga logowania i podaje właściwy adres URL portalu.
Jak wygląda logowanie z użyciem niestandardowych kart Chrome?
Od Androida 12 pojawił się kolejny element układanki: logowanie w portalu może odbywać się nie w prostej aplikacji WebView, ale w tzw. niestandardowej karcie Chrome (custom tab). Gdy w odpowiedzi JSON pojawia się klucz x-android-use-custom-tabs z numerem wersji modułu CaptivePortalLogin – np. 361335020 wydanym w styczniu 2026 roku – urządzenie otwiera portal właśnie w tym trybie.
Karta niestandardowa korzysta z tej samej przeglądarki, której używasz na co dzień, więc masz autouzupełnianie haseł i danych płatniczych, obsługę DRM (np. Widevine) oraz pełną integrację z VPN i prywatnym DNS. Dla operatora portalu oznacza to mniej problemów z przekierowaniami i większą szansę, że logowanie powiedzie się za pierwszym razem.
Jak portal przechwytujący jest wykrywany i zarządzany w ChromeOS?
Na urządzeniach z ChromeOS logika jest podobna, ale administrator ma więcej kontroli nad tym, jak zachowa się system w zarządzanych sieciach firmowych lub szkolnych. W publicznych hotspotach wykrywanie portalu domyślnie jest aktywne, natomiast w sieciach zarządzanych bywa wyłączone, by uniknąć konfliktów z zaporami i serwerami proxy.
Jeśli wykrywanie jest włączone, po połączeniu z Wi‑Fi użytkownik natychmiast dostaje powiadomienie „Zaloguj się do sieci” i ChromeOS automatycznie otwiera stronę logowania w przeglądarce. Gdy wykrywanie jest wyłączone, użytkownik musi sam uruchomić przeglądarkę i przejść do dowolnej strony, aby portal go przekierował.
Jak skonfigurować wykrywanie portalu przechwytującego w konsoli Google?
Administrator, który zarządza Chromebookami w firmie lub szkole, może włączyć lub wyłączyć wykrywanie portalu bezpośrednio w narzędziu Konsola administracyjna Google. Zmiany są dystrybuowane automatycznie na wszystkie przypisane urządzenia przez chmurę. Aby ustawić to poprawnie, trzeba wykonać kilka kroków:
Najpierw zaloguj się na konto z uprawnieniami administratora i przejdź do sekcji konfiguracji sieci:
- Zaloguj się do Konsoli administracyjnej Google na konto administratora.
- Przejdź do sekcji Urządzenia, a potem wybierz pozycję Sieci.
- W razie potrzeby wybierz z boku jednostkę organizacyjną, dla której chcesz zmienić ustawienia.
- Na liście profili Wi‑Fi wskaż sieć, która ma używać portalu przechwytującego.
- Przewiń do sekcji „Ustawienia portalu przechwytującego”.
- Wybierz, czy wykrywanie ma być wyłączone (domyślnie) czy włączone, z opcjonalnym ograniczeniem do sond HTTP.
- Zapisz ustawienia, aby wysłać je na urządzenia.
Jeśli po tych zmianach użytkownicy nadal widzą komunikaty „Sieć niedostępna” lub „Urządzenie nie może połączyć się z żadną siecią bezprzewodową”, warto sprawdzić konfigurację zapory. Hosty wykorzystywane przez ChromeOS do sond HTTP (port 80) muszą być dostępne, inaczej system uzna, że nie ma łączności z internetem.
Jak przygotować portal przechwytujący zgodny z WiFi4EU?
Program WiFi4EU narzuca konkretne wymagania wobec portalu uwierzytelniania. Sieć musi mieć własną stronę logowania, obsługiwany portal przechwytujący oraz element identyfikacji wizualnej, który jest wstawiany przez specjalny snippet JavaScript. Dopiero gdy co najmniej 10 różnych urządzeń zaloguje się do tak przygotowanej sieci, INEA uznaje instalację za działającą.
W rozwiązaniach takich jak cnMaestro i punkty dostępowe cnPilot serii E, portal budujesz w kreatorze Guest Access Portal. W części konfiguracji oznaczonej jako WiFi4EU wskazujesz język, tryb testowy, logo i przekierowania, a w kodzie strony – lub w szablonie systemu – musisz zadbać o instalację snippetu JavaScript i znacznika banera identyfikacyjnego.
Jak dodać snippet WiFi4EU?
Specyfikacja wymaga, aby fragment JavaScript odpowiedzialny za pomiary pojawił się na samej górze sekcji
strony portalu. Dwa skrypty – deklaracyjny i zewnętrzny – definiują zmienne czasowe i identyfikator sieci oraz ładują plik wifi4eu.min.js z domeny Komisji Europejskiej:
Instalacja wygląda następująco:
- tuż po znaczniku <head> umieszczasz blok, który ustawia zmienne wifi4euTimerStart, wifi4euNetworkIdentifier i wifi4euLanguage,
- pod nim wstawiasz znacznik <script> z adresem https://collection.wifi4eu.ec.europa.eu/wifi4eu.min.js,
- kod nie musi pojawiać się w treści strony – kluczowe jest jego położenie w nagłówku, aby pomiar czasu ładowania był poprawny.
- w wielu gotowych portalach (np. cnMaestro) ten snippet jest już wbudowany – wtedy administrator musi jedynie dostarczyć UUID sieci wygenerowany na podstawie adresu portalu i zakresu IP, zwykle 0.0.0.0/0.
Jeśli podczas weryfikacji otrzymasz komunikat, że nie wykryto poprawnej identyfikacji wizualnej WiFi4EU lub wymaganej liczby użytkowników, problem często leży nie w samym snippecie, lecz w braku znacznika banera na stronie.
Jak dodać znacznik identyfikacji wizualnej WiFi4EU?
Sercem wymogów graficznych jest prosty element HTML: obrazek z identyfikatorem wifi4eubanner. Snippet wyszukuje na stronie element img o takim id i zamienia go na oficjalny baner programu, w języku wskazanym przez zmienną wifi4euLanguage. Aby portal spełniał wymagania, ten element musi być widoczny od razu po załadowaniu strony.
Podstawowy kod wygląda tak:
Instalacja banera WiFi4EU wymaga dodania elementu: <img id=”wifi4eubanner”> w widocznym miejscu strony, z nadaną szerokością i wysokością przez CSS.
Autorzy wytycznych podają kilka warunków dla tego znacznika: nie może być zakryty innymi elementami, nie może mieć ustawionej przezroczystości (opacity < 1), musi znajdować się w widocznej części okna przeglądarki i mieć zdefiniowane wymiary. Resztę – czyli załadowanie właściwej grafiki – wykonuje już za Ciebie skrypt wifi4eu.min.js.
Jak dobrać rozmiar i położenie banera?
Następny etap to stylowanie banera tak, by spełniał minimalne proporcje względem szerokości okna. Wytyczne WiFi4EU mówią wprost: przy szerokości widocznego obszaru poniżej 600 px baner powinien zajmować co najmniej 90% szerokości. Dla okna o szerokości 600 px i więcej minimalna wymagana szerokość to 50% widocznego obszaru.
Te proporcje ustawiasz już po stronie CSS, np. definiując dla #wifi4eubanner szerokość w procentach i wysokość dobraną tak, by zachować naturalne proporcje obrazka. Umieszczenie banera nad formularzem logowania lub przyciskami zgody na regulamin ułatwia też weryfikację przez INEA, bo element jest od razu widoczny.
Jak odróżnić legalny portal przechwytujący od ataku?
Mechanizm portalu przechwytującego jest użyteczny, ale bardzo podobny do technik stosowanych przez złośliwe oprogramowanie, zwłaszcza na Androidzie. Przykładowo zagrożenie wykrywane jako Android/Spy.Agent.SI podszywa się pod instalator Flash Player, uzyskuje uprawnienia administratora, a następnie wyświetla ofierze fałszywe ekrany logowania do aplikacji bankowych. Zamiast klasycznego portalu sieciowego pojawia się nakładka na ekran, która blokuje urządzenie do momentu wpisania danych.
Po podaniu loginu i hasła złośliwy kod przechwytuje je i wysyła na serwer przestępców. Dodatkowo, dzięki dostępowi do wiadomości SMS, trojan odczytuje kody autoryzacyjne do przelewów, co umożliwia kradzież pieniędzy z konta. Taki scenariusz nie ma nic wspólnego z uczciwym portalem przechwytującym – choć z punktu widzenia użytkownika objawia się podobnie: ekranem wymagającym logowania.
Jak możesz się przed tym bronić? Podstawą jest instalowanie aplikacji wyłącznie z oficjalnych źródeł i zablokowanie opcji „nieznane źródła” w ustawieniach Androida. Warto też korzystać z renomowanego rozwiązania ochronnego, jak Eset czy inny znany producent, oraz zwracać uwagę, czy strona logowania faktycznie pochodzi z przeglądarki lub systemowego okna portalu, a nie z niejasnej aplikacji wyświetlanej w pełnym ekranie.
FAQ – najczęściej zadawane pytania
Co to jest portal przechwytujący Wi‑Fi?
To mechanizm sieciowy, który po połączeniu z punktem dostępowym przekierowuje pierwsze żądania na stronę powitalną lub formularz i blokuje dostęp do internetu, dopóki użytkownik się nie uwierzytelni.
Jak Android rozpoznaje sieć z portalem przechwytującym?
Android uruchamia usługę NetworkMonitor, która wysyła testowe zapytania do kontrolnych adresów i na podstawie odpowiedzi decyduje, czy wyświetli komunikat o konieczności logowania.
Czym jest Captive Portal API i jak działa?
To mechanizm od Androida 11, gdzie punkt dostępowy przekazuje w opcji DHCP 114 URL API portalu, a urządzenie pobiera JSON z polem 'captive’, co pozwala systemowi natychmiast rozpoznać wymóg logowania.
Jakie korzyści daje użycie niestandardowych kart Chrome przy logowaniu?
Custom tab korzysta z pełnej przeglądarki użytkownika, dzięki czemu działa autouzupełnianie, obsługa DRM, VPN i prywatny DNS, co zmniejsza problemy z przekierowaniami i poprawia skuteczność logowania.
Jak ChromeOS traktuje wykrywanie portalów w sieciach zarządzanych?
W ChromeOS administrator może wyłączyć automatyczne wykrywanie w sieciach firmowych lub szkolnych, a w publicznych hotspotach mechanizm domyślnie informuje o konieczności zalogowania i otwiera stronę logowania.
Jak włączyć lub wyłączyć wykrywanie portalu przechwytującego dla Chromebooków?
W Konsoli administracyjnej Google należy wejść do Urządzeń → Sieci, wybrać profil Wi‑Fi, odnaleźć ustawienia portalu przechwytującego i zapisać zmiany, które zostaną rozesłane na urządzenia.
Jak przygotować portal zgodny z WiFi4EU?
Portal musi zawierać wymagany snippet JavaScript w nagłówku oraz widoczny element banera z id 'wifi4eubanner’, a co najmniej 10 różnych urządzeń musi się zalogować, by instalacja została uznana za działającą.
Jak odróżnić legalny portal od złośliwej nakładki na Androidzie?
Sprawdź, czy ekran logowania pochodzi z systemowego okna przeglądarki, instaluj aplikacje tylko z oficjalnych źródeł i używaj renomowanego antywirusa, aby uniknąć fałszywych pełnoekranowych nakładek.