Quelle fottute interfacce grafiche...



A volte capita di voler dare un'okkiata alla propria mailbox anche quando si e' in giro, da amici, parenti, dal panettiere (nel 2099 forse) ecc... allora, dato che non abbiamo a portata di mano il nostro clientuccio di posta preferito, di solito ci colleghiamo via web. Tutti i provider che offrono account di posta elettronica offrono anche questo tipo di servizio.

Peccato che troppo spesso tale servizio si trasforma in un disservizio. Causa: interi minuti ad aspettare che vengano giu' tutte le schifezze inutili che adornano la pagina html, e quindi: immagini jpeg, banner cazzuti, menu' in flash, javascriz da centinaia di righe... tirando le somme, con un normalissimo modem da 56Kb dobbiamo aspettare 5 minuti per scaricare una fottuta quanto inutile interfaccia grafica.

Magari non e' un problema che vi riguarda ma a volte scoccia parecchio (a me fa proprio girare il cazzo).

Allorche' mi son detto: "vogliamo impararlo 'sto benedetto protocollo POP3?"

Vi descrivo quindi una normale sessione di "monitoraggio mailbox via telnet" (N.B.: in giallo ci sono i comandi passati da me, in verde le risposte del server):


[ethera:darko]$ telnet mail.supereva.it 110
Trying
mail.supereva.it...
Connected to
mail.supereva.it.
Escape character is '^]'.
+OK <22853.1033551549@mail.supereva.it>
USER cuffaro
+OK
PASS mafioso
+OK
STAT
+OK 1 1875
RETR 1
+OK
Received: (qmail 4199 invoked from network); 2 Oct 2002 09:44:03 -0000
Received: from unknown (HELO astio.investici.org) (80.71.227.37)
  by mail.supereva.it with SMTP; 2 Oct 2002 09:44:03 -0000
Received: from ethera (unknown [62.7.226.246])
    (using TLSv1 with cipher EDH-RSA-DES-CBC3-SHA (168/168 bits))
    (No client certificate requested)
    by astio.investici.org (Postfix) with ESMTP id 2CBF4336B4
    for <cuffaro@supereva.it>; Wed,  2 Oct 2002 11:44:45 +0200 (CEST)
Date: Wed, 2 Oct 2002 11:44:02 +0100
From: darko <darko@autistici.org>
To: cuffaro@supereva.it
Subject: muahaha
Message-Id: <20021002114402.4e657d62.darko@autistici.org>
X-Mailer: Sylpheed version 0.8.2 (GTK+ 1.2.8; sparc-sun-solaris2.8)
User-Agent: darko-mailer
X-Face: Anti-Echelon system
X-Operating-System: DarkOS-0.01a
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

so' fiko, so' fiko !

;)

by darko

.

QUIT
+OK
Connection closed by foreign host.
[ethera:darko]$



Ok. Come vedete mi sono semplicemente collegato al server di posta POP sulla porta 110 via telnet e mi son "loggato" come utente "cuffaro" e password  "mafioso". Con STAT chiedo al server quante e-mail ho nella mia mailbox, la risposta e' il numero di e-mail seguito dalla dimensione della stessa.
Dopodiche' x visualizzare il contenuto dell'e-mail numero 1 do' il comando RETR 1, fosse stata l'e-mail numero 2 avrei dato RETR 2, semplice, no?

Tutta la spatafiata che segue sono i vari campi header dell'e-mail. E cosa diamine sono gli header? Be', sono campi aggiuntivi (ed opzionali) che normalmente non vediamo ma che esistono e contengono informazioni riguardo un sacco di cose, tipo: la data, il mittente, l'oggetto dell'e-mail, il client usato dal mittente ecc... molti di questi campi possono essere configurati da noi stessi. Ad esempio, io, con Sylpheed ho messo come User-Agent: darko-mailer, che e' una stronzata ma mi piaceva cosi' e nessuno mi vieta di farlo.

Ma andiamo avanti. Finalmente dopo tutti i vari campi header troviamo il contenuto dell'e-mail, il messaggio, diciamo.
Quando avremo finito di leggere tutte le e-mail potremo uscire dalla sessione telnet digitando semplicemente: QUIT.

Adesso invece parliamo di un'altro aspetto molto interessante. Non so se vi e' mai capitato di cominciare a scaricare la vostra posta e vedere la barra d'avanzamento del client che... non avanza! E magari e' perche' qualcuno vi ha allegramente spedito un allegato da 4 triliobyte che contiene un'enormita' di cazzate. Pero' non sempre si ha la voglia||tempo||pazienza di aspettare che quel dannato allegato venga giu'. Allora possiamo studiare la situazione sfruttando proprio la nostra ormai consolidata conoscenza del protocollo POP3.
Vediamo quindi come si presenta un'e-mail con tanto di allegato:

