como crear licencias o contraseñas para una aplicación mensual

Iniciado por djnilo, 1 Agosto 2016, 15:49 PM

0 Miembros y 1 Visitante están viendo este tema.

djnilo

buenos dias amigos
del foro si aguiel tiene una idea como crear contraseñas mensuales para proteger mi aplicacion estoy desarrollando una aplicacion en visual studio 2010 slq express como podria tener una licencia mensual de la aplicacion al tratar de abrirla al pricipio de cada mes .por fa

Lekim

hola
no se mucho de tema, pues siempre he programado para mi mismo y por hobby.  Pero si estás usando una versión 'Express' supongo que no tienes licencia para poder distribuir software de Microsoft y lucrarte con ello, que supongo es lo que tienes pensado. Lo mismo si usas una versión pirata.

s2s

djnilo

muchas gracias por responder Lekin
lo que necesito es algo asi
como podria hacer una funcion o algoritmo para contraseñas para mi aplicacion

lo que pretendo es generar un control que automáticamente impida la ejecución de mi  aplicación si no se cumple una condición relacionada con el mes actual.
por ejemplo



Para adquirir la licencia mensual, el cliente deberá contarme  y abonar la cuota correspondiente a dicha licencia mensual. Cumplida esta condición, le envíos al cliente un archivo (MiControl.ini, por ejemplo) en el que tengas cifrado el ID del mismo, la fecha de inicio y la de final de la licencia. Este archivo lo copiará en determinada carpeta (por ejemplo, la misma en que tenga ubicada tu aplicación).
En tu aplicación deberás tener preparada una serie de comprobaciones, que se ejecutarán en el arranque del proyecto:

- Comprobar si existe el archivo MiControl.ini.

1a.- Si existe, comprueba si el ID del cliente coincide con el que le asigne cuando  instalale la aplicacion; si es positiva, sustituye los campos "FecIni" y "FecFin" de la tabla de control por los que tienes en MiControl.ini. Los dejos cifrados para evitar falsas actualizaciones. A continuación borrar el archivo MiControl.ini. Si no coincide el ID.

2a.- Si no existe MiControl.ini, simplemente comprueba si al descifrar "FecIni" y "FecFin" se cumple la condición de límites de fechas; en caso de que se haya superado la fecha final, se presenta el correspondiente mensaje de que precisa ampliar el período de licencia, y se termine  la aplicación.


Lekim

yo no lo guardaría en un archivo, si no en una nube o servidor. Porque si no el cliente tres días después de activar a la licencia puede tener un problema con la compu, tener que reinstalar el sistema y perdería un la licencia por la que ha pagado. Si lo haces así, el cliente debe saber que existe dicha licencia o dicho archivo, o que el programa permita guardar la licencia, para después poder cargarla si por si se diera el caso.

Puedes hacer que el cliente quede registrado, con correo, datos personales, etc y crear una cuenta. El software quede activado y asociado a ese usuario, número de serie del software y computadora y todo ello en una nube.

Aunque el usuario formatee el ordenador y vuelva a instalar, cuando active de nuevo la cuenta, sin pagar y usando email o Nick y contraseña, la comprobación de la licencia se haría Online.

Actualmente es lo que hace Norton

s2s



PalitroqueZ

si lo ves desde el punto de vista de impedir ingeniería inversa, está super dificil, porque siempre hallarán la puerta trasera para desactivar la comprobación del si estás legal y el no estás legal

en los inicios de visual studio, recuerdo que alguien creó una aplicación basada en controles activeX (ocx) que presentaba todo un sistema de gestión de licencias, que incluía versiones shareware, verificación de modificación de reloj del ordenador y al final el sistema se saltaba, parchando el archivo ocx.

puedes intentar como te sugirieron, utilizar servicios en linea, que obliguen al cliente a estar conectado al servidor, ya sea mediante comprobación continua y completar secciones grandes del software con el servidor (es decir, el programa es inútil sin conectarse al servidor porque le falta la mitad del código),

