¿Se pueden evitar los ataques de Hash Length Extension al cambiar la estructura de los datos?

1

Leí sobre los ataques de extensión de longitud de hash aquí y aquí . De los artículos obtuve que este ataque se basa en la estructura de los datos, de la forma en que el secreto tiene que ser prefijado a los datos (corríjame si me equivoco). Si ese fuera el caso, ¿sería un mecanismo de defensa razonable contra este tipo de ataque simplemente mover el secreto en la estructura de datos?

Del artículo :

let secret = "secret"
let data = "data"
let H = md5()
let signature = hash(secret || data)

Lo haría (es decir, mover el secreto a la mitad de la firma):

let signature = hash( string.Format( "{0}{1}{2}", data.Substring( 0, ( int ) ( data.Length / 2 ) ), secret, data.Substring( ( int ) ( data.Length / 2 ) ) ) );

estar seguro?

    
pregunta BdN3504 07.09.2017 - 11:23
fuente

0 respuestas

Lea otras preguntas en las etiquetas