Should the password be plain text when creating a user through the API?

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.

¿Podemos enviar la contraseña cifrada en lugar de la contraseña en texto plano?

¿Existe alguna forma de enviar una contraseña cifrada en lugar de una en texto plano? Estamos desarrollando una aplicación que utiliza la API /session para verificar la autenticación del usuario, donde se deben enviar el nombre de usuario y la contraseña. Noté algo: si abres las herramientas de desarrollo del navegador, puedes ver la contraseña en texto plano que enviamos al iniciar sesión. Por lo tanto, si alguien tiene acceso a mi portátil, ¿la contraseña podría ser comprometida?

Si SSO está habilitado, la contraseña no se utiliza en absoluto, por lo que esto no es un problema. Simplemente proporciona algunos caracteres aleatorios.

Si quieres ir un paso más allá, puedes implementar la fijación de certificados en tu aplicación para asegurarte de que no haya ataques de intermediario.

Mientras uses TLS, las contraseñas se envían cifradas. Si no estás usando TLS, vas a toda velocidad hacia el desastre, sin duda.

Si te referías a “hasheada” en lugar de “cifrada”, entonces no, esa no es una configuración admitida, porque el mecanismo de hashing utilizado dentro de Discourse no forma parte del contrato de la interfaz pública y puede cambiar en cualquier momento.

Bueno, sí, pero si alguien tiene acceso a tu portátil, simplemente puede instalar un keylogger que capture la contraseña antes de que pase por cualquier proceso de hashing. El modelo de amenazas de seguridad de Discourse (y de cualquier aplicación web) incluye la premisa de que el punto final no está comprometido.