"La Economía planificada lleva de un modo gradual pero seguro a la economía dirigida, a la economía autoritaria y al totalitarismo" Ludwig Erhard

Eleкtro

#5
Cita de: Lekim en  2 Agosto 2016, 11:50 AMsi estás usando una versión 'Express' supongo que no tienes licencia para poder distribuir software de Microsoft y lucrarte con ello, que supongo es lo que tienes pensado. Lo mismo si usas una versión pirata.

Que la IDE de Visual Studio Professional/Ultimate (producto de pago) sea "pirata" o no lo sea es algo irrelevante puesto que no es la cuestión de la pregunta, sin embargo te diré que la IDE, el framework y las SDKs de Microsoft (productos totalmente gratuitos) son lo que cuenta.

Se puede usar la plataforma .NET para desarrollar y distribuir una aplicación, sitio web, o lo que sea, de forma gratuita, ya sea con Visual Studio Express o edición de pago:



( en los documentos online de los términos de uso para las distintas versiones y ediciones de Visual Studio se puede encontrar más información )




Cita de: Lekim en  2 Agosto 2016, 17:11 PMyo no lo guardaría en un archivo, si no en una nube o servidor. Porque si no el cliente tres días después de activar a la licencia puede tener un problema con la compu, tener que reinstalar el sistema y perdería un la licencia por la que ha pagado.

Aunque el usuario formatee el ordenador y vuelva a instalar, cuando active de nuevo la cuenta, sin pagar y usando email o Nick y contraseña, la comprobación de la licencia se haría Online.

Los problemas que un usuario tenga por un uso indebido, impredecible o incontrolable en su dispositivo, se pueden considerar ajenos a las responsabilidades de "X" aplicación, aunque obviamente si se trata de un programa orientado a la protección de virus informáticos como Norton pues ahí ya es más de sentido común que se anticipen a una posible catástrofe por parte del usuario para proporcionarles una solución de activación alternativa, pues ya saben que tipo de usuarios utilizan su soft y los riesgos que corren...

De todas formas, se trate del tipo de aplicación que se trate, siempre se puede ofrecer más de un método de activación para controlar este tipo de escenarios (cuya responsabilidad, repito, es del usuario, no del software) mediante un método de activación online y otro offline, como hacen hoy en día las compañias de software de renombre (Microsoft, Adobe, Sony, Stardock, etc)

En el caso de que el necesariamente el funcionamiento de una aplicación o la mayoría de sus funciones principales se deban sostener en el uso de Internet, entonces la activación offline se podría descartar puesto que si el usuario necesita una conexión establecida para usar dicha aplicación es extraño ofrecer una alternativa de activación offline, un ejemplo de esto sería (y es) Steam (actualizaciones, descargas de juegos, juegos online, etc).

PD: Se que aprecias mucho mis comentarios y las citas que te hago para explicarte las cosas como son, así que venga, a disfrutarlo, muchacho.




Cita de: djnilo en  2 Agosto 2016, 16:32 PMPara adquirir la licencia mensual, el cliente deberá contarme  y abonar la cuota correspondiente a dicha licencia mensual. Cumplida esta condición, le envíos al cliente un archivo (MiControl.ini, por ejemplo) en el que tengas cifrado el ID del mismo, la fecha de inicio y la de final de la licencia. Este archivo lo copiará en determinada carpeta (por ejemplo, la misma en que tenga ubicada tu aplicación).
En tu aplicación deberás tener preparada una serie de comprobaciones, que se ejecutarán en el arranque del proyecto:

- Comprobar si existe el archivo MiControl.ini.

