¿Cómo afectan los mineros de criptografía de ASIC a la seguridad de Scrypt?

3

¿Es la disponibilidad de estos mineros una razón para favorecer a bcrypt (o algo más) sobre scrypt?

Quiero decir, el objetivo de una función de hash de contraseña es maximizar el trabajo necesario para que un atacante rompa un hash a través de la fuerza bruta, el diccionario o lo que sea, a la vez que minimiza el trabajo necesario para un uso legítimo. Si el atacante puede calcular los hashes a muchas veces la velocidad del servidor, hay una debilidad.

Los mineros de ASIC para criptomonedas basadas en scrypt son muy eficientes en el cálculo de hashes de scrypt, y la mayoría de los servidores no usan hardware de minería de criptomoneda para acelerar el hashing de contraseñas.

¿Es un problema que el atacante tenga acceso a un buen hardware de minería?

    
pregunta Filip Haglund 17.10.2014 - 12:50
fuente

3 respuestas

7

La teoría de hashing de contraseñas es que todo El problema es una carrera de armamentos entre el atacante y el defensor. La función de hashing de contraseña (bcrypt, scrypt ...) se hace deliberadamente lenta, tanto como el defensor puede tolerar en su hardware. Asumimos que el atacante puede comprar el mismo tipo de hardware que el defensor, por lo que siempre puede ser al menos tan eficiente como el defensor. La esperanza del atacante es que pueda comprar o construir hardware especializado que podrá computar más hashes para el mismo presupuesto.

Las máquinas especializadas para la extracción de monedas basadas en scrypt son una buena noticia para el atacante, ya que tales máquinas solo tienen sentido si hacen más escrituras por segundo que una PC básica del mismo precio. Sin embargo, esto no se traduce necesariamente en un modelo de ataque real, especialmente porque scrypt es una función altamente configurable (se puede establecer el uso de RAM y el costo de la CPU) y las combinaciones para las cuales los mineros están optimizados no necesariamente coinciden con lo que se utilizó para el hash contraseñas en un servidor dado. La propiedad crucial es cuánto se puede volver a usar el hardware de minería para otros parámetros de scrypt.

Otro punto importante es que se sabe que bcrypt se "rompe más fácilmente" con el hardware basado en FPGA (el FPGA más nuevo contiene bloques de RAM incorporados que son muy interesantes para implementar bcrypt; cada instancia de bcrypt solo necesita 4 KB de RAM). Por lo tanto, aun suponiendo que el ASIC minero pueda acelerar al atacante, no está claro si lo acelerará más que lo que puede obtener con FPGA contra bcrypt.

Debe recordar que el hash de contraseñas es un problema que abarca la criptografía, la ingeniería y la economía. Usted debe tener en cuenta todos estos aspectos si desea llegar a una decisión.

(Además, scrypt se diseñó y optimizó para un caso bastante específico, a saber, el cifrado de discos duros basado en contraseñas. Este es un escenario de uso que es bastante diferente al de un servidor web que autentica a los usuarios. disco duro, el sistema puede tardar unos segundos en CPU y puede usar gigabytes de RAM. El uso de scrypt en un servidor de autenticación implica mover los parámetros fuera de esta zona.)

    
respondido por el Thomas Pornin 17.10.2014 - 15:08
fuente
3

Hay tres algoritmos de hashing de contraseñas diferentes que se están discutiendo aquí:

| Algorithm | Cryptographic primitive | Crypto-currency that uses it| Miner speed   | 
|-----------|-------------------------|-----------------------------|---------------|
| PBKDF2    | SHA-256                 | Bitcoin uses SHA-256        | 7 Thash/sec   |
|           |                         |                             |               | 
| Bcrypt    | Whirlpool cipher        | (none)                      | n/a           |
|           | with 4kB key setup      |                             |               |
|           |                         |                             |               |
| Scrypt    | Salsa/20 BlockMix       | LiteCoin                    | 100 Mhash/sec |

La dificultad de hash proviene de la cantidad de memoria que se debe acceder.

  • SHA-256 está destinado a ser rápido. Utiliza poca memoria
  • La costosa configuración de la clave de BCrypt usa 4KB de memoria al azar mientras configura la clave
  • En litecoin, los parámetros scrypt de N=1024, r=1, p=1 hacen que scrypt requiera 128 * 1 * 1024 = 128 KB de memoria

Un punto importante es que estos mineros de ASIC están dedicados a litecoin, y a esos parámetros específicos de escritura LitCoin. Eso significa que usted, utilizando los parámetros de escritura predeterminados:

  • N=16,384 , r=8 , p=1

requiere:

  • 128 * 8 * 16384 = 16 MB

Usando un poco de matemática aproximada, basada en la experiencia con scrypt, con esos parámetros de contraseña de mundo real , una de esas cajas caras podría hacer:

  

6,100 hash / s = 0,006 Mhash / s

Cinco órdenes de magnitud más lento; Pero sigue siendo una preocupación. Mi único Intel i5-2500 puede hacer 5 hash/sec con esos parámetros. Ese hardware personalizado es más de 1.000 veces más rápido.

Lo ideal es que su scrypt esté sintonizado para que tome aproximadamente 500 ms en su hardware. En mi hardware que se realiza con:

  • N = 2 ^ 15 = 32768
  • r = 9
  • p = 1

Para una huella de memoria de 36 MB. Para uno de los mineros, sería capaz de hacer 1,205 hash / s , 200 veces más rápido que mi única PC.

tl; dr: Tienes que preocuparte por los mineros. Afortunadamente, correct horse battery staple mantiene sus contraseñas fuera del alcance de todos.

    
respondido por el Ian Boyd 03.06.2016 - 03:54
fuente
1

Tu pregunta es extraña. ¿ASIC que afectan a la seguridad? No, no lo son.

Por otro lado, los ASIC crearán una enorme ventaja para aquellos que los usan. Es por eso que la minería de CPU / GPU Bitcoin no es rentable hoy en día, ya que los ASIC tienen mucho más rendimiento y usan menos energía.

Los ASIC son relativamente baratos, consumen menos energía, son bastante rápidos, pero generalmente no tienen mucha RAM. Así que algunas monedas criptográficas favorecieron el uso de otros esquemas de hashing donde se necesita una gran cantidad de RAM, lo que hace muy difícil para un ASIC obtener una gran ventaja sobre las computadoras comunes.

    
respondido por el ThoriumBR 17.10.2014 - 15:07
fuente

Lea otras preguntas en las etiquetas