Por lo tanto, esta pregunta está profundizando en la seguridad y el cifrado, y muchos no han encontrado el problema. Las respuestas pueden ser teóricas. Déjame resumir el escenario ...
- El frontend de un sitio web se maneja a través de una API de backend. El backend tiene un punto final que maneja un formulario de registro genérico con
username
ypassword
. Está utilizando SSL. - La API de backend maneja el registro a través de una cola de trabajo asíncrona. La cola no devuelve respuestas al servidor API. Es una operación de configurar y olvidar para poner en cola el registro.
- Los trabajadores recogen los trabajos en cola. Los trabajadores se encargan de crear la cuenta de usuario. Estos trabajadores necesitan acceso a la contraseña de usuario de texto simple para que puedan activar una llamada de registro de API de terceros con la contraseña.
Por lo tanto, el verdadero quid del problema es la sincronización de la contraseña con la API de terceros sin revelarla a los curiosos. La cola plantea el problema de no tener acceso directo a la contraseña de texto sin formato desde los datos POST globales, lo que significa que debe almacenarse de alguna manera en la cola.
La cola puede almacenar fácilmente la contraseña con hash y copiarla directamente en la tabla de usuarios. Sin embargo, esta solución no permite la sincronización de la contraseña con la API de terceros, ya que ya está cifrada. Jugué con cifrado bidireccional, pero me preocupa de todo corazón dejar que la contraseña sea susceptible de descifrado por parte de un atacante.
¿Alguien puede pensar en una forma segura de manejar este escenario de sincronización de contraseña?
La cola es un requisito y se supone que esto puede ser leído por cualquier persona con acceso al servidor. Las contraseñas no necesariamente tienen que estar sincronizadas; la contraseña para la API de terceros podría ser una derivación del original siempre que haya un medio seguro para descifrar a través del usuario registrado sin proporcionar su contraseña. Básicamente, esto es para simular el inicio de sesión único con una API de terceros que no es compatible con SSO.