Torrents: ¿Puedo proteger mi software enviando bytes incorrectos?


15

Es un tema que interesa a todos. ¿Cómo puedo proteger mi software contra el robo, la piratería y la ingeniería inversa?

Estaba pensando: hacer todo lo posible para proteger el programa de ingeniería inversa. Entonces la gente lo romperá y sembrará con torrentes . Luego descargo mi propio software roto con un torrent con mi propio software de torrent . Mi propio software torrent tiene que inicializar datos incorrectos (bytes). Por supuesto, tiene que sembrar bytes críticos.

Entonces, las personas que quieren robar mi software descargan mis bytes incorrectos. Solo esos bytes que son importantes para el inicio, guardar y cargar datos, etc. Así que si el ladrón me descarga (y lo almacena más adelante), el ladrón no puede hacer nada con él, porque está roto.

¿Es relevante esta idea? Tal vez, ¿los buenos clientes de torrent comprueban hashes de más pares para verificar si los paquetes (que contienen mis bytes rotos) que quiero sembrar son correctos o no?


3
He leído que RIAA ya ha hecho esto para archivos de música.

26
estás perdiendo el tiempo, no estás perdiendo dinero de los ladrones, por definición, para empezar, nunca comprarían tu software.

27
Descartando el hecho de que no funcionaría debido a las comprobaciones de CRC, etc., sugeriría que podría ser una mala idea por otra razón. Las personas que roban el software probablemente no lo pagarán de todos modos, pero si no funciona, podrían decirles a sus amigos o jefes que su software es de mala calidad para que tampoco lo compren.
ho1

99
En la mayoría de los casos, una copia pirateada no es una venta perdida.

13
Hagas lo que hagas, asegúrate de no dificultar que los clientes que pagan usen tu software
usuario6863

Respuestas:


42

Su aplicación de torrents (los piratas) simplemente descartará los bytes que siembras como malos debido a las comprobaciones de CRC. Entonces será expulsado por esa IP por ser un delincuente reincidente.


¿Qué CRC utiliza bit torrent? ¿Se podría generar un paquete de basura que tuviera el CRC correcto? Hay aplicaciones para hacer esto para MD5 y estoy seguro de que un verdadero CRC sería igual de fácil.
deft_code

16
Podría generarse, en teoría ; sin embargo, el protocolo BitTorrent usa hash SHA-1; Es más difícil encontrar colisiones hash (que es lo que buscamos aquí) en SHA-1 que en MD5. Prácticamente, no es factible en la actualidad.
Piskvor

@Caspin En esencia, no. Tomaría al menos una semana en condiciones ideales, una computadora realmente rápida (supercomputadora) y un equipo de criptógrafos para romper el hash CRC para un solo archivo. Buena suerte con eso.
Evan Plaice

9

P. ¿Puedo proteger mi software enviando bytes incorrectos?
R. No, de todos modos puede ser pirateado, especialmente si alguien consigue una copia legítima.

P. ¿Cómo puedo proteger mi software contra el robo, la piratería y la ingeniería inversa?
R. Véndelo por un precio justo, esto socavará los intentos de pirateo.


Ver plagiarismtoday.com/2010/05/26/… para el punto 2. Piratas piratas. Un mejor software no te ayudará.
Paul Nathan

1
@Paul: Hay muchas personas que no piratean. Hay muchas personas que se niegan a pagar. Pero también hay algunas personas que están más dispuestas a pagar por algo si se ofrece por un precio más bajo que uno más alto. Esas son las personas que se verían afectadas por un precio más bajo. (Aunque no querrás ponerle un precio demasiado bajo, supongo).

7

Sugeriría abordar el problema desde el otro extremo. Incruste un código de identificación único en cada copia de su software que entregue a sus clientes. En caso de que alguien esté sembrando, al menos puede identificar quién lo hizo y tomar medidas legales.


55
Solo si pueden encontrarlo.

2
@Developer Art: si tienen acceso a varias copias del software, pueden hacer comparaciones binarias para descubrir cómo difieren exactamente las copias entre sí y dónde difieren, por lo que a menos que establezca un camino para las partes de el identificador que se ofuscará de manera aleatoria podría no ser tan difícil de entender.

