Activación del software "por teléfono" [cerrado]

0

Soy un desarrollador de software, y me gustaría proteger mi aplicación de forma offline, como ocurre con muchos programas que se activan por teléfono. Siguiendo una captura de pantalla de las imágenes de Google sobre lo que me gustaría lograr:

Me interesa cómo funciona esta funcionalidad desde un punto de vista de seguridad. Lo que supuse debería funcionar así (corríjame si me equivoco):

  1. La aplicación genera un código aleatorio y lo muestra al usuario
  2. El usuario llama al proveedor de la aplicación y le comunica el código.
  3. La compañía verifica la identidad del usuario: podemos suponer que puedo verificar de forma segura la identidad del usuario.
  4. La empresa posee una clave privada, la misma que se almacena en la aplicación, por lo que con un software interno concatena el código aleatorio dado por el usuario con la clave privada, genera un hash criptográfico (p. ej., suma de hash SHA-256 (SHA-2 )) y comunicar el resultado al usuario.
  5. Después de que el usuario inserte ese código en el formulario, la aplicación verifica que el código de desbloqueo dado sea igual al que ha calculado internamente.

¿Funciona así?

    
pregunta ABCplus 27.11.2015 - 09:57
fuente

1 respuesta

3

La clave privada no se almacenará en el software. Si se utiliza una clave privada, entonces la clave pública correspondiente se almacenará en el software. Consulte Wikipedia - Criptografía de clave pública .

Si usó un algoritmo criptográfico simétrico, sería "fácil" extraer la clave del software (la seguridad por ofuscación no cuenta) y calcular la ID de confirmación por sí mismo. Peor aún, cualquiera podría proporcionar herramientas para calcular la ID de confirmación.

Por lo tanto, cambiaría los pasos 4 y 5 un poco. De hecho, me gustaría copiar el ID de instalación y luego cifrarlo con mi clave privada: este es el ID de confirmación. Luego, el cliente descifra el ID de confirmación (con la clave pública) y compara el resultado con el hash calculado a partir del ID de instalación. Si los hashes coinciden, la ID de confirmación es correcta.

    
respondido por el Paul K 27.11.2015 - 10:13
fuente

Lea otras preguntas en las etiquetas