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
selectviene 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?