Pregunta

Situación:

Quiero ofrecer un servicio web donde los usuarios pueden introducir algunos datos, por ejemplo, 15 bytes nombre largo "NameData" y obtener un código clave. Ese código se puede utilizar para desbloquear alguna característica en un juego (proporcionado por mí), que también utiliza el NameData (piense en una costumbre Lazgun llamado "Lazgun de Pedro", donde "Pedro" es el NameData).

Mi plan es para cifrar el NameData junto con un poco corta de firmas (por ejemplo, 5 Bytes "hola") con encrytion asimétrica (usando la clave privada) en el código de la llave (algo así como asdf-stack-0ver-fl0w-13Abbx).

A continuación el usuario introduce el código clave en el juego y el juego a continuación, decodifica los datos con una clave pública en el NameData y la firma y listo, el usuario obtiene su "Lazgun de Pedro".

Problema:

El problema (o mi malentendido?) Es que el cifrado RSA típica sólo se puede utilizar para cifrar los datos de la longitud de la clave, por ejemplo, 1024 bits, lo que sería demasiado largo para mi código de la llave -. Ningún usuario quiere introducir códigos con más de 150 caracteres (suponiendo aproximadamente 6 bits de datos por carácter introducido)

Pregunta:

¿Qué tipo de encriptación debería utilizar para obtener la seguridad decente, por lo que sólo mi servicio web puede generar códigos "correctas", pero el usuario sólo tiene que introducir los códigos de aproximadamente el tamaño de la NameData + firma + alguna pequeña sobrecarga

Nota:. El ejecutable del juego es, obviamente, disponible públicamente y cualquier clave de cifrado almacenada en él se podía leer de él, pero el ejecutable en sí no puede ser alterado (protección contra copia)

¿Fue útil?

Solución

Creo que es una idea equivocada de almacenar todos los datos de los artículos dentro del código clave real.

Tiene más sentido para crear un código de descarga único. Cuando entró, el cliente se conectará a un servidor y descargar los datos de los artículos reales a través de una conexión segura.

¿Tiene esto algún sentido?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top