¿Por qué la entropía del ID de sesión solo sería la mitad de la longitud del ID de sesión?

3

En esta página en el sitio web de OWASP, hay una frase sobre la entropía de identificación de sesión que encuentro bastante extraño:

  

El valor del ID de sesión debe proporcionar al menos 64 bits de entropía (si se utiliza un buen PRNG, se estima que este valor tiene la mitad de la longitud del ID de sesión ).

Lo que entiendo es que si tu ID de sesión está formada por 128 bits aleatorios (dados por un buen PNRG), lo que obtienes es solo 64 bits de entropía .

Pensé que si obtienes 128 bits aleatorios de un buen PNRG, podrías esperar obtener algo muy cercano a los 128 bits de entropía. ¿Entendí algo mal?

    
pregunta anselant 06.10.2016 - 22:29
fuente

2 respuestas

1

Este bit " if your session id is made of 128 random bits " es el malentendido.

Si su ID de sesión tiene una longitud de 128 bits, entonces eso es no 128 bits aleatorios: es probable que tenga solo unos 64 bits aleatorios, codificados como una cadena de 128 bits.

Recuerde que su ID de sesión no es un número, es un identificador de cadena, que podría estar representando un número.
Si el ID de sesión se construye como un número hexadecimal, representado en forma de cadena, entonces cada byte aleatorio tomará DOS caracteres en la cadena de ID de sesión. Aquí es donde esa "mitad de la longitud" viene de esa cita.
Sin embargo, tenga en cuenta la sección anterior en esa página: hay otras implementaciones (como ASP.NET), donde los bits aleatorios no se representan directamente en cadena-hexadecimal, sino que están codificados en base 64, lo que resulta en un tamaño de solo 1/3 Incremento (o el 25% de los bits no son aleatorios). En cuyo caso, el ID de sesión de 160 bits en realidad da 120 bits aleatorios.

TL; DR: si tu ID de sesión tiene una longitud de 128 bits, no todas son aleatorias.

    
respondido por el AviD 07.10.2016 - 00:22
fuente
0

Los ID de sesión deben ser resistentes a las colisiones: es decir, alguien que intenta robar una sesión adivinando ID aleatorios debe tener pocas posibilidades de éxito.

Esta resistencia de colisión es proporcional a la raíz cuadrada de la entropía de la ID de sesión debido a la paradoja de cumpleaños : desde el atacante tendrá éxito si adivina cualquiera de los identificadores de sesión, se necesitan muchas menos especulaciones que las posibles identificaciones para obtener una coincidencia.

La razón por la que obtienes 64 bits de entropía de resistencia a la colisión de una ID de 128 bits es que cuando estás midiendo en bits, sacar una raíz cuadrada del número de ID posibles equivale a dividir el número de bits entre 2 .

    
respondido por el Mark 06.10.2016 - 22:56
fuente

Lea otras preguntas en las etiquetas