User Tag List

Resultados 1 al 11 de 11

Tema: [bennu] Crear contraseña independiente

  1. #1

    Fecha de ingreso
    Jan 2016
    Ubicación
    Cádiz
    Mensajes
    1,996
    Mencionado
    25 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    775
    Agradecer Thanks Received 
    361
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2

    [bennu] Crear contraseña independiente

    Me gustaría saber como distribuir un programa con una contraseña para activarlo que no sirva esa misma contraseña para otros programas...
    Trabajo principalmente en Bennu y aunque me la pela en verdad porque todo lo hago de grati por amor al arte si me gustaría tener alguna idea de como proteger de alguna manera el copia-pega

    Lo suyo es que de repente te salga que para la versión completa introduzca un código que bien se puede recibir si haces una donación; me parece usar esta ''política de empresa'' para el día de mañana. Pero llegan las dudas...

    El programa debería tener un numero de serie, lo que conlleva a crear un programa distinto porque cada uno tiene un numero de serie distinto...
    -descartado-

    El programa generaría un numero de serie aleatorio, con lo cual el usuario envía ese numero de serie aleatorio como ''asunto'' de la donación y recibe un numero de desbloqueo...
    -Razonable si no fuera que el numero aleatorio puede ser distinto cada vez que inicie el programa o el mismo con todos los programas, aunque es solucionable

    El programa lee un numero de serie de la computadora (no se como) y lo envia como ''asunto'' de donación, y se recibe la contraseña, bla bla...
    -Parece un buen metodo si sabemos como mirar ese numero de serie, podría servir la direccion mac

    El programa se conectaria online para obtener una activación de que se vá a bloquear si no donas (que malas ideas) añadiendo un numero el cual lo envia como ''asunto'' bla bla bla
    -Parece resulton, mas cuando se puede modificar el .dcb mientras está conectado y no depende de ningun archivo extra en alguna carpeta que pueda ser borrado...


    Todo esto son desvariaciones y eulucubraciones que pasa por mi cabeza antes de programar nada pero, ¿como se podría hacer?
    y otra pregunta ¿como se hace lo de obtener una contraseña que concuerde con un numero facilitado?


    saludines

  2. #2

    Fecha de ingreso
    Sep 2006
    Mensajes
    4,703
    Mencionado
    23 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    629
    Agradecer Thanks Received 
    556
    Thanked in
    Agradecido 415 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por futu-block Ver mensaje
    ¿como se hace lo de obtener una contraseña que concuerde con un numero facilitado?
    coges la cadena de texto que te manden, le haces perrerías (siempre las mismas para todas las cadenas) y le mandas el resultado. En el programa le harías lo mismo para comprobar que lo que te manda es correcto. Lo malo de esto es que no podrás modificar esta función o te dejaran de funcionar los programas.
    No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.

  3. Los siguientes 2 usuarios agradecen a swapd0 este post:

    futu-block (04/02/2019), TRaFuGa (04/02/2019)

  4. #3

    Fecha de ingreso
    Dec 2004
    Mensajes
    27,034
    Mencionado
    160 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    86
    Agradecer Thanks Received 
    1,538
    Thanked in
    Agradecido 990 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    El problema que le veo, es que no se hasta que punto los divlike (div, fenix, bennu) pueden leer alguna clase de identificador del sistema, sobre todo porque son lenguajes que se han portado a muchas plataformas y arquitecturas, asi que habría que optar por generar un "número de licencia" aleatorio en la primera ejecución y guardarlo en alguna parte para que no cambie cada vez que inicias el juego y que ese sea el número que hay que mandarte para que respondas con el código de activación, código que que tambien se guardaría en alguna parte para no tener que introducirlo en cada partida. El problema es que si alguien averigua donde se guardan el numero de licencia y el de activación, podrían transferirse de un equipo a otro sin mayor complicación.
    seguro que @SplinterGU puede aportar mas información acerca de esto.
    Osea, si el número de licencia en lugar de generarse aleatoriamente y guardarse se pudiese generar "al vuelo" en cada ejecución calculandolo a partir de algún dato único del sistema en el que se ejecuta para que siempre fuese el mismo, la licencia que enviases solo valdría para el equipo en el que esté instalado.
    Última edición por chipan; 05/02/2019 a las 23:01
    EL NUEVO ESLOGAN DE POKEMON QUEREMOS LA POKEDEX NACIONAL

  5. #4

    Fecha de ingreso
    Jan 2016
    Ubicación
    Cádiz
    Mensajes
    1,996
    Mencionado
    25 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    775
    Agradecer Thanks Received 
    361
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Gamemaster sacó algo parecido leyendo el numero de serie de la caanoo...
    Npi idea de como lo hizo

    también me gustaría saber como se trata un código y se codifica para que valga con otro

  6. #5

    Fecha de ingreso
    Sep 2005
    Mensajes
    10,773
    Mencionado
    132 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    179
    Agradecer Thanks Received 
    365
    Thanked in
    Agradecido 247 veces en [ARG:2 UNDEFINED] posts
    Bennu permite crear librerías dinámicas de una forma muy sencilla, por lo que hacer funciones específicas para cada entorno depende de las habilidades de cada uno para programar en C, conocer el HW, y tener un compilador para ello.

    Creo que hay una librería específica para Wiz... o para GP2X, con acceso a diversas funcionalidades del HW, por lo que creo que se hizo así.

    En temas de seguridad, encriptación y codificación, poco puedo ayudar. No sé cual es el mejor método antipiratería sin usar una clave y una consulta a una base de datos. En todo caso, para lo que necesitas, vas a tener que almacenar un fichero de validación o con datos de validación, y si alguien averigua cuál es o dónde está, pues ya te han pirateado el juego.
    Pero claro, lo dicho, no conozco los métodos de seguridad y no puedo ayudar. En su implementación quizás, pero no en su desarrollo.
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  7. El siguiente usuario agradece a Drumpi este mensaje:

    futu-block (07/02/2019)

  8. #6

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,541
    Mencionado
    56 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    775
    Agradecer Thanks Received 
    395
    Thanked in
    Agradecido 280 veces en [ARG:2 UNDEFINED] posts
    si es online, entonces no hay que quebrarse mucho la cabeza... numero de serie de serie a cada usuario que registre (pago)... luego cada vez que corre verificas que el numero de serie en tu base de datos y que el mismo no esta corriendo en mas de 1 ip diferente, si lo esta, pues no lo dejas correr y los bloqueas...

    pero para esto, seria bueno que parte de la logica del juego este en el servidor...

    con respecto a otro tipo de proteccion podrias hacerlo en base al MAC o algun otro id del equipo, pero si el usuario cambia la placa de red o algo que uses, dejara de poder jugar... aunque en esos casos podrias contemplar darle un nuevo numero de serie gratis, previo contacto y comprobado que sea el comprador del programa... un usuario legal no haria esto muchas veces, serian excepciones... y si ves que un usuario esta pidiendo mucha contraseña nueva, es que lo esta clonando, y en ese caso bloqueas ese juego y todas las reinstalaciones de esa licencia original...

    por otro lado, todo el hackeable...
    Última edición por SplinterGU; 07/02/2019 a las 22:47
    ...

  9. El siguiente usuario agradece a SplinterGU este mensaje:

    futu-block (08/02/2019)

  10. #7

    Fecha de ingreso
    Sep 2005
    Mensajes
    10,773
    Mencionado
    132 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    179
    Agradecer Thanks Received 
    365
    Thanked in
    Agradecido 247 veces en [ARG:2 UNDEFINED] posts
    ¿Pero el programa para qué plataforma es? ¿PC, consola, lavadora...?
    Lo cierto es que el tema de la seguridad es interesante, y debería leer un poco sobre ellos y su implantación, porque me está haciendo falta, y no sé a dónde acudir ^^U
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  11. #8

    Fecha de ingreso
    Jan 2016
    Ubicación
    Cádiz
    Mensajes
    1,996
    Mencionado
    25 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    775
    Agradecer Thanks Received 
    361
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Es el editor de caras que llevo tirando tanto tiempo y le estoy dando un formato nuevo, creo que debería darle alguna cosilla para que alguno que otro piense en donar unos dolares

    O ponerlo online y asi al no estar descargable no importaría mucho si vá pa window$, linux o gps... lol

  12. #9

    Fecha de ingreso
    Jan 2008
    Ubicación
    Madrid
    Mensajes
    4,458
    Mencionado
    13 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    66
    Agradecer Thanks Received 
    132
    Thanked in
    Agradecido 80 veces en [ARG:2 UNDEFINED] posts
    Un método muy seguro es usar la firma digital para generar un fichero de licencia. El algoritmo de firma digital es complejo y requiere muchas matemáticas, pero es un algoritmo público muy documentado y hay librerías en muchos lenguajes. Muchas empresas usan este método para generar licencias.

    El fichero de licencia puede llevar el nombre del propietario (comprador) o algún dato del sistema. El algoritmo funciona de tal manera que si se cambia algún dato de este archivo la licencia ya no es válida. Y también, si se filtra una versión "pirata" de la licencia se puede saber si la ha filtrado un propietario o se ha generado usando otros métodos.

    La firma digital se basa en dos claves generadas por el desarrollador, una clave privada (no se comparte) y otra pública (que se puede compartir). Estas claves son números primos de muchas cifras. Se genera el fichero de licencia con los datos que se deseen: fecha, hora, aplicación, nombre del propietario, id del dispositivo, etc y se hace un HASH. Esto es un "churro", un número muy largo que es un resumen del fichero, por ejemplo CRC o MD5 son algoritmos de hash. Luego se encripta el hash con la clave privada y se añade al fichero de licencia. Ya está firmado.

    Para validar la licencia, simplemente se valida la firma. Se lee la parte de la firma del fichero de licencia y se desencripta con la clave pública del desarrollador, esto da el supuesto hash (el "churro"). Si este hash es igual al hash de los datos del fichero de licencia la firma es correcta. Es decir la licencia es válida.

    Nombre:  800px-Digital_Signature_diagram.svg.png
