security licensing protection software-distribution piracy

security - ¿Cómo se protege su software de la distribución ilegal?



licensing protection (25)

Casi todas las protecciones contra copias son ineficaces y una pesadilla de usabilidad. Algunos de ellos, como poner root-kits en las máquinas de sus clientes se vuelven francamente poco éticos

Tengo curiosidad sobre cómo proteger su software contra grietas, pirateo, etc.

¿Emplea algún tipo de verificación de número de serie? Claves de hardware?

¿Utiliza alguna solución de terceros?

¿Cómo se solucionan los problemas de licencia? (por ejemplo, gestión de licencias flotantes)

EDITAR: No estoy hablando de ninguna fuente abierta, sino de distribución de software estrictamente comercial ...


Cualquiera que sea la ruta que tome, cargue un precio justo, facilite su activación, proporcione actualizaciones menores gratuitas y nunca desactive su software. Si tratas a tus usuarios con respeto, te recompensarán por ello. Aún así, no importa lo que hagas, algunas personas terminarán pirateándolo.


DRM esto, DRM eso: los editores que fuerzan DRM en sus proyectos lo están haciendo porque es rentable. Sus economistas están concluyendo esto con datos que ninguno de nosotros verá jamás. Los trolls de "DRM is evil" van demasiado lejos.

Para un producto de baja visibilidad, una simple activación de Internet detendrá la copia casual. Cualquier otra copia es probablemente insignificante para su balance final.


Dado un poco de tiempo, su software siempre estará rajado. Puede buscar versiones descifradas de cualquier pieza de software bien conocida para confirmar esto. Pero aún vale la pena agregar alguna forma de protección a su software.

Recuerde que las personas deshonestas nunca pagarán por su software y siempre encontrarán / usarán una versión crackeada. La gente muy honesta siempre se apegará a las reglas incluso sin un esquema de licencia solo porque ese es el tipo de persona que es. Pero la mayoría de la gente está entre estos dos extremos.

Agregar un esquema de protección simple es una buena manera de hacer que la mayoría de las personas en el medio actúen de una manera honesta. Es una forma de empujarlos a recordar que el software no es gratuito y deben pagar la cantidad adecuada de licencias. Muchas personas realmente responden a esto. Las empresas son especialmente buenas para cumplir con las reglas porque el administrador no está gastando su propio dinero. Es menos probable que los consumidores se apeguen a las reglas porque es su propio dinero.

Pero la experiencia reciente con lanzamientos como Spore de Electronic Arts muestra que se puede ir muy lejos en la concesión de licencias. Si haces que incluso las personas de fiar se sientan criminales porque están siendo validados constantemente, comienzan a rebelarse. Por lo tanto, agregue algunas licencias simples para recordarle a la gente si son deshonestas, pero es improbable que nada más que eso aumente las ventas.


Digital "Rights" Management es el producto de software de serpiente de aceite más grande de la industria. Para tomar prestada una página de la criptografía clásica, el escenario típico es que Alice quiere enviar un mensaje a Bob sin que Charlie pueda leerlo. DRM no funciona porque en su aplicación, ¡Bob y Charlie son la misma persona!

Sería mejor que hicieras la pregunta inversa, que es "¿Cómo hago para que la gente compre mi software en lugar de robarlo?" Y esa es una pregunta muy amplia. Pero generalmente comienza haciendo investigación. Calcula quién compra el tipo de software que desea vender y luego produce software que atraiga a esas personas.

La ventaja adicional de esto es limitar las actualizaciones / complementos solo a las copias legítimas. Esto puede ser algo tan simple como un código de pedido recibido durante la transacción de compra.

Mira el software de Stardock, los creadores de WindowBlinds y juegos como Sins of a Solar Empire, este último no tiene DRM y obtuvo un beneficio considerable de un presupuesto de $ 2M.


El esquema de la licencia de software de Microsoft es una locura para una pequeña empresa. El costo del servidor es de alrededor de $ 12,000 si quiere configurarlo usted mismo. No lo recomiendo para el fin del corazón.

De hecho, solo implementamos Intellilock en nuestro producto. Le permite tomar todas las decisiones sobre qué tan estricto quiere que sea su licencia, y también es muy rentable. Además, ofuscación, prevención del compilador, etc.

Otra buena solución que he visto utilizar en pequeñas y med es SoloServer . Es mucho más un sistema de comercio electrónico y control de licencias. Es muy configurable al punto de tal vez un poco demasiado complejo. Pero hace un muy buen trabajo por lo que he escuchado.

También utilicé el sistema de licencias Desaware para dot net en el pasado. Es un sistema bastante ligero en comparación con los dos anteriores. Es un muy buen sistema de control de licencia en términos de sonido criptográficamente. Pero es una API de muy bajo nivel en la que tienes que implementar casi todo lo que tu aplicación realmente usará.


