Formas de Proteger um Software Desktop Contra a Pirataria

Olá amigos do GUJ. Na empresa em que trabalho, fui solicitado a desenvolver um esquema para evitar a utilização indevida de um software desktop. Pensei em algumas possibilidades, e tirando a última, nenhuma seria muito difícil de implementar. O caso na verdade é sobre a viabilidade de cada uma delas. Sei que isso depende do projeto e do modelo de negócios sobre o sistema, mas se vcs puderem dar algumas idéias e sugestões ajudaria bastante. As formas que pensei foram as seguintes:

1 - Validar só uma vez ao instalar com uma chave única por cliente

Vantagens: O cliente não fica dependente do fornecedor, podendo reinstalar o software quando se fizer necessário (formatação, troca de máquina, etc.)
Desvantagens: extremamente fácil de piratear, bastando repetir a chave em cada instalação

2 - Validar só uma vez ao instalar com uma chave aleatória em cada instalação (o sistema gera uma chave e o cliente precisa contatar o fornecedor para obter a contra-chave)

Vantagens: usuários leigos terão um pouco mais de dificuldade em usar cópias piratas
Desvantagens: para piratear basta copiar a base de dados, replicar em outras máquinas e mudar o conteúdo de acordo com a empresa que estiver usando. Esta desvantagem também se aplica à primeira forma

3 - Validar todo mês de forma “silenciosa” pela Internet

Vantagens: não incomoda o cliente e este poderá reinstalar sua cópia sempre que precisar sem ficar dependente do fornecedor
Desvantagens: se ele não usar Internet na máquina na qual o sistema estará rodando, ou bloquear com um firewall o acesso do programa à Internet, poderá usar em diversas máquinas

4 - Validar todo mês (ou em outro intervalo de tempo) de forma obrigatória pela Internet

Vantagens: acredito que torne muito mais difícil o uso indevido, pois um servidor do fornecedor poderá validar se existem licenças duplicadas e no caso bloquear ambas, obrigando o cliente a entrar em contato para liberar o acesso
Desvantagens: requer que o cliente se conecte todo mês pelo menos uma vez na Internet para validar a licença e prende o cliente ao fornecedor mesmo após ele ter comprado o software. Nesse caso, acho que esse modelo se aplica bem apenas em caso de aluguel do sistema

5 - Validar todo mês com uma contra-chave (uma vez por mês o sistema gera uma chave aleatória e o cliente tem que contatar o fornecedor para obter a contra-chave)

Vantagens: acho tão eficiente quanto o anterior, e não requer Internet. Porém, só se aplica a uma quantidade pequena de clientes, pois com muitos seria difícil gerir
Desvantagens: também prende o cliente ao fornecedor, sendo mais interessante para o modelo de aluguel

6 - Validação por hardware

Detectar dados do hardware (HD ou MAC por exemplo) e não permitir a cópia para outra máquina após o sistema ter sido instalado na primeira máquina. Ex.: Comprei, instalei na minha máquina e entrei com a licença. A partir daí se eu tentar copiar a base de dados para outra máquina ela já terá o registro dos dados da máquina antiga e não permitirá a execução.
Vantagens: obriga o uso em apenas uma máquina por cada licença
Desvantagens: se o cliente trocar de HD ou placa de rede terá que contatar o fornecedor. Se fosse tratar pelo HD teria que usar JNI eu acho.

Bom, é isso! Sei que não há solução perfeita para esse assunto, se houvesse não haveria pirataria! rsrs
Mas se alguém puder dar opiniões a respeito, ou tiverem outras idéias ficarei muito agradecido.

[]'s
Fred

Olá FredMP,

Aqui fazemos da seguinte maneira:

  • Todo sistema instalado gera um código, aqui chamamos de código da estação. Geramos esse código combinando o serial do HD com o MAC;
  • Com esse código da estação, geramos então uma chave para ativar o sistema.
    Essa chave trata também os módulos o cliente tem acesso;
    Essa chave expira dentro de um prazo de 6 meses;
  • O sistema envia para um servidor nosso, de forma silenciosa (como vc se refere), quais máquinas e licenças estão sendo usadas (não escondemos isso do cliente, está no contrato).

Fizemos uma pesquisa e verificamos que nossos clientes, na totalidade, possuem internet - o que nos levou a descartar a sua possibilidade nº 5 - Validar todo mês com uma contra-chave
(trabalhei com o ERP da Microsiga, ele utilizava esse sistema)

Estamos verificando a possibilidade de ativar as estações pela internet (criar um applet que pegasse o MAC e o serial do HD, e devolvesse uma chave), a fim de automatizar esse trabalho.