La metodología del archivo intermediario es totalmente aceptable y usado hoy en día como ya dije arriba (aunque para decirlo todo, Microsoft lo que siempre ha recomendado es utilizar el registro de Windows para almacenar "contraseñas" u otros datos de la aplicación), sin embargo, y teniendo en cuenta que has manifestado la intención de "enviarle" la Id. a dicho usuario en un mensaje, entonces, ¿qué problema hay con un simple copiar y pegar en la aplicación por parte del usuario?, realmente no parece existir la necesidad de forzar a la aplicación a que busque y lea un archivo, cuando el usuario simplemente podría copiar y pegar el código en la app, lo cual probablemente le resultaría una forma mucho más amistosa y satisfactoria.

Mi consejo, en general, es el siguiente:

No te ofusques demasiado, la activación online por supuesto también se puede craquear y se consigue, por que la ingenieria inversa siempre va a existir y los curiosos que se marcan un reto también, así que no es sano intentar que tu software sea incraqueable ...por que no lo será. No te obsesiones con la seguridad, sólo con que añadas una metodología medianamente robusta para evitar un posible craqueo por los crackers aficionados será siempre suficiente para cubrir las necesidades de seguridad de tu software, recuerda que no eres Microsoft ni necesitas desarrollar e implementar un sistema de seguridad que esté a la altura de ellos...

PD: No soy ningún experto en la ingenieria inversa ni nada parecido, pero puedo hablar con conocimiento de causa sobre los aspectos generales de la misma, sobretodo acerca de la protección de un ensamblado .NET (la cual es casi nula, según se mire)

Saludos!








Lekim

Cita de: Eleкtro en  2 Agosto 2016, 19:38 PM
Que la IDE de Visual Studio Professional/Ultimate (producto de pago) sea "pirata" o no lo sea es algo irrelevante puesto que no es la cuestión de la pregunta, sin embargo te diré que la IDE, el framework y las SDKs de Microsoft (productos totalmente gratuitos) son lo que cuenta.

Se puede usar la plataforma .NET para desarrollar y distribuir una aplicación, sitio web, o lo que sea, de forma gratuita, ya sea con Visual Studio Express o edición de pago:



( en los documentos online de los términos de uso para las distintas versiones y ediciones de Visual Studio se puede encontrar más información )




Los problemas que un usuario tenga por un uso indebido, impredecible o incontrolable en su dispositivo, se pueden considerar ajenos a las responsabilidades de "X" aplicación, aunque obviamente si se trata de un programa orientado a la protección de virus informáticos como Norton pues ahí ya es más de sentido común que se anticipen a una posible catástrofe por parte del usuario para proporcionarles una solución de activación alternativa, pues ya saben que tipo de usuarios utilizan su soft y los riesgos que corren...

De todas formas, se trate del tipo de aplicación que se trate, siempre se puede ofrecer más de un método de activación para controlar este tipo de escenarios (cuya responsabilidad, repito, es del usuario, no del software) mediante un método de activación online y otro offline, como hacen hoy en día las compañias de software de renombre (Microsoft, Adobe, Sony, Stardock, etc)

En el caso de que el necesariamente el funcionamiento de una aplicación o la mayoría de sus funciones principales se deban sostener en el uso de Internet, entonces la activación offline se podría descartar puesto que si el usuario necesita una conexión establecida para usar dicha aplicación es extraño ofrecer una alternativa de activación offline, un ejemplo de esto sería (y es) Steam (actualizaciones, descargas de juegos, juegos online, etc).

PD: Se que aprecias mucho mis comentarios y las citas que te hago para explicarte las cosas como son, así que venga, a disfrutarlo, muchacho.




La metodología del archivo intermediario es totalmente aceptable y usado hoy en día como ya dije arriba (aunque para decirlo todo, Microsoft lo que siempre ha recomendado es utilizar el registro de Windows para almacenar "contraseñas" u otros datos de la aplicación), sin embargo, y teniendo en cuenta que has manifestado la intención de "enviarle" la Id. a dicho usuario en un mensaje, entonces, ¿qué problema hay con un simple copiar y pegar en la aplicación por parte del usuario?, realmente no parece existir la necesidad de forzar a la aplicación a que busque y lea un archivo, cuando el usuario simplemente podría copiar y pegar el código en la app, lo cual probablemente le resultaría una forma mucho más amistosa y satisfactoria.

