Como você protege seu software contra distribuição ilegal? [fechadas]


90

Estou curioso para saber como você protege seu software contra cracking, hacking, etc.

Você usa algum tipo de verificação de número de série? Chaves de hardware?

Você usa alguma solução de terceiros?

Como você resolverá os problemas de licenciamento? (por exemplo, gerenciamento de licenças flutuantes)

EDIT: Não estou falando de nenhum código aberto, mas de distribuição de software estritamente comercial ...


77
Estou esperando o dia em que alguém pirateie meu software. Isso seria INCRÍVEL!

4
A questão é que, um dia alguém pirateava seu software, você provavelmente não saberia disso :-)
petr k.

7
Na minha opinião, os piratas provavelmente nunca pagarão pelo seu software, então não me preocupo muito com eles. Escreva um ótimo software e você ganhará dinheiro.
Mike,

6
Sem ofensa, mas "Escreva um ótimo software e você ganhará dinheiro" é apenas parcialmente verdade. Considere o MS Office. Críticas à parte, é um bom software. Ainda assim, na média mundial, mais de 70% das cópias do Office são ilegais. A MS não ganharia muito mais se não fosse pela pirataria? A pirataria está realmente diretamente relacionada à qualidade do SW?
petr k.

5
@petr k .: Não concordo. Um efeito colateral importante da pirataria é, de fato, a popularidade do MSOffice (MSWindows, por falar nisso). A MS perderá se conseguir conter a pirataria completamente. @Mike: Esse é um ponto muito bom. Ao colocar o servidor de licenciamento, etc., estamos apenas dificultando as coisas para o nosso cliente pago
rpattabi

Respostas:


74

Existem muitas, muitas, muitas proteções disponíveis. A chave é:

  • Avaliar o seu público-alvo e o que eles estão dispostos a suportar
  • Compreender o desejo do seu público de jogar sem pagamento
  • Avaliar a quantia que alguém está disposto a investir para quebrar sua proteção
  • Aplicar proteção suficiente para evitar que a maioria das pessoas evite o pagamento, sem incomodar aqueles que usam o seu software.

Nada é inquebrável, então é mais importante avaliar essas coisas e escolher uma boa proteção do que simplesmente aplicar a melhor (pior) proteção que você pode pagar.

  • Códigos de registro simples (verificados online uma vez).
  • Registro simples com chaves revogáveis, verificado online freqüentemente.
  • A chave criptografada contém parte do algoritmo do programa (não pode simplesmente ignorar a verificação - ela deve ser executada para que o programa funcione)
  • Chave de hardware (criptografia de chave pública / privada)
  • Chave de hardware (inclui parte do algoritmo do programa que é executado na chave)
  • O serviço da Web executa código crítico (os hackers nunca conseguem vê-lo)

E variações do acima.


Algum exemplo de chave de hardware em uso?
Łukasz Lew

2
@Lukasz - Eles também são conhecidos como dongles - dispositivos eletrônicos que se conectam ao computador. Verifique en.wikipedia.org/wiki/Dongle para obter mais informações sobre esta opção.
Adam Davis

28

Seja qual for o caminho que você seguir, cobre um preço justo, torne-o fácil de ativar, dê pequenas atualizações gratuitas e nunca desative o software. Se você tratar seus usuários com respeito, eles o recompensarão por isso. Ainda assim, não importa o que você faça, algumas pessoas vão acabar pirateando-o.


Bem dito. Concordo que proteger um software é muito mais do que apenas chaves e números de série. As proteções técnicas são quebráveis ​​de qualquer maneira, não devemos nos esforçar muito com essas coisas.
Jaya Wijaya

Sim, o principal motivo de piratear software (não o que fiz, é claro; D) são os preços exorbitantes. Então, é claro, os usuários que não pagam por ele geram menos dinheiro no final. Portanto, opte por preços justos e você ganhará uma boa quantia de dinheiro.
Ponkadoodle

24

Não.

Piratas vão piratear. Não importa a solução que você encontre, ela pode e será quebrada.

Por outro lado, seus clientes reais pagantes são aqueles que estão sendo incomodados com a porcaria.


