En el anterior boletín explicábamos el paupérrimo mecanismo con el que MS Access 97 almacena la palabra de paso con la que se protege una base de datos.
Rafael Santos, no contento con su descubrimiento, también ha estudiado la protección que utiliza la nueva versión del producto: MS Access 2000.
+Es el mecanismo utilizado por la nueva versión más fiable que el de la anterior? Yo diría que si el método utilizado en Access 97 parece haber sido inventado por un niño de 10 años, el de Access 2000 parece haberlo sido por un niño de unos doce años.
EL MECANISMO
En MS Access 2000 se admiten palabras clave de hasta 20 caracteres (antes sólo de 13); a primera vista, parece que el asunto mejora algo.
Sin embargo, esta palabra se almacena -cifrada- en los octetos 40H, 42H, 44H… y siguientes del archivo de base de datos. Los octetos impares no utilizados podrían estar relacionados con el uso del alfabeto UNICODE de 16 bits por car cter.
¨C¢mo se cifra la palabra de paso? De nuevo mediante una «sofisticada» operaci¢n XOR aunque -eso s¡- esta vez la clave no es fija y universal, sino funci¢n del d¡a en que se cre¢ la base de datos. Es decir: todas las bases de datos creadas el 10 de Agosto de 1999 van a tener la misma clave de protecci¢n de la palabra de paso. Adem s, cuando se crea la base de datos sin proteger, los octetos 40H, 42H… contienen la clave para el cifrado XOR.
IDEAS PARA LA DESPROTECCI.N
Dicho esto, es bastante f cil imaginar un mecanismo de desprotecci¢n de cualquier base de datos MS Access 2000.
- 1- Cr’ense bases de datos sin proteger, digamos desde el 1-1-1999 hasta 31-12-2000. Hacer esto a mano resultar¡a un poco pesado, pero hacerlo mediante un programa Visual Basic o Delphi es cuesti¢n de poco tiempo. Leyendo el contenido de las famosas posiciones 40H, 42H… de los archivos .MDB se tienen las 630 claves posibles para esos dos a_os.
2- Dada una base de datos de la que queremos averiguar su palabra de paso, hay que escribir un programa que abra la base de datos utilizando las claves obtenidas en el paso uno. Es de suponer que una de las 630 claves nos valdr , siempre y cuando la base de datos haya sido creada en el intervalo para el que se han calculado las claves.
Por supuesto que ser¡a posible buscar la relaci¢n entre la fecha y la clave generada, pero sinceramente pienso que no merece la pena el esfuerzo.
C.MO PROTEGERSE
Por oltimo, un consejo pr ctico para proteger su base de datos creada con Access 2000:
Antes de abrir su programa Access 2000 vaya al reloj del sistema y ponga una fecha dif¡cil de averiguar (pasada o futura), por ejemplo: el 7 de Julio (San Fermin) del a_o 26.897 antes de Cristo. Cree a continuaci¢n su base de datos. Ya puede volver a poner la fecha real en su ordenador. De este modo, si a usted le roban la base de datos, el ladr¢n nunca sospechar que la base de datos fue creada en la fecha que usted utiliz¢, y el programa craqueador del intruso fallar .
Fuente : KRIPTOPOLIS