Cómo hacer cumplir una licencia para el software Python

Usted hace cumplir una licencia en un tribunal de justicia. No tiene nada que ver con asegurar tecnológicamente algo.

De hecho, las licencias se utilizan para proteger la propiedad incluso cuando el material se difunde públicamente. Por ejemplo, no puede guardar un libro, un CD de música o una película de DVD en secreto de un comprador. El objetivo de que lo compren es leerlo, escucharlo o verlo. Y entonces lo sabrán.

La concesión de licencias es cómo los editores intentan evitar que copie lo que le acaban de vender y que se lo venda a otra persona y, por lo tanto, socave sus ventas futuras. Funciona si las personas siguen la ley.

No todos siguen la ley. Por eso hay pleitos. Muchas veces, eso es suficiente para mantener copias / usos ilegales a un nivel razonablemente bajo. Pero para demandar a un infractor tienes que encontrarlo primero, y eso no siempre es fácil.

La protección anticopia es una forma tecnológica de evitar la copia. El comprador puede o no tener la sofisticación tecnológica para romperlo y hacer una copia. Pero inmediatamente reduce la posibilidad de violación por la cantidad de personas que no son lo suficientemente sofisticadas, a menos que compren el software de jailbreak de alguien que sea lo suficientemente sofisticado.

El problema con la protección de copia de cualquier tipo es que también podría dificultar los usos legítimos. Eso desalienta el uso legítimo y puede limitar las ventas, probablemente cosas que no desea hacer. Por lo tanto, los libros en papel, la mayoría de los CD, etc. no emplean protección contra copia y se basan únicamente en licencias. Los DVD y los libros electrónicos a menudo todavía usan esquemas de protección de copia.

Python está generalmente diseñado para ser un lenguaje interpretado en texto claro. Esto tiene muchas ventajas, tanto para el programador de la aplicación Python como para los desarrolladores de intérpretes de Python. Por un lado, debido a que el código no se compila en un procesador específico, puede ejecutarse en muchos de ellos, sin pasos adicionales como la compilación. Esa es una ventaja bastante buena en algunos casos. Entonces, la mayoría del código de Python está abierto a los ojos de todos, y las personas usan licencias para proteger sus intereses.

A veces las personas usan técnicas de “ofuscación” (¿Código de Python ofuscante?) Con código interpretado como Python como una forma de protección contra copia. Por ejemplo, envía “código de byte” en lugar de texto. Esto hace que sea difícil leerlo y comprenderlo de inmediato. En general, los usuarios desmotivados no querrán leer su código o copiarlo de todos modos, por lo que realmente no se está protegiendo de ellos.

Pero las personas motivadas que desean leer su código son probablemente otros programadores, que sabrán cómo interpretarlo en reversa desde los códigos de bytes hasta el texto legible. Puede hacer cosas como eliminar comentarios, usar nombres de variables extraños y pegar en el código basura que no hace nada, pero también está haciendo que sea más difícil para usted admitirlos. Así que, en última instancia, si quieres escribir en Python, probablemente no te beneficiarás de hacer esto. Si quiere que sea realmente difícil de leer, puede codificarlo de nuevo en C ++ o en un ensamblador y compilarlo. Pero también hay compiladores inversos, así que si lo que estás protegiendo realmente vale la pena que alguien haga un gran esfuerzo para leer, probablemente puedan hacerlo. Este es el problema con cada esquema de protección de copia.

Es por eso que algunos medios aún no usan protección de copia extendida y confían en licencias legales. La mayoría de los CD no están protegidos contra copia. Cuando compra un CD solo obtiene una licencia de uso personal. Si piratea la música, hace cantidades masivas de copias y las vende para ganar dinero, ha infringido los derechos de autor del autor y ha excedido los términos de su licencia de uso personal limitada. Entonces, si la compañía discográfica o su agente, la RIAA, pueden encontrarlo, pueden llevarlo a los tribunales y obtener daños y perjuicios en función de cuánto dinero les costó su acto de piratería. Es por eso que la RIAA cerró a Napster e hizo ejemplos de un grupo de personas que copiaron música de él.

Si se encuentra en los EE. UU. (O en la mayoría de los países que son signatarios de la convención de Berna) y crea una obra de arte, literatura o algún código, tiene explícitamente un derecho de autor sobre él, simplemente al reclamarlo con un aviso de Copyright. No necesita registrar formalmente una copia en ningún lado. Entonces, ahora tiene el derecho de poner límites a quién puede hacer una copia y bajo qué circunstancias. Usted otorga esos derechos limitados a alguien a través de su licencia. Entonces, si dice que no pueden copiarlo y redistribuirlo a otra persona, esa es su licencia. Si descubres que ignoraron tus términos, puedes demandar. No es barato demandar, y no siempre es fácil encontrar infractores a menos que sean evidentes. Pero a menos que lo sean, probablemente tampoco te estén dañando demasiado.

Dependiendo de las reglas que desee aplicar a sus licenciatarios, puede usar un acuerdo de licencia estándar como la GPL, Creative Commons u otra licencia. O un abogado puede elaborar uno que limite cualquier uso específico que le preocupe.

No distribuyen la fuente, solo el código de bytes, lo que hace que sus algoritmos sean más difíciles de entender, si no completamente invisibles. Alguien puede descompilar cualquier código que distribuya si se determina lo suficiente. Y pueden observar fácilmente sus API simplemente observando el tráfico de la red. Si encripta el tráfico de su red, aún pueden descompilar el software y ver qué entra y sale de la sección con el encriptado.

La única forma verdaderamente segura de distribuir software es protegerlo en hardware: cifrar su software y hacer que descifrarlo dependa de que se conecte un dongle de hardware. (Por supuesto, incluso el hardware puede ser pirateado por alguien lo suficientemente decidido). para software de muy alto valor.

La razón por la que Dropbox y la mayoría de los otros proveedores no se molestan con esto es porque el software del cliente, por sí solo, no es tan valioso. La seguridad de sus archivos de Dropbox está protegida en los servidores, no en el código del cliente. El cliente es gratuito porque es lo que le permite acceder a sus servidores seguros.

En una nota relacionada, si crees que quieres proteger tu código fuente porque cualquiera que sepa cómo funciona podría hackear tus servidores, entonces tus servidores no son lo suficientemente seguros. No confíe en la seguridad por oscuridad , por ejemplo, suponiendo que nadie hará esa llamada API privilegiada solo porque no tienen forma de descubrir que existe. Pueden descubrir que existe. Nunca confíe en nada que provenga del lado del cliente: suponga que es inherentemente inseguro y poco confiable.

Gracias por A2A! Si bien su pregunta no es muy clara, la respuesta depende en gran medida del tipo de software que desea construir y la partición de la funcionalidad entre los componentes del software (cliente-servidor, RESTful, etc.).

No entiendo por qué no querrías que las API públicas sean visibles: anula su propósito de ser los principales puntos de acceso de los usuarios a la funcionalidad del software.

No discutiré aspectos técnicos y legales de este tema, ya que están adecuadamente cubiertos en respuestas anteriores. Espero que esto ayude.

Bueno, las grandes empresas generalmente contratan expertos para asegurar el código, y estos métodos pueden ser apropiados. Sin embargo, es posible que desee ver esto:
¿Cómo protejo el código Python?
El enlace habla sobre problemas de propiedad, licencias, protección de software y qué no hacer para obtener una licencia.