6
Isso não é exatamente verdade, existem usuários ignorantes que simplesmente pegam software porque simplesmente não pensam sobre isso. Pessoas normais vão roubar se não pensarem nisso.
Arthur Thomas,

9
Concordo. Eu sempre fico chateado com a introdução do FBI "você não roubaria um carro" de DVDs que eu realmente paguei!
Christian Davén

6
Se feito corretamente, será quase invisível para usuários legítimos. E não subestime o impacto da pirataria casual nos resultados financeiros. Existem muitos mercados onde a demanda é bastante inflexível e o 'DRM' pode fazer uma enorme diferença na receita.
smo

3
Errado. Consulte kalzumeus.com/2006/09/05/…
Karl

4
@MarkJ: Na verdade, qualquer proprietário de código que deseja manter seus clientes deve frequentemente adotar o ponto de vista do cliente ...
sleske

22

Torne mais fácil comprar do que roubar. Se você colocar montes de proteção contra cópia, o valor de possuir o negócio real será muito baixo.

Use uma chave de ativação simples e garanta aos clientes que eles sempre poderão obter uma chave de ativação ou baixar novamente o software, caso percam o seu.

Qualquer proteção contra cópia (além de componentes apenas online, como jogos multijogador e software financeiro que se conecta ao seu banco, etc.) você pode simplesmente presumir que será derrotada. Você quer baixar seu software ilegalmente, no mínimo, um pouco mais difícil do que comprá-lo.

Tenho jogos de PC que nunca abri, porque tem tanto lixo de proteção contra cópia que é realmente mais fácil baixar a versão falsa.


++ para "tornar mais fácil comprar do que roubar".
AlcubierreDrive

+++ "para tornar mais fácil comprar do que roubar"!
Denis Shevchenko

15

As proteções de software não valem o dinheiro - se o seu software for requisitado, ele será derrotado, aconteça o que acontecer.

Dito isso, as proteções de hardware podem funcionar bem. Um exemplo de como ele pode funcionar bem é este: Encontre um componente (bastante) simples, mas necessário, de seu software e implemente-o em Verilog / VHDL. Gere um par de chaves público-privado e faça um serviço da web que pega uma string de desafio e a criptografa com a chave privada. Em seguida, faça um dongle USB que contenha sua chave pública e gere strings de desafio aleatórias. Seu software deve solicitar ao dongle USB uma string de desafio e enviá-la ao servidor para criptografia. O software então o envia para o dongle. O dongle valida a string de desafio criptografada com a chave pública e entra no modo 'habilitado'. O software então chama o dongle a qualquer momento que precisar fazer a operação que você escreveu em HDL.

Edit: Acabei de perceber que algumas das coisas de verificação estão ao contrário do que deveriam ser, mas tenho certeza de que a ideia veio.


2
A maioria deles não funciona dessa maneira, apenas implementa parte de um algoritmo e não faz a autenticação da chave pública. Por exemplo, o AutoCAD (ou foi 3dsmax?) Fez a rotação da matriz no dongle. Se você não tivesse o dongle instalado, a rotação seria / ligeiramente / desligada, o que aumentaria com o tempo.
Cody Brocious,

1
É um truque inteligente. Faça com que o software funcione mal quando não estiver devidamente registrado; não totalmente errado, mas apenas de forma que você não perceba a princípio.
rpetrich

1
Além disso, ao decidir usar dongles USB para proteção de software, tenha em mente que muitos softwares atualmente são executados em ambientes virtuais onde o acesso ao hardware físico (por exemplo, portas USB) pode ser limitado. Também há um custo para a substituição dos dongles envolvidos (sim, e o cliente "perderá" os dongles).
PoppaVein

1
e também há rachaduras para esses dongles - eles são derrotáveis, como usar uma resposta tabulada (registrada de um dongle real) para tipos de desafio / resposta. para tipos codificados por algoritmo, ele é desmontado e o algoritmo reinserido no binário do aplicativo.
Chii

