Gestione dell'accesso utente tramite crittografia asimmetrica

0

È possibile implementare un protocollo di accesso con crittografia asimmetrica anziché il metodo della password con hash?

Ad esempio, durante la creazione di un account, il client genera una coppia di chiavi privata / pubblica da un hash del nome utente, della password e di altri dati aggiuntivi. La chiave pubblica viene quindi inviata al server con il nome utente e il server memorizza il nome utente e la chiave pubblica. Quando l'utente vuole accedere, inserisce la sua password, il client rigenera la chiave privata, firma un nonce con esso e invia il messaggio firmato al server. Il server è quindi in grado di autenticare l'utente poiché conosce la chiave pubblica associata al nome utente.

C'è qualche difetto in questo protocollo?

E quali sarebbero i vantaggi rispetto alla memorizzazione dell'hash della password?

EDIT: Ho effettivamente trovato una risposta abbastanza completa qui: link

    
posta lmeunier 20.05.2016 - 10:47
fonte

1 risposta

1

È una cattiva idea generare la chiave per la crittografia asimmetrica completamente su dati prevedibili (cioè la password scelta dall'utente) anziché su dati casuali protetti. Basando la chiave completamente su dati prevedibili, la chiave ottiene la stessa prevedibilità della password utilizzata come input.

Tuttavia, la crittografia asimmetrica può essere utilizzata per l'autenticazione / login ma non nel modo in cui viene proposta. Esempi tipici sono l'autenticazione con i certificati client in TLS e l'autenticazione con una chiave in SSH. In entrambi i casi, la chiave pubblica è conosciuta dal server (e associata all'utente) oppure il server può ottenere fiducia nel certificato costruendo la catena di fiducia in certificati di emittente attendibili a livello locale.

    
risposta data 20.05.2016 - 14:56
fonte

Leggi altre domande sui tag