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 ...
Respostas:
Existem muitas, muitas, muitas proteções disponíveis. A chave é:
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.
E variações do acima.
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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á.
fonte
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.
fonte
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!
fonte
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.
fonte
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.
fonte
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 .
fonte
Geralmente, existem dois sistemas que muitas vezes se confundem -
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 .
fonte
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.
fonte
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.
fonte
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 .
fonte
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.
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.
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 é:
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.
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.
fonte
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
fonte
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.
fonte
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.
fonte
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
fonte
Faça parte do seu produto um componente online que requer conexão e autenticação. aqui estão alguns exemplos:
Esse paradigma só vai até certo ponto e pode desligar alguns consumidores.
fonte
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.
fonte
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 !!!!
fonte
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.
fonte
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
fonte