Crittografia lato client con chiave pubblica

3

La mia situazione:

  1. La password di accesso da una richiesta POST viene lasciata nella memoria del browser in chiaro, a condizione che la cache non venga cancellata (browser di chiusura / chiusura).

  2. La connessione è HTTPS.

Soluzione possibile:

  1. Genera chiave pubblica e chiave privata sul server per ogni richiesta di accesso.
  2. Invia chiave pubblica al browser.
  3. Utilizza JavaScript per crittografare la password con la chiave pubblica e inviarla al server.
  4. Decifra utilizzando la chiave privata e convalida.
  5. Elimina le chiavi dopo il login.

La mia domanda è, è fattibile? Pro e contro? Ci sono considerazioni sulla sicurezza o sulle prestazioni?

Ho esaminato alcune domande come:

  1. Hashing lato client
  2. Webcrypto
  3. crypto javascript

Il primo non risponde alla mia domanda in quanto suggerisco di generare un nuovo paio di chiavi su ogni richiesta (che onestamente è la mia più grande preoccupazione per quanto riguarda la fattibilità e le prestazioni). Gli altri due link sembrano suggerire che la crittografia javascript sia fondamentalmente inutile finché si dispone di una connessione HTTPS. Pensieri?

    
posta user2300868 22.04.2016 - 22:57
fonte

1 risposta

1

Generare un'altra chiave pubblica-privata sarebbe eccessivo per questo senario.

Se sei davvero preoccupato che alcuni malware leggano la cache del browser, puoi istruire il browser a non memorizzare nella cache nulla.

<meta http-equiv=”Cache-Control” content=”no-cache” />
<meta http-equiv=”Cache-Control” content=”no-store” />

Se sei preoccupato per qualcuno che legge nella memoria per trovare il testo in chiaro del nome utente e / o della password, allora puoi implementare una soluzione simile a quella definita nel senario # 2 qui ( link )

Nota che devi scorrere un po 'verso quella pagina per vedere il contenuto, c'è un annuncio gigante che compare per primo.

    
risposta data 23.04.2016 - 19:43
fonte

Leggi altre domande sui tag