SlideShare una empresa de Scribd logo
1 de 4
Encriptación parte 1
Muchas veces en los sistemas de información se maneja mucha data que es sensible y que
las compañías quieren proteger para evitar que caiga en manos maliciosas. Ejemplos de esta
información son los números de tarjetas de crédito, números de documentos de identidad,
números de teléfono, etc.
La protección de esta información se puede programar en la aplicación, pero que es lo que
sucedería si es que un empleado interno consulta la base de datos, obtiene esos datos y los
vende o los entrega a la competencia; bueno pues nuestra seguridad estaría violada y la
información que queríamos proteger se encontraría totalmente expuesta. Una solución
alterna a esto sería tener la información encriptada dentro de la base de datos, de esta
manera la información se encontraría protegida incluso si alguna persona dentro de la
organización consulta la base de datos directamente.
Pero como podemos tener la información encriptada dentro de la base de datos; bueno
podríamos crear una compleja función que encripte los datos con un complicado algoritmo.
Esto no sería muy óptimo ya que el tiempo que pasaríamos creando esta función lo
podríamos usar para hacer otras cosas, sin contar que nuestra función puede tener una serie
de bugs. SQL Server, a partir de la versión 2005, nos ofrece una variedad de formas para
encriptar la información en la base de datos, entre las cuales tenemos:
 Passphrase
 Certificate
 Symmetric key
 Asymmetric key
Passphrase: Esta es la forma más simple y básica de encriptación de datos que se puede
tener en SQL Server. Bajo este método, lo único que se necesita para encriptar los datos es
una frase o contraseña “segura”. Deben notar que el asegurar esta frase o contraseña deberá
ser el trabajo de ustedes, SQL Server no validara que esta contraseña cumpla con las
restricciones de seguridad que Windows establece para las contraseñas de los usuarios.
Además si alguien llega a saber la contraseña toda nuestra información quedaría expuesta
sin necesidad de tener permisos adicionales más que leer la información de la tabla. Otro
posible problema que se puede llegar a tener con este método es que no todos los valores de
una columna se encripten con la misma contraseña, en ese caso la información quedaría
irrecuperable. Ahora voy a hacer un pequeño ejemplo para demostrar su uso:
-- limpiamos el ambiente
IF (DATABASEPROPERTY('SecureDB','version') > 0)
BEGIN
USE MASTER
ALTER DATABASE SecureDB SET single_user WITH ROLLBACK IMMEDIATE
DROP DATABASE SecureDB
END
– Creamos la base de datos de prueba
USE MASTER
GO
CREATE DATABASE SecureDB
GO
– Usamos nuestra base de datos de demo
USE SecureDB
GO
– Creamos una tabla cliente con una columna TarjetaCredito
— de tipo varbinary para que contenga la informacion encriptada
CREATE TABLE dbo.Cliente
(CodigoCliente INT NOT NULL IDENTITY(1,1)
,Nombres VARCHAR(100) NOT NULL
,TarjetaCredito VARBINARY(128))
GO
– insertamos un valor
INSERT INTO dbo.Cliente (Nombres, TarjetaCredito)
VALUES (‘Frank Lampard’,
ENCRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,‘1111-1111-1111-1111′))
GO
– Intentamos hacer un select convencional
SELECT CodigoCliente, Nombres, TarjetaCredito
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————– ———————
1 Frank Lampard 0x01000000F2884AC9…
*/
– Intentamos hacer un select con una frase incorrecta
SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50),
DECRYPTBYPASSPHRASE(‘EstaNoEsMiFraseSecreta’,TarjetaCredito))
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————– ———————
1 Frank Lampard NULL
*/
– Ahora hacemos un select con la frase correcta
SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50),
DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito))
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————– ———————
1 Frank Lampard 1111-1111-1111-1111
*/
– Intentamos hacer un select con una frase incorrecta
SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50),
DECRYPTBYPASSPHRASE(‘EstaNoEsMiFraseSecreta’,TarjetaCredito))
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————– ———————
1 Frank Lampard NULL
*/
– Ahora hacemos un select con la frase correcta
SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50),
DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito))
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————– ———————
1 Frank Lampard 1111-1111-1111-1111
*/
– Intentamos hacer un select con una frase incorrecta
SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50),
DECRYPTBYPASSPHRASE(‘EstaNoEsMiFraseSecreta’,TarjetaCredito))
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————– ———————
1 Frank Lampard NULL
*/
– Ahora hacemos un select con la frase correcta
SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50),
DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito))
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————– ———————
1 Frank Lampard 1111-1111-1111-1111
*/
Este método adicionalmente tiene una variante para dar un poco mas de seguridad a los
datos y es que las funciones ENCRYPTBYPASSPHRASE y DECRYPTBYPASSPHRASE
aceptan un tercer parámetro que es el autenticador, el cual tiene que ser colocado para
desencriptar la información si es que se encriptó con el autenticador. El autenticador podría
ser el usuario que guardo la información, de esta manera cada usuario tendría encriptada su
información y esta no sería visible a los demás usuarios. Veamos un ejemplo:
-- insertamos un valor
DECLARE @v_Usuario SYSNAME
SET @v_Usuario = 'Usuario1'
INSERT INTO dbo.Cliente (Nombres, TarjetaCredito)
VALUES ('Fernando Torres', ENCRYPTBYPASSPHRASE('EstaEsMiFraseSecreta','2222-2222-
2222-2222',1,@v_Usuario))
GO
– Intentamos hacer un select convencional
SELECT CodigoCliente, Nombres, TarjetaCredito
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————— ———————
1 Frank Lampard 0x01000000F2884AC9…
2 Fernando Torres 0x01000000D0E7D822…
*/
– Ahora hacemos un select con la frase correcta
— y con el autenticador correcto
DECLARE @v_Usuario SYSNAME
SET @v_Usuario = ‘Usuario1′
SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50),
DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito,1,@v_Usuario))
FROM dbo.Cliente
/*
CodigoCliente Nombres TarjetaCredito
————- ————— ———————
1 Frank Lampard NULL
2 Fernando Torres 2222-2222-2222-2222
*/
Proximamente publicara articulos referentes a los demas tipos de enciptacion de dat

