Sto scrivendo una piccola webapp e non voglio trasmettere le password di accesso come testo in chiaro. Dato che non ho SSL disponibile, ho scritto un sistema di una tantum che invia una stringa casuale con il modulo di login che viene poi utilizzato per cancellare la password usando HMAC-SHA256 sul lato client. Uso la stringa di verifica casuale come messaggio e la password dell'utente come chiave segreta per HMAC.
So che le soluzioni autoprodotte sono in genere una cattiva idea, quindi volevo chiedere se ho commesso un errore qui.
Modifica : sembra esserci un equivoco, non sto chiedendo informazioni sulla memorizzazione della password o sui sistemi di richiesta / risposta, ma sulla trasmissione di HMAC e password. Per chiarire un po ': la mia prima versione era HMAC(msg=password, key=challenge)
, perché pensavo, beh, il messaggio che voglio trasmettere al server è la password dell'utente. Ma in seguito ho notato che la stringa della sfida non è esattamente una chiave segreta, quindi l'ho cambiata, ma questo mi ha fatto pensare che forse avrei fatto qualcosa di completamente sbagliato e ho pensato che avrei fatto meglio a chiederglielo.