Segurança de código Java (anti-copia)

Olá pessoal tudo bem;

Eu procurei em alguns foruns e infelizmente não encontrei, algum sistema que pudesse bloquear copias indevidas de nossos códigos java, procurei por identificar o id do processador ou da placa mãe, mas parece que não e possível, alguém sabe de algo que possa ser usado, para sistemas anti-copias?

Nada.

O código Java pode ser facilmente descompilado.

Sim eu sei disso, mas existem formas de ofuscamento de código e conversão para .exe, que dificultam e muito esse procedimento, nesta parte ate que eu não me preocupo, o que eu quero saber mais e como garantir que o software não irá funcionar em nem uma maquina a qual ele não tenha sido registrado.

Conheço alguns softwares que são autenticados automaticamente em um web service on-line e que enviam um código único do pc para a internet, garantindo que apenas aquele software na quela maquina funcionando.

Alguém sabe como fazer isso ou algo parecido?

Se alguém quiser se dar ao trabalho de quebrar seu código de autenticação, um ofuscador não vai ajudar em nada. Você teria realmente que usar uma linguagem compilada, e não Java.

Você até pode se conectar num servidor e trocar uma mensagem de autenticação. Agora, se você vai se dar ao trabalho de ter um servidor web, por que não vincula o software a um login, ao invés de uma máquina? Afinal, foi uma pessoa que comprou o software, não um computador… Aí você evita também transtornos ao seu cliente caso ele troque de computador, ou caso ele tenha o software simultaneamente em seu computador pessoal e em seu notebook.

O cliente ainda pode enviar ao servidor informação do ip e tempo que ficou logado, assim você pode controlar se ele não distribuiu a senha dele por aí.

Sim eu sei que isso poderia ser ate possível, e inclusive um descompilador, mas se eu tiver meu software a venda para a maioria de usuários comuns raramente isso acontece.

Se eu usar o login, com certeza diversos espertinhos irão colocar em computadores de amigos, parentes, conhecidos e outros todos com o mesmo login, eu quero um código que seja por maquina, caso mude de pc, o suporte depois poderá providenciar outro código de liberação.

Eu já consegui fazer um sistema que todo mês para de funcionar, e inclusive caso a pessoa tente mudar a data do pc para o sistema voltar a funcionar o mesmo trava totalmente, mas o sistema e apenas para mensalidades, e funciona muito bem, este outro já seria diferente.

O que faz esse software exatamente?

Você diz o software que tenho mensalidade?

1 - nao confie nessa historia de que usuários não conseguem fazer as coisas, vc pode ter uma grande surpresa, a net ta cheia de tutoriais por ai e quem quer, faz.

2 - em java vc nao vai conseguir fazer isso, mesmo em linguagem compilada ja seria possivel quebrar seu sistema, que dirá em java
nao importa se vc usa web service ou qualquer outro metodo pra autenticar, tem como monitorar todas as atividades de sua aplicação, acesso a disco, conexao web, registry, etc

3 - eu achei seu sistema muito restritivo, a menos q a sua solução seja totalmente personalizada, cuidado pra não perder clientes pro free software e o open source

O que o software que voce quer proteger faz? Uma breve descricao, pois dependendo do caso poderia deixar via web, onde teria mais controle de cada cliente. Mas neura em proteger codigo fonte esquece.

E um software para gerenciamento de OS

Mas se você fizer por login, você pode monitorar o horário de login e logout. E aí é só barrar a conta de quem fizer dezenas ou centenas de logins simultâneos.
O modelo de negócio associado a barrar uma aplicação a um computador é muito antigo. Isso se fazia nos anos 90.
Tenha em mente que você irá atrapalhar seu usuário final, que pagou pelo software. Você vai dar a ele estresse.

Você não deu detalhes, mas contando só com essa informação e imaginando poder ter interações externas/usuários externos que abrem chamados, à principio seria interessante ser uma aplicação web, com isso você teria mais controle do cliente além ganhar essas possibilidades externas, mas por falta detalhes não sei se pro seu caso é interessante. Mas independente disso, roubar fonte em muitos casos não é tão preocupante, o importante é o atendimento personalizado que você possa dar a cada cliente. O cara que copia algo inteiro não está interessado em trabalhar de forma personalizada e dar bom suporte, vai ficar um software parado no tempo. Quem é profissional de tecnologia na maioria das vezes pensa que é mais fácil só copiar idéias e melhorar do que dar manutenção em código desconhecido para o Negócio que ele quer atender.

até o ano passado tinha um site de um banco que instalava um programa no pc do kra e sua conta só era acessível desse pc… era isso que vc estava tentando fazer? porque se for, é só uma autenticação software/site… nao envolve o pc propriamente dito creio eu…

[quote=wdwebsite]Olá pessoal tudo bem;

Eu procurei em alguns foruns e infelizmente não encontrei, algum sistema que pudesse bloquear copias indevidas de nossos códigos java, procurei por identificar o id do processador ou da placa mãe, mas parece que não e possível, alguém sabe de algo que possa ser usado, para sistemas anti-copias?[/quote]

Opa
O pessoal do forum me passou o proguard 4.9 .

Não protege muito, mas pelo menos evita que a “molecada” consiga ver seu código tão facilmente.
Mas não é difícil tirar a obfuscação dele.

[quote=wdwebsite]Sim eu sei disso, mas existem formas de ofuscamento de código e conversão para .exe, que dificultam e muito esse procedimento, nesta parte ate que eu não me preocupo, o que eu quero saber mais e como garantir que o software não irá funcionar em nem uma maquina a qual ele não tenha sido registrado.

Conheço alguns softwares que são autenticados automaticamente em um web service on-line e que enviam um código único do pc para a internet, garantindo que apenas aquele software na quela maquina funcionando.

Alguém sabe como fazer isso ou algo parecido?[/quote]

Este modelo de negócios é dos anos 80. Hoje em dia, ou vc opta por um cloud onde o servidor é seu e portanto vc só deixa usar quem vc quiser, ou vc simplesmente esquece isso. Lembre-se que vc vende licenças, não software. se o cara copia o software não tem problema desde que ele pague a licença. E pagar ou não a licença é um problema juridico, não tecnologico. Claro que tem essas coisas de chave e tal, ajuda, mas tem que ser bem feito. E se for bem feito, não importa se o cara copia o software.

Contrate uma hospedagem e disponibilize sua app na web (somente uma sessão aberta para o usuário fulano).
Insira um prazo para o bloqueio de login (ex: 60 dias), quando o fulano realizar o pagamento você poderá desbloquear.

Abraço.

Contrate uma hospedagem e disponibilize sua app na web (somente uma sessão aberta para o usuário fulano).
Insira um prazo para o bloqueio de login (ex: 60 dias), quando o fulano realizar o pagamento você poderá desbloquear.

Abraço.