Mi consejo, en general, es el siguiente:

No te ofusques demasiado, la activación online por supuesto también se puede craquear y se consigue, por que la ingenieria inversa siempre va a existir y los curiosos que se marcan un reto también, así que no es sano intentar que tu software sea incraqueable ...por que no lo será. No te obsesiones con la seguridad, sólo con que añadas una metodología medianamente robusta para evitar un posible craqueo por los crackers aficionados será siempre suficiente para cubrir las necesidades de seguridad de tu software, recuerda que no eres Microsoft ni necesitas desarrollar e implementar un sistema de seguridad que esté a la altura de ellos...

PD: No soy ningún experto en la ingenieria inversa ni nada parecido, pero puedo hablar con conocimiento de causa sobre los aspectos generales de la misma, sobretodo acerca de la protección de un ensamblado .NET (la cual es casi nula, según se mire)

Saludos!

Parece que mis comentarios molestan.(¿frase destinada a ser citada?)

Se puede usar la plataforma .NET para desarrollar y distribuir una aplicación, sitio web, o lo que sea, de forma gratuita, ya sea con Visual Studio Express o edición de pago:

Vamos a ver, parece que hablo en chino. Yo he dicho, y a modo de opinión (y duda), que creo que necesita una licencia para poder usar software creado con Net y LUCRARSE (lo pongo en mayúsculas; significa enriquecerse ganar dinero con ello). Otra cosa es distribuirlo de forma gratuita, cosa que no es el caso según el tema. En ningún momento lo he afirmado nada al respecto.

Usando la lógica es como coger un Taxi robado que no es tuyo y sin licencia ni nada empezar a llevar clientes y ganar dinero. Se entiende que el Taxi debe comprarse (o que te o regalen) y necesitas una licencia. No me he leído los términos del uso de los productos de Microsoft enteros pero algo de eso me suena.  Así es como son las cosas.

Entiendo que el express es una versión minimalista para uso personal, no profesional y para aprendizaje.


CitarLos problemas que un usuario tenga por un uso indebido, impredecible o incontrolable en su dispositivo,
En cuanto a lo de que si el cliente tiene cualquier problema y pierde la licencia, no es irrelevante, A mi me parece un detalle, como ya he visto en numerosos programas que la licencia se pueda guardar y cargar. Sea online o no. No es tan descabellado me parece a mí, lo contrario me parece una chapuza.

s2s


PD: SQLServer según parece está sujeto a licenciamiento y lo ha creado con el Express, que si es gratuito supongo que el sqlsever será de libre distribución, pero no se yo porque me suena que no se pueda distribuir software de pago, incluso gratuito, con el Express. O en qué sistema le va a funcionar el programa y en qué condiciones.

Creo que se debería abrir un tema aparte aclarando los puntos al respecto. Creo que puede ser de interés




Edito:
Según la página de Visual Studio Express:

https://www.visualstudio.com/es-es/products/visual-studio-express-vs.aspx


Visual Studio Community incluye todas las características de Express y mucho más, y todavía es gratis para desarrolladores individuales,
proyectos de código abierto, investigación académica, educación y pequeños equipos profesionales.


ahí dice, "proyectos de código abierto", pero luego dice  "y pequeños equipos profesionales".


Uso comercial de los productos Express

Los productos de Visual Studio Express están disponibles de forma gratuita y se pueden usar con fines comerciales conforme a los términos de licencia que se proporcionan con cada producto. Por ejemplo, puede usar Express para Windows para crear aplicaciones que después puede enviar para su venta en la Tienda Windows.


"en la Tienda Windows" dice

Destaco: "se pueden usar con fines comerciales conforme a los términos de licencia"

mmm, no se, ¿me ha parecido que pone 'términos de licencia'?

¿No hay que registrar el producto a los 30 días de instalar el Express?

no se, no se