C'è un gioco più vecchio che utilizza esclusivamente UDP per comunicare e volevo aggiungere l'autenticazione della password al gioco per facilitare cose come punti esperienza e classifiche. A tal fine, ho deciso di adottare un'implementazione di SRP-6a comunicata su UDP utilizzando un'estensione del protocollo di gioco esistente e ho finito con l'utilizzo di cocagne / csrp sul lato client del gioco, tramite tunnel attraverso il server di gioco e mozilla / node-srp su il lato server di autenticazione, leggermente modificato in modo da produrre la risposta di follow-up% c_srp-compatibile% _.
Ha funzionato abbastanza bene finora, tuttavia non sono un fan di come il verificatore è memorizzato a riposo, poiché sembra che nel processo di calcolo di HAMK
gli input vengano solo sottoposti a hash una volta prima di trasformarsi nel verifier x
, vedi qui . Ho suggerito di cambiare questa funzione di libreria in base alle nostre esigenze (dal momento che è ragionevolmente piccola e già in-tree) e utilizzare qualcosa sulla falsariga di PBKDF2. Tuttavia sto ottenendo (comprensibile) respingimento da un altro sviluppatore sul contatto con il codice di questa natura, buone intenzioni e tutto il resto.
È stato suggerito invece che forse la stessa password dell'utente sia sottoposta a hashing PBKDF2 prima di essere passata come password alla creazione del verificatore e alle funzioni di sfida dell'utente. In questo modo, non dobbiamo modificare alcun codice nella libreria csrp stessa. È un approccio valido? O c'è un'altra trappola per orsi in attesa di ingannarci se facciamo questo?
Per quello che vale, il documento di protocollo completo è qui , quindi se sto facendo altri tipi di snafus sarebbe bello saperlo.