
La debole crittografia nella tastiera wireless Acer SK-9662 consente a un attaccante in prossimità fisica sia di decifrare le sequenze di tasti trasmesse via wireless, sia di iniettare sequenze di tasti arbitrarie via wireless.
Ho scoperto una crittografia debole utilizzata nel protocollo wireless della tastiera wireless Acer SK-9662 (FCC ID: H4IKB9662). Questa debolezza crittografica consente a un attaccante di monitorare e registrare facilmente i tasti premuti e di iniettare tasti arbitrari.
La tastiera utilizza un chip Texas Instruments CC2545, trasmettendo i dati tramite il protocollo Enhanced Shockburst sviluppato da Nordic Semiconductors. Il payload è composto da 12 byte: il primo byte sembra essere un valore costante (0x48 nei miei test). Il secondo byte è il byte dei modificatori (ctrl, shift, ecc.), il terzo e il quarto byte sono i tasti per il controllo consumer e dell'alimentazione. Dal quinto al decimo byte sono i codici dei tasti. L'undicesimo byte funge da checksum e il dodicesimo byte è il numero casuale usato per la crittografia.
La crittografia del payload inizia con la generazione di un byte casuale dal rumore radio. Un byte diverso memorizzato nel firmware (keyvalue) viene usato come chiave per AES. Sia la chiave che il byte casuale vengono riempiti con zeri a 128 bit e inviati al coprocessore AES sul CC2545. Il coprocessore AES è configurato in modalità CBC con IV nullo. L'output del coprocessore AES verrà indicato come xorkey. I primi undici byte del payload vengono sottoposti a XOR con i byte corrispondenti dello xorkey. Il byte casuale è l'ultimo byte del payload per consentire al ricevitore di decrittare il payload.
La decrittazione del payload è simile alla crittografia. Il dodicesimo byte del payload (il valore casuale) insieme al keyvalue (noto al ricevitore in anticipo) viene usato per generare lo xorkey e viene sottoposto a XOR con il payload crittografato.
Questo schema di crittografia è facilmente aggirabile a causa dell'uso di una chiave AES di un solo byte. Poiché la chiave è limitata a soli 256 valori possibili, può essere facilmente forzata con brute force in pochi secondi. Lo script Python in questo repository mostra la decrittazione con brute force di un pacchetto crittografato catturato.
Affinché questa vulnerabilità possa essere sfruttata, un attaccante deve disporre di mezzi per catturare il traffico radio a 2,4 GHz. Ciò richiede una stretta vicinanza fisica alla tastiera bersaglio. Tuttavia, una volta catturato un singolo pacchetto, la chiave AES può essere forzata con brute force in pochi secondi e sono possibili keylogging in tempo reale e iniezione di tasti, consentendo l'accesso al computer della vittima. Un popolare strumento di hacking wireless, jackit (https://github.com/insecurityofthings/jackit), può essere esteso per supportare lo sniffing e l'iniezione di tasti nelle tastiere SK-9662 vicine, il tutto con una chiavetta USB 2,4 GHz economica.
La tastiera SK-9662 è un prodotto obsoleto. Non esiste un meccanismo di aggiornamento per la tastiera e gli utenti dovrebbero cessare l'uso della tastiera vulnerabile. Acer consiglia di passare a una tastiera più recente.