5
Esse tipo de proteção impediu que o Cubase / Nuendo (software de DAW líder no Windows) fosse violado há alguns anos. A última versão a ser hackeada tinha uma pequena nota dos crackers. Eles alegaram que foi a rachadura mais difícil que já haviam feito. Eles também afirmaram que, como muitas das rotinas do programa atingem o dongle, o desempenho do software é degradado. Seu dongle emulado funcionou muito mais rápido. Muitos usuários legítimos ficaram muito irritados e acabaram instalando o crack de qualquer maneira apenas para obter um melhor desempenho.
Alex de

15

O esquema de Licença de Software da Microsoft é extremamente caro para uma pequena empresa. O custo do servidor é de cerca de US $ 12.000 se você quiser configurá-lo sozinho. Não o recomendo para quem tem coração fraco.

Na verdade, acabamos de implementar o Intellilock em nosso produto. Ele permite que você tome todas as decisões sobre o quão estrita deseja que sua licença seja, e também é muito econômico. Além disso, faz ofuscação, prevenção do compilador, etc.

Outra boa solução que vi pequenas e médias empresas usarem é o SoloServer . É muito mais um sistema de comércio eletrônico e controle de licenças. É muito configurável ao ponto de talvez um pouco complexo demais. Mas pelo que ouvi, faz um trabalho muito bom.

Eu também usei o sistema de licença Desaware para dot net no passado. É um sistema bastante leve em comparação com os dois anteriores. É um sistema de controle de licença muito bom em termos de criptografia sólida. Mas é uma API de nível muito baixo em que você precisa implementar quase tudo que seu aplicativo realmente usará.


9

O gerenciamento de "direitos" digital é o maior produto de software de óleo de cobra do setor. Para pegar emprestada uma página da criptografia clássica, o cenário típico é que Alice deseja enviar uma mensagem a Bob sem que Charlie seja capaz de lê-la. O DRM não funciona porque em seu aplicativo Bob e Charlie são a mesma pessoa!

Seria melhor você fazer a pergunta inversa, que é "Como faço para que as pessoas comprem meu software em vez de roubá-lo?" E essa é uma questão muito ampla. Mas geralmente começa fazendo pesquisas. Você descobre quem compra o tipo de software que deseja vender e, em seguida, produz um software que agrada a essas pessoas.

A ponta adicional disso é limitar as atualizações / complementos apenas a cópias legítimas. Isso pode ser algo tão simples quanto um código de pedido recebido durante a transação de compra.

Verifique o software Stardock, criadores de WindowBlinds e jogos como Sins of a Solar Empire, este último não tem DRM e obteve um lucro considerável com um orçamento de US $ 2 milhões.


1 para a pergunta inversa bem formulada!
Ilari Kajaste

6

Existem vários métodos, como usar a ID do processador para gerar uma "chave de ativação".

O resultado final é que, se alguém quiser muito, eles farão a engenharia reversa de qualquer proteção que você tenha.

Os métodos mais seguros contra falhas são usar a verificação online em tempo de execução ou um hasp de hardware.

Boa sorte!


4

Com um pouco de tempo, seu software sempre estará quebrado. Você pode pesquisar por versões crackeadas de qualquer software bem conhecido para confirmar isso. Mas ainda vale a pena adicionar alguma forma de proteção ao seu software.

Lembre-se de que pessoas desonestas nunca pagarão pelo seu software e sempre encontrarão / usarão uma versão crackeada. Pessoas muito honestas sempre seguirão as regras, mesmo sem um esquema de licenciamento, só porque esse é o tipo de pessoa que são. Mas a maioria das pessoas está entre esses dois extremos.

Adicionar algum esquema de proteção simples é uma boa maneira de fazer com que a maioria das pessoas intermediárias aja de maneira honesta. É uma forma de fazer com que eles se lembrem de que o software não é gratuito e que eles devem pagar pelo número apropriado de licenças. Muitas pessoas realmente respondem a isso. As empresas são especialmente boas em seguir as regras porque o gerente não está gastando seu próprio dinheiro. Os consumidores são menos propensos a cumprir as regras porque o dinheiro é seu.

Mas a experiência recente com lançamentos como Spore da Electronic Arts mostra que você pode ir longe no licenciamento. Se você fizer até mesmo as pessoas legítimas se sentirem criminosas porque estão sendo constantemente validadas, elas começarão a se rebelar. Portanto, adicione algumas licenças simples para lembrar às pessoas se elas estão sendo desonestas, mas nada além disso provavelmente aumentará as vendas.