El problema con esta idea de dejar que los piratas lo usen no lo comprarán de todos modos y les mostrará a sus amigos que podrían comprarlo que es doble.

  1. Con software que usa servicios de terceros, las copias pirateadas están usando un valioso ancho de banda / recurso que da a los usuarios legítimos una peor experiencia, hace que mi pareja se vea más popular y los servicios de terceros me piden que pague más por sus servicios porque del ancho de banda que se usa.

  2. Muchos casuales no soñarían con descifrar el sw ellos mismos, pero si hay un crack fácil de evaluar en un sitio como piratebay lo usarán, si no hubiera, podrían comprarlo.

Este concepto de software pirateado que no deshabilita una vez que se descubrió también parece una locura, no entiendo por qué debería dejar que alguien continúe usando un software que no deberían usar, supongo que esta es solo la vista / esperanza de los piratas.

Además, vale la pena señalar que hacer un programa difícil de descifrar es una cosa, pero también es necesario evitar que se compartan copias legítimas, de lo contrario, alguien podría simplemente comprar una copia y luego
compartirlo con miles de otros a través de un sitio de torrents. El hecho de tener su nombre / dirección de correo electrónico incrustado en la licencia no será suficiente para disuadir a todos de hacer esto, y realmente solo se necesita uno para que haya un problema.

La única forma en que puedo ver para evitar esto es:

  1. Haga que el servidor verifique y bloquee la licencia cada vez que inicie el programa, y ​​libere la licencia al salir del programa. Si otro cliente comienza con la misma licencia mientras el primer cliente tiene licencia, entonces se rechaza. De esta forma no se evita que la licencia sea utilizada por más de un usuario, pero se evita que sea utilizada simultáneamente por más de un usuario, lo que es suficiente. También permite que un usuario legítimo transfiera la licencia en cualquiera de sus computadoras, lo que brinda una mejor experiencia.

  2. El primer cliente de inicio del cliente envía la licencia al servidor y el servidor lo verifica, lo que hace que se establezca un indicador dentro del software del cliente. Se rechazan otras solicitudes de otros clientes con la misma licencia. El problema con este enfoque es que el cliente original tendría problemas si volviera a instalar el software o deseara usar una computadora diferente.


En general, hay dos sistemas que a menudo se confunden:

  • Licencias o seguimiento de activación, uso legal legítimo
  • Seguridad que previene el uso ilegal

Para obtener licencias, use un paquete comercial, FlexLM muchas compañías invierten enormes sumas de dinero en licencias, piensen que también obtienen seguridad, este es un error común que las generadoras clave para estos paquetes comerciales son abundantemente abundantes.

Solo recomendaría la concesión de licencias si vende a corporaciones que pagarán legítimamente en función del uso, de lo contrario probablemente sea más esfuerzo de lo que vale.

Recuerde que a medida que sus productos se vuelven exitosos, eventualmente se violarán todas y cada una de las medidas de seguridad y licencias. Así que decida ahora si realmente vale la pena el esfuerzo.

Implementamos un clon de sala limpia de FlexLM hace algunos años, también tuvimos que mejorar nuestras aplicaciones contra ataques binarios, su largo proceso, debe volver a visitarlo en cada lanzamiento. También depende realmente de los mercados globales que venda, o de dónde esté su mayor base de clientes en cuanto a lo que necesita hacer.

Vea otra de mis respuestas sobre cómo asegurar una DLL .


Estoy de acuerdo con una gran cantidad de carteles que ningún esquema de protección contra copia basado en software disuadirá a un pirata experto en software. Para el software comercial basado en .NET, Microsoft Software License Protection (SLP) es una solución a un precio muy razonable. Admite licencias flotantes y de tiempo limitado. Su precio comienza en $ 10 / mes + $ 5 por activación y los componentes de protección parecen funcionar como se anuncia. Sin embargo, es una oferta bastante nueva, así que ten cuidado con el comprador.


Existen varios métodos, como usar la ID del procesador para generar una "clave de activación".

En resumidas cuentas, si alguien lo quiere lo suficientemente malo, le aplicará ingeniería inversa a cualquier protección que tenga.

Los métodos más a prueba de fallas son usar verificación en línea en tiempo de ejecución o un cerrojo de hardware.

¡Buena suerte!


Haga que parte de su producto sea un componente en línea que requiera conexión y autenticación. Aquí hay unos ejemplos:

  • Juegos en línea
  • Protección de virus
  • Protección contra el spam
  • Software de seguimiento de computadora portátil

Este paradigma solo va tan lejos y puede desanimar a algunos consumidores.


Haga que sea más fácil comprar que robar. Si pones montones de protección contra copia entonces solo hace que el valor de ser dueño del trato real sea bastante bajo.

