- Conceptos básicos (método de autenticación, cifrado / descifrado, HTTPS)
- Cómo funciona JWT
- Node.js integrado JWT
Método de autentificación:
Ventajas de JWT : fácil de expandir, compatible con dispositivos móviles, llamadas entre aplicaciones, seguridad y gran cantidad de información.
Desventajas: procesamiento de actualización y expiración, carga útil (payload) no es fácil ser demasiado grande, man-in-the -ataque medio
Ventajas de la sesión / cookie : Más fácil de expandir, simple
Desventajas: Baja seguridad, bajo rendimiento, almacenamiento en el servidor, dificultad para sincronizar sesiones con múltiples servidores (requiere servicios como redis) y difícil de multiplataforma.- oAuth 2.0 (inicio de sesión de terceros, como WeChat, inicio de sesión con código QR de escaneo de github)
Ventajas: permisos abiertos, seguros, simples y especificados
Desventajas: necesidad de aumentar el servidor de autorización y aumentar las solicitudes de red
Que es JWT
El nombre completo de JWT es JSON Web Token. Un JWT consta de tres partes: Encabezado, Carga útil, Firma.
- El encabezado
especifica principalmente el método de cifrado utilizado por el token y el tipo de token.{ "alg":"HS256", "typ":"JWT" }
- La carga útil es
principalmente información de usuario contenida en el token, como: nombre de usuario, tiempo de vencimiento, etc.{ "sub":"2021-01-01", "name":"zyy", "admin":true }
- La firma
es el valor base64 del encabezado + el valor base64 de la carga útil + la cadena generada por el secreto,
y luego realice el cifrado especificado en esto, y finalmente obtenga la firma
HMACSHA256( base64UrlEncode(header) + "."+ base64UrlEncode(payload), secret )
Funciones de JWT
- Anti-CSRF (principalmente solicitudes falsificadas, con cookies)
- Adecuado para aplicaciones móviles (se refiere principalmente a la aplicación, porque las cookies deben almacenarse en el navegador)
- Datos codificados sin estado
Verificación en línea de jwt: https://jwt.io/
Algoritmo / cifrado
Algoritmo:
La instrucción en el algoritmo describe un cálculo, cuando se ejecuta, puede comenzar desde un estado inicial y una entrada inicial (puede estar vacía), después de una serie de 有限而清晰定义的状态
salida final y detenerse en un estado final. (Similar a la función)
Cifrado:
El proceso básico de cifrado de datos es procesar el archivo de texto plano o los datos originales de acuerdo con un cierto algoritmo para convertirlo en un fragmento de código ilegible, generalmente llamado "texto cifrado". Mediante este enfoque, se logra el propósito de proteger los datos para que no sean robados y leídos por personas no autorizadas.
HTTPS
El protocolo de transferencia segura HTTPS
HTTPS (Protocolo de transferencia de hipertexto seguro) a menudo se denomina HTTP sobre TLS, HTTP sobre SSL o HTTP seguro. Es un protocolo de transmisión para una comunicación segura a través de una red informática.
Diseño de seguridad API
- Cifrado del canal de comunicación: use HTTPS
- Cifrado de datos de comunicación: texto cifrado + datos clave cifrados
- Estrategia de seguridad de la comunicación: capa intermedia de autorización, número de intentos, estrategia de caducidad. . .