🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónClaves de firma y de sesión del framework
5 tareas · 40 min · Principiante
Cada framework guarda una clave de la que depende que nadie pueda fabricar una cookie, un enlace de restablecimiento o una sesión. Nadie la usa a mano, así que nadie la mira: se genera al crear el proyecto y se queda años. Nogal Negro te entrega su inventario de claves de framework, la comprobación de despliegue de la tienda, el servidor del boletín, su registro de incidentes y la lista de quién entra a cada entorno. Las claves son marcadores evidentes; aquí solo se decide qué hacer con ellas.
Objetivo de la sala
Cada framework guarda una clave de la que depende que nadie pueda fabricar una cookie, un enlace de restablecimiento o una sesión. Nadie la usa a mano, así que nadie la mira: se genera al crear el proyecto y se queda años. Nogal Negro te entrega su inventario de claves de framework, la comprobación de despliegue de la tienda, el servidor del boletín, su registro de incidentes y la lista de quién entra a cada entorno. Las claves son marcadores evidentes; aquí solo se decide qué hacer con ellas.En Django, SECRET_KEY firma las sesiones (salvo con el motor de sesiones que solo usa caché), los mensajes guardados en cookies, los enlaces de restablecimiento de contraseña y cualquier firma que no traiga su propia clave. Su documentación advierte que una clave conocida puede llevar a escalar privilegios e incluso a ejecutar código. En Laravel, APP_KEY cifra y firma todas las cookies, la de sesión incluida, y lo que la aplicación cifre con su servicio de cifrado. En Express, el secret del componente de sesiones firma la cookie que lleva el identificador de sesión.
Lo que una clave así no protege también importa, porque decide el alcance de un cambio de clave: al cambiarla, en Django se cierran las sesiones y dejan de valer los enlaces de restablecimiento ya enviados, pero las contraseñas no se tocan, porque su resumen no depende de esa clave.
Responde para continuar
Si la SECRET_KEY de la tienda se cambia porque se filtró, ¿qué sigue igual que antes?
Ver pista de ayuda
Separa lo que está firmado con la clave de lo que solo se guarda con un resumen propio.
Django trae una comprobación para producción, manage.py check --deploy, que revisa los ajustes de seguridad del despliegue. Considera débil una clave que tiene menos de 50 caracteres, menos de 5 caracteres distintos o empieza por el prefijo que Django pone a las claves que genera automáticamente al crear un proyecto.
Para rotar sin cerrar todas las sesiones de golpe existe SECRET_KEY_FALLBACKS: la clave nueva va en SECRET_KEY y la vieja en esa lista, que se vacía cuando ya pueden caducar las sesiones y enlaces firmados con ella. Una clave que se queda en la lista no está retirada: sigue validando firmas. Abre tienda-check-deploy.txt y cruza sus avisos con el inventario.
Responde para continuar
¿Qué identificador de aviso señala el problema de la clave anterior de la tienda? Escríbelo tal como lo imprime la comprobación.
Ver pista de ayuda
Busca el aviso que menciona la lista de claves anteriores.
La guía de OWASP para la configuración incorrecta pide entornos endurecidos igual pero con credenciales distintas. Una clave del framework es una credencial: si producción y otro entorno comparten la misma, quien lea el archivo de configuración de ese otro entorno puede fabricar cookies que producción acepta como suyas y, en Laravel, descifrar lo que producción cifró.
El inventario no muestra las claves, solo una huella de cada una: dos huellas iguales significan la misma clave. Compara las huellas del portal de autores y lee después accesos-entornos.txt para saber quién puede leer ese archivo.
Responde para continuar
¿Qué entorno del portal de autores comparte la clave de cifrado con producción? Escribe su nombre tal como aparece en el inventario.
Ver pista de ayuda
Busca dos filas de autores con la misma huella.
Los tres frameworks permiten tener varias claves a la vez para que una rotación planificada no cierre todas las sesiones: Django con SECRET_KEY_FALLBACKS, Laravel con APP_PREVIOUS_KEYS y el componente de sesiones de Express con una lista de secretos en la que el primero firma y todos se aceptan al comprobar. Las tres listas se pensaron para lo mismo: retirar con calma una clave que nadie más conoce.
Con una clave filtrada la lógica se invierte. Mientras siga en la lista, quien la tenga puede producir cookies que el servidor da por firmadas por él, por mucho que haya una clave nueva delante. Lee registro-incidentes.txt y después la lista de secretos de boletin-servidor.js.
Responde para continuar
¿Qué secreto del boletín se sabe filtrado y el servidor sigue aceptando al comprobar firmas? Escríbelo tal como aparece.
Ver pista de ayuda
El incidente de agosto cuenta qué se hizo con la clave publicada.
La clave de producción del portal de autores la puede leer un proveedor externo desde preproducción. No hay indicio de abuso, pero ya no se puede tratar como secreta. La lista de claves anteriores es la herramienta de la rotación tranquila y aquí juega en contra, porque mantendría válida justo la clave que hay que dejar de aceptar. El costo de cerrar sesiones se asume. Si hay datos cifrados con la clave vieja, se descifran y se vuelven a cifrar en una tarea controlada antes de destruirla, sin dejarla puesta en la aplicación.
Responde para continuar
¿Cómo se rota la APP_KEY de producción del portal de autores?
Ver pista de ayuda
La lista de anteriores sirve para claves que nadie más conoce.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.