Olá colegas,
Tenho uma aplicação que precisa ter alguns recursos de segurança extras. É o seguinte, a aplicação não pode ser replicada, ou seja, de alguma forma preciso dificultar a replicação do software, que deve funcionar após uma ativação.
Esta aplicação, no caso é para celulares, utilizando J2ME, porém, estou colocando neste fórum pois não se trata de algo muito ligado ao J2ME.
O caso é o seguinte, o usuário no caso instala o software no aparelho, e digita um serial único para ativar o binário junto ao um servidor de ativação. A grande questão, que esta abordagem ainda gera umas dúvidas em relação à segurança. A idéia geral é que cada binário tenha um serial, gerado e colocado direto no seu código fonte. A pergunta, nesta abordagem é a seguinte, existe a possibilidade, e qual a dificuldade dela, de algum usuário mal intencionado que conheça bem java consiga pegar o software, extrair o serial, instalar em outro aparelho e ativá-lo? Ou seja, crackear mesmo.
Eu, se fosse mal intencionado, utilizada um Java Decompiler. (Mesmo o programa ter sido “obfuscado” pelo Proguard, daria para retirar a string do serial, certo?).
Alguem, vendo este caso, acha que apesar desta abordagem ser insegura, é viável? Alguem tem outras alternativas? Colocar um humano no processo de ativação poderia ajudar a tentar detectar fraudes?
No meu cenário, eu tenho um servidor que será o servidor de ativação para ajudar, só será ativado perante uma consulta. E no caso do J2ME, não posso pegar nem o IMEI, nem o ID do SIMCard para diferenciar aparelhos, imagine um cenário com o mínimo de informação possível.
O meu problema é que NÃO pode ter replicações. Não se trata de um Jogo ou coisa qualquer que algumas replicações causem apenas um pequeno prejuízo.