Generar códigos de una sola vez seguros que contienen información

2

Necesito crear un sistema que permita a un usuario ingresar códigos para cobrar una asignación. Incrustado en este código debe ser la cantidad a cobrar la asignación.

El usuario pagaría por un código que luego se generaría en un servidor y luego se presentaría al usuario. Luego, el usuario ingresaría el código en una computadora integrada sin conexión a Internet. La computadora necesita descifrar el código para asegurarse de que el código sea válido y también obtener la asignación del código.

Para hacer esto seguro, pensé en hacer esto:

  • Tener un contador en el servidor y el cliente. El contador aumenta en el servidor cuando el usuario paga por un nuevo código y también aumenta cuando el usuario ingresa un código válido. El contador estaría contenido en la carga útil del código. Esto es para asegurarse de que el usuario no pueda ingresar el mismo código varias veces.
  • Almacene la asignación, el contador, el ID del cliente en la carga útil, luego cifre con RSA.
  • Cada cliente tiene su propia clave que se utiliza para cifrar la carga útil. La clave se generaría mediante un número aleatorio proporcionado por el servidor e ingresado por el técnico que instala el dispositivo. De esa manera, el técnico no tiene que ingresar la clave completa (que puede ser larga y, por lo tanto, propensa a errores)
  • Cuando el usuario ingresa una clave, se comprueba su validez descifrandola primero, luego comparando la identificación del cliente de la carga útil con la identificación configurada y comparando la variable del contador de la carga útil con el contador interno. Si esos cheques son aprobados, la asignación se incrementa en la cantidad especificada en la carga útil.

Intente pensar en formas que le permitan descifrar este sistema con el objetivo de agregar asignación sin haber pagado un código (generando un código válido por su cuenta).

El acceso físico al dispositivo (como el flasheo) no es un problema.

    
pregunta narrowtux 25.03.2015 - 14:09
fuente

0 respuestas

Lea otras preguntas en las etiquetas