Debolezze dei protocolli TCP e UDP
I protocolli di trasporto, che fanno parte della famiglia di protocolli TCP/IP, non prevedono, nella loro concezione originale, alcun meccanismo per garantire l’autenticità e la riservatezza delle informazioni trasmesse.
Le applicazioni che ritengono indispensabile questo aspetto della sicurezza dei dati, devono implementare autonomamente questa funzionalità o tramite servizi esterni.
Diverso invece l’approccio seguito relativamente all’autenticazione dei partecipanti nello scambio di dati.
Considerando il diverso livello di complessità di UDP e TCP, è stato deciso di affrontare il problema dell’autenticazione dei partecipanti in maniera sensibilmente diversa, già in fase di progetto delle specifiche dei due protocolli di trasporto.
Con UDP, a causa della natura connectionless del servizio offerto, ogni singola unità dati ricevuta deve essere indipendentemente autenticata dalle applicazioni finali.
In assenza di tali meccanismi applicativi il protocollo UDP risulta estremamente vulnerabile ad attacchi.
Nel TCP esiste invece un meccanismo elementare che consente di autenticare la sorgente dei dati: la sincronizzazione dei sequence number in fase di apertura di una nuova sessione TCP.
Il TCP è di gran lunga la componente più complessa dell’intera famiglia di protocolli TCP/IP e per molti aspetti più robusta.
Nonostante le difficoltà che possono incontrare hacker poco esperti, sono documentate numerose forme di attacco, efficaci contro TCP.
Vediamo le possibili forme di attacco ai protocolli di trasporto nei prossimi articoli!