La reciente API de WebCrypto puede generar claves privadas / públicas . Para evitar que la clave privada sea extraíble con JavaScript, el objeto CryptoKey podría almacenarse así en IndexedDB.
Supongo que si lo almacenamos así, un malware podría leerlo fácilmente, seguramente es por eso que la API de WebCrypto puede envolver la clave con otra clave , para que la clave privada se pueda almacenar en IndexedDB encriptada. La clave de ajuste se almacena en el lado del servidor y se envía al cliente después de una autenticación exitosa.
Entonces, si el navegador está cerrado, el malware debería poder obtener la clave privada, pero está encriptada y en teoría es inútil (excepto para ataques de fuerza bruta).
Pero si se abre el navegador y el usuario inicia sesión, el servidor envía la clave secreta para desenvolver la clave privada. Entonces, en este momento, ¿es posible que un malware lea el tráfico de la red, la RAM, los archivos, los cachés, la lectura / extracción de la clave privada sin cifrar?
Sobre el tráfico de red, asumo que todo está en HTTPS, TLS 1.2 mínimo con un conjunto de cifrado sólido, con HSTS establecido en la edad máxima, incluidos los subdominios, y con HPKP para evitar ataques MITM.