UNIVERSIDAD NACIONAL DE SAN MARTIN
Facultad de Ingeniería de Sistemas e Informática
CONOCIENDO EL GESTOR:
Integrantes:
Andy Hirvyn Rucoba Reategui
Karen Alely Chamaya Guevara
Marco Israel Calderón García
Oliver Chavez Fasabi
Edwin Campos Sánchez
2022 - I
CONTENIDO
CRIFADO DE DATOS................................................................................................................3
1. Algoritmos que soporta Sybase Anywhere.......................................................................3
1.1. Cifrado/encriptado....................................................................................................3
1.2. Decifrado/Desencriptado..........................................................................................3
2. Creación de tabla con inserción de datos..........................................................................4
3. Elegir un capo para cifrar.................................................................................................4
4. AES..................................................................................................................................5
4.1. Encriptar un campo...................................................................................................5
4.2. Mostrar sin cifrar......................................................................................................6
5. AES256............................................................................................................................6
5.1. Encriptar un campo...................................................................................................6
5.2. Mostrar sin cifrar......................................................................................................8
CRIFADO DE DATOS
Aquí veremos como cifrar una base de datos en SYBASE ANYWHERE mediante algoritmos
nuestro gestor soporta.
1. Algoritmos que soporta Sybase Anywhere
1.1. Cifrado/encriptado
Los gestores permiten la encriptación y desencriptación de columnas, fortaleciendo así
la seguridad y el acceso a los datos almacenados en la base de datos, de tal manera que
sólo los usuarios debidamente autorizados tengan acceso a la información. Algunos
algoritmos son AES, AES256, AES_FIPS, AES256_FIPS, RSA, RSA_FIPS.
Analizaremos dos tipos de algoritmos el AES y el AES256.
AES: Es uno de los más comunes en datos que se cifran mediante el algoritmo AES.
Si no se especifica el formato de algoritmo, se utiliza AES de forma
predeterminada. Para el algoritmo AES, el relleno puede ser P KCS5, ZEROES o
NONE. El relleno predeterminado es PKCS5.
AES256: Los datos se cifran mediante el algoritmo AES de 256 bits. Para AES256,
el relleno puede ser PKCS5, ZEROES y NONE (si FORMAT = RAW). Para usar
el AES256 necesitamos:
Cláusula FORMAT: Utilice la cláusula FORMAT opcional para especificar el
formato de almacenamiento de los datos.
Cuando se especifica FORMAT=RAW, los datos se cifran mediante cifrado sin
procesar. Debe especificar la clave de cifrado, el vector de inicialización y,
opcionalmente, el formato de relleno. Estos mismos valores deben especificarse
al descifrar los datos.
Cláusula PADDING: esta cláusula se usa dependiendo del algoritmo que
usemos, en este caso estamos usando AES. Es por eso que usaremos es el
PKCS5
PKCS5: Los datos se rellenan mediante el algoritmo PKCS # 5. Los datos
cifrados son de 1 a 16 bytes más largos que los datos descifrados. Esta opción
solo está disponible para el cifrado AES256.
Vector de inicialización Este vector se utiliza para los dos algoritmos
anteriores y es un parámetro vectorial de inicialización. Este mismo es necesario
cuando se especifica FORMAT=RAW. Esta cadena no se puede establecer en
NULL. El Vector de inicialización va después de poner el format, padding,
ThisIsTeIV)
1.2. Decifrado/Desencriptado
Para desencriptar los datos encriptados udaremos la función cast
CAST = Esta función se utiliza para convertir la contraseña de nuevo a un tipo de datos
CHAR porque la función DECRYPT convierte los valores a tipo de datos LONG
BINARY, que es ilegible. Luego se coloca el nombre del campo el cual se va a descifrar
en este caso “Email” y “Telefonos”, entonces aplicamos en los siguientes algoritmos:
2. Creación de tabla con inserción de datos
Crearemos una tabla en una Base de Datos BDencriptacion, con la tabla Persona, con 5
campos y 10 registros.
INSERT INTO Persona VALUES
(101,'Tom','Cruise','
[email protected]','910345139');
INSERT INTO Persona VALUES
CREATE TABLE Persona( (102,'Harry','Potter','
[email protected]','925345139');
IdPersona int not null, INSERT INTO Persona VALUES
(103,'Karen','Chamaya','
[email protected]','956345139');
Nombres varchar(100),
INSERT INTO Persona VALUES
Apellidos varchar(100), (104,'Oliver','Chavez','
[email protected]','925635139');
Emaill varchar(200), INSERT INTO Persona VALUES
(105,'Edwin','Campos','
[email protected]','989345139');
Telefonos varchar (200),
INSERT INTO Persona VALUES
constraint PK_Interesado (106,'Marco','Cruise','
[email protected]','996345139');
primary key(IdPersona)); INSERT INTO Persona VALUES
(107,'Alely','Deeee','
[email protected]','987345139');
INSERT INTO Persona VALUES
(108,'Oliver','Peeeee','
[email protected]','982345139');
INSERT INTO Persona VALUES
(109,'Peter','Parker','
[email protected]','900345139');
INSERT INTO Persona VALUES
(110,'Ron','Wisley','
[email protected]','925645139');
3. Elegir un capo para cifrar
Elegiremos uno de los campos para cifrarlo, que no sea el campo que forma parte de la
llave primaria. Con el algoritmo AES cifraremos el campo Email y con el algoritmo
AES256 cifraremos el campo Telefonos.
4. AES
4.1. Encriptar un campo
Usamos el UPDATE para modificar seguido de la tabla en este caso la tabla Persona,
con el SET escribiremos el campo a encriptarse. Escribimos la palabra encrypt y dentro
de este escribiremos el campo a encriptarse, seguido de una contraseña que le
asignamos en este caso ABC (la contraseña es a criterio personal) y finalmente
especificamos el algoritmo AES. Con el siguiente Comando cifraremos los datos
insertados del campo “Email”
UPDATE Persona SET Emaill=encrypt(Emaill ,'ABC', 'AES' )
Ejecutando el comando tenemos que en el campo Email los datos están encriptados
Para ver el resultado del cifrado con su tamaño aplicamos un con SELECT*,
LENGTH (Email) FROM Persona; para el resultado siguiente.
4.2. Mostrar sin cifrar
Ahora mostraremos los datos sin cifrar, para ello usaremos un SELECT en el escribo los
campos que quiero mostrar, para desencriptar el campo encriptado escribiré un cast para
convertir los valores, dentro del cast escribiremos decrypt para desencriptar lo que ya
habíamos encriptado en el numeral 4.1. todo lo desencriptado se mostrara con el nombre
del campo que se encripto.
SELECT IdPersona, Nombres,cast(decrypt(Emaill ,'ABC', 'AES') as varchar)as Emaill
FROM Persona
Aquí se muestra el campo Email sin cifrar
5. AES256
5.1. Encriptar un campo
Para campo encriptar el campo Teléfonos usaremos las clausulas ya antes mencionadas
en el apartado 1.
Los datos se cifrados tendrá una clave de cifrado que es ‘ABC', el cifrado AES va con
formato FORMAT=RAW, PADDING=PKCS5 y con una inicialización ThisIsTheIV.
Lo siguiente es un comando para cifrar los datos en el campo “Telofonos”
UPDATE Persona
SET
Telefonos=encrypt(Telefonos ,'ABC','AES256(FORMAT=RAW;PADDIN
G=PKCS5)','ThisIsTheIV');
Ejecutando el comando tenemos que en el campo Telefonos los datos están encriptados
Para ver el resultado del cifrado con su tamaño aplicamos un con SELECT*,
LENGTH (Telefonos) FROM Persona; para el resultado siguiente.
5.2. Mostrar sin cifrar
Ahora mostraremos los datos sin cifrar, para ello usaremos un SELECT en el escribo los
campos que quiero mostrar, para desencriptar el campo encriptado escribiré un cast para
convertir los valores, dentro del cast escribiremos decrypt para desencriptar lo que ya
habíamos encriptado en el numeral 5.1. todo lo desencriptado se mostrará con el nombre
del campo que se encripto.
SELECT IdPersona, Nombres,
cast(decrypt(Telefonos ,'ABC','AES256(FORMAT=RAW;PADDING=PKCS5)','T
hisIsTheIV') as long varchar) AS Telefonos
FROM Persona