Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Identificadores de sesión: entropía y transporte

5 tareas · 40 min · Principiante

Después del ingreso, lo único que separa a una persona de su cuenta es un identificador de sesión. Si se puede adivinar o si se escapa por el camino, la contraseña y el segundo factor dejan de importar. Facturas Sativanorte, una plataforma de facturación electrónica, te entrega con autorización escrita cómo generan sus dos aplicaciones ese identificador, unas muestras del equipo de pruebas y lo que vio un servicio de estadísticas. No se prueba ningún identificador: se lee cómo nace y por dónde viaja.

0 de 5 · 0%

Objetivo de la sala

Después del ingreso, lo único que separa a una persona de su cuenta es un identificador de sesión. Si se puede adivinar o si se escapa por el camino, la contraseña y el segundo factor dejan de importar. Facturas Sativanorte, una plataforma de facturación electrónica, te entrega con autorización escrita cómo generan sus dos aplicaciones ese identificador, unas muestras del equipo de pruebas y lo que vio un servicio de estadísticas. No se prueba ningún identificador: se lee cómo nace y por dónde viaja.

Una sesión es la memoria que guarda el servidor de que alguien ya se autenticó. El navegador la presenta con cada petición mediante un identificador, casi siempre en una cookie. Quien tenga ese valor es, para el servidor, la persona que inició sesión: no se le vuelve a pedir nada.

Por eso el identificador tiene que ser imposible de adivinar. Lo que lo vuelve imposible no es que sea largo ni que mezcle símbolos, sino de dónde salen sus bits: deben venir de un generador aleatorio criptográfico y ser suficientes para que probar valores al azar no tenga sentido. La guía de sesión de OWASP y NIST SP 800-63B (revisión 4) coinciden en un piso de 64 bits aleatorios, y muchos equipos usan 128 o más. Si una parte del valor es fija o predecible (un número de cliente, una fecha), esa parte no suma nada.

MITRE clasifica el fallo como uso de valores insuficientemente aleatorios (CWE-330), y la variante del identificador demasiado corto como entropía insuficiente (CWE-331).

Responde para continuar

¿Qué hace que un identificador de sesión no se pueda adivinar?

Ver pista de ayuda

Piensa en cuántos valores tendría que probar alguien que conoce cómo se arma.

Un identificador armado con datos que el atacante conoce o puede estimar se reduce a esos datos. Si una parte es el número del comprador y la otra es la hora del ingreso, quien sepa más o menos cuándo entró alguien solo tiene que recorrer unos pocos miles de valores, no billones.

Abre generadores.js y muestras-descargas.txt en el laboratorio y compara los tres identificadores del comprador de pruebas.

Responde para continuar

¿Qué función aporta la única parte que cambia entre un identificador y otro del portal de descargas? Escribe su nombre como aparece en el código, sin paréntesis.

El panel de facturación hace lo contrario: pide bytes al generador aleatorio del sistema operativo y los codifica para que quepan en una cookie. La codificación cambia cómo se ve el valor y cuántos caracteres ocupa, pero no añade ni quita aleatoriedad: los bits son los que salieron del generador. Cada byte aleatorio aporta 8 bits.

Busca en generadores.js cuántos bytes pide el panel.

Responde para continuar

¿Cuántos bits aleatorios tiene un identificador del panel? Escribe solo el número.

Un buen identificador también puede perderse por el camino. La cookie con Secure y HttpOnly (que el módulo de TLS y cabeceras ya revisó) lo mantiene fuera del texto plano y de los scripts. Pero un identificador puesto en la URL se copia en todas partes: en el registro del proxy, en el historial, en un enlace que alguien reenvía y en la cabecera Referer que el navegador manda a cualquier recurso de otro sitio que cargue la página. MITRE lo cataloga como información sensible en la cadena de consulta (CWE-598).

Cruza registro-proxy-descargas.txt con informe-estadisticas.txt.

Responde para continuar

¿A qué dominio ajeno a Sativanorte llegaron identificadores de sesión del portal de descargas? Escríbelo completo.

El equipo del portal propone una corrección rápida: codificar en base64 el valor del parámetro sid para que «no se lea» en los registros ni en el informe del servicio de estadísticas, y dejar el resto igual.

Responde para continuar

¿Qué le respondes al equipo?

Ver pista de ayuda

¿Qué necesita quien encuentra el valor codificado en un registro para usarlo?

Inicia sesión para registrar tus puntos y progreso en el ranking.

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