Criptografia e segurança por hardware com Arduino/Genuino ou outros sistemas por I2C

Introdução ao problema

Cada vez mais se lêem notícias sobre os perigos da internet das coisas, desde um ataque massivo de negação de serviço distribuída (Distributed Denial of Service) que excedeu larguras de banda de 799Gbps, até botnets de dispositivos IoT, etc…

Uma das preocupações de quem desenvolve produtos IoT, sejam software, hardware ou ambos, acaba por ser a segurança desses dispositivos, e até que ponto a segurança por software é suficiente num dispositivo que pode controlar por exemplo, um sistema de alarme, ou o controlo de aquecimento, etc…

Existem diversos vectores de ataque a dispositivos IoT, desde realizar dump da memória flash, usando por exemplo o Bus Pirate, até crackear os hashes usando por exemplo cudaHashcat, recorrendo à velhinha mas sempre presente consola UART, ou fazendo um dump da memória usando o GDB e ligação JTAG, análise de tráfego, etc… etc… etc.. O detalhar de todas as formas, sai completamente do âmbito deste artigo.

Outra hipótese que gostaria de mencionar é o uso de periféricos “trapaceiros”, não autorizados “rogue devices”, que até podem ser extremamente semelhantes aos “verdadeiros”, mas adulterados para realizarem tarefas “hostis”, como interceptar tráfego, adulterar o funcionamento do dispositivo, “injectar” malware, entre tantas outras possibilidades, são um verdadeiro perigo, para o dispositivo, ou solução!

[...]

Leia o artigo completo na edição 54 da Revista PROGRAMAR

Publicado na edição 54 (PDF) da Revista PROGRAMAR.