Visitas: 622
Tamaño: 46.2 KB

    -----Actualizado-----

    Cita Iniciado por futu-block Ver mensaje
    El programa generaría un numero de serie aleatorio, con lo cual el usuario envía ese numero de serie aleatorio como ''asunto'' de la donación y recibe un numero de desbloqueo...
    -Razonable si no fuera que el numero aleatorio puede ser distinto cada vez que inicie el programa o el mismo con todos los programas, aunque es solucionable

    El programa lee un numero de serie de la computadora (no se como) y lo envia como ''asunto'' de donación, y se recibe la contraseña, bla bla...
    -Parece un buen metodo si sabemos como mirar ese numero de serie, podría servir la direccion mac

    Todo esto son desvariaciones y eulucubraciones que pasa por mi cabeza antes de programar nada pero, ¿como se podría hacer?
    y otra pregunta ¿como se hace lo de obtener una contraseña que concuerde con un numero facilitado?

    saludines
    Lo de la firma digital está bien, pero es bastante complejo.

    Lo he puesto como información y también para responder a tu pregunta "¿como se hace lo de obtener una contraseña que concuerde con un numero facilitado?". Encriptando el número (cuanto más grande mejor) con una contraseña que sólo sepas tu. Luego, la aplicación aceptará tanto el número encriptado (que llamaremos código de activación) como el original (que llamaremos ID de usuario). Si al desencriptar el código de activación te da el mismo ID de usuario, el código es válido.

    Para encriptar hay muchos métodos algunos más complejos que otros.

    Ejemplo simplificado para que se entienda, usando la codificación del césar con clave +1 (sumar 1 a cada letra y digito). En tu app tienes que usar un método más complejo con una clave larga.

    - El usuario quiere comprar el programa y éste le presenta un ID de usuario que te envía. Ej: PEPE123
    - El código de activación sería: QFQF234 (codificación césar +1), y se la envías.
    - El usuario va a la app, opción Registrar y mete ID: PEPE123, codigo: QFQF234
    - La app desencripta QFQF234 con la clave inversa (-1), y da PEPE123, que es igual que el ID, el registro es correcto.
    Última edición por hardyx; 22/02/2019 a las 16:22

  13. El siguiente usuario agradece a hardyx este mensaje:

    futu-block (22/02/2019)

  14. #10

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,541
    Mencionado
    56 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    775
    Agradecer Thanks Received 
    395
    Thanked in
    Agradecido 280 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por futu-block Ver mensaje
    Es el editor de caras que llevo tirando tanto tiempo y le estoy dando un formato nuevo, creo que debería darle alguna cosilla para que alguno que otro piense en donar unos dolares

    O ponerlo online y asi al no estar descargable no importaría mucho si vá pa window$, linux o gps... lol
    si el pago es a modo donacion y opcional, y ademas no aporta ningun extra a la version sin donacion... no se para que te haces tanto problema...

    -----Actualizado-----

    Cita Iniciado por hardyx Ver mensaje
    Un método muy seguro es usar la firma digital para generar un fichero de licencia. El algoritmo de firma digital es complejo y requiere muchas matemáticas, pero es un algoritmo público muy documentado y hay librerías en muchos lenguajes. Muchas empresas usan este método para generar licencias.

    El fichero de licencia puede llevar el nombre del propietario (comprador) o algún dato del sistema. El algoritmo funciona de tal manera que si se cambia algún dato de este archivo la licencia ya no es válida. Y también, si se filtra una versión "pirata" de la licencia se puede saber si la ha filtrado un propietario o se ha generado usando otros métodos.

    La firma digital se basa en dos claves generadas por el desarrollador, una clave privada (no se comparte) y otra pública (que se puede compartir). Estas claves son números primos de muchas cifras. Se genera el fichero de licencia con los datos que se deseen: fecha, hora, aplicación, nombre del propietario, id del dispositivo, etc y se hace un HASH. Esto es un "churro", un número muy largo que es un resumen del fichero, por ejemplo CRC o MD5 son algoritmos de hash. Luego se encripta el hash con la clave privada y se añade al fichero de licencia. Ya está firmado.

    Para validar la licencia, simplemente se valida la firma. Se lee la parte de la firma del fichero de licencia y se desencripta con la clave pública del desarrollador, esto da el supuesto hash (el "churro"). Si este hash es igual al hash de los datos del fichero de licencia la firma es correcta. Es decir la licencia es válida.

    Nombre:  800px-Digital_Signature_diagram.svg.png
