Alcuni siti che uso controllano la mia password mentre la digito nel modulo di login ( non registrazione). Quindi, per esempio, per cominciare potrei avere:
Username: sapi ✓
Password: passw ×
e quando ho finito di digitare, il sito mi fa già sapere che non ci sono errori:
Username: sapi ✓
Password: password123 ✓
L'invio del modulo è ancora richiesto per l'accesso effettivo.
Supponiamo che questo sia non fatto sul lato client (ad esempio, informando il client dell'algoritmo di hash e dell'hash di destinazione); un simile approccio sarebbe ovviamente non sicuro, in quanto consentirebbe di ottenere un hash dell'utente arbitrario.
Supponendo che la comunicazione sia crittografata, è possibile controllare la password lettera per lettera mentre viene digitata comporta un rischio per la sicurezza?
La mia principale area di interesse è che farlo coinvolge ripetutamente la trasmissione di stringhe simili (sotto):
- alcuni dati generali + la prima lettera della password
- alcuni dati generali + la seconda lettera della password
- ...
- alcuni dati generali + l'intera password
Ciò rende il testo in chiaro di ciascuna comunicazione in una certa misura deterministico (o almeno, correlato a quello delle comunicazioni precedenti e successive).
So che alcuni algoritmi di crittografia sono vulnerabili agli attacchi di testo normale, anche se non sono sicuro che SSL sia uno di questi. Inoltre, non so se il livello di conoscenza acquisito qui (che è ovviamente molto meno di un attacco di testo in chiaro) sia sufficiente per diminuire l'entropia dell'output.
Credo di avere due domande:
- È un rischio per la sicurezza con algoritmi di crittografia web standard (fondamentalmente https); e
- In caso contrario, esiste una classe di algoritmi per cui questo potrebbe porre problemi?
Ho aggiunto un chiarimento alla domanda che mi riferisco a un modulo login , non a un modulo di registrazione. In altre parole, il client non può semplicemente convalidare la password contro le regole di lunghezza / complessità note usando JS; l'account esiste già e il segno di spunta appare solo per una password corretta.