Más contenido relacionado

Destacado

Una situación cotidiana en el EBAIS
Una situación cotidiana en el EBAISUna situación cotidiana en el EBAIS
Una situación cotidiana en el EBAISxmaximaster
 
Revista 16:9 Junio 2014
Revista 16:9 Junio 2014Revista 16:9 Junio 2014
Revista 16:9 Junio 2014Revista 16:9
 
Desafio
DesafioDesafio
Desafiojoao
 
Lost friends 3
Lost friends 3Lost friends 3
Lost friends 3Zuzu Angel
 
Instalação de fraldários aos consumidores
Instalação de fraldários aos consumidoresInstalação de fraldários aos consumidores
Instalação de fraldários aos consumidoresPolítica de Cara Nova
 
Corporate Strategic Philantropy MIT
Corporate Strategic Philantropy MITCorporate Strategic Philantropy MIT
Corporate Strategic Philantropy MITguest7b55404
 
Ciências da natureza
Ciências da naturezaCiências da natureza
Ciências da naturezaJonny Peter
 
Tecnologias no brasil bartolomeu
Tecnologias no brasil bartolomeuTecnologias no brasil bartolomeu
Tecnologias no brasil bartolomeubartolomeu67
 
Injustiças na língua portuguesa
Injustiças na língua portuguesaInjustiças na língua portuguesa
Injustiças na língua portuguesaBLOG's REI
 
La Nube
La NubeLa Nube
La Nubeyelore
 
áLbum de fotografías
áLbum de fotografíasáLbum de fotografías
áLbum de fotografíasestrellita8714
 
Reglement - ENVIRONNEMENT VERT 2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIERE
Reglement - ENVIRONNEMENT VERT  2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIEREReglement - ENVIRONNEMENT VERT  2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIERE
Reglement - ENVIRONNEMENT VERT 2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIEREiMS Vietnam
 
Ig1 task 2 analysis work sheet (1)
Ig1 task 2 analysis work sheet (1)Ig1 task 2 analysis work sheet (1)
Ig1 task 2 analysis work sheet (1)JamieShepherd
 
triptico UCV Lima Norte
triptico UCV Lima Nortetriptico UCV Lima Norte
triptico UCV Lima Norterita_mr
 

Destacado (20)

Una situación cotidiana en el EBAIS
Una situación cotidiana en el EBAISUna situación cotidiana en el EBAIS
Una situación cotidiana en el EBAIS
 
Revista 16:9 Junio 2014
Revista 16:9 Junio 2014Revista 16:9 Junio 2014
Revista 16:9 Junio 2014
 
Fotos comédia
Fotos comédiaFotos comédia
Fotos comédia
 
Desafio
DesafioDesafio
Desafio
 
Lost friends 3
Lost friends 3Lost friends 3
Lost friends 3
 
Instalação de fraldários aos consumidores
Instalação de fraldários aos consumidoresInstalação de fraldários aos consumidores
Instalação de fraldários aos consumidores
 
Sogra e Sogra
Sogra e SograSogra e Sogra
Sogra e Sogra
 
Corporate Strategic Philantropy MIT
Corporate Strategic Philantropy MITCorporate Strategic Philantropy MIT
Corporate Strategic Philantropy MIT
 
Ciências da natureza
Ciências da naturezaCiências da natureza
Ciências da natureza
 
Tecnologias no brasil bartolomeu
Tecnologias no brasil bartolomeuTecnologias no brasil bartolomeu
Tecnologias no brasil bartolomeu
 
L7102
L7102L7102
L7102
 
Injustiças na língua portuguesa
Injustiças na língua portuguesaInjustiças na língua portuguesa
Injustiças na língua portuguesa
 
La Nube
La NubeLa Nube
La Nube
 
A Pipoca
  A Pipoca  A Pipoca
A Pipoca
 
áLbum de fotografías
áLbum de fotografíasáLbum de fotografías
áLbum de fotografías
 
-
 - -
-
 
Unid 3 ativ_2_crispim
Unid 3 ativ_2_crispimUnid 3 ativ_2_crispim
Unid 3 ativ_2_crispim
 
Reglement - ENVIRONNEMENT VERT 2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIERE
Reglement - ENVIRONNEMENT VERT  2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIEREReglement - ENVIRONNEMENT VERT  2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIERE
Reglement - ENVIRONNEMENT VERT 2013 GIADINH PHOTO CLUB & IMAGE SANS FRONTIERE
 
Ig1 task 2 analysis work sheet (1)
Ig1 task 2 analysis work sheet (1)Ig1 task 2 analysis work sheet (1)
Ig1 task 2 analysis work sheet (1)
 
triptico UCV Lima Norte
triptico UCV Lima Nortetriptico UCV Lima Norte
triptico UCV Lima Norte
 

Similar a Encriptación parte 1

Universidad tecnica de babhoyo
Universidad tecnica de babhoyoUniversidad tecnica de babhoyo
Universidad tecnica de babhoyoestudiante
 
Inyeccion sql
Inyeccion sqlInyeccion sql
Inyeccion sqlobispo28
 
Diseño sistema
Diseño sistemaDiseño sistema
Diseño sistemaUNEFA
 
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...Jesús Daniel Mayo
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sqljhom123
 
Configuracion de una red inalambrica en doc
Configuracion de una red inalambrica en docConfiguracion de una red inalambrica en doc
Configuracion de una red inalambrica en docJeffry Amador
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0José Moreno
 
Presentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona SeguridadPresentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona Seguridadguestbfa74a
 
Contraseña
ContraseñaContraseña
ContraseñaGoogle
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datosjosecuartas
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datosAngel Gom
 
Seguridad de la base de datos
Seguridad de la base de datosSeguridad de la base de datos
Seguridad de la base de datososandcr
 

Similar a Encriptación parte 1 (20)

Recomendaciones de seguridad informática
Recomendaciones de seguridad informáticaRecomendaciones de seguridad informática
Recomendaciones de seguridad informática
 
