Evitare gli attacchi di replay sul canale leggero

3

Sono in procinto di costruire una rete di piccoli dispositivi (microcontrollori ARM con qualcosa come la connettività nRF24L01). I controller riceveranno i comandi da un sistema centrale tramite questi collegamenti wireless e sono in procinto di progettare il protocollo. La riservatezza è un non obiettivo, ma integrità e integrità; autenticità sono. Di conseguenza, dobbiamo convalidare sia l'origine che evitare gli attacchi di replay dei pacchetti. Vorrei evitare qualsiasi protocollo di richiesta / risposta per ridurre il traffico e il consumo della batteria, quindi quello che ho in mente è qualcosa del tipo:

  • L'ID della chiave e del dispositivo vengono masterizzati nel dispositivo nel firmware.
  • Un contatore è inizializzato su 0.
  • Ogni comando inviato al dispositivo contiene l'ID dispositivo, contatore ++ e il comando stesso. Quindi un HMAC-SHA1 viene calcolato su tutti questi campi e allegato.
  • Alla ricezione di un comando, il dispositivo verifica l'HMAC-SHA1, l'ID del dispositivo e assicura che il valore del contatore sia strettamente maggiore del contatore memorizzato nella NVRAM. In tal caso, imposta il contatore NVRAM sul valore nel pacchetto ricevuto ed esegue il comando.
  • (Probabilmente un ack di qualche tipo qui.)

Questo protocollo è simile a tutto ciò che esiste (non ho trovato nulla) o c'è qualcosa di adatto che esiste già? Mi manca un grosso difetto?

    
posta David 13.03.2014 - 08:21
fonte

1 risposta

1

Solo il suggerimento che posso dare è di controllare sempre gli acks e farli includere il contatore, altrimenti un attaccante potrebbe far cadere selettivamente (o ritardare, ma non riordinare) i pacchetti.

Inoltre, devi pensare a un modo per tenere traccia del valore di ogni contatore di dispositivi.

    
risposta data 13.03.2014 - 08:57
fonte

Leggi altre domande sui tag