Recentemente mi è stato assegnato il compito di testare un nuovo dispositivo hardware che comunica con un'API JSON su UDP.
Per una ragione o per l'altra, è stato deciso di utilizzare AES-CBC-128 per crittografare il traffico. Credo che ciò sia stato per impedire a qualcuno di creare il proprio software / script che si interfaccia con questa scheda (che è proprietaria) offuscando l'API. Il partito responsabile per il consiglio di amministrazione di quello che ho capito ha accolto gli attacchi di replay e man-in-the-middle.
Altrimenti, la crittografia è abilitata in produzione, dove possiamo impostare la chiave di cifratura e il vettore inizializzato usato. In definitiva, il computer e tutti i dispositivi connessi verranno spediti con la crittografia abilitata per un client. Mi rende prudente che questa metodologia significhi che la chiave sia impostata e mai modificata.
Il mio piano era di memorizzare questa chiave localmente in un file crittografato sul filesystem locale. C'è qualche problema con questo? Come è palesemente ovvio: non sono un esperto in sicurezza. Anche il computer fornito con il prodotto sarà su una rete attiva. Anche la mancanza di autenticazione mi preoccupa. Sarà necessaria una cosa del genere qui?