Ayuda para proteger mi codigo fuente en JAVA

Publicado en 'Programación' por Jolopez, 14 Set 2016.





  1. Jolopez

    Jolopez Miembro nuevo

    Registro:
    14 Set 2016
    Mensajes:
    3
    Likes:
    0




    Hola Todos, les escribo por que acabo de terminar una aplicación de escritorio para gestión farmacéutica, mi cliente tiene una pequeña cadena de farmacias en Lima, el programa esta muy personalizado y me ha tomado algún tiempo y trabajo terminarlo a gusto y satisfacción de mi cliente, Ya le había dicho que solo le venderia licencias, pero el muy vivazo me quiere comprar una unica licencia yo no tengo problemas con eso pero me temo que el fulano quiere instalar mi programa en sus farmacias sin pagarme por las demás licencias

    Por eso les escribo para pedirles ayuda, como debo proteger mi código fuente para que solo se ejecute una licencia-una pc, yo ya he usado el sistema de protección de buscar el numero de serie del disco duro pero no me funciono muy bien por que a un cliente le robaron todo y hasta Pc y tuve que entregar una nueva licencia, por favor si me pueden dar una manito con esto, se que hay ofuscadores pero que una vez mi a profe de Java como deshacía un programa ofuscado en java y se veía luego el código nativo, joder ya nadie esta libre de los copiones y piratas, ayuda please,
     


  2. csaravia3

    csaravia3 Miembro de bronce

    Registro:
    7 Oct 2010
    Mensajes:
    1,265
    Likes:
    270
  3. DarthVader

    DarthVader Miembro de oro

    Registro:
    18 Mar 2015
    Mensajes:
    5,251
    Likes:
    2,357
    Como te pusieron más arriba, vende con dongle USB, la weada es que lo ven conectado a la PC, piensan que es una memoria que alguien olvido y se lo roban algunos wachiturros.
     
  4. Jolopez

    Jolopez Miembro nuevo

    Registro:
    14 Set 2016
    Mensajes:
    3
    Likes:
    0
    alguien del foro que haya tenido experiencia con los dongles que dice csaravia3 y Java???
    voy a llamar a los patas de kapadigital, a ver que solucion proponen, en wilson pregunte y me vendieron como 4 ofuscadores pero eran un chiste, les comento mas tarde, por cierto alguien sabe los precios de los gongles???,
     
  5. Fumador

    Fumador Miembro frecuente

    Registro:
    22 Jun 2009
    Mensajes:
    162
    Likes:
    10
  6. Jolopez

    Jolopez Miembro nuevo

    Registro:
    14 Set 2016
    Mensajes:
    3
    Likes:
    0
    Realmente agradezco sus ayudas, y pero quiero aclarar dos temas, y aquí es donde se aprende pidiendo ayuda, con las personas que saben mas que nosotros, a lo que hiba, dos puntos:

    1.- Como evitar que otros vean mi código siendo que mi aplicaciones esta escrita en java, allí he probado el proGuard de que me sugiere el fumador , la herramienta sirve y de lo que lei en varios foros pues…, esta de película (gracias fumador)

    2.- Ahora pues…. una vez ofuscado mi código, compilado y creado un instalador… pues mas luego como evitar que un pinche pirata me copie el software, aquí hay varias soluciones pero eran las de siempre:

    Generar un codigo partir del numero de serie del disco duro, etc…, los de toda la vida que uno encuentra como consejo en internet.

    Pero hay que destacar dos métodos de proteccion de licencias:

    1.- Uso de una conexión cliente servidor entre la licencia de mi software y el server, asi se puede cada cierto tiempo “actualizar el software” de paso autenticar su licencia de otro modo el software no funcionara sino no hace una conexion periódica con mi servidor autenticador.

    2.- Uso de dongles que me sugirió csaravia3

    Sobre la primera opción de usar una conexión entre el software de escritorio del cliente-usuario y un servidor que estaría en mi poder como un autenticador se presentan varios inconvenientes:

    a.- No tengo servidor por que es muy costoso para mi mantener uno 24x7 y siete días a la semana

    b.- Además no tengo IP fija, el costo es muy alto, encima de esto que la maldita Telefonica TDP ha bloqueado el acceso remoto a los routers (Yo vivo en Villa Maria del Triunfo en Lima) por “seguridad de los usuarios según ellos” y para abrir puertos hay que pagarles pero además se tiene que tener servicio bussines de internet, el servicio bussines de internet es minimo 350 soles mensuales, esto lo tuve que averiguar en un servicio de telefónica del centro

    c.- Mi idea de vender licencias es vender licencias de escritorio y en adelante que el usuario se encargue, sin que en adelante la licencia me suponga un trabajo luego de entregarla.

    d.- un dato curioso, cuando fui al centro al local de atención de Telefonica de Perusalen, pase por el local del poder judicial y se me ocurrio preguntar a un abogado por la implicación legal de conectar mi aplicación (la que yo vendo) si la conectara con un servidor propio, la consulta me costo 50 mangos (abogados, parecen putas, si no hay plata no se mueven), la respuesta en resumen: es ilegal sino no se notifica al cliente previamente y el cliente mismo debe dar su conformidad al momento de la instalación del software, a lo que entonces me imagine, si le pregunto esto a mi cliente seguro me manda a la ****** y no me compra por que pensara que soy un vivazo que quiere intervenir su red intra, joder, ni de vainas hago esto

    En conclusión la idea es buena pero no me sirve por que los cliente son desconfiados y se mosquean, asi de simple, sin embargo la idea no deja de ser interesante pero costosa económicamente, dudosa legalmente, pero técnicamente posible, creo que esta idea si le serviría a una empresa grande con recursos para invertir en servidores y abogados, jejeje, pero para mi que soy un freelance como la mar de programadores en este foro, no esta en mis posibilidades y no me avergüenza decirlo.

    Sobre el uso de dongles, que me sugirió csaravia3 (al cual agradezco) es el que escogi y ya implemente por que aunque tiene sus contras son mayores su ventajas, encontré que el sistema si se acopla bien a mi forma de venta, les explico por que:

    a.- el dongle es relativamente barato, he comprado 5 unidades y me dieron de regalo por campaña una llave muy especial que ya les comentare mas adelante, pero el dongle que compre es el dongle Rockey5Time

    b.- me permite vender una licencia y olvidarme de ella por que luego ya no es mi responsabilidad, esto es importante por que antes cuando se moria el disco duro de mi cliente , el me llamaba para indicarme que su disco duro fallo o se malogro y debía instalar una nueva licencia y no me reconocia ni siquiera el pasaje, ahora el cliente sabe que la licencia esta en el dongle y si se jode el dongle se jode tambien el cliente-usuario, es su responsabilidad ahora NO MIA, claro que doy garantia de un año como todos.

    c.- puedo hacer un actualización sin pedirle la llave al usuario-cliente, asi solo tengo que enviarle un nuevo parche o instalador

    d.- el dongle Rockey5Time tiene un reloj interno verdadero (que es un fierro, no es software) que me permite vender licencias por tiempo, aquí me sorprendio que esta llave me permitiera vender licencias anuales, lo que es una gran ayuda para pequeñas empresas que no pueden comprar un software de por vida a un precio mas alto

    e.- si comparo el costo de cada llave con el costo de mi aplicacion, pues cada llave sale como el 10% del costo total del software lo que me parece justo ya que me “librara de todo mal.. pirata” , en promedio mi software por ejm de administración de farmacias cuesta 1500 soles

    d.- el dongle viene con un SDK chevere y un programita que me permite envolver mi programa con una capa lógica para asegurar que solo funcione en presencia del dongle en la pc del usuario, claro que tambien viene con librerías (java, C++, etc..) para proteger mi aplicación directamente del código fuente, yo he preferido usar las dlls por que asi la proteccion es personalizada.

    PERO no todo es color de rosas, dije que soy un freelance y no tengo muchas posibilidades económicas, pues bien pregunte por una llave y no me gusto el precio, pero me dijeron que si compraba 5 unidades me hacían descuento y asi lo hize, me compre un set de cinco llaves y me salio mas barato aprox 160 soles cada una, la contra es que como no tenia pa pagar las cinco llaves, REVENTE mi tarjeta de crédito, conch….

    En suma me dieron un dongle de regalo que me permite vender una licencia de servidor, como es eso??, ya va panas, pues que mi aplicación se instala en varias maquinas de una red y para que las aplicaciones se ejecuten tienen que pedir autorización al dongle que esta instalado en el server, bacan no?, tengo una idea para este dongle en una aplicación que estoy desarrollando para educación a distancia.

    Un dato que quiero mencionar, es que hay otros modelos que no tienen reloj interno y son mas baratos, y hacen descuento igualmente, sobre esto no se mucho pero pueden preguntar si quieren a kapadigital*com, el pata que vende se toma su tiempo explicándote.

    Me gustaría hacer un post de como hago la protección de mi aplicación en java ya que ese no es tema de este post, ya me tomare mi tiempo la próxima semana y les explico con figuritas e imágenes, agradezco a todos su valiosa ayuda.
     
Etiquetas: