La seguridad de los archivos dll en una aplicación Cliente / Servidor en .net [cerrado]

0

Voy a escribir una aplicación Cliente / Servidor . Hay algunos conceptos ambiguos a los que no pude responder después de muchas horas de búsqueda.

Como todos sabemos, una de las principales advertencias del marco .Net es que los archivos DLL se pueden descompilar y realizar ingeniería inversa en la máquina del cliente.

Ahora mi pregunta es ¿puedo poner algunos de los archivos DLL requeridos por el Cliente en el Servidor?

Y si es cierto, ¿será completamente seguro o aún estará abierto a ser manipulado / descompilado por los crackers?

    
pregunta Vahid 06.05.2015 - 11:15
fuente

1 respuesta

1

Como se mencionó en un comentario anterior, hay dos estrategias básicas para proteger la IP en su código fuente:

  1. Haga que su código fuente sea más difícil de entender. Esto generalmente se hace a través de ofuscación . Los ofuscadores intentan hacer que el código fuente sea difícil de revertir la compilación y / o que sea difícil de entender una vez que se hayan compilado al revés. No soy un experto en herramientas de ofuscación, así que todo lo que puedo hacer es indicarle esta lista y sugerirle que investigue y Post preguntas de seguimiento si surgen. La ofuscación es "fácil" en el sentido de que obtienes la herramienta, posiblemente pagándola y luego la incorporas en tu proceso de construcción.
  2. Mantener su código en el servidor. Esto implica mover parte de la lógica de su aplicación desde el cliente al servidor. Hay muchas razones para mover código al servidor. La protección de la propiedad intelectual es uno. Tener una lógica que requiera que el hardware del servidor sea otro (común para las soluciones móviles con bajo poder de procesamiento). Esto es más difícil de implementar que la ofuscación, ya que afecta a la arquitectura de su aplicación. La nueva arquitectura tendría al cliente, en lugar de realizar una llamada a la función local, haciendo un RPC al servidor para realizar algunos cálculos . SOAP puede ser la tecnología más común, pero hay muchas otras. La tecnología exacta dependerá de muchos factores, incluidas las plataformas del cliente y del servidor (por ejemplo: es una aplicación nativa .NET, una aplicación de navegador que accede a un servidor .NET, una aplicación móvil, etc.) y sus habilidades de codificación.

Espero que esto ayude.

    
respondido por el Neil Smithline 06.05.2015 - 21:02
fuente

Lea otras preguntas en las etiquetas