venerdì 3 gennaio 2014

Quello che non sapevi delle memory card...

Le memory card Micro Secure Digital (microSD) sono qualcosa di curiosissimo: piccole nelle dimensioni, parecchia memoria a bordo e prezzo stracciato. Dov'è il trucco?

Lo ha spiegato in alcuni articoli il progettista del Chumby, che si ritrovò nel 2010 con una partita di memory-card Kingston fallate che sembravano proprio dei cloni cinesi rimarchiati abusivamente (salvo poi scoprire che "Kingston" non è un fabbricante ma solo un grosso rivenditore di pezzi prodotti da altri).




Il trucco sta nel fatto che in ogni singola memory card non c'è solo la memoria, ma c'è anche controllerino di bordo che può contenere addirittura un processore a 32 bit classe ARM7: il suo sofisticato software di controllo/correzione errori e rilocazione dei settori guasti serve per apparire a qualsiasi sistema operativo come una normale memoria da tot gigabyte: il layer della memoria (il più costoso) è infatti costruito in estrema economia, ed anche se avesse il 70% di settori rovinati è ancora vendibile (16Gb -70% = poco più di 4Gb, cioè rivendibile come una 4Gb perfetta; tanto il cliente finale si contenta di ciò che il PC/telefonino/tablet vede e paga ciò che c'è scritto sulla confezione).

Prima o poi potremmo sentir qualcuno che dice di aver installato Linux sulla memory card, letteralmente: cioè sul processorino a 32 bit del controller interno della memory card da cinque euro. Proprio come l'installazione di Linux sull'hard disk letteralmente (cioè sul controller dell'hard disk stesso).

Infatti c'è un serio rischio: quello che tu abbia per le mani una memory card (o un hard disk) che sembra comportarsi come una memory card (o un hard disk) quando ci leggi e scrivi, e in realtà sta facendo qualcos'altro. I firmware di quei controller sono generalmente modificabili (e fino ad oggi non protetti e non crittografati) e non c'è bisogno di Linux per inventare qualche attacco MITM (man-in-the-middle).

Il bello è che a livelli industriali il controllerino di bordo incide sul costo di produzione di una singola memory card di soli 15-30 centesimi, cioè lo stesso costo industriale di un controllo completo in fase di produzione. Verificare la bontà di una memorietta costa pressappoco lo stesso del farla leggermente più grande e di inserirvi un controllerino che la fa sembrare buona rilocando freneticamente i settori guasti (come per i dischi SSD). Solo che la qualità media delle memoriette diventa sempre più scarsa (e non è un caso che microSD, penne USB, eccetera, durino così poco).

Nessun commento:

Posta un commento