[ci colleghiamo e ci logghiamo come prima]
RETR 3
+OK
Received: (qmail 29475 invoked from network); 2 Oct 2002 11:41:28 -0000
Received: from unknown (HELO ethera) (62.7.226.246)
  by mail.supereva.it with SMTP; 2 Oct 2002 11:41:28 -0000
Date: Wed, 2 Oct 2002 13:41:37 +0100
From: darko <darko@cosanostra.it>
To: cuffaro@supereva.it
Subject: eh eh
Message-Id: <20021002134137.5872bc9f.darko@cosanostra.it>
X-Mailer: Sylpheed version 0.8.2 (GTK+ 1.2.8; sparc-sun-solaris2.8)
Mime-Version: 1.0
Content-Type: multipart/mixed;
 boundary="Multipart_Wed__2_Oct_2002_13:41:37_+0100_0026c130"

This is a multi-part message in MIME format.

--Multipart_Wed__2_Oct_2002_13:41:37_+0100_0026c130
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

guarda un po'...

darko


--Multipart_Wed__2_Oct_2002_13:41:37_+0100_0026c130
Content-Type: application/octet-stream;
 name="eheh.png"
Content-Disposition: attachment;
 filename="eheh.png"
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAAB4AAAAjCAMAAAC0CkrjAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF
qHAQ8MgUqIAEEAQEUDgA7Mw4EBAE8NAUaEgAsIgE8Ngg6MwoUDAAqHgAaEgI0JAQUDAI4KQQgFgA
+Ngw+Mg4oIAE0LQE8NgQKBgE2KQQ8Mwg2KgAaGhoqHwcuIgEwIgQoIx0gFgISDAA5MwgpIA8SDAI
YEwE9NhQ6LAQYGBgpIgEaEAAYGBYwIAQIBgEdFgEqKio4LgAgFAAaFAw8NgYqKiggFAIIBAEoKCg
9NRIQDAEWDgAYEAAeFAAWFhY8Ng4cHBwoHAA4LgIsKykuHgAiFgA6MgItIQQUDws+LgI4MgImGAA
iIiIeEgESEhIoHAIiHhw+MwUGBQEwIgc6KgQ6MwUmGgAUDgIkJCQYGBocEgAsLCw9NAokGgE8LAI
cHB4WDgIQEBAYEAIcEgIkGAAcEAE6LgIJAAEwIAAwIAIiGAA4LAImGgIiGAIODg46KgA6KgIUFBQ
eFAI+NggWDAEmJiYMDAwgICAqKiwoGgAWFhk2LQEyIgAaEAI4KAAyIwQ0JgQOCQgKCgoYDgEiIiQ
SEhAkGAIiFgISDgEqHAAuIAAyJAAGBgY+NgUwIgA4NCM6OjooGgI0JAA2NjYqHAI0IgI8MgIoGAI
wJAEqGgE8NAIcFAE2JgQgGQEeHh4sIAEyJAI4ODY4ODg8NgIEBAQ2JAQQCgAQCgIoKCsjGAw0JgA
uIAI5LwQmGAIQEA40JgI2JgACAgAkFgEICAg2JAIsHgACAAEsHAEwIgIeHBg0NDQaFAE8PDo8Ojs
sHgI+Ng8CAgIxKR02KAAQDgkSCgE4KgAOCgE2KAIOCAEwMDA+MwI0JAIJCQYiGgE6LAA6NAIvIw8
yIgI4KAI6OjwqHgI6LAIyIAI4KgIIBwQ2JgI4MAEgICc8LAQoHgE8OjYLCQEiFAE+NgItJgE6MwA
SEhQuLi48LgI2Njo8MAI+LAI2KgIKChAVEQEuHgIxLSk0KQE6MAIyMjI2Kw0lHQE+KgI8LgQ+LgQ
xKAEwMDgAAAA+MAI8PDw9LyIAAB8AAD4+Pj46VK1VAAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIA
AAsSAdLdfvwAAAAHdElNRQfSCgIMGiz4dKjyAAABn0lEQVR4nH3SP0gCYRQA8PsgCSJqaTrchHBs
CmloFVxCapSGhuYKcmgpHOMGRadwOEQqMLAhIhykReRq8gM5BMcunIIb7sF7gtennud3/nt3w/H9
7r3vfXdPGciBIgILygyiFnhBmVFMZzRcweVAfZnL2kq2Y4gxQ7ywmF0Xb9zS9bJsTL+jK64lXIn2
NkIvgbPLzOErFEmcLOMoJSKJxtsytnJmp2VYhvThZM5bNct2Rf+LWEPXsKz+mHGWURzbi+d5RgwL
yA4120c/f8qx2ig1axg2fs5yeM+vLWr46crczqO41FZy+VBmTI8W8z5Pqitycmkxo8dS9k+A017L
C7MJ4E8uTjSa6AlzBijzemQ4k4kxx7cBWFI6mk3mLmKRhnzbdYCnQG1O3TYvqnqVSLhyzIgRcOiZ
U9YbTvdXTUJKMKmquFnvIeO3rbcJVOKkglJ0hBJPcifun+n1FIg4Z2yg3JldhxMDUr/Ri8dOWzQL
O0Wxd0uvNk2HqRwqEz7QTQbnpv9LrnKFj0p93x/AQl2/PwrO2tbadGafNs+8p3/g9LMBsin6ZgAA
AABJRU5ErkJggg==

