Torrents: Posso proteger meu software enviando bytes incorretos?

15

É um tópico que interessa a todos. Como posso proteger meu software contra roubo, hackers e engenharia reversa?

Eu estava pensando: Faça o possível para proteger o programa de engenharia reversa. Então as pessoas o quebram e o espalham com torrents . Então, baixo meu próprio software com um torrent com meu próprio software de torrent . Meu próprio software de torrent precisa semear dados incorretos (bytes). Claro que tem que propagar bytes críticos.

Então, as pessoas que querem roubar meu software baixam meus bytes errados. Apenas os bytes importantes para iniciar, salvar e carregar dados, etc ... Portanto, se o ladrão baixar de mim (e propagá-lo mais tarde), o ladrão não pode fazer nada com ele, porque está quebrado.

Essa ideia é relevante? Talvez, bons clientes de torrent verifiquem hashes de mais pares para verificar se os pacotes (contendo meus bytes quebrados) que eu quero propagar estão corretos ou não?

Martijn Courteaux
fonte
3
Eu li que a RIAA já fez isso com arquivos de música.
26
você está desperdiçando seu tempo, não está perdendo dinheiro com ladrões, por definição eles nunca comprariam seu software para começar.
27
Descartando o fato de que não funcionaria devido a verificações de CRC, etc, sugiro que pode ser uma má idéia por outro motivo. As pessoas que roubam o software provavelmente não pagarão por isso de qualquer maneira, mas se não funcionar, poderão dizer a seus amigos ou chefes que o seu software é de má qualidade, para que também não o comprem.
HO1
9
Na maioria dos casos, uma cópia pirata não é uma venda perdida.
13
Faça o que fizer, certifique-se de não tornar mais difícil para pagar os clientes a usar o seu software
user6863

Respostas:

42

Seu aplicativo de torrent (os piratas) simplesmente descartará os bytes que você está semeando devido a verificações de CRC. Então você será banido por esse IP por ser um reincidente.

graham.reeds
fonte
Qual CRC usa o bit torrent? Poderia ser gerado um pacote de lixo com o CRC correto? Existem aplicativos para fazer isso no MD5 e tenho certeza de que um verdadeiro CRC seria igualmente fácil.
Deft_code 9/06/10
16
Poderia ser gerado, em teoria ; no entanto, o protocolo BitTorrent usa hash SHA-1; é mais difícil encontrar colisões de hash (que é o que procuramos aqui) no SHA-1 do que no MD5. Praticamente, não é viável no momento.
Piskvor
@ Caspin Em essência, não. Levaria pelo menos uma semana em condições ideais, um computador muito rápido (super computador) e uma equipe de criptografadores para quebrar o hash do CRC para um único arquivo. Boa sorte com isso.
Evan Plaice
9

Q. Posso proteger meu software enviando bytes incorretos?
R. Não, ele pode ser hackeado de qualquer maneira, especialmente se alguém colocar as mãos em uma cópia legítima.

P. Como posso proteger meu software contra roubo, hackers e engenharia reversa?
A. Vendê-lo por um preço justo, isso prejudicará as tentativas de invasão.


fonte
Ver plagiarismtoday.com/2010/05/26/… para o ponto 2. Piratas piratas. Um software melhor não o ajudará.
Paul Nathan
1
@Paul: Tem muita gente que não pirata. Há muitas pessoas que se recusam a pagar. Mas também existem pessoas que estão mais dispostas a pagar por algo, se for oferecido por um preço mais baixo do que por um preço mais alto. Essas são as pessoas que seriam afetadas por um preço mais baixo. (Embora você não gostaria de preço é muito baixo, suponho.)
7

Eu sugiro abordar o problema do outro lado. Incorpore um código de identificação exclusivo em cada cópia do seu software que você fornecer aos seus clientes. Caso alguém esteja semeando, você pode pelo menos identificar quem fez isso e tomar ações legais.


