¿Cuál es una buena razón para conservar las credenciales de OAuth?

0

Mientras revisaba la base de datos de algunos sitios web, observé tablas donde las credenciales de OAuth (como el token, el token de actualización) entre otra información se almacenan en la base de datos.

Entiendo que esta información se requiere principalmente para la duración de la sesión del usuario y no más después de eso, por lo que mi pregunta es ¿por qué se guardaría en una base de datos o se almacenaría en cualquier medio?

¿Podría almacenarse solo para ahorrar el costo de la revalidación después de que la sesión haya expirado?

    
pregunta NoChance 24.01.2017 - 15:10
fuente

1 respuesta

1

Hay tokens de acceso y tokens de actualización.

El token de acceso suele ser de corta duración (piense en 30 o 60 minutos), y no hay razón para persistir después de que haya expirado. No tiene uso para nadie.

El token de actualización es necesario para obtener un nuevo token de acceso, y suele ser de larga duración; al menos mientras sea una sesión activa.

Si un atacante obtiene un token de actualización, tiene todo el acceso que tendría el usuario si hubiera iniciado sesión con ese token. Sin embargo, tienen acceso a la (s) sesión (es) para las que ese Refresh Token en particular los autoriza. (Lo que significa que, si el token se otorgó por un privilegio menos que lo normal para ese usuario, el atacante tendría el mismo privilegio reducido). Además, como no es una contraseña con hash, no pueden derivar la contraseña de texto simple con tablas de arco iris.

Un token de actualización se puede retirar en cualquier momento, sin necesidad de que el usuario cambie su contraseña.

Desde un punto de vista de seguridad, usar un token de actualización en lugar de requerir que el usuario inicie sesión de nuevo protege contra la navegación por los hombros. El inconveniente es que si el atacante tiene acceso físico al dispositivo que contiene el token de actualización, tampoco es necesario que se autentique.

Tenga cuidado al eliminar los tokens de actualización. Un token de actualización caducado no tiene ningún uso para nadie y se puede eliminar de forma segura. Pero eliminar un token de actualización activo requiere que los usuarios inicien sesión nuevamente; causándoles inconvenientes innecesarios.

Asegúrese de que la base de datos que contiene los tokens de actualización activos esté bien protegida. Normalmente no están hash como las contraseñas.

    
respondido por el S.L. Barth 24.01.2017 - 15:41
fuente

Lea otras preguntas en las etiquetas