SMTP utilizza l'estensione STARTTLS per aggiornare SMTP a SMTP Secure (STMPS). Secondo la RFC , il client e il server avvia TLS come segue:
S: <waits for connection on TCP port 25>
C: <opens connection>
S: 220 mail.imc.org SMTP service ready
C: EHLO mail.example.com
S: 250-mail.imc.org offers a warm hug of welcome
S: 250-8BITMIME
S: 250-STARTTLS
S: 250 DSN
C: STARTTLS
S: 220 Go ahead
C: <starts TLS negotiation>
C & S: <negotiate a TLS session>
C & S: <check result of negotiation>
C: EHLO mail.example.com
S: 250-mail.imc.org touches your hand gently for a moment
S: 250-8BITMIME
S: 250 DSN
Nello stesso documento, le specifiche menzionano la possibilità del MITM:
A man-in-the-middle attack can be launched by deleting the "250 STARTTLS" response from the server.
Quello che non capisco dalle specifiche è: cosa cancella significa esattamente? sta cancellando il contenuto del messaggio ma inviandolo vuoto? (cioè corrompendolo) o rilasciandolo in modo che il client non lo riceva?
Se vuol dire lasciar cadere il messaggio in modo che il client non lo riceve, il server invierà 250 DSN
? non mi è chiaro se 250-STARTTLS abbia abbandonato quale sarà il prossimo messaggio? come il cliente viene a sapere che deve inviare EHLO mail.example.com
e che non c'è 250-STARTTLS
?