Universidad tecnica de babhoyo
Universidad tecnica de babhoyoUniversidad tecnica de babhoyo
Universidad tecnica de babhoyo
 
Inyeccion sql
Inyeccion sqlInyeccion sql
Inyeccion sql
 
Aprendiz unad
Aprendiz unadAprendiz unad
Aprendiz unad
 
Aprendiz unad
Aprendiz unadAprendiz unad
Aprendiz unad
 
Seguridad En Programación
Seguridad En ProgramaciónSeguridad En Programación
Seguridad En Programación
 
Seguridad WEB - Principios básicos.
Seguridad WEB - Principios básicos.Seguridad WEB - Principios básicos.
Seguridad WEB - Principios básicos.
 
Inyecciones SQL
Inyecciones SQLInyecciones SQL
Inyecciones SQL
 
Esquemas de seguridad para el servidor
Esquemas de seguridad para el servidorEsquemas de seguridad para el servidor
Esquemas de seguridad para el servidor
 
Diseño sistema
Diseño sistemaDiseño sistema
Diseño sistema
 
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
Evidencia Informe amenaza a las bases de datos - Gestión de la Seguridad Info...
 
Inyección_sql
Inyección_sqlInyección_sql
Inyección_sql
 
Configuracion de una red inalambrica en doc
Configuracion de una red inalambrica en docConfiguracion de una red inalambrica en doc
Configuracion de una red inalambrica en doc
 
Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0Seguridad Base de Datos sql injection v1.0
Seguridad Base de Datos sql injection v1.0
 
Presentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona SeguridadPresentación Workshop php Barcelona Seguridad
Presentación Workshop php Barcelona Seguridad
 
Contraseña
ContraseñaContraseña
Contraseña
 
284
284284
284
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datos
 
Seguridad en bases de datos
Seguridad en bases de datosSeguridad en bases de datos
Seguridad en bases de datos
 
