[C con Clase] Protección de datos

Samuel Porras samuelporras en gmail.com
Mar Dic 30 22:05:23 CET 2008


Gracias Yan, a lo que me refería con una base de datos, es una base de 
datos instalada en un servidor (concretamente Mysql) y que dicho 
servidor se encarge de mostrar lo que debe mostrar, tener una base de 
datos en el mismo ordenador en que esta el cliente instalado es un 
suicidio, no creo que sea fácil intentar acceder a una base de datos de 
un servidor dedicado siempre y cuando dicho servidor este bien protegido 
y la contraseña no sea de las tipicas, que para intentar acceder 
tendrian que usar fuerza bruta y tal.
También existe la posibilidad de envenenar variables pero si el servidor 
como dijo programante siempre sabe todo de todos, al envenenar la 
variable el servidor por ejemplo podria sacarlo y los cambios no 
tendrian efecto.
La unica duda que tenia, era con el tema de private, protected y public, 
yo creía que una vez compilado éstas tendrían algún tipo de protección, 
pero como ya has dicho Yan, uno con suficientes conocimientos de 
ensamblador podría modificarlo, cosa que si se hace a nivel servidor no 
podría, y como dijo Programante, es solo a nivel de programación que 
estan protegidas, una vez compilado habría que ingeniarselas de otra manera.

Grácias por tu consejo Yan, Felices fiestas y prospero año nuevo.
Grácias por recordarme los métodos de encriptación David Fire, te juro 
que ni se me pasó por la cabeza... ya me vale.

PD: También te haré caso en lo de encriptar las variables que como dijo 
David Fire, esta el CRC, HASH, MD5, y entre eso y la protección a nivel 
servidor yo creo que sería suficiente.

Ahora si, prospero año nuevo y felices fiestas a toda la lista ^^.
Grácias por todo y un cordial saludo.

Yan escribió:
> Hola Arkiant, te contesto:
>
> A> se que en las clases esta el protected y el 
> A> private, pero eso no quita que alguien con un editor hexadecimal o 
> A> cualquier programa pueda modificar un exe o una dll, no?
>
> Efectivamente: el protected y el private protegen durante la escritura de código fuente, no frente a un acceso al programa binario.
>
> A> Sería una buena opción usar una base de datos con esos datos para todos 
> A> los usuarios del programa?
> No me parece que reunir los datos en una bbdd sirva como protección en si mismo, sin otras medidas de seguridad. Al contrario, si es una bbdd estándar resulta mucho más fácil encontrar los campos que puede interesar adulterar.
>
> A> Usando campos private o protected ( son dos cosas diferentes pero tienen 
> A> mucha mas proteccion que un campo public ) estarán esas formulas 
> A> protegidas de curiosos?
> Como he dicho antes, me parece que no.
>
> Como idea general, cuando intentas proteger tu código de intrusos, lo primero sería ver de que tipo de objeto quieres salvaguardar: 
> - variables que están cambiando durante la ejecución del programa. Éstas están en memoria RAM y para acceder a ellas el intruso seguramente tendrá que modificar tu código ejecutable, cosa algo difícil, pero posible.
> - Datos almacenados en fichero en disco. Éste es un punto fácilmente atacable (la base de datos, por ejemplo).
> - Constantes almacenadas en el propio código ejecutable. También son relativamente fáciles de localizar.
>
> También has de estimar la habilidad y dedicación que podría tener el intruso. Es inútil esforzarse con protecciones complejas cuando el intruso tiene una capacidad muy limitada de ataque o motivación insuficiente (¿consigue dinero si lo logra?).
>
> El primer paso para proteger tus variables o constantes, es encriptarlas ligeramente: hacer un XOR con una constante, o partir las variables en 2 trozos.
> Un segundo paso sería hacerlas redundantes: p.ej. el valor de hp puede estar almacenado en un lugar y en otro debe estar el cuadrado de hp. Cada vez que escribes hp, también has de modificar su cuadrado. Cada vez que lo lees. compruebas que hp y su cuadrado se corresponden; si no corresponden entras en una rutina de alarma o destrucción o lo que te parezca, pero que no sea muy inmediato, para no dar pistas al atacante.
> Jugando con estas ideas de base: encriptación y redundancia puedes conseguir niveles de protección adecuados frente a un intruso no profesional.
>
> Si te vas a enfrentar a un tipo armado con un desensamblador, que sabe lo que hace y con mucho tiempo y ganas, todo lo que te he dicho no te va a servir. Deberías, entonces, recurrir a herramientas de encriptado y protección profesional, que yo apenas conozco.
>
> Espero haberte sido algo útil,
> Yan.
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>   




Más información sobre la lista de distribución Cconclase