Jump to content


Photo

sugerencias para Llave Usb = protección de ejecutables


  • Please log in to reply
7 replies to this topic

#1 WillyP

WillyP

    Member

  • Miembro Platino
  • PipPip
  • 22 posts

Posted 17 February 2010 - 11:54 AM

Hola gente!
Eso mismo, no es nada nuevo, pero ando interesado en desarrollar una llave Usb por Hardware para la protección de software compilado mono-usuario contra piratería, crackeo, copias, etc.

Como todos saben si estas llaves no están conectadas al puerto, el ejecutable no funciona y son proporcionadas por el desarrollador junto con el software de la aplicación.

El sistema debería ser mucho más seguro que los métodos habituales de protección, por eso recurro a las sugerencias, ideas y consejos de los expertos de este foro en informática y tal vez alguno de ustedes sepa algo relacionado con los temas de seguridad del software.

Bueno, el tema de la llave lo tengo bastante claro, utilizaría un microcontrolador con comunicación Usb con un firmware (programa residente en el chip) que lo dota de cierta inteligencia para resolver encriptamientos, reprogramarse, etc en tiempo real.

Por el lado del software-usuario vienen mis dudas, que métodos tendrían que implementarse para que sea bastante seguro? Si tienen sugerencias serán bienvenidas para ir recolectando ideas.

Saludos

  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 17 February 2010 - 12:10 PM

Hace un tiempo me compré un kit de llaves usb con la finalidad de "proteger" unos sistemas incluso en red como lo quieres, sin embargo terminé por usar protección de software por varias razones.

1. El sistema debía operar 24x7, lo que me preocupaba de esa situación es que se perdiera o dañara esa llave y dejara de funcionar hasta que se les enviara otra llave, tuve que evaluar el tiempo de sustitución de la llave.

2. Se tiene que compilar el ejecutable para que incluyera la protección, lo que generaba a otro ejecutable mucho mas grande, cosa que con las capacidades actuales no tiene la menor importancia, sin embargo, no me agradaba la idea.

3. Los instaladores no son universales, por cada sistema que se venda debes de generar su instalador personalizado, con protección de software solo utilizas un solo instalador y la llave de activación la generas cuando el sistema se instala.

4. Utilizar llaves representa un costo por cada sistema vendido, usar protección de software solo "podría" representar un solo gasto para todos los sistemas que vendas, incluso hay soluciones sin costo como por ejemplo estas rutinas de nuestro amigo Seoane.

Por cierto amigo seoane, creo que no te he agradecido por utilizar tu propuesta en algunos sistemitas, muchas gracias :)

Salud OS

  • 0

#3 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2092 posts
  • LocationRepública Dominicana

Posted 17 February 2010 - 12:50 PM

Saludos.

Estos componentes (comercial) pueden brindarte seguridad y algo más...
  • 0

#4 seoane

seoane

    Advanced Member

  • Administrador
  • 1259 posts
  • LocationEspaña

Posted 17 February 2010 - 03:33 PM

Este es un tema al que me gusta darle vueltas cuando estoy aburrido, por supuesto que no soy un experto, pero tengo alguna idea interesante.

La ultima es meter algunas funciones importantes del programa dentro de una dll, luego cifrarla con AES y guardarla junto con el programa (en el mismo directorio o incrustada en el ejecutable).

Al ejecutar el programa usaríamos una contraseña previamente guardada para descifrar en memoria la dll y usaríamos este método para cargar la dll directamente de la memoria RAM.

Por otro lado la forma de asegurarse de que solo se instale en un equipo es generar una clave a partir de algo unico de ese equipo (el numero de serie del disco, la fecha y hora del directorio de instalación, etc ...), y usar esa clave para cifrar la clave de descifrado de la dll.

El proceso seria el siguiente:
  • El cliente instala el programa y este genera un numero de serie a partir de algun dato unico del equipo
  • El cliente le comunica la distribuidor ese numero de serie
  • El distribuidor cifra la clave de descifrado de la dll usando como clave el numero de serie del programa
  • El usuario recibe su "clave de activación" de manos del distribuidor y lo introduce en el programa
  • El programa guarda la clave de activación (en el registro, en una base de datos, en un archivo de texto)
  • Ahora cuando el programa necesita la dll, descifra la clave guardada usando el numero de serie y a continuación descifra la dll

Puede que suene un poco lioso, pero no es difícil de hacer. Lo mas complicado es cargar la dll desde la RAM. Pero siempre se pueden cifrar otras partes del programa, como constantes, o imágenes.

PD: Recordar que el windows, el autocad (con su llave hardware), el photoshop, etc ... están todos crackeados, asi que no debe ser fácil encontrar la protección perfecta ...
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 17 February 2010 - 03:57 PM

Respecto a este tema de lo fácil que es romper la seguridad de los sistemas yo no me afano mucho, lo que yo he usado últimamente es poner una clave para que el usuario conozca la fecha de pago de su contrato de mantenimiento, al vencer solo le deshabilito el boton de login hasta que me piden la clave del mes, normalmente no tengo problemas ya que les hago un descuento por pronto pago :D :D :D

Salud OS
  • 0

#6 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1750 posts
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Posted 17 February 2010 - 04:56 PM

Otra opción, que no he usado por falta de un "usuario de indias" que se atreva a pagar el desarrollo, es contrastación vía internet de un código para cada cliente o instalación. El único problema que le veo es la carencia de conexión a Internet y alguna eventual caída del servicio o del servidor.

Aunque con un "dongle" de RS232 a veces es más que suficiente. Claro, siempre y cuando se pague el derecho de uso del software grabador respectivo.
  • 0

#7 kafastoforman

kafastoforman

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 277 posts
  • LocationMexico D.F.

Posted 18 February 2010 - 09:38 AM

PD: Recordar que el windows, el autocad (con su llave hardware), el photoshop, etc ... están todos crackeados, asi que no debe ser fácil encontrar la protección perfecta ...


Los programas mas populares y mas utilizados en el mundo, son los blancos de los hackers para evadir la seguridad, pero un programa que apenas ha distribuido 100 licencias en su comunidad no deberia de tener muchos problemas con la seguridad, ya que no todo mundo en un hacker en potencia.

La tecnica de seoane, se oye super bien, aunque siento que para aplicaciones que se prentenden rentar mensualmente, cloud programing seria la solucion para esos problemas de seguridad, pero como dice tiammatmx, tiene la desventaja de usar forzosamente una conexion a internet.

Saludos

Kafastoforman
  • 0

#8 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 posts
  • LocationMéxico

Posted 20 February 2010 - 08:32 AM

Utilizo TmxProtector, el cual es gratuito.

No he tenido problemas. Claro está que mis programas no se venden por miles.


Salud.


  • 0




IP.Board spam blocked by CleanTalk.