¿Es posible tener autenticación sin estado

9

Para iniciar sesión en la mayoría de los sitios web, necesita un nombre de usuario y contraseña que a menudo se almacena en una base de datos SQL. Está almacenando información por usuario que puede cambiar, esto es el estado. ¿Puede probar que alguien tiene los derechos para acceder a su sistema, como un administrador o un usuario, sin la necesidad de almacenar el estado por usuario?

    
pregunta rook 30.03.2011 - 23:55
fuente

3 respuestas

16

Hasta cierto punto, puede descargar el estado en los clientes. Codifica los derechos de acceso de un usuario en un blob al que agrega un MAC computado con una clave secreta de servidor. El blob-con-MAC se envía al cliente. Más tarde, el cliente vuelve y muestra el blob; el servidor verifica el MAC y, por lo tanto, se asegura de que el blob sea legítimo. Esto se asigna razonablemente bien en las cookies HTTP. Posiblemente, el blob podría contener algunos datos encriptados (de nuevo con una clave simétrica solo para el servidor) si el servidor desea almacenar algunos datos relacionados con el usuario sin hacerlos visibles para el usuario.

Los problemas comienzan cuando desea revocar o cambiar los derechos. No se puede evitar que un cliente muestre una burbuja obsoleta. Esto puede solucionarse utilizando una combinación de fechas de vencimiento (el blob contiene una fecha y es válida para, por ejemplo, una semana) y, si es necesario, listas de revocación (el servidor conoce una lista de blobs que debe rechazar, incluso si su MAC se ve bien, esto es un estado, pero no mucho porque la gran mayoría de los derechos de acceso no son revocados).

Si la entidad que emite los derechos de acceso (la que crea el blob) y la entidad que verifica los derechos de acceso (la que verifica el MAC) no son las mismas, entonces debe reemplazar el MAC con un esquema de firma digital .

    
respondido por el Thomas Pornin 31.03.2011 - 00:30
fuente
1

Al utilizar Kerberos , la complejidad que tiene que realizar un seguimiento del estado de autenticación está aislada. El último paso para acceder al servicio, el cliente proporciona un Ticket que contiene todo el estado necesario para otorgar la autenticación al cliente. La criptografía asimétrica permite este complejo apretón de manos sin necesidad de comunicación entre los tres servidores. El servidor de impresión al final no requiere un estado almacenado o una base de datos de las credenciales del usuario.

    
respondido por el rook 31.03.2011 - 02:04
fuente
1

puede acceder a los derechos de administrador y de usuario en un sistema, permitir a los administradores solo acceso local y a cualquier otro usuario cualquier acceso.
Sin embargo, sería un poco caótico.

los tableros de imágenes (wakaba, futaba, & c.) tienen una especie de token que se encripta y se muestra junto al nick de los usuarios, para que las personas puedan probar quiénes son.
Sin embargo, los usuarios en dichos sitios no tienen muchos derechos además de publicar, y además, no es menos caótico.

    
respondido por el kuhkatz 31.03.2011 - 21:46
fuente

Lea otras preguntas en las etiquetas