Seguridad de la base de datos
Seguridad de la base de datosSeguridad de la base de datos
Seguridad de la base de datos
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Último (16)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Encriptación parte 1

  • 1. Encriptación parte 1 Muchas veces en los sistemas de información se maneja mucha data que es sensible y que las compañías quieren proteger para evitar que caiga en manos maliciosas. Ejemplos de esta información son los números de tarjetas de crédito, números de documentos de identidad, números de teléfono, etc. La protección de esta información se puede programar en la aplicación, pero que es lo que sucedería si es que un empleado interno consulta la base de datos, obtiene esos datos y los vende o los entrega a la competencia; bueno pues nuestra seguridad estaría violada y la información que queríamos proteger se encontraría totalmente expuesta. Una solución alterna a esto sería tener la información encriptada dentro de la base de datos, de esta manera la información se encontraría protegida incluso si alguna persona dentro de la organización consulta la base de datos directamente. Pero como podemos tener la información encriptada dentro de la base de datos; bueno podríamos crear una compleja función que encripte los datos con un complicado algoritmo. Esto no sería muy óptimo ya que el tiempo que pasaríamos creando esta función lo podríamos usar para hacer otras cosas, sin contar que nuestra función puede tener una serie de bugs. SQL Server, a partir de la versión 2005, nos ofrece una variedad de formas para encriptar la información en la base de datos, entre las cuales tenemos:  Passphrase  Certificate  Symmetric key  Asymmetric key Passphrase: Esta es la forma más simple y básica de encriptación de datos que se puede tener en SQL Server. Bajo este método, lo único que se necesita para encriptar los datos es una frase o contraseña “segura”. Deben notar que el asegurar esta frase o contraseña deberá ser el trabajo de ustedes, SQL Server no validara que esta contraseña cumpla con las restricciones de seguridad que Windows establece para las contraseñas de los usuarios. Además si alguien llega a saber la contraseña toda nuestra información quedaría expuesta sin necesidad de tener permisos adicionales más que leer la información de la tabla. Otro posible problema que se puede llegar a tener con este método es que no todos los valores de una columna se encripten con la misma contraseña, en ese caso la información quedaría irrecuperable. Ahora voy a hacer un pequeño ejemplo para demostrar su uso: -- limpiamos el ambiente IF (DATABASEPROPERTY('SecureDB','version') > 0) BEGIN USE MASTER ALTER DATABASE SecureDB SET single_user WITH ROLLBACK IMMEDIATE DROP DATABASE SecureDB END
  • 2. – Creamos la base de datos de prueba USE MASTER GO CREATE DATABASE SecureDB GO – Usamos nuestra base de datos de demo USE SecureDB GO – Creamos una tabla cliente con una columna TarjetaCredito — de tipo varbinary para que contenga la informacion encriptada CREATE TABLE dbo.Cliente (CodigoCliente INT NOT NULL IDENTITY(1,1) ,Nombres VARCHAR(100) NOT NULL ,TarjetaCredito VARBINARY(128)) GO – insertamos un valor INSERT INTO dbo.Cliente (Nombres, TarjetaCredito) VALUES (‘Frank Lampard’, ENCRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,‘1111-1111-1111-1111′)) GO – Intentamos hacer un select convencional SELECT CodigoCliente, Nombres, TarjetaCredito FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————– ——————— 1 Frank Lampard 0x01000000F2884AC9… */ – Intentamos hacer un select con una frase incorrecta SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50), DECRYPTBYPASSPHRASE(‘EstaNoEsMiFraseSecreta’,TarjetaCredito)) FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————– ——————— 1 Frank Lampard NULL */ – Ahora hacemos un select con la frase correcta SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50), DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito)) FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————– ———————
  • 3. 1 Frank Lampard 1111-1111-1111-1111 */ – Intentamos hacer un select con una frase incorrecta SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50), DECRYPTBYPASSPHRASE(‘EstaNoEsMiFraseSecreta’,TarjetaCredito)) FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————– ——————— 1 Frank Lampard NULL */ – Ahora hacemos un select con la frase correcta SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50), DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito)) FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————– ——————— 1 Frank Lampard 1111-1111-1111-1111 */ – Intentamos hacer un select con una frase incorrecta SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50), DECRYPTBYPASSPHRASE(‘EstaNoEsMiFraseSecreta’,TarjetaCredito)) FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————– ——————— 1 Frank Lampard NULL */ – Ahora hacemos un select con la frase correcta SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50), DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito)) FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————– ——————— 1 Frank Lampard 1111-1111-1111-1111 */ Este método adicionalmente tiene una variante para dar un poco mas de seguridad a los datos y es que las funciones ENCRYPTBYPASSPHRASE y DECRYPTBYPASSPHRASE aceptan un tercer parámetro que es el autenticador, el cual tiene que ser colocado para desencriptar la información si es que se encriptó con el autenticador. El autenticador podría
  • 4. ser el usuario que guardo la información, de esta manera cada usuario tendría encriptada su información y esta no sería visible a los demás usuarios. Veamos un ejemplo: -- insertamos un valor DECLARE @v_Usuario SYSNAME SET @v_Usuario = 'Usuario1' INSERT INTO dbo.Cliente (Nombres, TarjetaCredito) VALUES ('Fernando Torres', ENCRYPTBYPASSPHRASE('EstaEsMiFraseSecreta','2222-2222- 2222-2222',1,@v_Usuario)) GO – Intentamos hacer un select convencional SELECT CodigoCliente, Nombres, TarjetaCredito FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————— ——————— 1 Frank Lampard 0x01000000F2884AC9… 2 Fernando Torres 0x01000000D0E7D822… */ – Ahora hacemos un select con la frase correcta — y con el autenticador correcto DECLARE @v_Usuario SYSNAME SET @v_Usuario = ‘Usuario1′ SELECT CodigoCliente, Nombres, CONVERT(VARCHAR(50), DECRYPTBYPASSPHRASE(‘EstaEsMiFraseSecreta’,TarjetaCredito,1,@v_Usuario)) FROM dbo.Cliente /* CodigoCliente Nombres TarjetaCredito ————- ————— ——————— 1 Frank Lampard NULL 2 Fernando Torres 2222-2222-2222-2222 */ Proximamente publicara articulos referentes a los demas tipos de enciptacion de dat