blockchain.info exploit - Error de número aleatorio

0
  

"El problema que llevó a la vulnerabilidad fue supuestamente billeteras   generados con los 'valores R' utilizados anteriormente en las fórmulas que generan   números aleatorios, lo que significa que un hacker podría usar la dirección pública para   Calcular sus claves privadas. Si los valores R son únicos, esto debería ser   imposible. "- CoinDesk.

enlace referencia: enlace

  

"Para los interesados. El error se debió a que faltaba la línea 29 y no   inicializando rng_pptr a 0. Esta confirmación fue forzada a pasar. "- ZooTreeves.

¿rng_pptr no sería un número aleatorio si no se hubiera inicializado? ¿Por qué sería explotable entonces?

    
pregunta Greed 10.12.2014 - 18:56
fuente

1 respuesta

1

En muchos lenguajes de programación, el valor de un valor no inicializado es indefinido pero no aleatorio . Cuando la memoria no inicializada sería una fuente aceptable de aleatoriedad, no necesitaríamos generadores reales de números aleatorios, ya que podríamos usar la memoria no inicializada para ese propósito.

Por lo general, la memoria no inicializada obtiene el valor que se escribió previamente en esa ubicación de memoria la última vez que se asignó. Si bien es difícil predecir para el programador lo que podría estar allí, dependiendo de cómo funciona el programa y cómo lo interpretó el compilador, es posible que una variable no inicializada siempre obtenga el mismo valor con cada ejecución del programa. También es posible que el valor siempre dependa del valor de alguna variable aparentemente no relacionada. E incluso cuando ninguno de los dos es el caso, algunos valores son simplemente mucho más comunes en la memoria que otros.

    
respondido por el Philipp 10.12.2014 - 20:39
fuente

Lea otras preguntas en las etiquetas