Criptazione della stringa della password in C ++

1

Ho un'applicazione client basata su client in cui all'utente viene presentata una schermata di accesso nel client. Quindi passa le credenziali al server che esegue l'autenticazione. Le comunicazioni client-server avvengono tramite un servizio Web ospitato sul server utilizzando il protocollo https (con supporto TLS1.2). Il cliente passa il nome utente e la password al servizio web. Sto pensando di crittografare la password, anche se sto usando la comunicazione basata su HTTPS. Le mie domande sono:

  1. Vale la pena fare un secondo livello di crittografia per la password?
  2. C'è qualche buona pratica da seguire (come quale algoritmo usare ecc.)?
  3. È un'applicazione basata su MFC scritta in C ++. Windows fornisce metodi per farlo?
posta Asha 14.01.2016 - 10:21
fonte

1 risposta

7

No, non devi crittografare la password sul client se la trasmissione dei dati è protetta.

Se hai tutto perfettamente, non è probabile che tu aggiunga sicurezza al processo.

Se non lo rendi perfetto, potresti introdurre una nuova vulnerabilità (buffer overflow, oracle attack, ecc.).

Se la versione TLS che stai utilizzando viene compromessa in qualche modo, allora hai un problema MOLTO più grande che perde la password in transito.

Non dovresti cancellare la password (per gli stessi motivi di cui sopra).

Nota che c'è un caso particolare: potresti voler che il tuo processo di login passi attraverso un challenge-response sistema, anche se utilizzi TLS, per richiedere una prova di lavoro dal chiamante. Per alcuni servizi specializzati, questo potrebbe aiutare ad alleviare gli attacchi DOS cercando di sovraccaricare il componente di autenticazione (anche se c'è un dibattito sull'efficacia di quella misura nel campo e se vale la pena rispetto ad altre contromisure DOS).

    
risposta data 14.01.2016 - 11:19
fonte

Leggi altre domande sui tag