Visitas: 622
Tamaño: 46.2 KB

    -----Actualizado-----



    Lo de la firma digital está bien, pero es bastante complejo.

    Lo he puesto como información y también para responder a tu pregunta "¿como se hace lo de obtener una contraseña que concuerde con un numero facilitado?". Encriptando el número (cuanto más grande mejor) con una contraseña que sólo sepas tu. Luego, la aplicación aceptará tanto el número encriptado (que llamaremos código de activación) como el original (que llamaremos ID de usuario). Si al desencriptar el código de activación te da el mismo ID de usuario, el código es válido.

    Para encriptar hay muchos métodos algunos más complejos que otros.

    Ejemplo simplificado para que se entienda, usando la codificación del césar con clave +1 (sumar 1 a cada letra y digito). En tu app tienes que usar un método más complejo con una clave larga.

    - El usuario quiere comprar el programa y éste le presenta un ID de usuario que te envía. Ej: PEPE123
    - El código de activación sería: QFQF234 (codificación césar +1), y se la envías.
    - El usuario va a la app, opción Registrar y mete ID: PEPE123, codigo: QFQF234
    - La app desencripta QFQF234 con la clave inversa (-1), y da PEPE123, que es igual que el ID, el registro es correcto.
    pero eso no impide que copien la version con la licencia y la usen en otro lado... si no hay dentro datos del equipo en cuestion o un online para validar la licencia cada tanto o cada vez, no da mucha seguridad...
    ...

  15. #11

    Fecha de ingreso
    Jan 2016
    Ubicación
    Cádiz
    Mensajes
    1,996
    Mencionado
    25 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    775
    Agradecer Thanks Received 
    361
    Thanked in
    Agradecido 234 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Cita Iniciado por SplinterGU Ver mensaje
    si el pago es a modo donacion y opcional, y ademas no aporta ningun extra a la version sin donacion... no se para que te haces tanto problema...
    Mas que nada conocimiento y sabiduría, el saber como preguntar al aparato en uso su código o dirección mac o lo que sea, tambien saber como aplicarle a esa numeración un algoritmo de codificación y como combinarlo con otro para activar el programa


    Cita Iniciado por SplinterGU Ver mensaje
    pero eso no impide que copien la version con la licencia y la usen en otro lado... si no hay dentro datos del equipo en cuestion o un online para validar la licencia cada tanto o cada vez, no da mucha seguridad...
    Lo dicho, curiosidad

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •