Estratégia para bloqueio de software  XML
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Autor Mensagem
wind
What is classpath?
[Avatar]

Membro desde: 21/01/2008 15:16:36
Mensagens: 8
Offline

Olá a todos!!

Confesso que fiquei um bom tempo sem postar nada no GUJ, e me arrependo bastante. Essa comunidade é realmente muito rica, tanto em informações, quanto em pessoal!

Bom, é o seguinte, recebi uma encomenda de um programa pra fazer (não preciso dar muitos detalhes, é só um BDzinho, uma interfacezinha, cadastro de coisas, inserção, remoção e blablabla), mas preciso fazer uma coisa q nunca fiz antes: a pessoa que me encomendou o software vai VENDÊ-LO para outras pessoas, de forma que, pela primeira vez (acostumado q estou com software livre), preciso me preocupar com licença, bloqueio, impedir cópia, registro, e etc e tal.
O cara q me pediu pra fazer o software disse q não pode ser copiado de um HD para outro, e que o software deve EXPIRAR, ou seja, depois de um tempo parar de funcionar e pedir uma nova chave de ativação, ou uma coisa assim.
Realmente não sei como fazer, não tenho idéia nem de como começar. Não sei nem se posso fazer isso usando Java. Por acaso os senhores conhecem alguma estratégia eficiente para tornar um software proprietário, com bloqueio de cópia, e que expire depois de um tempo determinado?

Agradeço desde já a atenção, e parabéns pelo melhor fórum de programação do Brasil!!

I'm the WIND, my freedom is my locomotion.
[Email]
peron
JavaGuru
[Avatar]

Membro desde: 09/06/2005 09:39:31
Mensagens: 236
Localização: Blumenau/SC
Offline

wind wrote:Olá a todos!!

Confesso que fiquei um bom tempo sem postar nada no GUJ, e me arrependo bastante. Essa comunidade é realmente muito rica, tanto em informações, quanto em pessoal!

Bom, é o seguinte, recebi uma encomenda de um programa pra fazer (não preciso dar muitos detalhes, é só um BDzinho, uma interfacezinha, cadastro de coisas, inserção, remoção e blablabla), mas preciso fazer uma coisa q nunca fiz antes: a pessoa que me encomendou o software vai VENDÊ-LO para outras pessoas, de forma que, pela primeira vez (acostumado q estou com software livre), preciso me preocupar com licença, bloqueio, impedir cópia, registro, e etc e tal.
O cara q me pediu pra fazer o software disse q não pode ser copiado de um HD para outro, e que o software deve EXPIRAR, ou seja, depois de um tempo parar de funcionar e pedir uma nova chave de ativação, ou uma coisa assim.
Realmente não sei como fazer, não tenho idéia nem de como começar. Não sei nem se posso fazer isso usando Java. Por acaso os senhores conhecem alguma estratégia eficiente para tornar um software proprietário, com bloqueio de cópia, e que expire depois de um tempo determinado?

Agradeço desde já a atenção, e parabéns pelo melhor fórum de programação do Brasil!!


Bom, primeiro, tenha em mente que tens que usar, no teu codigo de bloqueio, talvez criptografá-lo: http://bit.ly/15MzHt

Depois de "seguro" o teu próprio codigo, voce deve criar alguma relação chave x maquina que faça com que sua chave só libere aquela máquina para funcionar.
Neste caso aqui, é complicado, Java não acessa hardware nativamente, então, boa sorte! hehehe

Nesta mesma chave, coloque informações de bloqueio que vc deseje, data fixa ou número de dias de uso. Grave esta chave em um arquivo criptografado em seus resoures.

O caminho é mais ou menos esse.


Marcos Peron
http://www.marcosperon.com





"Dizem que, no início, Deus criou o céu e a Terra. Mentira! Na verdade, no início Deus criou Java. Onde achas que ele programou o mundo, oras?"
[WWW] [Yahoo!] [MSN] [ICQ]
mochuara
GUJ Master
[Avatar]
Membro desde: 20/05/2009 11:21:32
Mensagens: 1776
Offline

Não seria o caso de fazer uma aplicação web?
mvargens
JavaEvangelist

Membro desde: 12/05/2008 16:20:26
Mensagens: 301
Localização: Embu
Offline

Ví vário sofwares em java pedindo registro on-line. Vai exigir um pouco mais de recursos, mas é uma alternativa.
[Email]
enantiomero
JavaEvangelist

Membro desde: 23/04/2008 09:44:26
Mensagens: 304
Offline

http://www.safenet-inc.com/br/index2.asp
mvargens
JavaEvangelist

Membro desde: 12/05/2008 16:20:26
Mensagens: 301
Localização: Embu
Offline

Ví vário sofwares em java pedindo registro on-line. Vai exigir um pouco mais de recursos, mas é uma alternativa.
[Email]
wind
What is classpath?
[Avatar]

Membro desde: 21/01/2008 15:16:36
Mensagens: 8
Offline

peron wrote:
Bom, primeiro, tenha em mente que tens que usar, no teu codigo de bloqueio, talvez criptografá-lo: http://bit.ly/15MzHt


Dae, peron, blz?
Imagine que vou escrever esse programa em Java, e entregar apenas o .jar pro cara. Ainda assim preciso criptografar o código??

peron wrote:
Depois de "seguro" o teu próprio codigo, voce deve criar alguma relação chave x maquina que faça com que sua chave só libere aquela máquina para funcionar.
Neste caso aqui, é complicado, Java não acessa hardware nativamente, então, boa sorte! hehehe


Você por acaso sabe algum meio de fazer isso? Mesmo usando outra linguagem apenas pra conseguir o número do HD, ou algo assim?

peron wrote:
Nesta mesma chave, coloque informações de bloqueio que vc deseje, data fixa ou número de dias de uso. Grave esta chave em um arquivo criptografado em seus resoures.

O caminho é mais ou menos esse.


Imagino que eu tenho que criar um arquivo (criptografado, lógico), com as informações de usuário licenciado e data de expiração, e fazer o programa procurar sempre esse arquivo ao ser executado. Se caso não achar o arquivo, o programa não faz mais nada (não quero ter problemas porque alguém apagou o arquivo, para tentar burlar o programa).
Pensei na estratégia de escrever a data e o horário de cada acesso nesse arquivo também, para poder controlar a expiração do programa. Assim, se caso o usuário tentar abrir o programa quando este já expirou, o programa pedirá a nova chave de ativação. A questão é que eu não tenho certeza se esse esquema de log de acessos funciona, se o usuário voltar a data do sistema pra um pouquinho depois do último acesso... ele pode conseguir enganar o programa.
O que vcs acham?



Dae, enantiomero!
Cara, interessante o site, tem bastante recursos, mas são privados. Prefiro (e o meu cliente também prefere) algo mais "simples", se é que vcs me entendem.
O programa não é um negócio muito graaaaande, nem nada não, é bem susse, rss.

mochuara wrote:
Não seria o caso de fazer uma aplicação web?


mvargens wrote:
Ví vário sofwares em java pedindo registro on-line. Vai exigir um pouco mais de recursos, mas é uma alternativa.


Oi, mochuara! Fala, mvargens!!
Não, não tem como fazer isso online. O cara não tem domínio online, e também não quer fazer isso...
O programa tem que ser inteiro offline, mesmo, e o cliente tem que entrar em contato com o cara de alguma maneira (telefone, e-mail) pra pedir a nova chave de ativação.

I'm the WIND, my freedom is my locomotion.
[Email]
mvargens
JavaEvangelist

Membro desde: 12/05/2008 16:20:26
Mensagens: 301
Localização: Embu
Offline

Bom, se o usuário tem que entrar em contato com o distribuidor para fornecer um desbloqueio, ja é quase a mesma coisa que o site on-line. Em vez de fazer uma ferramenta web para ativação do produto, você pode fazer uma ferramenta cliente operada pelo distribuidor para gerar uma chave de ativação.

Você pode ofuscar seu código usando o ProGuard, mas não vai ficar 100% seguro, e se não me engane ele tem problemas com uso de reflexão. Da uma olhada e avalia se vale a pena.
Agora o algorítimo para geração de chaves, acho que vc consegue achar algo na net. Talvez o esquema usado no SSL sirva.
[Email]
psevestre
JavaEvangelist

Membro desde: 13/05/2005 12:53:19
Mensagens: 432
Localização: São Paulo
Offline

meio atrasado, mas espero que a dica ainda seja útil:

http://www.safenet-inc.com/products/sentinel/software_protection.asp

A única recomendação que faço é a seguinte: se vc. não é expert na área de segurança, é melhor não inventar moda. Da última vez que vi, o preço por cópia era bem razoável, mesmo em pequenos volumes.

De quebra, este tipo de solução costuma vir com um pacote para gerenciamento das licenças geradas, permitindo flexibilidade quanto a datas de expiração, versões demo, etc.


http://justaphilpicks.blogspot.com/
[MSN]
 
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Ir para:   
Powered by JForum 2.1.8 © JForum Team