2011-06-10 9 views
8

Aunque hay un buen número de preguntas de este tipo, por favor tengan paciencia conmigo como creo que la mía es diferente ...simple protección de la licencia para Python aplicación

Tengo una aplicación Python $ 5, que distribuyo usando py2exe, py2app, y fuente para Linux. La aplicación tiene una licencia de un año para que las personas necesiten actualizar a una versión más nueva después de un año. Me gustaría agregar algún tipo de protección de licencia simple para hacer cumplir el límite de un año. Dado que la aplicación cuesta solo $ 5, no me importa si se puede evitar fácilmente. El solo hecho de tener algo alentará a muchos usuarios a pagar $ 5 por actualizar después de un año en lugar de ignorar la licencia.

Tenga en cuenta que:

  • Quiero la fuente que sea fácil de leer por lo que no ofuscación
  • no quiere tener compilado código o SaaS
  • me plantearía algún tipo de sistema de clave de licencia si fue realmente simple pero no quiere nada complicado

Mi primer pensamiento es simplemente registrar la fecha de instalación (por ejemplo, usando wxConfig) y deshabilitar el software después de un año con un po mensaje lite para actualizar.

¿Hay mejores soluciones para esto?

Respuesta

3

¿Por qué una instrucción if que compare la fecha no resuelve esto trivialmente por usted?

La mejor manera de hacerlo podría ser incluir datos en su software que realmente deban mantenerse actualizados para que sean útiles para el usuario final, como los formularios de impuestos en TurboTax. Por supuesto, la disponibilidad de esa estrategia comercial depende de su aplicación y mercado.

Has dicho que el código es legible por la fuente. ¿Qué más podrías hacer realmente? Puede tener muchas de estas sentencias ... pero grep o perl u otra secuencia de comandos python también puede encontrarlas rápidamente y arreglarlas para que funcionen nuevamente de manera bastante rápida. Si tiene un mercado para su producto de $ 5, un cliente molesto podría distribuir el script que deshabilita la fecha a sus amigos o en la web.

Esto es como un candado de equipaje. Solo funciona en personas honestas ... pero quizás eso sea lo suficientemente bueno.

Puede poner un aviso de DMCA junto a la declaración if crítica en el código fuente. Una declaración if es una medida para evitar el uso después de la fecha de la licencia. Pregunta a un buen abogado. Su experiencia puede ser diferente.

Wikipedia tiene esto en la DMCA en "anti-elusión":

la elusión de los controles de acceso Sección 103 (. 17 USC Sec 1201 (a) (1)) de la DMCA establece lo siguiente: No se persona deberá eludir una medida tecnológica que efectivamente controla el acceso a un trabajo protegido bajo este título.La Ley de define lo que significa en la Sección 1201 (a) (3): (3) Como se usa en este subsection-

(A) a 「eludir una medida tecnológica」 significa para descifrar un revueltos trabajo , para descifrar un trabajo cifrado de , o de otra manera para evitar, omitir, eliminar, desactivar o dañar una medida tecnológica, sin la autorización del propietario de los derechos de autor; y

(B) una medida tecnológica 「controla efectivamente el acceso a una obra 」 si la medida, en el curso ordinario de su funcionamiento, requiere la aplicación de información, o un proceso de o un tratamiento, con la autoridad del propietario de los derechos de autor, al obtener acceso al trabajo. Por lo tanto, si existe alguna "medida tecnológica que efectivamente controla el acceso a un trabajo ", es ilegal eludir esa medida. Sin embargo, la Sección 1201 crea varias excepciones a esta regla , y la Biblioteca del Congreso tiene el habilitada para crear excepciones adicionales .

Si tenía la fecha dentro de una cadena firmada GPG con su clave pública ... entonces en mi humilde opinión podría reclamar que esta cadena de información de vencimiento ... tuviera la autorización del propietario de los derechos de autor. También podría verificar si se manipuló la clave pública, pero no es obvio que deba hacerlo, ya que es ilegal eludir ...

Nota: Richard Stallman, el pionero del software libre, tenía una teoría que la competencia tiende a eliminar las características anticuadas del software como los muros de pago, recordatorios molestos, etc.

+2

google "dmca effective measure" y leer los primeros dos enlaces ... algunos abogados aparentemente piensan que casi cualquier cosa puede calificar como una medida efectiva para prevenir acceso a un trabajo protegido por derechos de autor. Eso parece hacer que deshacer una declaración de comprobación de fecha o vender un script de reparación sea ilegal. – Paul

+0

Una declaración "if" es una solución. Estoy interesado en conocer otras posibilidades o detalles sobre una buena forma de hacerlo con "si". Por ejemplo, dónde y cómo almacenar la fecha de instalación, debe un instalador involucrarse o simplemente hacerlo dentro de la aplicación, etc. –

+0

Bien, podría definir una función llamada check_license_expired() en un único módulo e importarla a otros. Ese módulo podría leer un archivo para la cadena. Ese archivo podría ser un oficial que parezca ascii LICENSE.TXT y que incluya la firma GPG en ascii. Sugeriría un enfoque modular para que pueda reutilizarlo en otros proyectos ... – Paul

Cuestiones relacionadas