La historia de la separación de la autenticación asíncrona y sincrónica

No hablo de tecnología aquí, solo pienso

El certificado gratuito reemplaza las cookies del navegador

La cookie del navegador es un mecanismo de sesión que se utilizaba para mantener una conexión corta entre el cliente y el servidor en la década de 1990, pero en el año 18 de este siglo, la cookie se retiró de la etapa del historial. Si no me cree, consulte el método de solicitud http actual para obtener de forma predeterminada. Con cookie, como se muestra a continuación:

La cookie aquí se refiere al mecanismo de la cookie que viene con el navegador, que es un concepto limitado. Las cookies del navegador han sido eliminadas y reemplazadas por credenciales de sesión personalizadas como JWT.

El primer uso de cookies en Internet (aplicaciones que no son de laboratorio) es para determinar si el usuario visita este sitio por primera vez en el sitio web de Netscape.

La razón por la que se eliminan las cookies es simple: las cookies han estado en servicio para los principales navegadores durante 24 años y finalmente se inflan. En pocas palabras, el mecanismo de las cookies no es lo suficientemente flexible, es obligatorio enviar / recibir y no se puede personalizar a pedido. Más tarde, por compatibilidad con versiones anteriores, se introdujo una función extraña únicamente de http. La expansión desordenada intensificó la expansión de las cookies y finalmente se eliminó la pesada carga histórica. Con las cookies rotas, los desarrolladores modernos están más inclinados a crear sus propias credenciales de sesión, enviar / recibir / almacenar credenciales a pedido y también cruzar dominios. JWT es una especificación de formato de certificado tan libre, y es muy simple, por lo que la mayoría de los "seguidores de certificados gratuitos" están dispuestos a usar JWT, incluido yo.

 

Autenticación de una sola vez, sin autenticación de sesión (mundo imaginario sin autenticación sincrónica)

La autenticación y la retención de sesión son dos conceptos. La autenticación es única. Después de la primera autenticación, se forma una sesión permanente a través de la credencial (un número aleatorio) guardada por el cliente. Este es el sistema de autenticación estándar actual. ¿Qué tipo de mundo sería si la autenticación y la sesión no estuvieran separadas?

Recordemos la lógica básica de la autenticación: supongamos que hay un sitio web de foro, el servidor debe autenticar cada solicitud de usuario para determinar quién es el solicitante y la información de "quién" generalmente se almacena en la base de datos. Para darse cuenta de que los usuarios pueden publicar y leer publicaciones libremente, el método más simple y violento es llevar un nombre de usuario y una contraseña en el paquete http cada vez que lo soliciten (independientemente de los problemas de seguridad de la red o use https), y el servidor debe tratarlo cada vez. Realice la autenticación (haga coincidir el nombre de usuario y la contraseña en la base de datos).

Esto es un poco como el amuleto del tigre que se usaba para enviar tropas y generales en la antigua China. Una ficha con forma de tigre está hecha de bronce u oro y se divide en dos mitades. La mitad se le da al general y la otra mitad se la guarda el emperador. Solo se pueden usar dos amuletos de tigre al mismo tiempo para enviar tropas. Tiger Symbol es un poco como el escudo USB que le dio Hyundai Bank (algunos llamados K ​​Bao, 囧), de todos modos, es un pequeño token USB, que es equivalente a un certificado emitido por el banco.

Pero este modelo tiene un defecto fatal, ignora la complejidad de la autenticación.

 

La autenticación debe ser un proceso lento (autenticación asíncrona)

Hoy en día, es raro ver sitios web que puedan iniciar sesión ingresando un nombre de usuario y contraseña. Los sitios web con un poco de conciencia de seguridad utilizarán varios métodos como los sistemas Tencent y Ali (inicio de sesión de WeChat, verificación de SMS móvil, Intercepción de inicio de sesión del dispositivo, código de verificación de imagen, reconocimiento facial ...) para autenticarte y asegurarte de que inicias sesión correctamente. Estos procesos de autenticación te consumen al menos 10 segundos (un poco como una tarea asincrónica).

La vejez del "inicio de sesión con un solo clic con nombre de usuario y contraseña" ha pasado. La coincidencia de nombre de usuario y contraseña en la base de datos es en milisegundos (un poco como una tarea de sincronización). Este antiguo sistema de autenticación está destinado a ser inseguro.

 

Separación de autenticación y mantenimiento de sesión (separación de autenticación asíncrona y síncrona)

Por lo tanto, en la era de Internet, surgió el concepto de "sesión (incluidos muchos sinónimos: conexión larga, estado ...)". Para facilitar la comprensión, perdóneme por inventar dos conceptos nuevos: autenticación asíncrona y autenticación sincrónica. La autenticación asincrónica se refiere a la autenticación que requiere mucho tiempo antes del establecimiento de una conexión larga. Por ejemplo, puede tomar un sorbo de café y hacer otras cosas mientras espera unos segundos mientras escanea el código en su teléfono móvil para iniciar sesión, por lo que se llama asincrónica. La autenticación sincrónica se refiere a la finalización de la autenticación asincrónica y el almacenamiento de una credencial (JWT o cookie). El servidor verifica la credencial a una velocidad de milisegundos. Durante este período, no tienes la oportunidad de hacer nada más, por lo que se llama sincronización.

A diferencia de la antigüedad, todas las autenticaciones en Internet, incluida la Internet original, son asincrónicas. El modelo de autenticación de Internet actual es básicamente el siguiente proceso: primero realice la autenticación asincrónica, ingrese una contraseña o datos biométricos, y luego el servidor genera una credencial aleatoria que solo ustedes dos conocen , Durante el período de validez del certificado, no es necesario realizar ninguna autenticación asincrónica, sino una simple autenticación sincrónica. Una vez que expire la credencial, usted y el servidor eliminarán amigos entre sí (eliminarán la credencial vencida), la sesión finaliza y esperará la próxima autenticación asincrónica.

Por supuesto, mucha gente conoce este simple principio, simplemente describo todo el proceso en otro estilo.

mierda, originalmente planeé escribir un tutorial introductorio para JWT. No esperaba escribir más de 1,000 palabras para presentar los conocimientos previos. Luego, el título de este artículo simplemente se cambió.

¡Oh cierto, feliz año nuevo!

(Terminar)

Supongo que te gusta

Origin blog.csdn.net/github_38885296/article/details/103798025
Recomendado
Clasificación