Sto creando un servizio di messaggistica per un'app che sto sviluppando e in questo momento il flusso di dati è il seguente:
Invia
messaggio inviato a server = > messaggio crittografato in base alla chiave pubblica dell'utente e firmato utilizzando la chiave segreta = > messaggio crittografato salvato nel database
Ricezione:
server riceve messaggi da database = > server verifica la firma utilizzando la chiave pubblica e decrittografa il messaggio utilizzando la chiave segreta = > messaggio decrittografato inviato al client
Tutta la crittografia / decodifica sul server dipende dal token JWT dell'utente che viene autenticato.
Ho due domande principali:
-
Va bene criptare sul server poiché la comunicazione tra esso e il client sta utilizzando TLS?
-
Le chiavi devono essere memorizzate sul server o nel database?