Ecco il contesto:
Sto utilizzando PGP
per crittografare i messaggi in un'app web di chat. Dopo aver esaminato alcuni articoli, ho una breve idea di come funzioni PGP ed ecco come lo faccio con openPGPJs :
-
Client
(browser web) generapublic/private key-pairs
e invia la chiave pubblica al server per memorizzarlo. - Il mittente utilizza il
public key
del destinatario per crittografare i dati e inviarli. - Il destinatario utilizza il proprio
private key
per decrittografare il messaggio.
Come app di chat ho bisogno di memorizzare tutti i messaggi e decifrarli quando l'utente vuole vedere il vecchio messaggio. la decrittazione dei messaggi richiede la chiave privata. qui il client è un browser Web che non può memorizzare le chiavi private a lungo né può tenerle al sicuro. così ho deciso di memorizzare la chiave privata sul server web. Ora il client (browser Web) richiede al server la chiave privata ogni volta che viene decrittografato il messaggio.
Considerando PGP un protocollo End-to-End, l'archiviazione della chiave privata sul server è vulnerabile. la mia domanda è:
-
In che modo la crittografia PGP funziona per le applicazioni Web in cui il client non è in grado di mantenere
private key
sicuro e riservato? -
Va bene memorizzare
private key
sul server? - C'è un modo migliore per farlo?
Grazie per eventuali suggerimenti.