In un mondo in cui i dati personali sono il nuovo oro e la sicurezza informatica è la nuova sfida, la crittografia assume un ruolo sempre più importante per assicurare che la grande macchina del web, dei dispositivi mobili e dell'Internet of Things non imploda al primo attacco hacker. Per questo Google ha recentemente presentato Adiantum, un nuovo sistema di crittografia dei dati archiviati su smartphone e smart device di vario tipo dedicato ai dispositivi di fascia medio bassa.
A questo gruppo appartiene la stragrande maggioranza dei dispositivi venduti nei mercati emergenti, che potrebbero diventare oggetto di massicce campagne hacker a causa della loro difficoltà a gestire gli attuali sistemi di crittografia.
La crittografia negli smartphone
Oggi il sistema di crittografia dei dati più diffuso e sicuro è l'AES: Advanced Encryption Standard. Le sue due implementazioni standard sono l'AES-128-CBS-ESSIV e l'AES-256-XTS, rispettivamente dedicate alla crittografia di intere memorie di storage e a quella dei singoli file archiviati. AES funziona benissimo: è "trasparente" per l'utente, robusto e difficilissimo da forzare per la maggior parte degli hacker. Ma ha un grosso limite: è molto pesante per l'hardware degli smartphone e degli altri dispositivi che non siano di fascia alta.
Nei dispositivi più costosi, infatti, i costruttori usano processori della famiglia ARMv8, mentre in quelli più economici i processori più diffusi sono quelli con tecnologia ARMv7 o inferiore. L'ARMv8 integra delle unità di calcolo dedicate proprio alla codifica e decodifica dei dati criptati con il sistema AES, quindi sui device dotati di processori di questo tipo la crittografia incide in misura minima sulle prestazioni. Sui dispositivi con processori più vecchi, al contrario, non c'è alcuna tecnologia dedicata alla crittografia e le prestazioni crollano se i dati vengono codificati con l'AES rendendo tali device persino difficili da usare.
A cosa serve Adiantum
Adiantum è la risposta di Google a questo problema: un sistema di crittografia studiato per girare bene anche sui processori non più "giovanissimi", senza impattare sulle prestazioni complessive del dispositivo. La platea di device interessati a questa tecnologia è enorme: dagli smartphone economici alle smart TV, gli smart watch e tutti gli altri device smart della casa intelligente e della nascente Internet delle Cose (IoT).
Dai test eseguiti su dispositivi con ARMv7 a bordo, Adiantum è risultato essere oltre 5 volte più veloce di AES-256-XTS sia nel crittografare che nel decrittografare i dati dei file. Google afferma che, nonostante le prestazioni siano nettamente superiori rispetto all'AES, con Adiantum la sicurezza non scende a compromessi e che, se anche solo un bit di un file codificato con la crittografia Adiantum viene modificato, l'intero file diventa illeggibile.
Differenze tra Adiantum e AES
In linea teorica, però, Adiantum è meno sicuro di AES: entrambi si basano sull'algoritmo "ChaCha" sviluppato nel 2008 dal matematico Daniel J. Bernstein, ma AES lo implementa in 20 round contro i 12 di Adiantum. Ogni round può essere descritto, semplificando all'estremo, come un "passaggio" dell'algoritmo che rende più sicura la crittografia. E, come è facilmente immaginabile, più "passaggi" significano più sicurezza.
Google, però, ricorda che nel 2008 alcuni hacker riuscirono a forzare una criptografia a 7 round, mentre fino ad oggi nessuno è riuscito a decrittografare un file codificato a 8 round. I 12 round di Adiantum, quindi, sarebbero più che sufficienti per garantire la sicurezza della crittografia.
Ogni round, oltre ad aumentare la sicurezza, aumenta anche i calcoli necessari per crittografare e decrittografare i dati. Per questo Google ha fatto la scelta di limitare i "passaggi" dell'algoritmo a 12: in questo modo la tenuta agli attacchi resta alta, senza impattare troppo sulle prestazioni dei dispositivi che devono gestire l'algoritmo "ChaCha" di Adiantum.
Più crittografia per tutti
Questo, nei piani di Mountain View, dovrebbe portare ad una "democratizzazione della crittografia": non più optional di sicurezza riservato ai dispositivi di alta gamma, ma feature presente su tutti i device, anche quelli economici. Tuttavia, è bene precisare che Adiantum è stato studiato per funzionare con Android 9 o versioni successive e non è compatibile con i precedenti sistemi operativi del robottino. In ogni caso, se il dispositivo elettronico integra una CPU con l'accelerazione hardware per il sistema di crittografia AES, la stessa Google consiglia ai produttori del device di scegliere quello piuttosto che Adiantum: su sistemi con ARMv8, infatti, AES è non solo più sicuro, ma anche più veloce di Adiantum.