¿Cómo protege su software de la distribución ilegal? [cerrado]


90

Tengo curiosidad por saber cómo protege su software contra craqueo, piratería, etc.

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

¿Utiliza alguna solución de terceros?

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

EDITAR: No estoy hablando de ningún código abierto, sino de distribución de software estrictamente comercial ...


77
Estoy esperando el día en que alguien piratee mi software. ¡Que sería increíble!

4
La cuestión es que un día alguien piratea tu software, probablemente tú no lo
sabrías

7
En mi opinión, es poco probable que los piratas paguen por tu software, así que no me preocupo mucho por ellos. Escribe un gran software y ganarás dinero.
Mike

6
No te ofendas, pero "Escribe un software excelente y ganarás dinero" es parcialmente cierto. Considere MS Office. Dejando a un lado las críticas, es un buen software. Sin embargo, en promedio mundial, más del 70% de las copias de Office son ilegales. ¿No ganaría MS mucho más si no fuera por la piratería? ¿La piratería está realmente relacionada directamente con la calidad del software?
petr k.

5
@petr k .: No estoy de acuerdo. Un efecto secundario importante de la piratería es, de hecho, la popularidad de MSOffice (MSWindows para el caso). MS perderá si puede frenar completamente la piratería. @ Mike: Ese es un muy buen punto. Al poner el servidor de licencias, etc., solo estamos dificultando las cosas para nuestro cliente pago
rpattabi

Respuestas:


74

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

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

Nada es irrompible, por lo que es más importante evaluar estas cosas y elegir una buena protección que simplemente dar una palmada a 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 encriptada contiene parte del algoritmo del programa (no se puede simplemente omitir la verificación, debe ejecutarse para que el programa funcione)
  • Llave de hardware (criptografía de clave pública / privada)
  • Llave de hardware (incluye parte del algoritmo del programa que se ejecuta en la llave)
  • El servicio web ejecuta código crítico (los piratas informáticos nunca llegan a verlo)

Y variaciones de lo anterior.


¿Algún ejemplo de llave de hardware en uso?
Łukasz Lew

2
@Lukasz: también se les conoce como dongles, dispositivos electrónicos que se conectan a la computadora. Consulte en.wikipedia.org/wiki/Dongle para obtener más información sobre esta opción.
Adam Davis

28

Sea cual sea la ruta que elija, cobre un precio justo, facilite la activación, proporcione actualizaciones menores gratuitas y nunca desactive su software. Si trata a sus usuarios con respeto, ellos lo recompensarán por ello. Aún así, no importa lo que hagas, algunas personas terminarán pirateándolo.


Bien dicho. Estoy de acuerdo en que proteger un software es mucho más que solo claves y números de serie. Las protecciones técnicas son rompibles de todos modos, no deberíamos esforzarnos demasiado en esas cosas.
Jaya Wijaya

Sí, la razón principal por la que alguna vez pirateé software (no la que he hecho, por supuesto; D) son los precios escandalosos. Entonces, por supuesto, los usuarios que no paguen por él te hacen menos dinero al final. Así que mantén los precios justos y ganarás una buena cantidad de dinero.
Ponkadoodle

24

No lo hagas.

Los piratas piratearán. Independientemente de la solución que se le ocurra, puede y será resquebrajada.

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


6
Eso no es exactamente cierto, hay usuarios ignorantes que simplemente aceptan software porque simplemente no piensan en él. La gente normal robará si no piensa en ello.
Arthur Thomas

9
Estoy de acuerdo. ¡Siempre me enojo con las intros del FBI de "no robarías un auto" de los DVD por los que he pagado!
Christian Davén

6
Si se hace correctamente, será casi invisible para los usuarios legítimos. Y no subestime el impacto de la piratería casual en el resultado final. Hay muchos mercados donde la demanda es bastante inflexible y el 'DRM' puede marcar una gran diferencia en los ingresos.
Smo

3
Karl

4
@MarkJ: En realidad, cualquier propietario de código que desee mantener a sus clientes debería adoptar con frecuencia el punto de vista del cliente ...
sleske

22

Haz que sea más fácil comprar que robar. Si pones montones de protección contra copias, entonces el valor de poseer el trato real es bastante bajo.

Utilice 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 la suya.