3

Jogos apenas online como World of Warcraft (WoW) já foram feitos, todos têm que se conectar ao servidor todas as vezes e, portanto, as contas podem ser verificadas constantemente. Nenhum outro método funciona para o feijão.


1
Bem, não acho que seja uma solução realista para, digamos, 90% do software. Eu deveria ter deixado isso mais claro no post - o software que estamos construindo não é um jogo online. Embora a pergunta fosse geral, sua resposta ainda é bastante válida, é claro.
petr k.

3
Bem, existem servidores privados disponíveis para os quais nenhum pagamento é necessário.
Jeremy

Claro, Petr, não é realista para todos, mas ainda é a verdade: nenhum outro método funciona. Inconviente, claro, mas é verdade.
Jeff,

3

Não é exatamente a resposta que você está procurando, mas é um ótimo recurso sobre pirataria de um desenvolvedor de jogos que perguntou ativamente a seus piratas por que eles fazem isso. E está relacionado à primeira parte da resposta que você escolher.

Leia em Talking to Pirates .


3

Geralmente, existem dois sistemas que muitas vezes se confundem -

  • Rastreamento de licenciamento ou ativação, uso legal e legítimo
  • Segurança evitando uso ilegal

Para o licenciamento usar um pacote comercial, muitas empresas FlexLM investem grandes somas de dinheiro no licenciamento acham que também obtêm segurança, este é um erro comum, pois os geradores de chaves para esses pacotes comerciais são prolificamente abundantes.

Eu recomendaria apenas o licenciamento se você estiver vendendo para empresas que irão pagar legitimamente com base no uso, caso contrário, provavelmente será mais difícil do que compensar.

Lembre-se de que, à medida que seus produtos se tornam bem-sucedidos, todo e qualquer licenciamento e medida de segurança serão eventualmente violados. Portanto, decida agora se realmente vale a pena o esforço.

Implementamos um clone de sala limpa do FlexLM há alguns anos, também tivemos que aprimorar nossos aplicativos contra ataques binários, seu longo processo, você tem que revisitá-lo a cada versão. Também realmente depende de quais mercados globais você vende, ou de onde sua principal base de clientes está e o que você precisa fazer.

Confira outra de minhas respostas sobre como proteger uma DLL .


2

Como foi apontado, a proteção do software nunca é garantida como infalível. O que você pretende usar depende muito do seu público-alvo. Um jogo, por exemplo, não é algo que você possa proteger para sempre. Um software de servidor, por outro lado, é algo muito menos provável de ser distribuído na Internet, por uma série de razões (penetração do produto e responsabilidade vêm à mente; uma grande empresa não quer ser responsabilizada por software pirata, e os piratas apenas se preocupam com coisas em grande demanda). Com toda a honestidade, para um jogo de alto perfil, a melhor solução é provavelmente semear o torrent você mesmo (clandestinamente!) E modificá-lo de alguma forma (por exemplo, de modo que após duas semanas de jogo ele apareça com mensagens dizendo para você considere apoiar os desenvolvedores comprando uma cópia legítima).

Se você aplicar proteção, tenha duas coisas em mente. Primeiro, um preço mais baixo complementará qualquer proteção contra cópia, tornando as pessoas mais inclinadas a pagar o preço de compra. Em segundo lugar, a proteção não deve atrapalhar os usuários - veja o Spore para um exemplo recente.


2

DRM isso, DRM aquilo - os editores que forçam o DRM em seus projetos estão fazendo isso porque é lucrativo. Seus economistas estão concluindo isso com dados que nenhum de nós jamais verá. Os trolls "DRM é malvado" estão indo longe demais.

Para um produto de baixa visibilidade, uma simples ativação pela Internet vai impedir a cópia casual. Qualquer outra cópia provavelmente será insignificante para seus resultados financeiros.


2

A distribuição ilegal é praticamente impossível de prevenir; basta perguntar à RIAA. O conteúdo digital pode apenas ser copiado; o conteúdo analógico pode ser digitalizado e depois copiado.

