La recente API WebCrypto può generare chiavi private / pubbliche . Per impedire che la chiave privata sia estraibile con JavaScript, l'oggetto CryptoKey potrebbe essere memorizzato in questo modo in IndexedDB.
Suppongo che se lo memorizziamo in questo modo, un malware potrebbe leggerlo facilmente, è sicuramente il motivo per cui l'API WebCrypto può racchiudere la chiave con un altro tasto , in modo che la chiave privata possa essere memorizzata in IndexedDB crittografato. La chiave di wrapping viene archiviata sul lato server e inviata al client dopo un'autenticazione corretta.
Quindi, se il browser è chiuso, il malware dovrebbe essere in grado di ottenere la chiave privata ma è crittografato e in teoria inutile (eccetto per attacco brute-force).
Ma se il browser è aperto e l'utente effettua il login, il server invia la chiave segreta per scartare la chiave privata. Quindi, in questo momento, è possibile che un malware legga il traffico di rete, la RAM, i file, le cache, per leggere / estrarre la chiave privata non crittografata?
Riguardo al traffico di rete, presumo sia tutto in HTTPS, TLS 1.2 minimo con una suite di crittografia robusta, con HSTS impostato su età massima compresi sottodomini e con HPKP per prevenire attacchi MITM.