Sto scrivendo un back-end / api web per un'applicazione iOS usando Node.js e MySQL. Nel mio database ho una tabella per i post. Vorrei che il contenuto dei post fosse crittografato. Supponiamo che io stia utilizzando questo AES per la crittografia.
Vorrei poter crittografare e decrittografare in modo sicuro i dati sul server. I dati inviati avanti e indietro sul client non saranno crittografati, ma inviati su HTTPS (è una buona idea)?
Le mie domande:
-
Come dovrei generare le chiavi? Dovrebbero essere stringhe casuali?
-
Dove dovrei memorizzare le chiavi poiché ci sarà una chiave diversa per ogni messaggio.
Modello di avversario
Mi piacerebbe proteggere contro qualcuno che ha già accesso al mio server che esegue l'API https (scritto in Node.js) e ha accesso al mio DB MySQL. Mi piacerebbe proiettare contro quella persona in grado di decodificare i dati crittografati in quella tabella. Pertanto, è importante che anche se dispongono di molti dati crittografati e di come funziona la crittografia non è possibile decodificare i dati.