Quando si segue l’esempio troppo alla lettera: il caso Hyundai di greenluigi1

0

“Segui l’esempio” è il mantra per imparare le cose: non c’è dubbio. Che l’esempio sia in un manuale, un maestro in carne ed ossa o solo un post su qualche forum oscuro è solo un dettaglio: il meccanismo è sempre quello di imparare per imitazione, facendo quanto già fatto da altri.
Bisogna però ricordarsi che c’è differenza tra imitare e copiare. Soprattutto quando si parla di sicurezza, specialmente se sono coinvolte chiavi di criptazione.

Troviamo (ehm…) un esempio nel blog “Programming with Style”, in cui greenluigi1 ha pubblicato la storia di come abbia ottenuto l’accesso al sistema di infotaiment della propria macchina (una Hyundai Ioniq). Ricordiamo che questi sistemi possono controllare vari aspetti della macchina: la radio, il navigatore, il condizionatore, il blocco delle porte, etc…
Il racconto, diviso in 3 parti (più bonus), è ben dettagliato – e sinceramente anche interessante. Se volete sapere come lavora (e quanto tempo impegna) davvero un hacker, risulterà davvero appassionante.

Gli sforzi si concentrano sugli update software del sistema (basato, manco a dirlo, su Linux): archivi zip con password, che a loro volta hanno file criptati con l’update vero e proprio. Verso la fine della prima parte siamo ad un punto che sembra invalicabile: greenluigi1 ha ottenuto la chiave pubblica con cui sono stati criptati i file, ma non trova traccia della chiave privata per decriptarli. Cosa in fondo aspettata: per il meccanismo della criptazione asimmetrica, la chiave pubblica è conoscibile da tutti mentre deve essere salvaguardata in ogni modo la chiave privata.

Per poter avere qualche indizio, greenluigi1 ha deciso di cercare la chiave pubblica su internet, banalmente su Google. E scoprire così che è la chiave usata nel manuale NIST SP800-38A per mostrare (e volendo testare) il funzionamento della criptazione AES-CBC a 128 bit. Forse è vero che mettere in bella vista una cosa è il modo migliore per nasconderla, ma in questo caso la strategia è sicuramente sbagliata.

Anche un’altra chiave, quella usata per firmare i file, era necessaria per poter avere pieno controllo e accesso (ovvero: creare un finto update del sistema per poter mettere i propri programmi). E anche in questo caso avevamo solo la chiave pubblica, non la privata. E ancora una volta la ricerca ha puntato ad un documento di esempio pubblico, su Internet.

Lo ricordiamo di nuovo, quindi: tra copiare e imitare c’è differenza. E seguire l’esempio va bene, ma non proprio alla lettera!

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.