¿Cómo puede un sistema otorgar acceso constante sin usar una clave constante?

0

Necesitamos implementar una autenticación para usuarios de un sistema a otro. Anteriormente utilizábamos OAuth (el usuario ingresa el nombre de usuario / contraseña y el sistema obtiene una clave de acceso temporal y una clave de actualización constante para actualizar la clave de acceso), pero ahora hemos decidido mejorar la seguridad y dejar de usar este sistema porque la clave de actualización es constante. Estamos buscando una forma que no requiera el almacenamiento de una clave constante para evitar una situación en la que alguien que roba la clave y obtiene acceso al sistema para siempre sin que tengamos una manera de saberlo y cambiar la clave.

Una solución simple es actualizar la clave de actualización en cada período de tiempo definido requiriendo que el usuario inicie sesión nuevamente. Pero nuestro cliente desea que los usuarios inicien sesión solo una vez y no deberían tener más "problemas" con la autenticación después de eso.

Esta situación parece mutuamente excluyente: el sistema no debe tener una clave constante, pero debe permitir un acceso constante. ¿Hay alguna manera de combinar los dos?

    
pregunta Colombo 12.12.2017 - 13:21
fuente

2 respuestas

1

No se puede hacer. El usuario que ha iniciado sesión debe demostrar que es la persona que se autenticó manualmente. Para hacer eso necesitas algún tipo de token. Míralo de esta manera: ¿qué sucede si se clonó la máquina cliente? ¿Cómo podrías diferenciar lo real y lo falso?

La única alternativa es al vencimiento, lo que obliga al usuario a volver a autenticarse manualmente.

    
respondido por el Hector 12.12.2017 - 13:53
fuente
-1

La única forma de manejarlo es proporcionar una forma para que el token de actualización se actualice usándose como token de autorización.

Sin embargo, es de dudosa utilidad ya que un token robado podría usarse para mantener el acceso permanente.

Quizás un enfoque más equilibrado sería identificar cada token por dispositivo y proporcionar una forma para que el usuario revoque cada token por separado.

    
respondido por el Stephane 12.12.2017 - 13:28
fuente

Lea otras preguntas en las etiquetas