--Multipart_Wed__2_Oct_2002_13:41:37_+0100_0026c130--

.

Ok, adesso la questione e' un pochetto piu' complessa, ma neanche tanto. La dicitura Content-Type: multipart/mixed contenuta nella suddetta e-mail ci indica che essa ha diversi tipi di contenuto.

L'header
Content-Type: text/plain; charset=US-ASCII precede il messaggio vero e proprio, in questo caso e': "guarda un po'" firmato "darko".

I seguenti header
Content-Type: application/octet-stream; name="eheh.png" Content-Disposition: attachment; filename="eheh.png" Content-Transfer-Encoding: base64  si riferiscono invece all'allegato. In questo caso vediamo che il nome del file e': eheh.png ed e' un application/octet-stream, ovvero un "flusso di dati" detto in parole abbastanza povere. Sara' poi compito del sistema operativo (o del client di posta, o dell'utente) decidere cosa fare di tale flusso. Ad esempio, puo' essere che il client di posta sia configurato in modo da far vedere un'anteprima nel caso che il "flusso di dati" sia un'immagine. Oppure, nel caso di un file eseguibile (.exe, .bat, .com, ecc..) puo' avvisare l'utente dei possibili pericoli se si lancia tale file (o "flusso di dati").(*)

Ma il nostro problema era capire cosa ci intasava la mailbox... bene, adesso sappiamo che l'e-mail ci e' stata spedita da darko@cosanostra.it e contiene un'immagine -come allegato- di nome eheh.png. Mmm... potrebbe essere una minaccia di morte? Ad ogni modo la mail ci intasa la casella di posta e quindi decidiamo di eliminarla! il comando sara':

DELE 3
+OK


...piu' semplice di cosi' 8^) Una sola nota: e' ovvio che se l'allegato ha dimensioni considerevoli, l'output a video generato dal comando RETR sara' notevole per cui non riusciremmo a leggere gli header che si trovano in cima all'e-mail. Ma non e' un problema, perche' abbiamo a disposizione il comando TOP. Digitando infatti:

TOP 3 1


potremo vedere tutti gli header dell'e-mail numero 3 e la prima riga del messaggio. Ed e' proprio quanto ci serve per sapere da chi arriva l'e-mail e cosa essa contiene, senza vedere tutti quei fastidiosi caratteri che rappresentano l'allegato e potremo 
quindi comodamente decidere se cancellarla o meno.


Considerazioni sui vantaggi del monitoraggio via telnet:


1. e' un sistema veloce, molto piu' veloce che la consultazione via web;

2. permette di avere sotto i nostri i occhi tutte le informazioni riguardanti le e-mail (campi header), cosa che spesso via web non e' sempre fattibile;

3. ci permette di eliminare e-mail con allegati di grosse dimensioni che ci intasano la mailbox senza doverle scaricare, o comunque possiamo verificare da dove provengono e cosa contengono, sempre senza dover scaricare l'intera e-mail.


Considerazioni sugli svantaggi
del monitoraggio via telnet:

1. beh, la pecca piu' grave e' il fatto di dover digitare in chiaro la propria password, quindi occhio a non essere visti e soprattutto sbufferate appena potete (che ne so.. battete un po' di volte invio o riducete in altezza la finestra del terminale (l'xterm, non il malato...));

2. altra cosa e' che per e-mail molto lunghe potreste non farcela a visualizzare tutto il contenuto nella finestra del terminale e magari supera il buffer (del terminale) e quindi anche scorrendo in su con la barra non ce la fate lo stesso
.


by darko

Se volete approfondire come funziona il Post Office Protocol versione 3 consultate l'RFC 1939




(*) Un baco di Microsoft Outlook ha permesso la nascita di una nuova generazione di worms (virus che si auto-propagano via internet) che sfruttano proprio gli header e la mancanza di controlli da parte di Outlook stesso. In breve, il virus viene spacciato per un file audio o un'immagine all'interno dell'header dell'e-mail, in questo modo Outlook stupidamente si fida e permette che tale "flusso di dati" infetti l'intero sistema.