Saltar al contenido

¿Cómo protejo el código Python?

Solución:

“¿Hay una buena manera de manejar este problema?” No. Nada puede protegerse contra la ingeniería inversa. Incluso el firmware de las máquinas de DVD se ha sometido a ingeniería inversa y se ha expuesto la clave de cifrado AACS. Y eso a pesar de que la DMCA lo convierte en un delito.

Dado que ningún método técnico puede impedir que sus clientes lean su código, debe aplicar métodos comerciales habituales.

  1. Licencias. Contratos. Términos y condiciones. Esto todavía funciona incluso cuando la gente puede leer el código. Tenga en cuenta que algunos de sus componentes basados ​​en Python pueden requerir que pague tarifas antes de vender software utilizando esos componentes. Además, algunas licencias de código abierto le prohíben ocultar la fuente o los orígenes de ese componente.

  2. Ofrezca un valor significativo. Si sus cosas son tan buenas, a un precio difícil de rechazar, no hay ningún incentivo para perder tiempo y dinero en ingeniería inversa. La ingeniería inversa es cara. Haga que su producto sea un poco menos costoso.

  3. Ofrezca actualizaciones y mejoras que hagan que cualquier ingeniería inversa sea una mala idea. Cuando el próximo lanzamiento rompa su ingeniería inversa, no tiene sentido. Esto puede llevarse a extremos absurdos, pero debe ofrecer nuevas características que hagan que la próxima versión sea más valiosa que la ingeniería inversa.

  4. Ofrezca personalización a tarifas tan atractivas que preferirían pagarle para crear y respaldar las mejoras.

  5. Utilice una clave de licencia que caduque. Esto es cruel y le dará una mala reputación, pero ciertamente hará que su software deje de funcionar.

  6. Ofrecerlo como servicio web. SaaS no implica descargas para los clientes.

Python, al ser un lenguaje interpretado compilado con código de bytes, es muy difícil de bloquear. Incluso si usa un empaquetador exe como py2exe, el diseño del ejecutable es bien conocido y los códigos de bytes de Python se comprenden bien.

Por lo general, en casos como este, debe hacer una compensación. ¿Qué importancia tiene realmente proteger el código? ¿Hay secretos reales ahí (como una clave para el cifrado simétrico de transferencias bancarias) o simplemente estás siendo paranoico? Elija el lenguaje que le permita desarrollar el mejor producto más rápido y sea realista acerca del valor de sus nuevas ideas.

Si decide que realmente necesita hacer cumplir la verificación de la licencia de forma segura, escríbala como una pequeña extensión de C para que el código de verificación de la licencia pueda ser muy difícil (¡pero no imposible!) De aplicar ingeniería inversa y dejar la mayor parte de su código en Python .

Python no es la herramienta que necesitas

Debe usar la herramienta correcta para hacer lo correcto, y Python no fue diseñado para ofuscarse. Es todo lo contrario; todo es abierto o fácil de revelar o modificar en Python porque esa es la filosofía del lenguaje.

Si desea algo que no pueda ver a través, busque otra herramienta. Esto no es malo, es importante que existan varias herramientas diferentes para diferentes usos.

La ofuscación es muy difícil

Incluso los programas compilados pueden someterse a ingeniería inversa, así que no crea que puede proteger completamente cualquier código. Puede analizar PHP ofuscado, romper la clave de cifrado flash, etc. Las versiones más nuevas de Windows se descifran cada vez.

Tener un requisito legal es un buen camino a seguir

No puede evitar que alguien haga un mal uso de su código, pero puede descubrir fácilmente si alguien lo hace. Por lo tanto, es solo un problema legal casual.

La protección del código está sobrevalorada

Hoy en día, los modelos de negocio tienden a apostar por la venta de servicios en lugar de productos. No se puede copiar un servicio, piratearlo ni robarlo. Tal vez es hora de considerar ir con la corriente …

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *