Como o software pode ser protegido contra pirataria?

75

Por que parece tão fácil piratear hoje?

Parece um pouco difícil acreditar que com todos os nossos avanços tecnológicos e os bilhões de dólares gastos na engenharia do software mais inacreditável e inacreditável, ainda não temos outros meios de proteção contra a pirataria do que um "número de série". /chave de ativação". Tenho certeza que uma tonelada de dinheiro, talvez até bilhões, foi para criar o Windows 7 ou Office e até mesmo o Snow Leopard, mas posso obtê-lo gratuitamente em menos de 20 minutos. O mesmo vale para todos os produtos da Adobe, que são provavelmente os mais fáceis.

Pode existir um método à prova de idiotas e à prova de hackers para proteger seu software contra pirataria? Se não realisticamente, que tal teoricamente possível? Ou não importa quais mecanismos essas empresas implementam, os hackers podem sempre encontrar uma maneira de contornar isso?

    
por psr 26.02.2016 / 05:24
fonte

17 respostas

76

Código é dado. Quando o código é executável, uma cópia desses dados é um código não protegido. Código desprotegido pode ser copiado.

Apimentar o código com verificações antipirataria o torna um pouco mais difícil, mas os hackers apenas use um depurador e remova-os. Inserir no-ops em vez de chamadas para "check_license" é muito fácil.

  • Programas difíceis de invadir fazem coisas cada vez mais irritantes.
  • Mas os fornecedores precisam vender software de clientes que estejam preparados para usar.
  • Nem todo mundo permite que os computadores liguem para casa.
  • Algumas pessoas que trabalham com assuntos confidenciais se recusam a conectar máquinas à Internet.

Os programas que eu vendo no meu empregador atual (ferramentas aeroespaciais) não telefonam para casa nunca . Os clientes não tolerariam telefonar para casa para "ativação" toda vez que o programa fosse iniciado.

No pior dos casos, o programa é executado em uma VM sem rede, onde é sempre uma data fixa.

Por isso, pode ter sido legitimamente instalado uma vez, mas nenhum esforço por parte dos desenvolvedores pode fazer com que ele diga que não é assim.

  • Tentativas de adicionar "prevenção de cópia" de hardware a computadores de uso geral estão fadadas a falha.
  • Qualquer empresa que venda hardware sem prevenção de cópias acaba vendendo todo o hardware.
  • Fornecedores como a Dell e a Intel tentam progressivamente introduzir hardware espião como o Palladium, mas têm strong resistência.
  • Quando o computador está fazendo algo científico, em tempo real, qualquer interrupção de "verificação de conteúdo pirata" causará falhas. Se todos os computadores tivessem hardware DRM, os especiais científicos / em tempo real teriam que não tê-lo. Acidentalmente, todos comprariam produtos científicos / em tempo real especiais.
  • Verificações de hardware DRM terão falsos positivos em alguns tipos de conteúdo.

    • Caso mais simples: resolução. Eu gravo vídeo Quad HD do meu conjunto de câmeras (sentado na minha mesa agora). O Windows DRM fica entre mim e os dados porque é o QuadHD.

    • Análise de assinatura: o DRM de hardware é pequeno e tem um conjunto de dados relativamente fixo. Ele também tem que usar o mesmo barramento de dados que o processador, o que diminui a velocidade de forma intermitente. Isso arruína tudo em tempo real.

    • Assim, para tornar o Hardware DRM mais inteligente durante um falso positivo, o seu computador será eventualmente interrompido para ir e verificar usando um serviço da web. Agora, meu processador de dados científicos falha porque não está em rede ou interrompe o fluxo de dados.

por 14.03.2014 / 23:22
fonte
62
Em última análise, o grande problema é que a maioria dos softwares envolve entregar o bloqueio e a chave ao invasor em potencial e esperar que eles não descubram como colocá-los juntos.

O método seguro somente de proteger o software é não dar ao usuário (por exemplo, SaaS). Você perceberá que não é possível "piratear" o Google Docs, por exemplo. Em última análise, se você está tentando proteger alguma coisa, você tem que assumir que eles têm pleno conhecimento de qualquer coisa que você lhes der. Você não pode confiar no cliente. Isso se aplica à prevenção da pirataria tanto quanto à proteção de um sistema contra comprometimento.

Como os modelos de distribuição de software existentes se baseiam em dar ao cliente todo o pacote e depois tentar protegê-lo em hardware que o invasor em potencial controla , o modelo de distribuição é incompatível com qualquer conceito de "inalável" software.

    
por 16.03.2014 / 15:58
fonte
28

IMHO um problema fundamental é que a maioria ou todos os métodos de proteção contra pirataria * à prova de infalibilidade e invasão de hackers também incomodam ou até afugentam usuários inocentes e legais.

Por exemplo Verificar se o aplicativo está instalado apenas em uma única máquina pode dificultar que um usuário altere o hardware em sua máquina. Os dongles de hardware podem significar que você não pode usar o mesmo aplicativo em suas máquinas domésticas e de trabalho. Sem mencionar os códigos de área de DVD, CSS, o rootkit da Sony et al., Que não são estritamente para proteção de software, mas estreitamente relacionados.

* que, como @FrustratedWithFormsDesigner notou, nunca são perfeitos na prática; não há 100% de segurança, você só pode tentar custar o suficiente para um intruso quebrar a defesa para que não haja "muitos" deles. E acredito que seja devido à natureza fundamental do software e da informação digital, que uma vez que alguém consiga quebrar uma defesa particular, a quebra pode quase sempre ser trivialmente replicada por milhões.

    
por 10.02.2011 / 23:15
fonte
28

Why is it that software is still easily pirated today?

É mais lucrativo vender softwares fáceis de piratear.

Ao decidir sobre medidas antipirataria, as empresas fazem uma análise de custo-benefício. Para qualquer conjunto de medidas, se os benefícios não superam os custos, a empresa não o faz.

Os custos incluem tempo e esforço para implementar, documentar, dar suporte e manter as medidas e, talvez, perdas de vendas, caso sejam realmente irritantes. De um modo geral, existem dois tipos de benefícios:

  • Lucros maiores porque as pessoas que teriam pirateado o programa o compraram.
  • As pessoas que tomam decisões estão felizes que o programa não está sendo pirateado.

Aqui está um exemplo simples: Microsoft Office.

Agora, a MS tem tudo a ver com o dinheiro, e não tanto em deixar os executivos felizes com a pirataria. Durante algum tempo, a MS vendeu uma edição do Office "Home and Student" por uma forma mais barata que a edição "normal" para os negócios. Eu comprei isso há alguns anos e não tinha proteção contra cópia! E a tecnologia "anti-pirataria" consistia em inserir uma chave de produto que era então armazenada na pasta do aplicativo. Mas você poderia rodá-lo em quantos computadores quisesse simultaneamente, e todos funcionariam bem! Na verdade, no Mac, você pode arrastar a pasta do aplicativo pela rede para outro computador em que nunca fez uma instalação e, como a chave do produto foi armazenada com o aplicativo, ela funcionou muito bem.

Por que essa tecnologia patética antipirataria? Duas razões.

O primeiro é porque o custo adicional de suporte técnico para usuários domésticos estragar suas instalações simplesmente não valeu a pena.

O segundo são as medidas anti-pirataria não técnicas . A MS tem um programa de denúncias onde, se você sabe que uma empresa piratou o software MS - como instalar 200 cópias do mesmo "Home and Student" Office - você pode ligar para elas. Em seguida, a MS entra e audita a empresa e, se encontrar software pirateado, processa-os - e você obtém uma grande parte dos ganhos.

Portanto, a MS não precisa usar tecnologia para impedir a pirataria. Eles acham mais lucrativo usar apenas dinheiro vivo.

    
por 11.02.2011 / 04:25
fonte
25

Como Bruce Schneier disse , tentar tornar os arquivos digitais não copiáveis é como tentar tornar a água não molhada. Ele fala principalmente sobre "DRM", que é aplicado mais ao conteúdo (por exemplo, filmes) do que código, mas do ponto de vista de impedir a cópia do que está no arquivo faz pouca diferença - copiar um arquivo é copiar um arquivo é copiar um arquivo .

    
por 11.02.2011 / 00:02
fonte
17

Existe apenas um "método à prova de erros e à prova de hackers para proteger seu software contra pirataria" :

Software Livre (Como em você pode fazer o que você quiser com ele, até vendê-lo.)

Você não pode roubar o que é dado gratuitamente. Concedido, isso vai estragar alguns modelos de software de empresas de dinossauros, mas a pirataria está indo a lugar nenhum. Venda algo que você não pode copiar, de preferência algo que acompanha o que você deu de graça; sua ajuda, por exemplo.

    
por 29.03.2011 / 12:45
fonte
13

Isso é causado pela combinação de quatro fatores principais:

Em um nível fundamental, muito do que um computador faz copia dados. Por exemplo, para executar um programa, o computador precisa copiá-lo do disco rígido para a memória. Mas uma vez que algo foi copiado na memória, pode ser escrito da memória para outro local. Tendo em mente que a premissa fundamental da "proteção contra pirataria" é fazer um software que não pode ser copiado com sucesso, você pode começar a ver a magnitude do problema.

