Il protocollo POP3
Una volta che il messaggio è stato depositato nella casella di posta del destinatario, è responsabilità del Mail User Agent prelevarlo e renderlo disponibile all’utente finale.
Se il software utilizzato dall’utente per fruire dei messaggi ricevuti risiede sulla stessa stazione che ospita la casella postale, non è necessario nessun trasferimento dati attraverso la rete.
Ciò accadeva frequentemente in passato, quando su molte workstation direttamente raggiungibili dagli altri utenti Internet veniva avviato un demone SMTP per la ricezione della posta elettronica.
Oggi il ruolo di repository della posta è circoscritto a server dedicati, ai quali gli utenti finali devono connettersi tramite il proprio MUA per poter conoscere se vi sono nuovi messaggi e avviare eventuale trasferimento degli stessi su pc in loro possesso.
Una volta trasferiti, i messaggi possono essere rimossi dalla mailbox e mantenuti solo come copia locale.
Per l’acquisizione della posta dalla propria mailbox, la prima soluzione adottata a livello globale è quella descritta dal protocollo POP3.
Il protocollo si basa sul tradizionalte modello di funzionamento client/server. Il client POP3 risiede sul pc dell’utente, il server POP3 risiede sulla stazione che ospita la mailbox dell’utente.
Il protocollo POP3 prevede di contattare il server su una porta riservata al servizio, la 110/tcp.
Il processo di trasferimento dei messaggi utente si articola in tre fasi:
- Authorization;
- Transaction;
- Update.
Per prima cosa, il client POP3 deve superare la fase di autenticazione e autorizzazione, fornendo le proprie credenziali al server POP3.
Il protocollo prevede varie alternative per completare la procedura di autenticazione.
Il debole paradigma username/password, è ancora oggi molto utilizzato.
Alla ricezione del prompt da parte del server POP3, il client invia i comandi USER e PASS per sottoporre il proprio username e la propria password.
L’invio delle credenziali del client in chiaro sulla rete espone l’utente a un possibile attacco di replicazione dati (Replay Attack).
L’alternativa principale al precedente schema è inviare il comando APOP per completare un’autenticazione di tipo challenge/response.
In tal caso, è iniziativa del server POP3 allegare una sfida al prompt di benvenuto che viene restituito al client.
La sfida è ottenuta dalla concatenazione di un identificativo che individua il processo server, con il valore dell’orologio interno del server e il nome simbolico della stazione che ospita il server POP3.
Le sfide inviate dal server non sono mai uguali.
Il client produce una password non replicabile, concatenando alla sfida un proprio segreto e processando la stringa così ottenuta con una funzione di digest MD5.
Lo username e la password non replicabile vengono inviati contemporaneamente come parametri del comando APOP.
Più recentemente è stata introdotta l’estensione AUTH che permette di accedere a tutte le funzioni di autenticazione e data security offerte dal framework SASL.
Per evitare che i messaggi vadano persi nel trasferimento, la casella postale viene bloccata non appena si è superata con successo la fase di autenticazione.
Per tutta la durata del trasferimento dati (Transaction State), nessun altro client può accedere alla stessa mailbox.
Il blocco viene rimosso e i dati eventualmente cancellati, solo quando il client POP3 invia un esplicito comando di QUIT.
Durante il trasferimento dati è previsto l’invio di comandi: STAT, LIST, RETR, DELE, TOP.
- STAT: permette di ricavare il numero totale di messaggi presenti nella casella postale e la dimensione complessiva in byte di tali messaggi;
- LIST: permette di avere un’indicazione sulla lunghezza di ciascun messaggio;
- RETR: avvia il trasferimento del messaggio specificato;
- DELE: marca come letto e rimosso il messaggio specificato. La reale cancellazione del messaggio è avviata solo durante la successiva fase di Update.
Per trasferire solo l’intestazione di un messaggio e le prime linee di testo è possibile utilizzareil comando TOP. L’uso di questo comando rende possibile determinare l’origine e il soggetto di un messaggio prima del suo completo trasferimento sul MUA.
I dati presenti nella casella postale sono trasferiti al client POP3 senza effettuare trasformazioni di formato.
Per mantenere la riservatezza dei dati durante questo trasferimento è possibile utilizzare delle funzioni crittografiche.
Per mantenere la riservatezza dei dati, durante il loro trasferimento, i messaggi devono essere memorizzati già codificati nella casella postale di origine.
Terminato il trasferimento, il client invia il comando QUIT chiudendo la connessione TCP e facendo passare il server nello stato di Update.
Solo in questo stato il server POP3 cancella veramente i messaggi marcati e, completata l’opera, toglie il blocco alla casella postale dell’utente.
Il protocollo POP3 offre alcuni strumenti rudimentali per controllare lo stato di una casella postale prima di avviare il trasferimento dei dati.
È bene infatti ricordare che il trasferimento di messaggi molto lunghi può arrivare a bloccare la stazione dell’utente, impedendogli di leggere i messaggi di reale interesse.
Per evitare di contribuire in maniera involontaria a un attacco di spamming ogni utente deve procedere alla cancellazione di messaggi dopo averli letti.
La casella postale infatti non è una risorsa illimitata e un messaggio che giunge quando lo spazio è esaurito viene immancabilmente perduto.
È responsabilità del gestore sel server SMTP sensibilizzare i propri utenti a rimuovere regolarmente i messaggi una volta trasferiti e/o quelli che non interessano più.
Nel caso non riesca ad ottenere i risultati sperati con la partecipazione attiva degli utenti, il gestore può decidere di adottare una politica che prevede l’eliminazione automatica dei messaggi più vecchi per liberare spazio (solo nel caso in cui lo spazio assegnato alla casella postale risulti esaurito).
[avatar user=”MattiaFelici” size=”thumbnail” align=”center” link=”https://www.computersec.it/informazioni/”]Mattia Felici[/avatar]