Recent

Author Topic: Como usar una USB como Key/Dongle para una aplicacion windows  (Read 2345 times)

crisares

  • Jr. Member
  • **
  • Posts: 63
Como usar una USB como Key/Dongle para una aplicacion windows
« on: February 19, 2020, 07:29:00 pm »
Hola
Estoy evaluando la forma de darle algo de seguridad a mi software y quisiera saber si alguno me puede asesorar al respecto de usar una usb de este tipo y como se hace..

Muchas Gracias

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re: Como usar una USB como Key/Dongle para una aplicacion windows
« Reply #1 on: February 19, 2020, 07:43:23 pm »
Depende de la marca, supongo, pero las que yo he visto (y testado, aunque hace muchos años) van acompañadas (o te obligan a comprar como requisito para la venta) de una especie de SDK con una libreria que tienes que llamar desde tu aplicación o un bloque de código objeto que tienes que enlazar.

En  mi experiencia, ese tipo de protección no vale la pena: con demasiada frecuencia la "mochila" (o el software del fabricante) falla y deja a un usuario legítimo sin poder ejecutar tu programa. ¿Y quién crees que se lleva la culpa (y la mala publicidad)?
« Last Edit: February 19, 2020, 07:45:13 pm by lucamar »
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

crisares

  • Jr. Member
  • **
  • Posts: 63
Re: Como usar una USB como Key/Dongle para una aplicacion windows
« Reply #2 on: February 19, 2020, 09:11:29 pm »
Depende de la marca, supongo, pero las que yo he visto (y testado, aunque hace muchos años) van acompañadas (o te obligan a comprar como requisito para la venta) de una especie de SDK con una libreria que tienes que llamar desde tu aplicación o un bloque de código objeto que tienes que enlazar.

En  mi experiencia, ese tipo de protección no vale la pena: con demasiada frecuencia la "mochila" (o el software del fabricante) falla y deja a un usuario legítimo sin poder ejecutar tu programa. ¿Y quién crees que se lleva la culpa (y la mala publicidad)?

