Proteccion de DBF
Proteccion de DBF
Hola amigos del foro:
Deseo una opinion de ustedes con relacion a lo siguiente:
Voy a distribuir un software que estara contenido en una memoria USB y me interesa que la informacion de las bases de datos este protejida.
Para despistar un poco he cambiado la extension de los archivos de DBF a otra cosa pero alguien con un poco de tiempo podria descubrirlo y abrir los arhivos facilmente.
He utilizado la funcion ENCRYPT() para encriptar algunos datos relevantes pero no desearia aplicarlo a todos los archivos ya que al momento de efectuar un mantenimiento de la informacion se tornaria muy tedioso.
La pregunta es que opinan sobre la funcion que les adjunto que permite asignarle una proteccion contra apertura a la base de datos ? Mi temor es que algo suceda y no pueda abrir el archivo protejido.
Algun comentario ?
Gracias
FUNCTION PROTEJE( nAction, cFile )
local nHandle := 0
local cBuffer := space( 32 )
DEFAULT nAction := 1
nHandle := FOpen( cFile, FO_READWRITE + FO_SHARED )
if nHandle != -1
if FRead( nHandle, @cBuffer, 32 ) == 32
if nAction == 0 // Proteger
if SubStr( cBuffer, 1, 1 ) <> Chr( 26 )
cBuffer := Chr( 26 ) + SubStr( cBuffer, 1, 31 )
endif
else // Desproteger
if SubStr( cBuffer, 1, 1 ) == Chr( 26 )
cBuffer := SubStr( cBuffer, 2, 31 ) + Chr( 0 )
endif
endif
FSeek( nHandle, 0 )
FWrite( nHandle, cBuffer, 32 )
endif
FClose( nHandle )
endif
return( FError() )
Deseo una opinion de ustedes con relacion a lo siguiente:
Voy a distribuir un software que estara contenido en una memoria USB y me interesa que la informacion de las bases de datos este protejida.
Para despistar un poco he cambiado la extension de los archivos de DBF a otra cosa pero alguien con un poco de tiempo podria descubrirlo y abrir los arhivos facilmente.
He utilizado la funcion ENCRYPT() para encriptar algunos datos relevantes pero no desearia aplicarlo a todos los archivos ya que al momento de efectuar un mantenimiento de la informacion se tornaria muy tedioso.
La pregunta es que opinan sobre la funcion que les adjunto que permite asignarle una proteccion contra apertura a la base de datos ? Mi temor es que algo suceda y no pueda abrir el archivo protejido.
Algun comentario ?
Gracias
FUNCTION PROTEJE( nAction, cFile )
local nHandle := 0
local cBuffer := space( 32 )
DEFAULT nAction := 1
nHandle := FOpen( cFile, FO_READWRITE + FO_SHARED )
if nHandle != -1
if FRead( nHandle, @cBuffer, 32 ) == 32
if nAction == 0 // Proteger
if SubStr( cBuffer, 1, 1 ) <> Chr( 26 )
cBuffer := Chr( 26 ) + SubStr( cBuffer, 1, 31 )
endif
else // Desproteger
if SubStr( cBuffer, 1, 1 ) == Chr( 26 )
cBuffer := SubStr( cBuffer, 2, 31 ) + Chr( 0 )
endif
endif
FSeek( nHandle, 0 )
FWrite( nHandle, cBuffer, 32 )
endif
FClose( nHandle )
endif
return( FError() )
- jrestojeda
- Posts: 543
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Re: Proteccion de DBF
Hola,
Si usas ADS, tienes la opción de enciptar la tabla completa.
Y para desencriptarla desde tu programa sólo necesitas una línea de código en la apertura.
Es muy sencillo y es lo único que tienes que agregar a tus aperturas de archivos.
Las tablas siguen siendo DBFs como siempre, solo que no se pueden abrir si no ingresas la clave de apertura.
Espero te sirva la sugerencia.
Saludos, Esteban.
Si usas ADS, tienes la opción de enciptar la tabla completa.
Y para desencriptarla desde tu programa sólo necesitas una línea de código en la apertura.
Code: Select all
USE CONFIGU ALIAS (cAlias) NEW
AdsEnableEncryption(cPassword)
Las tablas siguen siendo DBFs como siempre, solo que no se pueden abrir si no ingresas la clave de apertura.
Espero te sirva la sugerencia.
Saludos, Esteban.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Re: Proteccion de DBF
Si pero como el sistema sera distribuido y ejecutado desde una memoria USB no puedo usar ADS (o si ?)
Re: Proteccion de DBF
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Chaco - Argentina
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Re: Proteccion de DBF
Hola,
puedes utilizar ADS en una memoria, usa ADS LOCAL (Son solo 2 DLL), incluso si utilizas ADD (Advantage Data Dictionary) no necesitaras mas que conectarte a la base de datos local y la parte de encryptacion es transparente una vez autenticado el usuario.
saludos
Marcelo
puedes utilizar ADS en una memoria, usa ADS LOCAL (Son solo 2 DLL), incluso si utilizas ADD (Advantage Data Dictionary) no necesitaras mas que conectarte a la base de datos local y la parte de encryptacion es transparente una vez autenticado el usuario.
saludos
Marcelo
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Proteccion de DBF
Hola compañeros. Revivo este mensaje porque necesito proteger mis DBF,s y la opción de ADS parece ser de lo mejor que hay.
¿Podrían ayudarme a implementarla ? Nunca he usado ADS y sólo la utilizaré para esto. Supongo que valdría una versión antigua y ligera. ¿Donde podría conseguirla?
¿Podrían ayudarme a implementarla ? Nunca he usado ADS y sólo la utilizaré para esto. Supongo que valdría una versión antigua y ligera. ¿Donde podría conseguirla?
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: Proteccion de DBF
Creo que el encriptado ADS no es superior al propio de las DBFs de Harbour, usando el
Use MiTabla
dBInfo( DBI_PASSWORD, 'miclavesupersecreta' )
con eso ya tienes lo mismo (creo), ya que ambos son a nivel de registro.
De todas maneras el algoritmo de encriptado es MUY SENCILLO en _, cualquiera con un poco de paciencia lo saca. Si lo vas a usar para que nadie te vea los datos en claro, por ejemplo para que no lo puedan abrir con WORD esta bien, pero si es información sensible... No se si alcanza.
Un saludo
Use MiTabla
dBInfo( DBI_PASSWORD, 'miclavesupersecreta' )
con eso ya tienes lo mismo (creo), ya que ambos son a nivel de registro.
De todas maneras el algoritmo de encriptado es MUY SENCILLO en _, cualquiera con un poco de paciencia lo saca. Si lo vas a usar para que nadie te vea los datos en claro, por ejemplo para que no lo puedan abrir con WORD esta bien, pero si es información sensible... No se si alcanza.
Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Proteccion de DBF
Gracias por tu interés, Carlos.
A nivel de campo de un registro con las funciones encript lo tengo claro y, de hecho, implementado en algún programa.
Buscaba algo a nivel de fichero y sin tener que modificar mucho el código actual con la finalidad de cumplir con la nueva Ley de Protección de Datos.
Algo como encriptar el fichero al salir de aplicación y desencriptarlo al entrar, sólo eso.
A nivel de campo de un registro con las funciones encript lo tengo claro y, de hecho, implementado en algún programa.
Buscaba algo a nivel de fichero y sin tener que modificar mucho el código actual con la finalidad de cumplir con la nueva Ley de Protección de Datos.
Algo como encriptar el fichero al salir de aplicación y desencriptarlo al entrar, sólo eso.
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Re: Proteccion de DBF
João Santos - São Paulo - Brasil
Re: Proteccion de DBF
El asunto del reglamento europeo de proteccion de datos y Harbour / Dbfs tiene su miga.
No nos vale con encriptar la cabecera de la dbf. Un excel, es posible que la abra porque no mira la cabecera.
El DBI_PASSWORD sólo encripta si la dbf *no* tiene campos memo.
Aun funcionando lo anterior, se nos quedan sin encriptar los fpt y los .cdx
Así que si nos cuelan un delegado de proteccion, que se me antoja que debe ser como un insecto de esos que pululan por las partes traseras del ganado, pues se podría poner excelente y exigir encriptacion total.
Harbour no tiene bien solucionado el tema y no se mueve una brizna que empuje hacia ello.
Yo por mi parte puse un mensaje en la lista de Harbour: https://groups.google.com/forum/#!topic ... YnLBzKjuIk
No nos vale con encriptar la cabecera de la dbf. Un excel, es posible que la abra porque no mira la cabecera.
El DBI_PASSWORD sólo encripta si la dbf *no* tiene campos memo.
Aun funcionando lo anterior, se nos quedan sin encriptar los fpt y los .cdx
Así que si nos cuelan un delegado de proteccion, que se me antoja que debe ser como un insecto de esos que pululan por las partes traseras del ganado, pues se podría poner excelente y exigir encriptacion total.
Harbour no tiene bien solucionado el tema y no se mueve una brizna que empuje hacia ello.
Yo por mi parte puse un mensaje en la lista de Harbour: https://groups.google.com/forum/#!topic ... YnLBzKjuIk
Re: Proteccion de DBF
Buenas,
Para este escenario usad ads local, es lo mejor de largo. Y tranquilo q no la abren ni con excels ni nada.
Para este escenario usad ads local, es lo mejor de largo. Y tranquilo q no la abren ni con excels ni nada.
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Proteccion de DBF
Pues eso, ¿algunas lineas de código para implementar el apartado de encriptación de ADS ?
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Re: Proteccion de DBF
Manuel,
He buscado algun ejemplo que usaba en el baul de los recuerdos. Es antiguo pero lo he compilado y funciona bien.
Te aconsejo que busques si quieres usar ads la utilidad arc32 que es el dbu propio de ads, las librerias actualizadas, ...
Cuando consigas compilarlo ya veras que es lo mejor para lo que tu quieres.
Saludetes.
C.
He buscado algun ejemplo que usaba en el baul de los recuerdos. Es antiguo pero lo he compilado y funciona bien.
Code: Select all
/*--------------------------------------------------------------------------
Autor : Carles Aubia
Fecha : 05.05.2011
Description : Ejemplo sencillo para testear ADS
Version Harbour : Harbour 2.1.0 (Rev.14559)
Version FWH : 11.06
---------------------------------------------------------------------------*/
#include 'fivewin.ch'
#include 'ads.ch'
#define MY_KEY 'FWH'
REQUEST ADS
REQUEST ADSKeyNo
REQUEST AdsKeyCount
REQUEST AdsGetRelKeyPos
REQUEST AdsSetRelKeyPos
FUNCTION Main()
local cAlias
local cPass := MY_KEY
local cError := ''
RddRegister("ADS",1)
RddSetDefault("ADSCDX")
SET SERVER LOCAL
USE Test NEW
cAlias := Alias()
MsgInfo( AdsVersion(), 'Version ADS' )
MsgInfo( (cAlias)->( RddName() ), 'RDD' )
if ( cAlias )->( ADSIsTableEncrypted() )
MsgInfo( 'Tabla Encriptada. Pido password' )
if ( MsgGet( 'Password', 'Clau', @cPass ) )
If (cAlias)->( ADSEnableEncryption( cPass ) ) > 0
AdsGetLastError( @cError )
MsgInfo( cError )
QUIT
endif
endif
else
MsgInfo( 'Tabla Desencriptada. La voy a encriptar' )
(cAlias)->( ADSEnableEncryption( MY_KEY ) )
(cAlias)->( ADSEncryptTable() )
endif
MsgInfo( (cAlias)->( AdsIsEncryptionEnabled() ), 'Encriptacion activada ?' )
if ( ( cAlias )->( AdsIsTableEncrypted() ) .AND. (cAlias)->( AdsIsEncryptionEnabled() ) )
(cAlias)->( XBrowse() )
endif
RETU NIL
Cuando consigas compilarlo ya veras que es lo mejor para lo que tu quieres.
Saludetes.
C.
Salutacions, saludos, regards
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
"...programar es fácil, hacer programas es difícil..."
https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Proteccion de DBF
Carles,
muchísimas gracias. ¡ No sabes cuanto te lo agradezco !
Ya tengo algo por donde empezar.
muchísimas gracias. ¡ No sabes cuanto te lo agradezco !
Ya tengo algo por donde empezar.
Un saludo,
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC