Cifrado de datos y SSO

3

Proporciono un servicio en el que los usuarios pueden almacenar datos, archivos, etc. en forma cifrada. El servicio que he creado tiene dos aplicaciones para la contraseña del usuario con la que inician sesión en mi servicio: 1) autenticación y 2) la contraseña se utiliza como base para la clave de cifrado secreta para los datos que almacenan con mi servicio.

Me estoy integrando con otro servicio cuyos usuarios necesitan poder acceder a mi servicio a través de SSO, OAuth2, SAML o algún otro estándar. El problema obvio es que la contraseña del usuario se elimina y, por lo tanto, no se puede utilizar como una clave secreta.

Algunas preguntas:

¿Se puede pasar la contraseña del usuario del servicio principal a mi aplicación permitiendo que se use como la clave secreta para el cifrado?

Si se genera aleatoriamente un secreto cuando el usuario se registra para mi servicio a través de SSO, ¿se puede almacenar de forma segura en cualquier lugar?

Actualmente mi servicio emplea cifrado simétrico AES-256. ¿Hay un mejor esquema de encriptación para mi caso de uso?

¿Alguna idea para una cadena que no sea la contraseña del usuario que pueda usarse como clave secreta?

    
pregunta user138172 02.02.2017 - 20:13
fuente

1 respuesta

1
  

¿Se puede pasar la contraseña del usuario del servicio principal a mi aplicación permitiendo que se use como la clave secreta para el cifrado?

No. Ese es el punto del protocolo.

  

Si se genera aleatoriamente un secreto cuando el usuario se registra para mi servicio a través de SSO, ¿se puede almacenar de forma segura en cualquier lugar?

¿Seguro de quién? Supongo que su sistema fue diseñado para que ni siquiera usted pudiera descifrar los archivos privados de alguien. Si ese es el caso, entonces no, no hay un lugar donde pueda almacenarlo donde no pueda obtenerlo, a menos que se lo pase al usuario final y le pida que lo guarde.

  

Actualmente mi servicio emplea cifrado simétrico AES-256. ¿Hay un mejor esquema de encriptación para mi caso de uso?

Incluso AES128 es bastante fuerte. Sin saber más sobre su sistema, es difícil para mí decir si se beneficiaría de algún aspecto que use una clave pública / privada.

  

¿Alguna idea para una cadena que no sea la contraseña del usuario que pueda usarse como clave secreta?

Si fuera yo, no quisiera que usaras mi contraseña (que es bastante corta). Me gustaría poder escribir una frase de contraseña arbitrariamente larga en un cuadro de texto grande y de varias líneas. Probablemente pegaría un par de páginas de un libro que me gusta, lo que me facilita la recuperación.

También puede generar un valor al azar y guardarlo como una cookie o archivo para que el usuario final lo conserve.

    
respondido por el John Wu 02.02.2017 - 23:31
fuente

Lea otras preguntas en las etiquetas