Cualquier protección contra copias (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, al menos, un poco más que comprarlo.

Tengo un juego de PC que nunca he abierto, porque contiene tanta basura de protección contra copias que en realidad es más fácil descargar la versión falsa.


++ para "hacer que sea más fácil comprar que robar".
AlcubierreDrive

+++ "para que sea más fácil comprar que robar"!
Denis Shevchenko

15

Las protecciones de software no valen la pena; si su software tiene demanda, lo hará 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 claves 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 dispositivo USB que contenga tu clave pública y genere cadenas de desafío aleatorias. Su software debe pedirle al dongle USB una cadena de desafío y enviarla al servidor para su cifrado. Luego, el software lo envía al dongle. El dongle valida la cadena de desafío cifrada con la clave pública y entra en modo "habilitado". Luego, su software llama al dongle cada vez que necesita realizar la operación que escribió en HDL.

Editar: Me acabo de dar cuenta de que algunas de las cosas de verificación están al revés de lo que debería ser, pero estoy bastante seguro de que la idea se da.


2
La mayoría de ellos no funcionan de esa manera, solo implementan parte de un algoritmo y no hacen la autenticación de clave pública. Por ejemplo, AutoCAD (¿o era 3dsmax?) Hizo su rotación de matriz en el dongle. Si no tuviera el dongle, la rotación sería / levemente / apagada, lo que se iría acumulando con el tiempo.
Cody Brocious

1
Ese es un truco inteligente. Hacer que el software funcione mal cuando no está registrado correctamente; no del todo incorrecto, pero solo de tal manera que no lo note al principio.
rpetrich

1
Además, cuando decida utilizar dongles USB para la protección del software, tenga en cuenta que, actualmente, una gran cantidad de software se ejecuta en entornos virtuales donde el acceso al hardware físico (por ejemplo, puertos USB) puede ser limitado. También hay un costo para los dongles de reemplazo involucrados (sí, y el cliente "perderá" los dongles).
PoppaVein

1
y también hay grietas para estos dongles: son anulables, como usar una respuesta tabulada (registrada desde un dongle real) para los tipos de desafío / respuesta. para los tipos codificados por algoritmos, se desmonta y el algoritmo se vuelve a insertar en el binario de la aplicación.
Chii

5
Este tipo de protección ha impedido que Cubase / Nuendo (el software DAW líder en Windows) se rompa hace unos años. La última versión que fue pirateada tenía una pequeña nota de los crackers. Afirmaron que era la grieta más difícil que habían emprendido. También declararon que debido a que muchas de las rutinas del programa golpean el dongle, el rendimiento del software se degrada. Su dongle emulado funcionó mucho más rápido. Muchos usuarios legítimos estaban muy enojados y terminaron instalando el crack de todos modos solo para obtener un mejor rendimiento.
Alex

15

El esquema de licencias de software de Microsoft es muy caro para una pequeña empresa. El costo del servidor es de alrededor de $ 12,000 si desea configurarlo usted mismo. No lo recomiendo para los débiles de corazón.

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

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

También he utilizado 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 licencias en términos de criptográficamente sólido. Pero es una API de muy bajo nivel en la que tienes que implementar casi todo lo que tu aplicación realmente usará.


9

La gestión de "derechos" digitales es el producto de software 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 enviarle 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 hiciera la pregunta inversa, que es "¿Cómo consigo que la gente compre mi software en lugar de robarlo?" Y esa es una pregunta muy amplia. Pero generalmente comienza investigando. Averigua quién compra el tipo de software que desea vender y luego produce software que atraiga a esas personas.

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

Eche un vistazo al software Stardock, los creadores de WindowBlinds y juegos como Sins of a Solar Empire, este último no tiene DRM y obtuvo una ganancia considerable con un presupuesto de $ 2M.


+1 para la pregunta inversa bien redactada.
Ilari Kajaste

6

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

La conclusión es que si alguien lo quiere lo suficiente, realizará ingeniería inversa de cualquier protección que tenga.

Los métodos más seguros son utilizar la verificación en línea en tiempo de ejecución o un cerrojo de hardware.

¡Buena suerte!


4

Con un poco de tiempo, su software siempre será descifrado. Puede buscar versiones descifradas de cualquier software conocido para confirmarlo. Pero 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 descifrada. Las personas muy honestas siempre se apegarán a las reglas, incluso sin un esquema de licencias, solo porque ese es el tipo de persona que son. Pero la mayoría de la gente se encuentra 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 manera honesta. Es una forma de hacerles recordar que el software no es gratuito y que deberían pagar por la cantidad adecuada de licencias. Muchas personas realmente responden a esto. Las empresas son especialmente buenas para cumplir las reglas porque el gerente no gasta 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 demuestra que se puede llegar muy lejos en materia de licencias. Si haces que incluso las personas legítimas se sientan criminales porque están siendo validadas constantemente, entonces comienzan a rebelarse. Por lo tanto, agregue algunas licencias simples para recordar a las personas si están siendo deshonestas, pero es poco probable que algo más que eso aumente las ventas.


3

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


1
Bueno, no creo que esta sea una solución realista para, digamos, el 90% del software. Debería haberlo dejado más claro en la publicación: el software que estamos creando no es un juego en línea. Aunque la pregunta estaba destinada a ser general, su respuesta sigue siendo bastante válida, por supuesto.
petr k.

3
Bueno, hay servidores privados disponibles para los que no se necesita ningún pago.
Black Lives Matter

Bueno, claro, Petr, no es realista para todos, pero sigue siendo la verdad: ningún otro método funciona. Incómodo, seguro, pero cierto.
Jeff

3

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

Léalo en Talking to Pirates .


3

Generalmente hay dos sistemas que a menudo se confunden:

  • Seguimiento de licencias o activación, uso legítimo legal
  • Seguridad que evita el uso ilegal

Para obtener la licencia, utilice un paquete comercial, FlexLM muchas empresas invierten enormes sumas de dinero en la concesión de licencias piensan que también obtienen seguridad, este es un error común que los generadores de claves para estos paquetes comerciales son prolíficamente abundantes.

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

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

Implementamos un clon de sala limpia de FlexLM hace varios años, también tuvimos que mejorar nuestras aplicaciones contra ataques binarios, su largo proceso, tienes que revisarlo en cada lanzamiento. También depende realmente de los mercados globales que venda o de dónde se encuentre su principal base de clientes en cuanto a lo que debe hacer.

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


2

Como se ha señalado, nunca se garantiza que la protección del software sea infalible. Lo que pretenda utilizar depende en gran medida de su público objetivo. Un juego, por ejemplo, no es algo que puedas proteger para siempre. Un software de servidor, por otro lado, es algo mucho menos probable que se distribuya en Internet, por varias razones (me vienen a la mente la penetración del producto y la responsabilidad; una gran corporación no quiere ser considerada responsable por el software pirata, y los piratas solo se preocupan por las cosas que tienen una demanda suficientemente grande). Honestamente, para un juego de alto perfil, la mejor solución es probablemente sembrar el torrent usted mismo (¡clandestinamente!) Y modificarlo de alguna manera (por ejemplo, para que después de dos semanas de juego aparezca con mensajes que le indiquen que lo haga. considere apoyar a los desarrolladores comprando una copia legítima).

Si pone protección, tenga en cuenta dos cosas. En primer lugar, un precio más bajo complementará cualquier protección de copia al hacer que las personas estén más inclinadas a pagar el precio de compra. En segundo lugar, la protección no debe obstaculizar a los usuarios; consulte Spore para ver un ejemplo reciente.


2

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

Para un producto de baja visibilidad, una simple activación de Internet detendrá el copiado casual. Cualquier otra copia probablemente sea insignificante para su resultado final.


2

La distribución ilegal es prácticamente imposible de prevenir; pregúntale a la RIAA. El contenido digital simplemente se puede copiar; El contenido analógico se puede digitalizar y luego copiar.

Debe concentrar sus esfuerzos en prevenir la ejecución no autorizada . Nunca es posible evitar por completo la ejecución de código en la máquina de otra persona, pero puede tomar ciertos pasos para elevar el listón lo suficientemente alto como para que sea más fácil comprar su software que piratearlo.

Consulte el artículo Desarrollo para protección y licencias de software que explica cuál es la mejor manera de desarrollar su aplicación teniendo en cuenta las licencias.

Descargo de responsabilidad obligatorio y enchufe: la empresa que cofundé produce la solución de licencias de software OffByZero Cobalt para .NET .


2

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

  1. Con el software que utiliza servicios de terceros, las copias pirateadas están consumiendo un valioso ancho de banda / recurso que les da a los usuarios legítimos una peor experiencia, hace que mi software parezca más popular de lo que es y los servicios de terceros me piden que pague más por sus servicios porque del ancho de banda utilizado.

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

Este concepto de no deshabilitar el software pirateado una vez descubierto también parece una locura, no entiendo por qué debería dejar que alguien continúe usando software que no debería estar usando, supongo que esto es solo la visión / esperanza de los piratas.

Además, vale la pena señalar que hacer que un programa sea difícil de descifrar es una cosa, pero también debe evitar que se compartan copias legítimas, de lo contrario, alguien podría simplemente comprar una copia y luego
compartirla con miles de personas 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 solo se necesita uno para que haya un problema.

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

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

  2. En el primer inicio del cliente, el cliente envía la licencia al servidor y el servidor la verifica, lo que hace que se establezca algún indicador dentro del software del cliente. Se rechazan más solicitudes de otros clientes con la misma licencia. El problema con este enfoque es que el cliente original tendría problemas si reinstalara el software o quisiera usar una computadora diferente.


2

Incluso si usara 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 intentar hacer que su software sea a prueba de piratería, piense en cuántos ingresos adicionales se obtendrán al agregar protección adicional contra copias en comparación con la cantidad de tiempo y dinero que tomará implementarlo. En algún momento, será más barato optar por un esquema de protección de copia menos riguroso.

Depende de cuál sea exactamente su producto de software, pero una posibilidad es sacar la parte "valiosa" del programa del software y mantenerla bajo su control exclusivo. 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 a bajo precio (o se incluye gratis 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 cobrar a los usuarios por el acceso a la nube. Esto no


1

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 sobre 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 su nombre, y recupera el código de registro.

Varias empresas alojarán y distribuirán su software o proporcionarán una aplicación completa de instalación / compra con la que puede integrarse y que lo hagan automáticamente, probablemente sin costo adicional para usted.

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


1

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

Pedirles a los clientes que pagan que demuestren que están pagando a los clientes después de que ya han pagado simplemente los cabrea. Implementar el código para que su software no se ejecute desperdicia su tiempo y dinero, e introduce errores y molestias para los clientes legítimos. Sería mejor dedicar ese tiempo a hacer un mejor producto.

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


1

Casi toda la protección contra copias es ineficaz y una pesadilla de usabilidad. Algo de eso, como poner root-kits en las máquinas de sus clientes, se vuelve completamente poco ético


Voto en contra: está asumiendo que todos los que tienen un esquema anti están realizando actividades ilegales como kits de raíz.
Jason Short

No, no lo asumo. Dije explícitamente algunos . Y hay casos bien documentados de rootkits para DRM.
wnoise

0

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

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

Sin embargo, este paradigma solo llega hasta cierto punto y puede desanimar a algunos consumidores.


0

Estoy de acuerdo con muchos carteles en que ningún esquema de protección de copia basado en software disuadirá a un pirata de software experto. Para software comercial basado en .NET, Microsoft Software License Protection (SLP) es una solución a un precio muy razonable. Admite licencias flotantes y por 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 el comprador debe tener cuidado.


Y en 2011 el precio de SLP ha aumentado a 145 € / mes por el paquete más pequeño.
Michael Olesen

0

Sugiero una clave de activación simple (incluso si sabe que puede romperse), realmente no quiere que su software se interponga en el camino de sus usuarios, o simplemente lo rechazarán.

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 haber pagado (y sí, deberían poder descargarlo tantas veces como deseen, directamente, sin una sola pregunta sobre el por qué de tu parte).

Empuje a sus usuarios pagos por encima de todo, no hay nada más irritante que ser acusado de delincuente cuando usted es un usuario legítimo (el DVD advierte a todos contra la piratería).

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

¡Pero no lo desactive, podría ser un usuario feliz mostrándole su software a un amigo!


0

Si es un desarrollador de software, una de las posibles soluciones es incrustar metadatos directamente en su producto. Consulte una instancia de la herramienta Destruction Security de theredsunrise.


0

Licenciamos nuestro software comercial utilizando nuestro propio sistema de licencias, que es lo que vendemos (herramientas de gestió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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.