fonte
5
Somente se eles puderem encontrá-lo.
2
@ Art Developer: Se eles tiverem acesso a várias cópias do software, poderão fazer comparações binárias para descobrir como exatamente as cópias diferem umas das outras e onde diferem, portanto, a menos que você configure um caminho para as partes do o identificador a ser ofuscado de maneira aleatória, pode não ser tão difícil de descobrir.
2
Isso não é feito com uma única variável. Você pode espalhar as informações por todos os módulos do seu aplicativo, fingindo que realmente as está usando para alguns fins. É um pouco arte como torná-lo discreto para olhares indiscretos. Talvez faça uma pergunta separada sobre técnicas para conseguir isso. Seria interessante.
18
Você pode verificar diferentes compilações para saber se a marca está otimizada ou não. Mas os usuários também podem! De fato, nenhum cracker profissional carrega coisas sem primeiro obter várias cópias e compará-las, porque elas querem proteger suas fontes. No final, você está lutando contra moinhos de vento; É muito melhor gastar o esforço em escrever ótimos softwares, que incentivam os usuários a pagar, do que em interromper a cópia, o que apenas os incentiva a se esforçar mais para não pagar.
2
Você está travando uma batalha difícil. Qualquer que seja o seu esquema de criptografia / senha, as chances são de que as organizações de crackers o viram e sabem como quebrá-lo. Eles têm anos de experiência e programadores muito melhores que você. Desculpe.
Evan Solha
7

DRM funciona? Não. A configuração de coisas ruins do BitTorrent / EDonkey2000 funciona? Não. Alguém se preocupa em piratear seu pequeno aplicativo? Não. Ninguém nunca ouviu falar disso.

Warren P
fonte
"Ninguém nunca ouviu falar disso." Este é um bom ponto de ...
Se alguém estiver disposto a piratear, vale a pena protegê-lo.
1
@ Ben313: uma frase melhor seria "Se alguém estiver disposto a comprá-lo, vale a pena protegê-lo".
1
A menos que você tenha escrito algo melhor que o AutoCad, o MS Word etc., seu software vale menos a pena proteger do que as outras pessoas (Microsoft, AutoDesk) que têm 100 pessoas mais inteligentes trabalhando para eles do que você (um desenvolvedor único), e ainda assim elas não criaram um DRM que funcione.
Warren P
4

O bittorent e a maioria dos outros softwares p2p protegem-se de tais tipos de manipulação usando hashes de arquivo, por exemplo, md5.

cody
fonte
1
O algoritmo de hash é SHA-1, de acordo com Wikipedia: en.wikipedia.org/wiki/... - um pouco mais seguro do que MD5
Piskvor
2

Esse é um tópico que todo mundo interessa. Como posso proteger meu software contra roubo, hackers e engenharia reversa?

A única maneira (em que consigo pensar) de fazer isso é executar o software completamente em seu servidor e não ter código útil no aplicativo cliente - porque se você não pode obtê-lo, não pode (facilmente) decifrá-lo. Dessa forma, você terá controle sobre as contas e saberá quem usa seu aplicativo. Os usuários não serão felizes, no entanto. E se você executar apenas o código relacionado à proteção contra cópia no seu servidor, alguém o invadirá escrevendo o emulador do servidor OU identificará o código e ignorará completamente a proteção. Como aconteceu com o novo esquema de proteção contra cópia da Ubisoft.

Manter o software no servidor não é completamente à prova de balas. Em vez de quebrar o software, alguém começará a atacar o servidor para invadir e obter software. E sempre há brechas de segurança na "engenharia social". "manter tudo no servidor" funcionará melhor se o seu software não puder ser executado em uma máquina normal (isto é, requer um supercomputador ou um cluster de computadores). Um bom exemplo disso é o EVE Online - ao contrário do WOW e do Lineage, não há emuladores de servidor que eu conheça, porque requer cluster de computadores para executar o servidor.

Meu próprio software de torrent precisa semear dados incorretos (bytes). Claro que tem que propagar bytes críticos.

  1. Se você tentar "seqüestrar" torrent existente, qualquer cliente sensato reportará erros de CRC e ignorará seu cliente. Todo software p2p usa hashes.
  2. Se você enviar um torrent "errado", outro usuário reportará seu torrent como falso, para que ninguém faça o download.

ladrão

"Pirata", porque é chamado de violação de direitos autorais.

SigTerm
fonte