proteccion access

12- Protección Completa ¿Existe ?

 

 

Autor: Javier Gómez ("javier.mil")

 
La respuestas es: No !
No existe la protección completa !!

Cuando iniciamos el proceso de proteger nuestro programa recién terminado, casi siempre falta o fallara algo,.....  Entonces,.... ¿ para que proteger Programas hechos en Access ????, pues bien,...........
Lo explicare con un ejemplo: (aunque No estoy seguro que sea el mejor ejemplo)
Proteger un programa informático en general y mas concretamente un programa de Access en particular, es parecido a proteger tu propia casa.
Si la casa donde vives,.... ¿Como?,......si me refiero a que si crees que unos ladrones pueden entrar a tu propia casa , pues entonces,..........
 ¿ para que cierras la puerta con llave ? , ¿ para que bajas las ventanas por la noche ? , ¿ para que pones alarma ? etc... etc....
Si haces todas esas cosas en tu propia casa será seguramente, porque crees que se lo vas ha poner mas difícil a los intrusos, para poder entrar. Pues bien, proteger un programa seria algo parecido a proteger tu propia casa...........


Pero, antes de proteger, deberías pensar contra quien o quienes vas a proteger, es decir:  quienes van a ser los usuarios habituales de tu aplicación. Algunas veces, se sabe de antemano que usuarios van a usar tu aplicación , pero otras muchas veces No es posible saberlo a priori , especialmente si se distribuye libremente la aplicación.


Sea quien sea ese usuario,............ deberás pensar siempre que es lo que te interesa proteger si los "datos" o el "programa" u ambas cosas.
Para eso, deberás tener en cuenta la versión de Access puesto que, a partir de Access 2007 la seguridad de Access y sus métodos de "auto-protección" cambian bastante.


Vamos a ver los métodos de protección mas habituales:
 
1- Protección Base con password de entrada:
Permite limitar quien puede usar tu aplicación poniendo un password de entrada.
El password de entrada o protección de entrada era poco segura hasta Access 2003, pero a partir de versión 2007 el nivel de protección aumenta, al cambiarse el algoritmo de encriptación. Siendo aconsejable usar un password largo, de mas de 8 caracteres y hasta un máximo de 14 caracteres alfanuméricos y/o caracteres No imprimibles.