Use una clave de activación simple y asegure a los clientes que siempre pueden obtener una clave de activación o volver a descargar el software si alguna vez pierden el suyo.

Cualquier protección contra copia (aparte de los componentes solo en línea como los juegos multijugador y el software financiero que se conecta a su banco, etc.) puede asumir que será derrotada. Desea descargar su software ilegalmente, como mínimo, para ser un poco más difícil que comprarlo.

Tengo juegos de PC que nunca abrí, porque hay tanta basura de protección contra copia que es realmente más fácil descargar la versión falsa.


Hay muchas, muchas, muchas protecciones disponibles. La clave es:

  • Evaluar a su público objetivo, y lo que están dispuestos a aguantar
  • Comprender el deseo de tu audiencia de jugar sin pagar
  • Evaluar la cantidad que alguien está dispuesto a proponer para romper su protección
  • Aplicando la protección suficiente para evitar que la mayoría de las personas eviten el pago, sin molestar a los que usan su software.

Nada es irrompible, por lo que es más importante medir estas cosas y elegir una buena protección que simplemente dar un golpe en la mejor (peor) protección que pueda pagar.

  • Códigos de registro simples (verificados en línea una vez).
  • Registro simple con claves revocables, verificado en línea con frecuencia.
  • La clave cifrada contiene parte del algoritmo del programa (no se puede omitir el control; debe ejecutarse para que el programa funcione)
  • Clave de hardware (criptografía de clave pública / privada)
  • Clave de hardware (incluye parte del algoritmo del programa que se ejecuta en la clave)
  • El servicio web ejecuta un código crítico (los hackers nunca llegan a verlo)

Y variaciones de lo anterior.

-Adán


Incluso si utilizara algún tipo de autenticación biométrica de huellas dactilares, alguien encontraría la manera de descifrarlo. Realmente no hay una forma práctica de evitar eso. En lugar de tratar de hacer que su software sea a prueba de intrusiones, piense en la cantidad de ingresos adicionales que aportará agregando protección adicional contra la cantidad de tiempo y dinero que se necesitará para implementarla. En algún momento, resulta más barato ir con un esquema de protección de copia menos riguroso.

Depende de cuál es exactamente su producto de software, pero una posibilidad es sacar la parte "valiosa" del programa del software y mantenerla bajo su control exclusivo. Usted cobraría una tarifa modesta por el software (principalmente para cubrir los costos de impresión y distribución) y generaría sus ingresos del componente externo. Por ejemplo, un programa antivirus que se vende barato (o incluido de forma gratuita con otros productos) pero vende suscripciones a su servicio de actualización de definiciones de virus. Con ese modelo, una copia pirateada que se suscribe a su servicio de actualización no representaría una gran pérdida financiera. Con la creciente popularidad de las aplicaciones "en la nube", este método es cada vez más fácil de implementar; alojar la aplicación en su nube y cobrarles a los usuarios por el acceso a la nube. Esto no impide que alguien vuelva a implementar su propia nube para eliminar la necesidad de su servicio, pero el tiempo y el esfuerzo necesarios para hacerlo probablemente superen los beneficios (si mantiene su modelo de precios razonable).


La distribución ilegal es prácticamente imposible de prevenir; solo pregúntale a la RIAA. El contenido digital solo puede copiarse; el contenido analógico puede digitalizarse y luego copiarse.

Debe enfocar sus esfuerzos en prevenir la ejecución no autorizada. Nunca es posible evitar por completo la ejecución del código en la máquina de otra persona, pero puede tomar ciertas medidas para subir la barra lo suficientemente alto como para que sea más fácil comprar el software que piratearlo.

Eche un vistazo al artículo Developing for Software Protection and Licensing que explica la mejor manera de desarrollar su aplicación teniendo en cuenta las licencias.

Descargo y responsabilidad obligatorios: la compañía que cofundé produce la solución de licencia de software OffByZero Cobalt para .NET .


La mejor y más simple solución es simplemente cargarlos por adelantado. Establezca un precio que funcione para usted y para ellos.

Pedirles a los clientes que paguen que prueben que están pagando a los clientes después de que ya han pagado simplemente les molesta. Implementar el código para que su software no se ejecute desperdicia su tiempo y dinero, y presenta errores y molestias para los clientes legítimos. Sería mejor pasar ese tiempo haciendo un mejor producto.

Muchos juegos / etc "protegerán" la primera versión, luego soltarán las protecciones en el primer parche debido a problemas de compatibilidad con clientes reales. No es una estrategia irracional si insistes en un mínimo de protección.


Las protecciones de software no valen la pena: si su software está en demanda, será derrotado, no importa qué.