Você deve concentrar seus esforços na prevenção da execução não autorizada . Nunca é possível impedir completamente a execução de código na máquina de outra pessoa, mas você pode tomar certas medidas para elevar o nível o suficiente para que seja mais fácil comprar seu software do que piratear.

Dê uma olhada no artigo Desenvolvendo para Proteção e Licenciamento de Software, que explica como melhor desenvolver seu aplicativo com o licenciamento em mente.

Isenção de responsabilidade obrigatória e plug: a empresa que co-fundei produz a solução de licenciamento de software OffByZero Cobalt para .NET .


2

O problema com essa ideia de apenas deixar os piratas usá-lo, eles não vão comprar de qualquer maneira e vão mostrar aos amigos quem pode comprá-lo é duplo.

  1. Com software que usa serviços de terceiros, as cópias piratas estão usando largura de banda / recursos valiosos, o que dá aos usuários legítimos uma experiência pior, faz meu sw parecer mais popular do que é e tem serviços de terceiros me pedindo para pagar mais por seus serviços porque da largura de banda que está sendo usada.

  2. Muitos casuais nem sonhariam em crackear o sw, mas se houver um crack de fácil acesso em um site como o piratebay, eles vão usá-lo, se não houver, podem comprá-lo.

Esse conceito de não desabilitar software pirata uma vez descoberto também parece louco, não entendo por que deveria deixar alguém continuar a usar um software que não deveria, acho que essa é apenas a visão / esperança dos piratas.

Além disso, é importante notar que tornar um programa difícil de crackar é uma coisa, mas você também precisa evitar que cópias legítimas sejam compartilhadas, caso contrário, alguém poderia simplesmente comprar uma cópia e depois
compartilhá-la com milhares de outras pessoas por meio de um site de torrent. O fato de ter seu nome / endereço de e-mail embutido na licença não vai ser suficiente para dissuadir a todos de fazer isso, e só é preciso um para que haja um problema.

A única maneira de evitar isso é:

  1. Faça com que o servidor verifique e bloqueie a licença sempre que iniciar o programa e libere a licença ao sair do programa. Se outro cliente começar com a mesma licença enquanto o primeiro cliente tiver licença, ela será rejeitada. Desta forma, não evita que a licença seja usada por mais de um usuário, mas evita que seja usada simultaneamente por mais de um usuário - o que é bom o suficiente. Ele também permite que um usuário legítimo transfira a licença em qualquer um de seus computadores, o que proporciona uma experiência melhor.

  2. Na primeira inicialização do cliente, o cliente envia a licença ao servidor e o servidor a verifica, fazendo com que algum sinalizador seja definido no software cliente. Solicitações adicionais de outros clientes com a mesma licença são rejeitadas. O problema com essa abordagem é que o cliente original teria problemas se reinstalasse o software ou desejasse usar um computador diferente.


2

Mesmo se você usasse algum tipo de autenticação biométrica de impressão digital, alguém encontraria uma maneira de quebrá-la. Não há realmente nenhuma maneira prática de contornar isso. Em vez de tentar tornar seu software à prova de hack, pense em quanta receita extra será gerada com a adição de proteção contra cópia em comparação com a quantidade de tempo e dinheiro que será necessário para implementá-la. Em algum ponto, torna-se mais barato optar por um esquema de proteção contra cópia menos rigoroso.

Depende do que exatamente é o seu produto de software, mas uma possibilidade é mover a parte "valiosa" do programa para fora do software e mantê-la sob seu controle exclusivo. Você cobraria uma taxa modesta pelo software (principalmente para cobrir os custos de impressão e distribuição) e geraria sua receita com o componente externo. Por exemplo, um programa antivírus vendido por um preço barato (ou agrupado gratuitamente com outros produtos), mas que vende assinaturas para seu serviço de atualização de definições de vírus. Com esse modelo, uma cópia pirateada que assina o seu serviço de atualização não representaria muito prejuízo financeiro. Com a crescente popularidade dos aplicativos "na nuvem", esse método está se tornando mais fácil de implementar; hospedar o aplicativo em sua nuvem e cobrar dos usuários pelo acesso à nuvem. Isso não


1

Se você estiver interessado em proteger o software que pretende vender aos consumidores, eu recomendaria qualquer uma das várias bibliotecas de geração de chave de licença (pesquisa do Google sobre geração de chave de licença). Normalmente, o usuário tem que fornecer algum tipo de semente, como seu endereço de e-mail ou nome, e ele recebe de volta o código de registro.

Várias empresas irão hospedar e distribuir seu software ou fornecer um aplicativo de instalação / compra completo que você pode integrar e fazer isso automaticamente, provavelmente sem nenhum custo adicional para você.

Já vendi software para consumidores e acho que esse é o equilíbrio certo entre custo / facilidade de uso / proteção.


1

A solução simples e melhor é carregá-los antecipadamente. Defina um preço que funcione para você e para eles.

Pedir aos clientes pagantes que provem que estão pagando clientes depois de já terem pago só os irrita. Implementar o código para fazer seu software não funcionar desperdiça seu tempo e dinheiro e apresenta bugs e aborrecimentos para clientes legítimos. Seria melhor você gastar esse tempo fazendo um produto melhor.

Muitos jogos / etc irão "proteger" a primeira versão e, em seguida, descartar as proteções do primeiro patch devido a problemas de compatibilidade com clientes reais. Não é uma estratégia irracional se você insiste em um mínimo de proteção.


1

Quase toda proteção contra cópia é ineficaz e um pesadelo de usabilidade. Algumas delas, como colocar root-kits nas máquinas de seus clientes, torna-se totalmente antiético


I voto negativo - Você está assumindo que todos com um anti-esquema estão realizando atividades ilegais como root kits.
Jason Short,

Não, eu não suponho isso. Eu disse explicitamente alguns . E há casos bem documentados de rootkits para DRM.
wnoise

0

Faça parte do seu produto um componente online que requer conexão e autenticação. aqui estão alguns exemplos:

  • Jogos online
  • Proteção contra o vírus
  • Proteção contra SPAM
  • Software de rastreamento de laptop

Esse paradigma só vai até certo ponto e pode desligar alguns consumidores.


0

Eu concordo com muitos que afirmam que nenhum esquema de proteção contra cópia baseado em software irá impedir um pirata de software habilidoso. Para software comercial baseado em .NET, a Proteção de Licença de Software da Microsoft (SLP) é uma solução com preços muito razoáveis. Suporta licenças com limite de tempo e flutuantes. Seus preços começam em $ 10 / mês + $ 5 por ativação e os componentes de proteção parecem funcionar conforme anunciado. É uma oferta relativamente nova, portanto, cuidado com o comprador.


E em 2011 o preço do SLP cresceu para € 145 / mês para o menor pacote.
Michael Olesen,

0

Eu sugiro uma chave de ativação simples (mesmo se você souber que ela pode estar quebrada), você realmente não quer que seu software atrapalhe seus usuários, ou eles simplesmente o rejeitarão.

Certifique-se de que eles podem baixar novamente o software, sugiro uma página da web onde eles possam registrar e baixar seu software somente após o pagamento (e sim, eles devem poder baixar quantas vezes quiserem, diretamente, sem uma única pergunta sobre o porquê de sua parte).

Deixe seus usuários pagos acima de tudo, não há nada mais irritante do que ser acusado de ser um criminoso quando você é um usuário legítimo (o anti-pirataria do DVD alerta a todos).

Você pode adicionar um serviço que verifica a chave contra um servidor quando online, e no caso de dois IPs diferentes estarem usando a mesma chave, pop-up uma sugestão para comprar outra licença.

Mas, por favor, não o desative, ele pode ficar feliz em mostrar seu software a um amigo !!!!


0

Se você for um desenvolvedor de software, uma das soluções possíveis é incorporar metadados diretamente em seu produto. Verifique uma instância da ferramenta de Destruction Security do theredsunrise.


0

Licenciamos nosso software comercial usando nosso próprio sistema de licenciamento - que é o que estamos vendendo (ferramentas de gerenciamento de licenças). Geralmente vendemos licenças de assinatura, mas também podemos vender com base no uso, se desejarmos. Tem sido seguro para nós até agora: www.agilis-sw.com

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.