2- Protección visualización Datos (tablas) externamente:
Para proteger los datos de la tablas de Access, existen multitud de herramientas que van desde lo mas light hasta de lo mas sofisticado: Por ejemplo Crear Grupos de Trabajo y dar los permisos a los usuarios de forma eficiente claro. Este sistema aunque parece simple, es bastante seguro para atacantes moderados, creo que poco utilizado para la protección de datos, por la mayoría de programadores. También sirve para evitar la importación de tablas , dar permisos de lectura , escritura etc...etc......
También hay otros métodos mas disuasorios como ejemplo Convertir las tablas en invisibles (ver DEMO 17 de mi WEB) , o también mas complejos puedes convertir los datos de una tabla en  datos invisibles (ver DEMO 21 de mi WEB) , Aunque alguien se llevase los datos (tabla) No vería nada pero,............ si realmente quieres proteger tus datos de forma eficiente, lo mejor es utilizar algún método de encriptación potente. Existen muchos en el mercado (mira por ejemplo la explicación en mi Web apartado >> articulos >> Encriptación.

También en mi pagina podrás encontrar la encriptación AES ver DEMO 43 de quizás este ejemplo sea el sistema mas potente de encriptación hasta la fecha.  
Otra posibilidad sería crearte tu propio sistema de encriptación (quizás seria mas frágil) pero de esta manera evitarías tener en el mercado de Internet algún me todo reversible. Normalmente los Hackers no suelen perder el tiempo en hackear programas poco estándar y con poca salida en el mercado.

Si utilizas Access 2003 o una versión inferior deberás proteger tu Base Datos o Back-End contra los lectores Hexadecimales que permiten leer los datos de la Tablas externamente, mediante la Codificación.
Menú (arriba)>> Herramientas>> Codificar
Si utilizas Access 2007 o superior entonces las codificación de los datos solo es posible hacerla si has establecido un password de entrada.



3- Protección al código VBA:
La protección al código VBA sirve para que los usuarios de tu aplicación No puedan acceder ver y/o cambiar el código VBA.
Puedes hacerlo poniendo un password desde:
Abrir cualquier Modulo >> Menú (arriba)>> Herramientas>> Propiedades >> Protección >> Password


Aunque la protección al código VBA permite poner passwords muy largos hasta 32 caracteres tampoco es muy segura.  Con esa longitud harían siglos para descubrir la clave (por el método de la Fuerza Bruta). El problema radica en que aunque la clave o password es dificilísimo de reventar, pero No así el código VBA que está expuesto a hackers.
Hasta la fecha casi todas los programas revienta claves de código VBA (que he encontrado) en Internet son para Excel y Word pero No para Access. Access tiene otro sistema mas potente de protección de clave que sus hermanos. Pero repito el código VBA por definición No estaría protegido.

 

 

4- Protección al diseño de los objetos y código VBA (fichero MDE o ACCDE):
Si quieres proteger el diseño de tus objetos (formularios, informes) y también el código VBA, la mejor opción seria crear convertir tu fichero MDE o ACCDB en un ficheros MDE o ACCDE respectivamente.
Existen programas de protección al código MDE que hacen bastante difícil la ingeniería inversa. Es mas solo 1 empresa de Internet asegura poder hacerlo , pero con la garantía que tienes que certificar que tu eres el autor de ese programa. No se hasta que punto pueden asegurar eso pero,........ lo cierto es que esa misma empresa, son los que venden el programa de protección del código MDE y ACCDE.
Como evitar la ingeniería inversa es imposible la única opción es ofuscar el código VBA. .
Para leer mas pulsar AQUI.
 

5- Protección tecla SHIFT:
Proteger la tecla SHIFT sirve para evitar que un usuario mantenga pulsada la tecla SHIFT durante el proceso de apertura de una base y automáticamente Access se salte el formularios de inicio. Con lo que el usuario podría acceder libremente por toda la base.
Para evitar ese comportamiento seria necesario proteger la tecla SHIFT. La única manera posible es hacerlo mediante código.
Para saber como hacerlo mirar Aquí y también Aquí



6- Protección por Licencia de Uso:
Access solo proporciona de forma mas o menos sencilla el numero de serie de tu aplicación Access, pero lamentablemente este numero es fácilmente clonable y por lo tanto No puede ser usado como un numero valido.
Un numero identificativo valido de tu PC podría ser el numero de disco del fabricante ya que mediante este numero podrás controlar quien tiene Licencia para usar tu programa.
Para leer mas mira Aquí
 

 

7- Protección creado una Zona de Confianza::
A partir de Access 2007 es posible crear una zona de confianza.
Para leer mas mira Aquí
 

 

8- Protección usando Certificados Digitales:
A partir de Access 2007 es posible crear un Certificado Digital y usarlo en tu aplicación como medida de seguridad.
 

 

9- Protección Datos con Grupo de Trabajo:
Solo valido para Access 2003 o una versión inferior.
Si vas a crear un Grupo de Trabajo (bien protegido) y cuando digo bien me refiero a que hagas la prueba en otro ordenador distinto al que utilices normalmente y sin copiar el fichero MDW en el "otro" ordenador, intentar acceder a ver que pasa. Si puedes entrar significaría que has dado mal los permisos. Y si No pudieras entrar significaría que es lo correcto.
Para leer mas mirar Aquí
 

10- Protección Importación Datos (Tablas):
Solo valido para Access 2003 o una versión inferior.
Si tienes bien asegurada tu base (con permisos de usuario / Grupo de Trabajo / Fichero MDW) será muy difícil que alguien desde el exterior pueda importar los datos
Repito: Si das los permisos a las Tablas de forma correcta puedes conseguir (no de forma fácil) evitar la importación de datos desde otra base.

También siempre queda la opción fácil de hacer invisible las Tablas. Pero ya sabes que de la misma forma que se hacer invisibles se pueden volver hacer visibles. Ver Demo 49 de esta WEB



[Atrás]