Tienes Razon, y que aconsejas usar para proteger un software de la distribucion deliverada? Trate de entender como trabajar con la MAC del equipo donde se instale el programa pero mis conocimientos no son tan amplios se ve como para poder implementarlo  :-[
« Last Edit: February 19, 2020, 09:16:58 pm by crisares »

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re: Como usar una USB como Key/Dongle para una aplicacion windows
« Reply #3 on: February 19, 2020, 09:41:44 pm »
Uasr sólo la MAC es mala idea: en la mayoría de tarjetas se puede cambiar muy fácilmente. Lo mejor, si realmente quieres bloquear la aplicación para sólo un equipo concreto, es tomar una muestra de los diversos número de serie: de la CPU, del disco, la MAC, etc. El problema es que tienes que ser muy cuidadoso respecto a cuántos cambios permites: un usuario probablemente considere que cambiar la CPU o el disco o la tarjeta de red o cualquier otro hardware por avería o simple mejora no debería hacer que el software lo considerase un nuevo equipo.

Una mejor opción, quizá, es añadir un número de serie a tu software y una forma de comprobarlo con algún tipo de hash guardado en el equipo de modo que no sea obvio. Esto, y otras formas de protección similares, lo puedes conseguir con LockBox (antes de TurboPower) u otras librerías similares.

De lo que sí puedes estar seguro es de que si tu software vale la pena, tarde o temprano alguien encontrará la forma de desprotegerlo y no hay nada que puedas hacer para evitarlo.



La verdad es que yo programo principalmente software libre y hace muchos años que dejó de importarme si alguien copia alguno de los pocos programas cerrados que aún tenemos, que están en su mayoría altamente personalizados para cada cliente. En ese sentido, confiamos más en que la gente venga a nosotros por la experiencia, el mantenimiento y, en general, nuestro savoir faire: créeme, nuestros clientes agradecen la confianza.

Y alguno hay al que le ha entrado el gusanillo de la informática porque puede ver, si quiere, la mayor parte de nuestro código fuente y juguetear con él. :D

Por supuesto, tu situación puede ser totalmente diferente y no tener nada que ver con la nuestra, en cuyo caso lo anterior no te vale para nada.
« Last Edit: February 19, 2020, 09:48:03 pm by lucamar »
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

crisares

  • Jr. Member
  • **
  • Posts: 63
Re: Como usar una USB como Key/Dongle para una aplicacion windows
« Reply #4 on: February 19, 2020, 10:27:51 pm »
Uasr sólo la MAC es mala idea: en la mayoría de tarjetas se puede cambiar muy fácilmente. Lo mejor, si realmente quieres bloquear la aplicación para sólo un equipo concreto, es tomar una muestra de los diversos número de serie: de la CPU, del disco, la MAC, etc. El problema es que tienes que ser muy cuidadoso respecto a cuántos cambios permites: un usuario probablemente considere que cambiar la CPU o el disco o la tarjeta de red o cualquier otro hardware por avería o simple mejora no debería hacer que el software lo considerase un nuevo equipo.

Una mejor opción, quizá, es añadir un número de serie a tu software y una forma de comprobarlo con algún tipo de hash guardado en el equipo de modo que no sea obvio. Esto, y otras formas de protección similares, lo puedes conseguir con LockBox (antes de TurboPower) u otras librerías similares.

De lo que sí puedes estar seguro es de que si tu software vale la pena, tarde o temprano alguien encontrará la forma de desprotegerlo y no hay nada que puedas hacer para evitarlo.



La verdad es que yo programo principalmente software libre y hace muchos años que dejó de importarme si alguien copia alguno de los pocos programas cerrados que aún tenemos, que están en su mayoría altamente personalizados para cada cliente. En ese sentido, confiamos más en que la gente venga a nosotros por la experiencia, el mantenimiento y, en general, nuestro savoir faire: créeme, nuestros clientes agradecen la confianza.

Y alguno hay al que le ha entrado el gusanillo de la informática porque puede ver, si quiere, la mayor parte de nuestro código fuente y juguetear con él. :D

Por supuesto, tu situación puede ser totalmente diferente y no tener nada que ver con la nuestra, en cuyo caso lo anterior no te vale para nada.

Muchas Gracias por tus consejos..
En mi caso el software del que hablo esta relacionado a el rubro inmobilizadores automotriz y se utiliza para confeccionar llaves codificadas de vehículos solo con la lectura hexadecimal del inmovilizador y otras tareas de reparación de los mismo cuando se corrompe la información... no soy el único seguramente que sabe como realizar algunos de estos trabajos de manera manual sobre el Dump hexadecimal... pero tal vez si uno de los pocos que se tomo el trabajo en desarrollar un programa para dicho fin y a medida de las necesidades propias y del rubro... que no dependa de ningún lecto/programador de memorias especifico.
Y me molestaría que al tiempo uno lo vea que lo reparten en un grupo de wasap libremente... hasta incluso sin haberlo vendido nunca y solo haberlo realizado simplemente por estar en dicho rubro y a la vez apasionarme el mundo de la programacion y darselo a alguien en confianza que con el tiempo dejo de serlo... por eso el fin en principio tampoco es comercial y solo busco poner un tipo de limite a esto que te cuento.

Con respecto a lo que imagine en mi cabeza que se podría llegar a realizar sin siquiera saber a ciencia cierta como realizarlo  :-[ es algo parecido a lo que mencionas de LockBox.... voy a ver si logro entender de que se trata y como se hace.
Nuevamente gracias por tu tiempo.
Saludos

ezlage

  • Guest
Re: Como usar una USB como Key/Dongle para una aplicacion windows
« Reply #5 on: February 19, 2020, 10:34:29 pm »
Quote
Tienes Razon, y que aconsejas usar para proteger un software de la distribucion deliverada? Trate de entender como trabajar con la MAC del equipo donde se instale el programa pero mis conocimientos no son tan amplios se ve como para poder implementarlo  :-[

The best way for prevent unauthorized distribution is to develop the software web-based, being accessed through a web browser.

I spent much time trying to make a compiled program safe. If you do the same, at the end, you will realize that with reference counting, breaking points and memory dumps you can discover anything you need to crack some executable or some library. The only thing that you can do is to make this more difficult, but do this turns your work more difficult too.

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re: Como usar una USB como Key/Dongle para una aplicacion windows
« Reply #6 on: February 19, 2020, 10:40:53 pm »
Si te surge alguna duda después de investigar por ahí no dudes en preguntar por lo que sea.

Sólo un consejo: si puedes hacerlo en inglés en el hilo adecuado estoy seguro de que recibirás muchas más respuetas. Pero si no puedes no pasa nada: pregunta aquí y ya veremos :)

Añadido:
Por si no puedes leer inglés, esto es lo que dice ezlage (¡según Google Translator!) en el post anterior:

La mejor manera de evitar la distribución no autorizada es desarrollar el software basado en la web, al que se accede a través de un navegador web.

Pasé mucho tiempo tratando de hacer un programa compilado seguro. Si hace lo mismo, al final, se dará cuenta de que con el recuento de referencias, los puntos de ruptura y los volcados de memoria puede descubrir todo lo que necesita para descifrar algún ejecutable o alguna biblioteca. Lo único que puede hacer es hacer que esto sea más difícil, pero esto también hace que su trabajo sea más difícil.
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

crisares

  • Jr. Member
  • **
  • Posts: 63
Re: Como usar una USB como Key/Dongle para una aplicacion windows
« Reply #7 on: February 19, 2020, 10:55:45 pm »
Si te surge alguna duda después de investigar por ahí no dudes en preguntar por lo que sea.

Sólo un consejo: si puedes hacerlo en inglés en el hilo adecuado estoy seguro de que recibirás muchas más respuetas. Pero si no puedes no pasa nada: pregunta aquí y ya veremos :)

Añadido:
Por si no puedes leer inglés, esto es lo que dice ezlage (¡según Google Translator!) en el post anterior:

La mejor manera de evitar la distribución no autorizada es desarrollar el software basado en la web, al que se accede a través de un navegador web.

Pasé mucho tiempo tratando de hacer un programa compilado seguro. Si hace lo mismo, al final, se dará cuenta de que con el recuento de referencias, los puntos de ruptura y los volcados de memoria puede descubrir todo lo que necesita para descifrar algún ejecutable o alguna biblioteca. Lo único que puede hacer es hacer que esto sea más difícil, pero esto también hace que su trabajo sea más difícil.


Gracias Lucamar

Mi idioma nativo es el español para el ingles algo entiendo pero prefiero traducir directamente... pero si logro ayuda por este medio mucho mejor.. de todos modos soy consiente que la mayor información se consigue buscando en ingles me paso varias veces cuando agote este medio :)
 
Con respecto a lo que dice ezlage... estoy completamente de acuerdo que esa seria la mejor opción pero en mi caso creo que seria ya demasiado... yo simplemente busco algo mas básico ya que no hablamos de un fin comercial.. por lo menos en la versión 1.0 jeje ya que pienso ir agregándole cosas con el tiempo...

Voy a estudiar eso que me comentaste del lockbox si logro entender como dominarlo..

 

TinyPortal © 2005-2018