Em segundo lugar, a solução para este problema difícil atua diretamente contra os interesses tanto dos usuários legítimos quanto daqueles que desejam usar o software sem adquiri-lo legalmente. Alguns desses usuários terão o conhecimento técnico necessário para analisar o código compilado. Agora você tem um adversário competente trabalhando ativamente contra você.

Como esse é um problema difícil, e como produzir softwares corretos também é inerentemente difícil, é muito provável que sua solução contenha pelo menos um bug explorável em algum lugar. Para a maioria dos softwares, isso não importa, mas a maioria dos softwares não está sob ataque ativo por um determinado adversário. Sendo a natureza do software o que é, uma vez que um bug explorável é encontrado, ele pode ser usado para assumir o controle de todo o sistema e desativá-lo. Então, para produzir uma proteção confiável, sua solução para o problema muito difícil deve ser perfeita ou será quebrada.

O quarto fator é a Internet mundial. Isso faz com que o problema de transmitir informações para qualquer um que esteja interessado seja trivial. Isso significa que uma vez que seu sistema imperfeito é quebrado uma vez, ele está quebrado em todos os lugares.

A combinação desses quatro fatores significa que nenhum sistema imperfeito de proteção contra cópia pode ser seguro. (E quando foi a última vez que você viu um software perfeito?) À luz disso, a pergunta não deveria ser "por que o software ainda é facilmente pirateado?", Mas "por que as pessoas ainda estão tentando impedi-lo?" p>     

por 10.02.2011 / 23:37
fonte
9

Uma grande motivação frequentemente negligenciada por trás das soluções SaaS baseadas em nuvem é garantir fluxos de receita.

Acho que é onde o futuro da monetização e proteção IP é realmente.

Ao mudar o foco da venda de soluções locais que devem ser executadas em um ambiente que está fora do controle de fornecedores, eventualmente toda estratégia contra a pirataria de software está fadada ao fracasso. Simplesmente não há como proteger seus ativos quando você os distribui para outra pessoa, já que a proteção precisa ser reforçada em sua máquina.

Ao ter o seu Software hospedado na Nuvem e fornecido como um serviço, você está efetivamente elevando o nível de pirataria a um nível em que seu negócio de macaco.

    
por 10.02.2011 / 23:35
fonte
8

Acho que a resposta que você está procurando é que muitas empresas não se importam mais com a pirataria. Ninguém quer que suas coisas saiam de graça, mas quando você olha para o trade off entre chato e ter que suportar todas as pessoas onde a proteção avançada contra cópia quebrou ou quebrou seus computadores. Algumas empresas se desdobraram para cuidar, mas no final das contas o material ainda está quebrado e os usuários tendem a sair com um gosto ruim na boca.

Não vale a pena a dor (ou a potencial perda de clientes) para tentar implementá-lo para as poucas pessoas que você evitaria invadir de qualquer maneira.

Algumas empresas chegaram a ver os usuários piratas como um recurso. Valve fez um respingo nas notícias com um comentário como esse um tempo atrás, e você não pode me dizer que a Microsoft não saiu do lado vencedor de todas as instalações piratas do Windows na Ásia ao longo dos anos.

Para as microsofts, eles procuram vender grandes blocos de licenças para os pequenos que precisam de cada venda, mas não podem perder clientes ou, em alguns casos, até mesmo comprar os rootkits e outras porcarias que as pessoas usam para tentar construir tipo de lock-in.

Você não pode fazer uma pirataria perfeita, mas não há muitas pessoas altamente motivadas para tentar mais.

    
por 10.02.2011 / 23:57
fonte
7

O que quer que você construa em seu software, ele deve ser compreensível pela máquina que o executará. Como o software ficou mais sofisticado, o software para entender outros softwares também ficou mais sofisticado. Então, se esse software é compreensível pela máquina, é compreensível (e modificável) pelo pirata.

Por exemplo, em princípio, você pode criar criptografia strong em seu executável, para que a maioria do software fique ilegível. O problema então é que as máquinas dos usuários finais não podem mais ler esse código do que os piratas. Para resolver isso, o seu software deve incluir tanto o algoritmo de descriptografia quanto a chave - tanto no claro, quanto, pelo menos, escondido atrás de uma criptografia mais fraca (com a descriptografia para que isso fique claro).

IIRC, os melhores desmontadores podem avisá-lo sobre o código criptografado e ajudá-lo a capturar e analisar o que está escondido atrás da criptografia. Se isso parecer que os escritores de desmontagem são maus, considere que os desenvolvedores de segurança precisam disso todos os dias, para investigar vírus e outros malwares que também ocultam códigos criptografados.

Há provavelmente apenas duas soluções para isso. Uma é a plataforma fechada que bloqueia seus próprios usuários. Como o Playstation 3 mostra, isso não é necessariamente uma garantia. De qualquer forma, há uma grande classe de usuários não-malvados que não gostarão dela.

A outra é que seu software seja executado em servidores sob seu controle.

    
por 10.02.2011 / 23:58
fonte
5

Antipirataria automatizada é uma contradição lógica.

Os usuários legítimos são confiáveis pelos fornecedores.

Qualquer anti-pirataria "automatizada" procura automatizar a relação de confiança.

Como isso pode funcionar? Como quaisquer meios podem chegar a "confiar" em uma pessoa?

A confiança é um relacionamento inerentemente humano. Qualquer mecanismo técnico pode sempre ser subvertido por pessoas que parecem confiáveis, mas não são.

Aliás, as pessoas também perdem sua confiança o tempo todo.

    
por 10.02.2011 / 23:23
fonte
5

Uma das razões, eu acho, é que as mesmas pessoas que sabem escrever segurança decente provavelmente são hackers.

Além disso, tentar se proteger contra a pirataria é realmente muito difícil. Como seu computador deve executar essa proteção, ele pode ser interceptado em qualquer ponto (memória / execução / tráfego de rede / ...). É aí que entra a ofuscação, tentando tornar impossível entender o que está acontecendo.

Acredito que o poder em números de série e chaves de ativação reside no fato de que você pode pelo menos ver quem está pirateando e tentar rastreá-lo / bloqueá-lo dessa maneira. Eu acredito que isso é parte da razão pela qual tantos serviços são serviços online hoje em dia. (Steam, atualização do Windows, etc ...) De repente, torna-se muito mais difícil de decifrar, ... mas novamente ainda é possível.

Onde você tem um produto de sucesso, você tem mais pessoas tentando quebrá-lo, então as chances de piratear são maiores.

    
por 10.02.2011 / 23:32
fonte
5
Tecnicamente falando, o software ainda pode ser pirateado porque a maior parte da TI ainda opera em ambientes de software e hardware projetados há milênios atrás, quando até mesmo a noção de pirataria de software não existia.

Essas fundações precisam ser mantidas para compatibilidade com versões anteriores, aumentando ainda mais nossa dependência delas.

Se tivéssemos que redesenhar ambientes de hardware / software a partir do zero, com o objetivo de combater a pirataria, poderíamos adicionar melhorias significativas.

Veja você mesmo:

  • O mesmo sistema operacional aberto com todos os seus componentes totalmente expostos e, literalmente, oferecendo-se para manipulação

  • A mesma arquitetura de computador aberta que usará qualquer software que você lançar nele

  • O modelo de distribuição de software ainda é baseado em arquivos não criptografados que são entregues ao usuário

O mesmo problema existe com a Internet e sua baixa segurança, muitas vulnerabilidades, abertura para manipulação, spam e ataques distribuídos. Faríamos isso muito melhor na segunda vez, se pudéssemos refazer a Internet. Infelizmente, temos que ficar com o que temos para manter a compatibilidade será a massa de aplicativos e serviços existentes.

Por enquanto, parece que a melhor maneira de proteger o software contra pirataria é introduzir mudanças no nível do hardware:

  • Feche o hardware e transforme-o em uma caixa preta. Tornar impossível para um usuário mexer com o hardware e seu software. A abordagem aqui é provavelmente criptografar tudo no nível do chip para que suas interfaces externas sejam totalmente criptografadas. Um bom exemplo disso é a criptografia HDCP para a interface de mídia HDMI - um fluxo de mídia é criptografado antes de sair da caixa do player e descriptografado dentro de uma unidade de exibição para que não haja fluxo de dados aberto para interceptar.

  • Feche os canais de distribuição. Faça com que todas as mídias externas e canais on-line sejam totalmente criptografados, de forma que somente o hardware certificado possa descriptografar o fluxo de dados.

É possível realizar ambos, mas isso transformará todo o ecossistema em uma prisão. Muito provavelmente, um movimento paralelo / subterrâneo de hardware / software livre surgirá, criando um ecossistema paralelo.

    
por 10.02.2011 / 23:39
fonte
4

Dado o esforço, a proteção de cópia quase perfeita provavelmente poderia ser alcançada ... mas não valeria o custo . Vários blogs notáveis discutiram o assunto excientemente : especificamente, o conceito de uma taxa de pirataria ideal .

As medidas antipirataria têm vários custos: o custo direto de implementá-las, mas também os custos indiretos: por exemplo, as medidas geralmente causam transtornos, afastando os usuários.

A pirataria tem custos, mas muitas vezes não é muito alta. Pode também ter alguns benefícios, por ex. na expansão da base de usuários. Como escreveu um comentarista no post Coding Horror: “Agora que sou um desenvolvedor e realmente tenho dinheiro para gastar com software, tenho a tendência de comprar os programas que piratei em meus tempos de faculdade porque já estou familiarizado com eles. "

Portanto, é importante ter alguma proteção antipirataria para garantir que as vendas legítimas não sejam prejudicadas muito; mas além de um certo ponto, não há incentivo econômico para melhorar as medidas antipirataria.

    
por 11.02.2011 / 04:26
fonte
4

Todas as respostas parecem ser técnicas, mas não é um problema técnico, é social.

O software é fácil de copiar e difícil de escrever. Se não fosse fácil copiar, não nos incomodaríamos. A maioria dos programas é de apenas um custo para escrever como um off, e os menores dependem de programas maiores para serem executados. Se nós também fizermos programas para copiar, então estamos colocando nossos selfs em desvantagem competitiva. Sim, você pode maximizar o lucro a curto prazo, desmerecendo a cópia. Mas no final você perderá participação de mercado para quem puder minimizar o custo para copiar, o custo para escrever e o custo de uso.

O Software Livre minimiza um destes custos custo-para-copiar e tem uma redução significativa no outro custo-para-escrever e custo-para-uso.

custo para copiar

Eu posso instalar o Ubuntu Linux quase no mesmo tempo e esforço que o windows 7 [o windows 7 precisa que eu adicione uma chave de licença, tornando-o um pouco mais difícil].

O Windows 7 custará £ 100, mas para o Ubuntu eu posso baixá-lo, comprá-lo por £ 6 na loja de revistas (com uma revista grátis lançada), encomendar por correio ou pedir um cd de um amigo.

custo-para-escrever

Software Livre pode ser modificado, isso reduz o custo. Eu não tenho que começar do começo.

custo para uso

Com o Windows 7 não recebo aplicativos, exceto um navegador da web, com o Ubuntu eu recebo todos os aplicativos que posso immaginar, muitos instalam com o sistema operacional.

Eu não preciso de um antivírus no Linux.

Eu posso executar o Linux em hardware mais antigo.

Com Software Livre, ninguém está forçando a atualização, fazendo versões incompatíveis de suas ferramentas de escritório.

    
por 29.03.2011 / 13:24
fonte
3

Em um mundo onde os computadores são similares o suficiente para poder baixar o software da rede e executá-lo imediatamente, é muito difícil identificar alguma coisa que permita determinar se este computador está funcionando corretamente. mas esse computador não é.

Eventualmente, tudo se resume a você ter algo que ninguém mais tem. Este pode ser um número de série pelo qual você pagou, um dongle de hardware ou um dvd com erros físicos em um determinado local. O software então procura aquela coisa específica e se recusa a executar se não estiver lá. Para números de série, você também precisa ter um local na Internet onde o software possa validar se o número de série é aceitável para a nave-mãe.

Infelizmente, hackers são muito bons em remover cirurgicamente tais verificações, então o código precisa ser muito complicado e difícil de modificar para tornar isso difícil, mas com dedicação suficiente, um ser humano ainda pode fazer isso.

Assim, os produtos de software mais baratos vão para o número de série com uma nave-mãe na internet, validando-o, além de uma política de licença que os cashcoves coorporativos são obrigados a seguir. Os produtos caros costumam usar proteção dongle.

    
por 11.02.2011 / 01:00
fonte
2

Existem diferentes tipos de software que possuem proteções.

Quando você toma o exemplo do Windows 7, é óbvio que a resposta é não, simplesmente porque a arquitetura do PC e a programação do PC são bem conhecidas.

Mas se você considerar outros hardwares, como o PS3, o PSP e o iPhone, é totalmente diferente, principalmente porque o fabricante tem o controle de tudo, não apenas do software: eles podem fazer com que o hardware rode apenas software genuíno. e isso requer boas habilidades de hackers para quebrá-las.

Você deve dar uma olhada no projeto microsoft longhorn no passado: no momento em que eles quisessem implementar chips para verificar se o seu software era genuíno ou não. Teoricamente, teria sido muito difícil hackear, mas eles não fizeram isso porque teria sido muito intrusivo.

    
por 11.02.2011 / 14:19
fonte

Tags