Durante l'evoluzione della specie umana uno dei principali desideri che ha portato l'uomo prima a riunirsi in società e successivamente ad accelerare lo sviluppo economico e tecnologico è l'irresistibile desiderio di vivere una vita semplice. "Semplice" è profondamente differente da "facile", di fatto non tutti anelano ad una vita facile ma piuttosto ad una vita semplice in cui attività troppo "facili" e di basso contenuto intellettuale vengano delegate a sistemi tecnologici, più o meno, automatici. La costante semplificazione della vita, permessa dalla esponenziale crescita tecnologica, ha abilitato l'essere umano a dedicarsi maggiormente ad attività di alto contenuto intellettuale e di spostare il focus della complessità sulla tecnologia. E' per questo motivo che la tecnologia è e sarà sempre piu interconnessa, intelligente, completa, veloce , pervasiva e per riassumere in un unica parola: complessa. La complessità della tecnologia porta la tecnologia stessa ad essere sempre piu vulnerabile. Infatti la probabilità di trovare una vulnerabilità all'interno di un sistema complesso è maggiore rispetto che in un sistema semplice e l'attuale "vulnerabilità" definita EFAIL riguardante sistemi di end-to-end encryption come OpenPGP e S/MIME ne è una diretta testimonianza.
Sistemi di cifratura OpenPGP e S/MIME sono sistemi implementati per garantire un ottimo livello di privacy nella comunicazione. Nel caso specifico vengono utilizzati per rendere il flusso di comunicazione email privato e/o riservato tra due entità denominate ricevente e mittente indipendentemente dai server di posta elettronica (ove tali email transitano) ed indipendentemente dal network (dove attaccanti di varia natura ne copiano il contenuto). Semplificando l'implementazione dell'algoritmo, il mittente cifra la propria email con la chiave pubblica del ricevente (il destinatario della email). In questo modo il mittente è sufficientemente sicuro che solo il ricevente attraverso la propria chiave privata, possa decifrare l'email e quindi leggerne il contenuto. In un altro scenario, ove si desidera garantire la paternità e non la riservatezza della trasmissione, il mittente firma il messaggio (o email) con la propria chiave privata in modo che chiunque abbia la chiave pubblica del mittente possa verificarne l'originalità (o anche paternità). Tali sistemi sono stati testati, stressati e considerati sufficientemente sicuri in modo condiviso da tutte le comunità: accademia, utenti privati, hacking communities ed organizzazioni.
Tuttavia la tecnologia è complessa, sempre piu complessa e tali sistemi di cifratura sono utilizzati all'interno di altri sistemi anch'essi considerati sicuri. Ma come spesso accade in ogni disciplina il risultato dell' unione di due certezze non è affatto detto che sia anch'esso una certezza. E cosi è stato per EFAIL. Consideriamo un attaccante che voglia intercettare e leggere il contenuto di una email cifrata attraverso le note e diffusissime tecniche descritte in precedenza. L'attacco EFAIL vede la sua implementazione nel seguente modo.
1) L'attaccante preleva il testo della email cifrata. Questa azione può avvenire sfruttando svariate tecniche come per esempio: Malware, MiTM, MiTB, SCAM, Exploiting, etc. che per semplicità non vengono descritte in questo articolo.
2) L'attaccante successivamente sfrutta l'unione dei sistemi: da un lato il rendering del client di posta del codice HTML presente all'interno della email e dall'altro lato la legittima decodifica della email da parte del reale ricevente (colui che realmente possiede la chiave privata corretta) avvenuta all'interno del client di posta. Lo sfruttamento della vulnerabilità dell 'unione dei due sistemi è rappresentata nella seguente immagine:
3) L'attaccante utilizza una chiamata ad un proprio server di controllo (in questo esempio attraverso una immagine, "img src") mantenendo aperto l' apice di chiusura del codice HTML, richiedendo, in questo modo, al client di posta elettronica di visualizzare una immagine apparentemente presente sul server di comando e di controllo avente come nome l'intero contenuto della email.
4) Una volta giunta l'email alla vittima (colei che possiede la giusta chiave privata per decifrare il contenuto) il suo client di posta effettuerà le seguenti azioni:
- Osserva che il contenuto della email recapitata contenga del codice cifrato. Riconosce l'hedaer della cifratura utilizzata.
- Entra in funzione il plugin di decifrazione del contenuto dell'email.
- Il client visualizza il contenuto in chiaro alla vittima
- Il plugin del client di posta elettronica della vittima che si occupa di svolgere il rendering grafico del codice html entra in funzione e richiede al server dell'attaccante una immagine da visualizzare (inesistente) il cui nome è esattamente il contenuto della email.
L'attaccante così controllando sui logs del proprio server web può leggere il contenuto della email che precedentemente era cifrata.
Per evitare la vulnerabilità EFAIL e mantenere private le proprie comunicazioni email sono gli autori stessi che suggeriscono 3 strade possibili da loro definite come: nel breve termine, nel medio termine e nel lungo termine.
Nel breve termine gli autori suggeriscono di non utilizzare client di posta per decifrare email cifrate attraverso OpenPGP e S/MINE, ma decifrarle separatamente. Per seguire questo consiglio è necessario effettuare i seguenti passi: 1) Per prima cosa importare la chiave pubblica del mittente: 'pgp --import mittente.asc'. 2) Successivamente salvare l'email cifrata come file di testo e decifrarla attraverso il seguente comando 'pgp --decrypt --input "<email cifrata>" '. Il testo risultante rappresenta il testo della email. Se l'email contiene HTML è necessario appurarsi dell'assenza della tecnica precedentemente descritta prima di avviarla su un renderer, come un browser.
Gli autori consigliano per il medio termine di aggiornare (qualora fosse possibile) il proprio client di posta che eventualmente potrebbe adottare delle euristiche per bloccare le condizioni che avviano il processo di attacco descritto. Ricordiamo che non è ovvio aspettarsi degli aggiornamenti dai client di posta elettronica in quanto questa "vulnerabilità" non è da attribuirsi esclusivamente ai client di posta elettronica ma piuttosto ad una unione di complessità tecnologica.
Nel lungo termine si consiglia di aggiornare gli standards relativi ai protocolli OpenPGP S/MIME, attività principalmente delegata ad esperti della materia.
In conclusione questa vulnerabilità evidenzia come l'unione di sistemi considerati sicuri crei un insieme tecnologico non considerabile sicuro. L'avanzamento tecnologico fondamentale per la semplificazione della nostra vita è tuttavia un processo da controllare e sul quale porsi continue domande al fine di renderlo piu sicuro.