Dicho esto, las protecciones de hardware pueden funcionar bien. Un ejemplo de cómo puede funcionar bien es este: encuentre un componente (bastante) simple pero necesario de su software e impleméntelo en Verilog / VHDL. Genere un par de llaves público-privadas y cree un servicio web que tome una cadena de desafío y la encripte con la clave privada. Luego crea un dongle USB que contenga tu clave pública y genere cadenas de desafío al azar. Su software debe solicitarle al dongle USB una cadena de desafío y enviarlo al servidor para cifrado. El software luego lo envía al dongle. El dongle valida la cadena de desafío cifrada con la clave pública y pasa a un modo ''habilitado''. Luego, su software llama al dispositivo de seguridad cada vez que necesita realizar la operación que escribió en HDL. De esta forma, cualquiera que quiera piratear su software tiene que descubrir cuál es la operación y volver a implementarla, mucho más que simplemente derrotar una protección de software pura.

Editar: Acabo de darme cuenta de que algunas de las cosas de verificación están al revés de lo que deberían ser, pero estoy bastante seguro de que la idea se muestra.


Licenciamos nuestro software comercial usando nuestro propio sistema de licencias, que es lo que estamos vendiendo (herramientas de administración de licencias). Generalmente vendemos licencias de suscripción, pero también podemos vender en función del uso si lo deseamos. Hasta ahora ha sido seguro para nosotros: www.agilis-sw.com


Los juegos solo en línea como World of Warcraft (WoW) lo han hecho, todos tienen que conectarse al servidor cada vez y así las cuentas se pueden verificar constantemente. Ningún otro método funciona para los frijoles.


No es exactamente la respuesta que está buscando, pero es un gran recurso de piratería de un desarrollador de juegos que preguntó activamente a sus piratas sobre por qué lo hacen. Y está relacionado con la primera parte de la respuesta que eliges.

Léelo en Hablando con piratas .


No lo hagas

Piratas piratearán No importa qué solución se te ocurra, puede y será resquebrajada.

Por otro lado, sus clientes reales que pagan son los que están siendo molestados por la basura.


Si está interesado en proteger el software que pretende vender a los consumidores, le recomendaría cualquiera de una variedad de bibliotecas generadoras de claves de licencia (Búsqueda de Google en la generación de claves de licencia). Por lo general, el usuario tiene que darle algún tipo de semilla, como su dirección de correo electrónico o nombre, y recibe el código de registro.

Varias compañías alojarán y distribuirán su software o proporcionarán una aplicación de instalación / compra completa con la que puede integrarse y hacerlo automáticamente, sin costo adicional para usted.

He vendido software a consumidores y encuentro que este es el equilibrio correcto de costo / facilidad de uso / protección.


Si usted es un desarrollador de software, una de las posibles soluciones es incorporar metadatos directamente en su producto. Echa un vistazo a la herramienta de destrucción de destrucción de theredsunrise.


Sugiero una clave de activación simple (incluso si sabe que se puede romper), realmente no quiere que su software entre en contacto con los usuarios, o simplemente lo rechazará.

Asegúrese de que puedan volver a descargar el software. Sugiero una página web donde puedan iniciar sesión y descargar su software solo después de pagar (y sí, deberían poder descargar tantas veces como lo deseen, directamente, sin una sola pregunta). acerca de por qué de tu parte).

Dirige a tus usuarios pagos sobre todo, no hay nada más irritante que ser acusado de ser un criminal cuando eres un usuario legítimo (advertencias antipiratería de DVD a nadie).

Puede agregar un servicio que verifique la clave contra un servidor cuando esté en línea, y en el caso de que dos IP diferentes estén usando la misma clave, haga una sugerencia para comprar otra licencia.

¡Pero por favor no lo inactive, podría ser un usuario feliz mostrando su software a un amigo!


Como se ha señalado, nunca se garantiza que la protección del software sea infalible. Lo que pretendes usar depende en gran medida de tu público objetivo. Un juego, por ejemplo, no es algo que vas a poder proteger para siempre. Un software de servidor, por otro lado, es mucho menos probable que se distribuya en Internet, por varias razones (la penetración del producto y la responsabilidad vienen a la mente, una gran corporación no quiere ser considerada responsable por el software de bootleg, y los piratas solo se molestan con cosas con una demanda lo suficientemente grande). Honestamente, para un juego de alto perfil, la mejor solución es, probablemente, sembrar el torrente tú mismo (¡clandestinamente!) Y modificarlo de alguna manera (por ejemplo, para que después de dos semanas de juego aparezca con mensajes que te digan que por favor considere apoyar a los desarrolladores comprando una copia legítima).

Si pones protección en su lugar, ten en cuenta dos cosas. En primer lugar, un precio más bajo complementará cualquier protección contra copia haciendo que la gente esté más inclinada a pagar el precio de compra. En segundo lugar, la protección no debe estorbar a los usuarios; consulte Spore para ver un ejemplo reciente.