Estou desenvolvendo um aplicativo que, quando comprado, pode ser ativado usando uma licença.
Atualmente, estou fazendo a validação offline, o que é um pouco preocupante para mim. Estou ciente de que não há nada a fazer contra rachaduras (binários modificados), no entanto, estou tentando desencorajar a pirataria de chaves de licença. Aqui está o meu plano atual:
- Quando o usuário ativa o software e após a validação offline ter êxito, ele tenta ligar para casa e validar a licença. Se a casa aprovar a licença ou se a casa estiver inacessível, ou se o usuário estiver offline, a licença será aprovada . Se chegar em casa e informar que a licença é inválida, a validação falhará.
- O aplicativo licenciado liga para casa da mesma maneira todas as vezes durante a inicialização (em segundo plano). Se a licença for revogada (ou seja, licença pirateada ou gerada via keygen), a licença será desativada.
Isso deve ajudar na pirataria de licenças - uma licença inválida será desativada e uma licença válida pirateada poderá ser revogada (e seu proprietário legal será fornecido com nova licença). Os usuários piratas serão forçados a usar a versão crackeada, que geralmente é específica e é mais difícil de alcançar.
Embora geralmente pareça bom para mim, tenho algumas preocupações:
- Os usuários tendem a não gostar de chamadas domésticas e validação online. Esse tipo de validação o incomodaria? Mesmo que em caso de offline / falha, o aplicativo permaneça licenciado?
- É claro que todo o esquema pode ser frustrado ficando offline / firewall / etc. Penso que o incômodo de executar uma dessas ações é ótimo o suficiente para desencorajar o compartilhamento ocasional de licenças, mas não tenho certeza.
- Como geralmente ocorre com as variações de licenciamento e DRM, não tenho certeza de que o tempo gasto nesse tipo de proteção não seja melhor gasto com a melhoria do meu produto.
Eu apreciaria sua opinião e pensamentos.
Obrigado!