Pregunta

Sé que ya hay preguntas similares sobre SO. Pero mi pregunta es más teórica.

Me pregunto, ¿es posible diseñar un sistema de prueba infalible? Por infalible me refiero a un sistema de este tipo que no se puede descifrar incluso si un cracker conoce el algoritmo de dicho sistema.

Lo siento si no es una pregunta de programación.

Editar: creo que debería hacer mi pregunta más práctica. Estoy preguntando sobre un sistema completo, no una aplicación independiente. El sistema consta de una PC con sistema operativo Linux y algunos hardware conectados a él. ¿Tal vez pueda usar un cifrado HDD?

¿Fue útil?

Solución

Probablemente la única forma es un "software como servicio" basado en Internet. solicitud. Si no proporciona acceso, no están utilizando el software. Si se trata de una aplicación basada en escritorio, entonces alguna pieza clave de funcionalidad aún tendría que estar en un servidor en línea en algún lugar.

Si el pirata informático tiene la aplicación completa en su máquina local, se puede realizar ingeniería inversa y "descifrar". de alguna manera La única forma de superar esto es asegurar que alguna parte de la funcionalidad nunca esté en su máquina.

Otros consejos

La única forma (teórica) de tener un software a prueba de grietas es tener un sistema completamente cerrado. Si controla todo, desde el hardware hasta el sistema operativo, las aplicaciones y las herramientas de desarrollo, podría evitar la manipulación.

Note cómo dije que esto era teórico. Inevitablemente, encontrará un hacker de hardware que descubrirá una forma de modificar el hardware (consulte modchips ). Desde allí, pueden cargar el software que quieran y modificar el software que ya está allí.

El mismo modelo que se aplica a la seguridad física (cajas fuertes, bóvedas, etc.) se aplica al software. El punto es hacer que robar / copiar los bienes sea más costoso que obtenerlos por medios legítimos. Nunca puede crear un sistema infalible, pero puede evitar fácilmente que los niños de script y los piratas informáticos quiebren su producto. Los profesionales, por otro lado, viven para romper. Encontrarán un camino.

Puede diseñar su aplicación para que dependa de un servidor remoto sobre el cual cualquier persona que no sea usted tenga control.

No. Puede hacerlo muy difícil, pero su pregunta equivale a "¿cómo puedo dejar que alguien ejecute el código pero no dejar que lo ejecuten?"

Por ejemplo, puede omitir una parte pequeña pero clave del código y requerir que ese código se descargue de un servidor que controle. Esto le permite rastrear la actividad de prueba y cerrar usuarios específicos. Sin embargo, una vez que reciben el código, pueden capturarlo y crear una versión sin gravámenes de su producto con suficiente trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top