¿Es RSA-SHA1 lo suficientemente seguro como para otorgar licencias?

1

Tenemos que hacer un sistema de licencias. Sería algo como Una solución lista para usar de licencias de software en C # [CodeProject]

Pero nuestro cliente está preocupado por la "debilidad" de SHA / SHA1.

He buscado en la web sobre esto, pero lo único que encontré es el costo estimado de Schneier para romperlo.

Pero no sé qué se necesita para romperlo.

  • ¿El atacante necesita la clave pública?
  • ¿Son suficientes el mensaje y la firma?
  • Si se rompe el código, ¿qué obtendría el atacante? (Supongo que obtendría la clave privada y podría crear nuevas firmas).
pregunta JMA 12.07.2016 - 16:53
fuente

1 respuesta

2

SHA-1 está roto . Cuando usa SHA-1 para verificar la firma de sus archivos de licencia, entonces un atacante puede generar un archivo de licencia que pasará su algoritmo de verificación en un tiempo razonable. Todo lo que necesiten para hacer eso (sus algoritmos de verificación y cualquier secreto compartido) debe ser parte de su programa, de lo contrario no podría ser una verificación sin conexión.

Pero hay muchos otros algoritmos hash que puedes usar como un simple reemplazo directo. Cuando el algoritmo hash no tiene una debilidad considerable y sus claves de licencia tienen suficiente entropía (una parte suficientemente larga y completamente completamente aleatoria ) ni siquiera tiene que ser un algoritmo particularmente lento, porque los ataques de fuerza bruta son inviable Por ejemplo, podría usar uno de los algoritmos de SHA-2 o SHA-3 familias. A pesar del nombre, no tienen mucho en común con SHA-1, por lo que la vulnerabilidad no se aplica a ellos.

Sin embargo, su cliente debería estar más bien preocupado por un cracker que libera un parche para eliminar su código de verificación de licencia de sus programas binarios por completo. En la práctica, la protección contra copia rara vez es efectiva contra un atacante determinado. Cuando se ejecuta completamente en la máquina de los usuarios, entonces no puede ser 100% efectivo, ya que se ejecuta bajo el control de los usuarios. La mayoría de las veces funciona haciendo que la piratería sea menos conveniente que comprar, no haciendo que sea imposible.

Lo que me lleva a otra consideración importante: la mejor protección contra copias es hacer que el producto sea fácil de comprar . Cuantos más aros tenga el usuario para pasar y solicitar una licencia adecuada, es más probable que busquen "métodos alternativos" para que se ejecute. Los pasos mencionados en el artículo vinculado en la pregunta (el usuario le dice al proveedor la identificación del dispositivo, las respuestas del proveedor con el archivo de licencia ...) suenan mucho más difíciles que en Google "descarga de crack del programa JMA".

    
respondido por el Philipp 12.07.2016 - 17:50
fuente

Lea otras preguntas en las etiquetas