Sono tempi duri per gli algoritmi crittografici. Dopo la pubblicazione delle vulnerabilità KRACK e ROCA , che riguardano rispettivamente l’algoritmo WPA2 ed i dispositivi Trusted Platform Module (TPM) di Infineon, è stata recentemente scoperta una nuova problematica di sicurezza , relativa alle reti VPN gestite da dispositivi Fortinet.
La vulnerabilità è stata scoperta da due ricercatori della University of Pennsylvania , Shaanan Cohney e Nadia Heninger, e dal crittografo Matthew D. Green, della Johns Hopkins University , ed è stata battezzata DUHK, acronimo che sta per “Don’t Use Hard-coded Keys” .
Il nome della vulnerabilità si riferisce direttamente ad una delle tre condizioni che devono verificarsi affinché un dispositivo di rete sia vulnerabile all’attacco:
- l’utilizzo del generatore di numeri pseudo-casuali ANSI X9.31, il quale è stato compliant agli standard FIPS – Federal Information Processing Standards – fino a gennaio del 2016;
- il seed utilizzato dal generatore di cui sopra deve essere hard-coded all’interno del codice sorgente;
- l’ output del generatore di numeri pseudo-casuali non deve subire ulteriori elaborazioni prima di essere utilizzato per generare le chiavi di cifratura.
Attualmente, sono sicuramente vulnerabili a DUHK i sistemi operativi FortiOS dalla versione 4.3.0 alla 4.3.18: di conseguenza, il traffico generato da reti VPN, gestite da dispositivi Fortinet che utilizzano queste versioni del sistema operativo, può essere decifrato da un attaccante che riesca a catturare i pacchetti relativi alla procedura di handshake .
Tuttavia, ANSI X9.31 è stato utilizzato negli anni da diversi produttori, nonostante fosse noto sin dal 1998 che, per garantire la sicurezza delle chiavi, il seed dovesse rimanere segreto . Al tempo, il nome del generatore era ANSI X9.17 e utilizzava gli algoritmi DES e 3DES anziché AES per generare la chiave seed . La lista delle policy di sicurezza e dei relativi produttori – qui presente – è stata allegata all’interno del paper dai ricercatori anche se, col passare degli anni, alcuni di essi hanno aggiornato il software dei loro dispositivi e le relative policy di sicurezza, rimuovendo ANSI X9.31 in favore di generatori di numeri pseudo-casuali più sicuri.
Per quanto riguarda la complessità computazionale dell’attacco, i ricercatori dichiarano di essere riusciti a recuperare lo stato interno del generatore di numeri, utilizzato da una rete VPN con protocollo IKEv2, in 15 minuti core, dunque in circa 4 minuti , utilizzando un processore quad-core.
Una volta raggiunto questo obiettivo sono necessari ulteriori passi per ottenere le chiavi crittografiche, i quali tuttavia possono essere completati in pochi secondi.
Fortinet ha replicato rapidamente con un articolo sul proprio blog , affermando che la problematica è stata risolta da tempo, avvisando i propri clienti di aggiornare FortiOS 4 alla versione 4.3.19, oppure di migrare a FortiOS 5. Fortinet dichiara che la vulnerabilità è stata risolta su FortiOS 5, sostituendo ANSI X9.31 con il più sicuro CTR_DRBG (Counter-mode Deterministic Random Byte Generator) , mentre è stata patchata su FortiOS 4. Il tutto è documentato da un avviso PSIRT risalente a novembre 2016.
Elia Tufarolo