In informatica e telecomunicazioni l''HTTP tunneling è una tecnica utilizzata nelle reti informatiche per incapsulare e trasmettere dati, originariamente formattati per altri protocolli di rete, all'interno di una normale connessione HTTP. Questa metodologia crea di fatto un "tunnel" virtuale che sfrutta il traffico web standard per veicolare informazioni di natura diversa.
Il principio alla base dell'HTTP tunneling consiste nell'inserire i pacchetti del protocollo "ospite" (che si desidera trasmettere) all'interno del corpo (payload) di una standard richiesta o risposta HTTP.
Tipicamente, le reti informatiche filtrano il traffico bloccando le connessioni su porte non autorizzate, ma lasciano aperte la porta 80 (usata per il traffico HTTP in chiaro) e la porta 443 (usata per il traffico cifrato HTTPS), necessarie per la normale navigazione sul web. Un client software configura un tunnel impacchettando i propri dati in richieste di tipo POST o tramite il metodo CONNECT; quest'ultimo, in particolare, viene ampiamente utilizzato nei server proxy per stabilire un tunnel bidirezionale, spesso per implementare connessioni sicure (TLS). Il server di destinazione, una volta ricevuta la richiesta HTTP, decapsula il pacchetto, recupera il dato originale e lo elabora o lo inoltra al servizio competente.
L'HTTP tunneling viene impiegato per diversi scopi:
L'uso dell'HTTP tunneling presenta una duplice natura. Se da un lato rappresenta uno strumento utile per eludere la censura informatica o garantire la connettività di fronte a configurazioni di rete errate o eccessivamente stringenti, dall'altro costituisce una criticità per gli amministratori di sistema.
Consentendo il passaggio di traffico opaco o non controllato all'interno della rete locale, il tunneling può essere sfruttato per attività di esfiltrazione di dati o per stabilire comunicazioni non rilevabili tra software malevoli (come trojan o botnet) e i loro server di comando e controllo (C&C). Per contrastare questo fenomeno, i moderni sistemi di sicurezza informatica implementano tecniche di ispezione profonda dei pacchetti (DPI), capaci di analizzare il traffico HTTP e HTTPS per identificare e bloccare i tunnel non autorizzati, verificando se il traffico corrisponda a una reale navigazione web.