Captive portal: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(76 versioni intermedie di 37 utenti non mostrate) | |||
Riga 1:
{{F|teorie dell'informatica|febbraio 2012}}
Un '''''Captive portal''''' è una [[pagina web]] che viene mostrata agli utenti di una [[rete di telecomunicazioni]] quando tentano di connettersi ad [[Internet]] mediante una richiesta [[http]] del loro [[browser]].<ref name=portal>[http://wiki.personaltelco.net/index.cgi/CaptivePortal Captive Portal]</ref> Questo meccanismo forza la visualizzazione di tale pagina (usualmente finalizzata all'autenticazione degli utenti) prima di poter accedere alle risorse internet, tipicamente la fruizione del [[web]].
== Funzionamento ==
Il termine "captive" (bloccato, chiuso), deriva dal fatto che la navigazione libera è disabilitata finché non si accettano determinate condizioni. Ciò si ottiene intercettando tutti i [[pacchetto (reti)|pacchetti]], relativi a indirizzi e [[porta (informatica)|porte]], fin dal momento in cui l'utente tenta l'accesso alla rete o apre il proprio browser per navigare. Il captive portal è presentato all'utente e solitamente allocato sul [[gateway (informatica)|gateway]] della rete o sul [[server web]] che ospita la pagina che ha richiesto l'utente, o nei casi più semplici, direttamente sul [[router]]. A seconda delle specifiche settate nel gateway, le porte TCP ([[Transmission Control Protocol]]) o i siti web, possono essere inseriti in whitelist in modo che quando l'utente tenta l'accesso, venga reindirizzato al captive portal relativo. L'[[Indirizzo MAC]] di un utente autenticato, può essere usato per bypassare il processo di login.
== Uso ==
I captive portal sono comunemente utilizzati per presentare una pagina di [[login]] che può richiedere l'inserimento di [[password]], pagamenti, accettazione di [[EULA]]/[[Linea di condotta (informatica)|policy]], o altre credenziali dell'utente che intende accedere.
I captive portal sono impiegati per un ampio set di servizi, inclusi esercizi commerciali o [[hotspot (telematica)|hotspot]] domestici [[wifi]] o cablati.
Un captive portal può anche essere usato per fornire l'accesso per reti cablate aziendali o residenziali (appartamenti, centri commerciali, hotel, stazioni balneari, ecc) o scolastiche/universitarie o presso sedi di enti pubblici e di associazioni; si può ritrovare anche in spazi pubblici in cui è offerta alle persone la connessione internet.
I captive portal sono ampiamente adottati anche in [[reti wireless]] aperte dove agli utenti è mostrato un messaggio di benvenuto, che li informa delle condizioni di accesso (porte consentite, responsabilità, etc.).
Gli amministratori tendono ad adottare questa politica in modo che gli utenti che si connettono alla rete si assumano le responsabilità delle loro azioni al fine di evitare qualche problema maggiore.
I captive portal hanno avuto un incremento presso i free open wireless network dove al posto dell'autenticazione degli utenti viene semplicemente mostrata una pagina di accettazione delle condizioni d'uso. Anche se la legge al riguardo è ancora poco chiara (specialmente negli [[Stati Uniti d'America|USA]]) è pensiero comune che forzare gli utenti ad accettare le condizioni d'uso del provider sollevi quest'ultimo da particolari obblighi di legge.<ref>{{Cita news|url=http://www.mbm-law.net/newsletter-articles/wi-fi-hotspots-and-liability-concerns/1229/|titolo=Wi-Fi Hotspots and Liability Concerns - Maiello Brungo & Maiello|data=9 aprile 2007|opera=Maiello Brungo & Maiello|accesso=18 maggio 2017|lingua=en}}</ref><ref>{{Cita news|url=https://openwireless.org/myths-legal.html|titolo=Myths and Facts: Running Open Wireless and liability for what others do|data=7 agosto 2012|opera=Open Wireless Movement|accesso=18 maggio 2017|lingua=en}}</ref>
=== Possibili anomalie ===
Può succedere che all'atto dell'accesso l'utente riceva dal browser dei messaggi di errore e relativa impossibilità di conclusione dell'autenticazione. Quello tipico è quello relativo all’utilizzo di un [[certificato digitale]] non valido o ad un’autorità di certificazione non riconosciuta. Ad esempio, accade qualora la pagina del captive portal sia pubblicata in http ma il browser sia impostato (criteri di sicurezza relativi al [[Domain Name System|DNS]]) perché accetti solo indirizzi in https o sul gateway non sia stata selezionata la risoluzione automatica in https. In questi casi è sufficiente forzare l'indirizzament in http (si può anche digitare la URL ''http://neverssl.com'') o disabilitare temporaneamente la sicurezza sul DNS e relativo certificato. Oppure, se configurati dall'utente, non usare DNS alternativi (ad esempio quello di Google o di openDNS) ma impostare l'indirizzamento totalmente automatico via DHCP (l'altermativa sarebbe quella di usare il protocollo DNS-over-HTTPS a livello di browser o di sistema operativo in modo da superare l'eventuale blocco sul router all'uso di DNS alternativi).
Un altro è quello per cui, una volta connessi alla rete wireless, non si apre in automatico la pagina (del browser predefinito) del captive portal con la quale eseguire l'autenticazione: a volte, è sufficiente eseguire la disconnessione e nuovamente la connessione. Altri rimedi possibili sono: riavviare il dispositivo, disattivare e riattivare il Wi-Fi, svuotare la cache DNS (ad esempio in Windows tramite il comando CMD "ipconfig /flushdns"), rinnovare la configurazione IP o verificare le impostazioni del proxy, consentire l'accesso a host aggiuntivi tramite il firewall.
=== Impiego in marketing ed analytics ===
Spesso i captive portal sono utilizzati per la comunicazione commerciale e di [[marketing]].
In questo caso, l'accesso a internet tramite wifi aperto è proibito sino a quando l'utente non fornisce i propri dati, riempiendo il form di registrazione.
Il [[form]] [[online]] si apre automaticamente nel browser del dispositivo o appare quando l'utente prova a visitare una pagina web tramite il suo browser.
Il captive portal è anche uno strumento per segmentare gli utenti. Oltre a fornire i dati necessari all'autenticazione, i captive portal possono essere predisposti ad ottenere anche altre informazioni (anagrafiche, geografiche, ecc.). Questo consente di generare statistiche per chi gestisce la rete.
Il meccanismo del captive portal consente inoltre al [[Internet service provider|provider]] del servizio di far visualizzare o inviare pubblicità agli utenti che sono connessi.
==Implementazione==
===Ridirezione HTTP===
Si tratta del metodo più comune: direzionare tutto il traffico web su un server, che restituisce una ridirezione http ad un captive portal.<ref>{{Cita web|url=https://andrewwippler.com/2017/04/07/captive-portal-overview/|titolo=Captive Portal Overview|cognome=Wippler|nome=Andrew J.|data=7 aprile 2017|sito=Andrew Wippler's Sketchpad|accesso=18 maggio 2017}}</ref>
Per rendere attivo un captive portal, si fa ricorso all'utilizzo di un gateway che funge da [[router]] di default per la rete.
Quando un dispositivo, abilitato per la navigazione internet si connette per la prima volta ad una rete, esso invia una request http (well known host + [[Uniform Resource Identifier|URI]]) e, in condizioni normali, riceve un http status code di 204.
Questo gateway ha il compito di bloccare il traffico IP verso l'esterno e catturare ogni request http o [[https]] verso le porte TCP 80 e 443, che ridireziona ad un web server.
Questo server fa quindi visualizzare ai [[client]] il captive portal, con codice di ritorno http di 302.
Se l'utente accede con le sue credenziali, il web server riferisce al gateway che il client ha l'autorizzazione alla navigazione e sono inibiti i filtri per il traffico per quell'utente.<ref>{{Cita web|url=https://andrewwippler.com/2016/03/11/wifi-captive-portal/|titolo=WiFi Captive Portal|cognome=Wippler|nome=Andrew J.|data=11 marzo 2016|sito=Andrew Wippler's Sketchpad|accesso=18 maggio 2017}}</ref><ref>{{Cita web|url=https://www.chromium.org/chromium-os/chromiumos-design-docs/network-portal-detection|titolo=Network Portal Detection - The Chromium Projects|accesso=18 maggio 2017}}</ref>
===Ridirezione ICMP===
Il traffico del client può anche essere ridirezionato utilizzando un reindirizzamento [[ICMP]] sul terzo livello di layer.
===Ridirezione del DNS===
Quando un client richiede una pagina web, il [[DNS]] è interrogato dal browser.
In un setup che prevede l'utilizzo di un captive portal, il [[firewall]] assicurerà che solo il server [[DNS]] fornito dal [[DHCP]] della rete, potrà essere usato da un client non autenticato (o in alternativa, esso ridirezionerà tutte le request dei client non autenticati verso quel server DNS).
Il server DNS restituirà' l'[[indirizzo IP]] della pagina del captive portal come un risultato del lookup di tutti i DNS, fintanto che i client non sono autorizzati all'accesso.
Il captive portal usa una tecnica analoga al DNS [[hijacking]] per effettuare un'azione simile ad un attacco [[man in the middle]] nei confronti degli utenti non autenticati. Per limitare l'impatto della manomissione del DNS è utilizzato un [[Time to live|TTL]] di 0.
== Sicurezza ==
=== Attacchi di spoofing ===
La maggior parte delle implementazioni di
Per questa ragione sono state create alcune soluzioni di [[autenticazione]] estesa per limitare i rischi di usurpazione di captive portal. Una possibile soluzione a questo problema consiste nell'utilizzare una finestra di controllo che continuamente rinnova l'autenticazione mandando al gateway un pacchetto criptato. Tale tecnica è implementata per esempio nel captive portal di Zeroshell. ===Attacchi DNS===
I captive portal sono noti per avere il set di regole del firewall incompleto.<ref>{{Cita web|url=https://www.secplicity.org/2016/08/26/lessons-defcon-2016-bypassing-captive-portals/|titolo=Lessons from DEFCON 2016 – Bypassing Captive Portals|data=26 agosto 2016|sito=Secplicity - Security Simplified|accesso=18 maggio 2017}}</ref>
In alcune configurazioni, il set di regole instrada le richieste al DNS, dai client ad internet oppure il DNS individuato fornisce un DNS arbitrario al client.
In questo caso un client può bypassare un captive portal ed avere accesso libero ad internet, con un traffico di [[tunneling]] arbitrario dentro ai pacchetti del DNS (porta 53).
L'amministratore, non può bloccare tale porta poiché il client deve poter risolvere nomi di dominio; può optare per le restrizione delle regole di accesso al DNS.
In modo tale da permettere solo al server stesso di accedervi, poi, il server distribuisce ai client gli IP ricavati dalle interrogazioni di quel DNS.
===Attacchi tramite clonazione di MAC address===
Un captive portal che usa indirizzi MAC per tracciare i dispositivi connessi può spesso essere aggirato connettendo un router che consente l'impostazione degli indirizzi MAC.
Una volta che un dispositivo è stato autenticato al captive portal, il suo indirizzo MAC può essere immesso nel router, che verrà in questo modo, autorizzato alla navigazione.
===Attacchi agli account===
Alcuni captive portal possono essere configurati per consentire agli utenti appropriatamente equipaggiati, di autenticarsi automaticamente (ad esempio un computer aziendale nella rete dell'azienda).
[[User agent]] e applicazioni supplementari (come Apple Captive Portal Assistant), possono, a volte bypassare la visualizzazione di un captive portal contro la volontà dell’operatore di servizio, per il tempo in cui si hanno le credenziali corrette.
L'autenticazione avviene anche quando questi utenti provano ad autenticarsi con credenziali scorrette, con comportamenti risultanti come la conseguenza di una chiusura incondizionata dell'account associato a tali credenziali.
===Attacchi al proxy===
Se è aperta la porta 22 ([[Secure Shell|ssh]]), molti server consentono la creazione di un tunnel cifrato tra due host. Questo tunnel può essere utilizzato per configurare le opzioni del [[proxy]] del server.
Si può quindi settare questo proxy con richieste dirottate su un server esterno, bypassando le restrizioni delle porte http ed https. Allo stesso modo se è aperta la porta 3128 (proxy).<ref name="paolo.pavan.name">{{Cita web|url=http://www.paolo.pavan.name/pdf/zeroshell_SI.pdf website=Paolo PAVAN|accesso=3 novembre 2017|titolo=Copia archiviata|urlarchivio=https://web.archive.org/web/20171109191553/http://www.paolo.pavan.name/pdf/zeroshell_SI.pdf|dataarchivio=9 novembre 2017|urlmorto=sì}}</ref>
In definitiva, per effettuare un attacco volto ad aggirare un captive portal, può semplificare di molto le cose, fare uno scanning delle porte aperte.
=== Protezione ===
Talvolta, l'utilizzo di tecniche di protezione del Layer 2, come [[Wi-Fi Protected Access|WPA]] e [[WPA2]] non sono adottabili per via del loro processo di setup oneroso per l'utente.<ref name="paolo.pavan.name" />
Ad ogni modo, la loro adottabilità dipende dall'utilizzo di hardware ([[Scheda di rete|schede di rete]] ed [[access point]]) e di sistemi operativi che siano in grado di supportare i suddetti protocolli.
Sovente, è comunque necessario un sistema di sicurezza svincolato dal canale di comunicazione sia esso wireless o via cavo.
Spostare il controllo degli accessi dal livello 2 al livello 3 (del [[modello OSI]]), si può rivelare una politica vincente.
==Limiti==
I captive portal richiedono l'utilizzo di un browser; questa è solitamente la prima applicazione che gli utenti utilizzano quando si interfacciano alla rete internet. Gli utenti che utilizzano per prime applicazioni di [[email]], o di altro tipo, possono riscontrare che queste non funzionino a causa della connessione inspiegabilmente assente, e hanno bisogno che venga aperto il broswer per essere validate tramite il "passaggio" per il captive portal. È comunque possibile usare email e altre [[facilities]] che non fanno affidamento sul DNS (ad esempio, se l'applicazione specifica la connessione IP prima dell'accesso al web). Un problema simile può manifestarsi se il client usa [[AJAX]] o raggiunge il network con pagine già caricate nel suo broswer, causando un comportamento non definito, quando una pagina prova una richiesta HTTP al suo server di origine.
=== Dispositivi che non possono utilizzarlo ===
I dispositivi che possiedono connettività Wi-Fi e TCP/IP ma non sono dotati di browser web che supporti https non possono usare i captive portals. Tali dispositivi includono ad esempio [[Nintendo DS]] con giochi che usino [[Nintendo Wi-Fi Connection]].<ref>{{Cita web|titolo=Nintendo And Wayport Join Forces To Bring Free U.S. Wi-Fi Access To Nintendo DS Users|url=http://www.gamesindustry.biz/articles/nintendo-and-wayport-join-forces-to-bring-free-us-wi-fi-access-to-nintendo-ds-users|sito=gamesindustry.biz|accesso=24 novembre 2015}}</ref> Esistono comunque dei produttori di dispositivi che grazie ad accordi per servizi di connettività gratuiti o scontati permettono l'accesso alla rete. Per esempio, le porte [[VOIP]] [[Session Initiation Protocol|SIP]] possono essere liberamente abilitate al traffico verso il gateway per permettere ai telefoni di connettersi.
== Altre soluzioni ==
Oltre ad una pagina web vera e propria, a seconda di come sia stata configurato il servizio nel luogo di fruizione, può essere che si apra una finestra relativa alla connessione wireless o cablata, cliccando sulla relativa impostazione di rete. Una volta fornito il consenso, internet è disponibile sul dispositivo. In pratica, il funzionamento è simile al captive portal vero e proprio ma si opera attraverso le impostazioni del sistema operativo.
== Note ==
<references/>
== Voci correlate ==
* [[
* [[Proxy]]
{{Portale|
[[Categoria:Teorie di rete]]
|