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