2
No se hace con una sola variable. Puede difundir la información en todos los módulos de su aplicación, fingiendo que realmente la está utilizando para algunos fines. Es algo artístico cómo hacer que sea discreto para los ojos curiosos. Tal vez haga una pregunta por separado sobre las técnicas para lograr eso. Sería interesante

18
Puede verificar diferentes compilaciones para saber si la marca está optimizada o no. ¡Pero también los usuarios! De hecho, ningún cracker profesional carga cosas sin obtener primero varias copias y compararlas, porque quieren proteger sus fuentes. Al final, estás luchando contra molinos de viento; es mucho mejor gastar el esfuerzo en escribir un excelente software, que alienta a los usuarios a pagarle, que en detener la copia, que simplemente los alienta a esforzarse más para no pagar.

2
Estás luchando una batalla cuesta arriba. Cualquiera que sea su esquema de cifrado / contraseña, es probable que las organizaciones de crackers lo hayan visto y sepan cómo romperlo. Tienen años de experiencia y programadores mucho mejores que tú. Lo siento.
Evan Plaice

7

¿Funciona DRM? No. ¿Funciona la configuración de cosas malas de BitTorrent / EDonkey2000? No. ¿A alguien le importa piratear tu pequeña aplicación? No. Nadie ha oído hablar de eso.


"Nadie ha oído hablar de eso". Este es un buen punto ...

Si alguien está dispuesto a piratearlo, entonces vale la pena protegerlo.

1
@ Ben313: una frase mejor sería "Si alguien está dispuesto a comprarlo, entonces vale la pena protegerlo".

1
A menos que haya escrito algo mejor que AutoCad, MS Word, etc., vale menos la pena proteger su software que otras personas (Microsoft, AutoDesk) que tienen 100 personas más inteligentes trabajando para ellos, que usted (un único desarrollador), y aún así No he construido un DRM que funcione.
Warren P

4

Bittorent y la mayoría de los otros buenos programas p2p se protegen de este tipo de manipulación mediante el uso de hashes de archivos, por ejemplo, md5.


1
El algoritmo de hash es SHA-1, de acuerdo con Wikipedia: en.wikipedia.org/wiki/… - un poco más seguro que MD5
Piskvor

2

Es un tema que interesa a todos. ¿Cómo puedo proteger mi software contra el robo, la piratería y la ingeniería inversa?

La única forma (que se me ocurre) de hacerlo es ejecutar el software completamente en su servidor y no tener un código útil en la aplicación del cliente, porque si no puede obtenerlo, no puede (fácilmente) descifrarlo. De esta manera, tendrá control sobre las cuentas y sabrá quién usa su aplicación. Sin embargo, los usuarios no serán felices. Y si solo ejecuta código relacionado con la protección contra copia en su servidor, alguien lo pirateará escribiendo el emulador del servidor O identificará el código y omitirá la protección por completo. Como sucedió con el nuevo esquema de protección de copia de Ubisoft.

Mantener el software en el servidor no es completamente a prueba de balas. En lugar de descifrar el software, alguien comenzará a atacar su servidor para entrar y obtener software. Y siempre hay agujeros de seguridad de "ingeniería social". "mantener todo en el servidor" funcionará mejor si su software no puede ejecutarse en una máquina normal (es decir, requiere una supercomputadora o un clúster de computadora). Un buen ejemplo de esto es EVE Online: a diferencia de WOW y Lineage, no conozco ningún emulador de servidor, porque requiere un clúster de computadora para ejecutar el servidor.

Mi propio software torrent tiene que sembrar datos incorrectos (bytes). Por supuesto, tiene que sembrar bytes críticos.

  1. Si intenta "secuestrar" el torrent existente, cualquier cliente cuerdo informará errores de CRC e ignorará a su cliente. Todo el software p2p usa hashes.
  2. Si carga un torrent "incorrecto", otro usuario informará que su torrent es falso, por lo que nadie lo descargará.

ladrón

"Pirata", porque se llama infracción de derechos de autor.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.