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 ...
Respuestas:
Hay muchas, muchas, muchas protecciones disponibles. La clave es:
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.
Y variaciones de lo anterior.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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á.
fuente
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.
fuente
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!
fuente
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.
fuente
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.
fuente
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 .
fuente
Generalmente hay dos sistemas que a menudo se confunden:
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 .
fuente
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.
fuente
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.
fuente
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 .
fuente
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.
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.
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:
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.
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.
fuente
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
fuente
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.
fuente
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.
fuente
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
fuente
Haga de su producto un componente en línea que requiera conexión y autenticación. Aquí hay unos ejemplos:
Sin embargo, este paradigma solo llega hasta cierto punto y puede desanimar a algunos consumidores.
fuente
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.
fuente
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!
fuente
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.
fuente
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
fuente