Sto facendo un'applicazione desktop in C # e voglio sapere se sto gestendo questo (dal punto di vista della sicurezza) come dovrebbe essere o meno.
La mia tabella Utenti ha sia hashed_password
che salt
, entrambi sono binari (32).
Per creare un nuovo account:
- L'utente digita il nome di accesso e la password
- Un sale viene generato casualmente (ciò avviene dal lato client).
- Il sale creato verrà utilizzato per cancellare la password (SHA256).
Login:
- L'utente digita la sua password
-
Un'istruzione
select
viene apportata al database per ottenere il sale , l'hash la password digitata che utilizza salt e viene confrontato con il database
Le mie domande sono:
- È una cattiva pratica avere la password salt come
binary(32)
? - Ha senso generare il sale nell'applicazione e quindi inviarlo al database? Se no, perché? (Solo un utente avrà accesso alla funzione di creazione degli account, creerà gli account per tutti)
- Se la parte in grassetto sopra è una cattiva pratica?