
De acordo com as estatísticas do estudo
BSA Global Software Survey 2018 :
- O software não licenciado (pirateado) representa 37% da quantidade total de software instalado em PCs pessoais em todo o mundo.
- O custo do software falsificado é estimado em US $ 46 bilhões.
- O malware, que infecta muitos programas piratas baixados de fontes de terceiros, custa às empresas US $ 359 bilhões por ano.
- As perdas por software licenciado para hackers totalizam cerca de US $ 600 bilhões anualmente.
Todos sabemos que, entre os usuários, existem aqueles que honestamente compram o programa e o utilizam para a finalidade a que se destinam, e há quem corrompa o software de uma maneira ou de outra e trabalha com ele ou o vende.
A Skillbox recomenda: um curso prático de dois anos, "Sou um desenvolvedor Web PRO" .
Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".
É improvável que os desenvolvedores de software que criam produtos pagos desejem passar vários anos de suas vidas em um programa que eles invadirão e usarão de graça. Perdas de reputação também podem se tornar um problema: por exemplo, ao baixar o software invadido de uma determinada empresa que infecta o PC de um usuário com um vírus introduzido por um invasor, a vítima provavelmente culpará o fabricante e não o cracker.
Quanto às receitas, de acordo com a BSA, uma empresa que decide levar a sério a proteção de seus produtos de software pode esperar aumentar os lucros em cerca de 11% (no entanto, é importante entender que esse é um valor médio).
Mas o que pode ser feito para proteger seu software?
Existem muitas soluções diferentes para licenciar e proteger software. Antes de escolher um para si, vale a pena responder a várias perguntas importantes.
Primeiro, você precisa decidir qual nível de proteção seu projeto específico pode precisar. Não atire de canhão em pardais, a escolha deve ser adequada. Muitos desenvolvedores cometem um erro aqui usando uma proteção mais poderosa (e cara) do que realmente precisam.
Em segundo lugar, você precisa se perguntar quanto está disposto a gastar em defesa. A resposta pode ser complicada, portanto, para fazer a escolha certa, vale a pena analisar o que você pode precisar.
Então, quando você decide tudo, pode começar a escolher a proteção com base na estratégia de uso do produto de software.
Principais recursos de segurançaTudo começa com a escolha do princípio do licenciamento: você precisa escolher como eles pagarão pelo seu produto. Existem muitas variedades, em geral elas podem ser divididas em quatro tipos:
- Pagamento único. Eles pagam pelo seu software uma vez, após o que podem usá-lo por um tempo ilimitado.
- Limitações funcionais. Recursos adicionais que o usuário pode abrir por um custo adicional.
- Licença temporária. Você "aluga o aplicativo", ou seja, estamos falando de uma assinatura.
- Em camadas. É uma combinação desses métodos. O usuário recebe uma versão Silver, Gold ou Platinum do software com o pagamento apropriado.
Depois de decidir sobre uma estratégia de licenciamento, é hora de começar a procurar tecnologias de proteção de software. E aqui vale a pena lembrar de nuances como a capacidade de conectar software à Internet, sua especialização, o tipo de plataforma para a qual o software se destina e assim por diante.
Enfatizamos mais uma vez a importância de escolher a proteção adequada. Se você vai proteger sua bicicleta com o método usado em Fort Knox, isso dificilmente pode ser considerado razoável. Existe uma relação inversa: se você deseja proteger Fort Knox, não use uma trava de bicicleta para isso, é inútil, a invasão é garantida. Em geral, a estratégia de licenciamento deve ser proporcional ao preço do produto em si.
Tipos de proteção
Como mencionado acima, existem várias opções para proteger o software contra hackers e cópias. Essas opções podem variar em custo, nível de proteção e especialização.
Confie na proteção. Aqui você conta com o fato de que os usuários pagam sem problemas. Um usuário - uma licença, eterna. Em princípio, praticamente não há custos da sua parte. Depois que o aplicativo é compilado, você pode começar a distribuí-lo. Mas o problema é que, se seu produto se tornar popular, alguém definitivamente o decifrará, depois de começar a distribuí-lo. Nesse caso, não há proteção contra hackers, é zero.
Proteção de software offlineTrata-se de proteção sem conexão à Internet. Normalmente, esse esquema é implementado imediatamente após a compilação do programa. O shell mais comumente usado com determinadas configurações. Um programa protegido não está conectado para verificação de integridade a nenhum servidor externo. Em princípio, você pode ignorar essa proteção sem problemas.
Proteção de Software OnlineAqui estamos falando de um método mais sério - verificar a licença usando o servidor de licenciamento. Nesse caso, são necessários custos relativamente altos no início e custos recorrentes mais tarde. Como na versão anterior, o shell é usado, mas os parâmetros de licenciamento são verificados e configurados online.
Se desejar, você pode adicionar opções de verificação de software: como é usado, existe uma licença ou não. Se você precisar de uma conexão permanente com a rede, é provável que o produto funcione nem sempre e nem em todos os lugares.
A severidade dessa proteção está entre média e alta.
Proteção de hardwareUm dos métodos mais confiáveis que combina as vantagens de todas as outras estratégias. O licenciamento é de responsabilidade de uma chave USB eletrônica que não requer uma conexão de rede. O preço de cada chave para o desenvolvedor é baixo, não há despesas adicionais periódicas. Você pode implementá-lo usando a API e através do shell.
A vantagem deste método é que a licença pode ser removida fora do sistema operacional, a chave é armazenada fora do PC. A chave é muito difícil ou impossível de copiar. O software protegido com uma chave de hardware pode ser usado em sistemas onde não há conexão de rede. Por exemplo, instalações governamentais ou indústria. Outra vantagem é que a chave eletrônica não requer soluções diferentes para diferentes ambientes de software, e as opções de licenciamento são muito flexíveis.
As soluções baseadas em uma chave de hardware podem ser implantadas em literalmente minutos, elas são suportadas por quase qualquer versão dos sistemas operacionais.
No entanto, lembre-se de que o fornecedor da solução (se você não pode criar a chave de hardware) deve fazer tudo rapidamente, para que não seja necessário aguardar uma remessa de chaves e, portanto, adiar o início das vendas do seu software. Além disso, o fornecedor deve fornecer uma solução simples e eficaz que seja rapidamente implantada. Obviamente, você deve confiar no fornecedor - caso contrário, você não deve usar seus serviços.
Vale a pena pensar em proteção de software na fase de design: depois que um projeto estiver parcial ou totalmente pronto, mudar alguma coisa não será fácil.
A Skillbox recomenda: