I’m creating a small windows application that will use Discourse as the SSO provider. The first step in that chain is allowing the app to create a user through the Discourse API.
I’ve got that working, however it seems that the password for the user is passed in plain text and I’m wondering why that is? It seems like that could be a security issue… is the thought just that people should use SSL and that’s good enough to protect the password?
Yes, SSL is considered sufficient to protect secrets in-flight. Until the world sees the light and switches to something like TLS-SRP, sharing secrets over a secured channel are pretty much all we’ve got to work with.
Esiste un modo per inviare una password cifrata invece che in chiaro? Stiamo sviluppando un’app che utilizza l’API /session per verificare l’autenticazione dell’utente, dove è necessario inviare nome utente e password. Ho notato che, ad esempio, se si apre lo strumento di sviluppo del browser, è possibile vedere la password in chiaro che viene inviata durante l’accesso. Quindi, se qualcuno ha accesso al mio laptop, la password potrebbe essere compromessa, giusto?
Finché stai utilizzando TLS, le password vengono inviate cifrate. Se non stai utilizzando TLS, sei su un treno veloce verso il disastro, punto.
Se intendevi “hashata” invece di “cifrata”, allora no, non è una configurazione supportata, perché il meccanismo di hashing utilizzato all’interno di Discourse non fa parte del contratto dell’interfaccia pubblica ed è soggetto a modifiche in qualsiasi momento.
Beh, sì, ma se qualcuno ha accesso al tuo laptop, può semplicemente installare un keylogger che cattura la password prima che venga sottoposta a qualsiasi processo di hashing. Il modello di minaccia alla sicurezza di Discourse (e di ogni singola applicazione web) include la premessa che l’endpoint non sia compromesso.