Está en la página 1de 30

Póngase cómodo…

empezamos en unos minutos


SEGURIDAD EN BASE DE DATOS

CLASE 5– ENCRYPTACIÓN EN SQL SERVER

5 min -
Reanudación
Pautas para el desarrollo del curso

Al inicio, todos los micrófonos Durante la presentación,


estarán desactivados para pueden hacer sus
evitar interferencias consultas a través del
sistema de chat de la
sala.

Evite, realizar preguntas Cuando el moderador lo


sobre temas de indique, podrán participar,
conectividad, internet o para ello deberán “levantar la
temas que no se están mano” y esperar su turno.
tratando en la sesión.

La sesión está siendo grabada, Para participar, active su


los enlaces de grabación se micrófono y cuando termine,
distribuyen por la tarde. desactivar el micrófono.

www.senati.edu.pe
ENCRIPTACIÓN DE DATOS

¿para qué?
• Evitar acceso a datos sensibles
• Evitar robo de copias de seguridad con datos sensibles
¿qué técnicas?
• Encriptación a nivel de columna
• Encriptación transparente (TDE), afecta a toda la BD
¿coste?
• Mayor sobrecarga y puede afectar al rendimiento
• Requiere una estrategia para la definición y mantenimiento d

de claves, passwords y certificados


• Por ello no debe considerarse para todos los datos y
conexiones

www.senati.edu.pe
ENCRIPTACIÓN Y AUTENTICACIÓN

Una técnica de seguridad es el cifrado de datos que sirve


para proteger datos confidenciales que se transmiten por
satélite o algún tipo de red de comunicaciones. Asimismo el
cifrado puede proveer protección adicional a secciones
confidenciales de una base de datos.

• Los datos se codifican mediante algún algoritmo de


codificación. Un usuario no autorizado tendrá problemas para
descifrar los datos codificados, pero un usuario autorizado d

contará con algoritmos para descifrarlos.

www.senati.edu.pe
ENCRIPTACIÓN DE DATOS - EJEMPLO

www.senati.edu.pe
JERARQUIA DE ENCRYPTACIÓN

SQL Server cifra los datos con una infraestructura de


gestión de claves y cifrado jerárquico. Cada capa
encripta la capa debajo de ella usando una
combinación de certificados, claves asimétricas y
claves simétricas. Las claves asimétricas y las claves
simétricas se pueden almacenar fuera de SQL Server
en un módulo de administración extensible de claves
(EKM).

www.senati.edu.pe
JERARQUIA DE ENCRYPTACIÓN

La siguiente ilustración muestra que cada capa de la


jerarquía de cifrado cifra la capa debajo de ella y
muestra las configuraciones de cifrado más comunes.
El acceso al inicio de la jerarquía suele estar protegido
por una contraseña.

www.senati.edu.pe
JERARQUIA DE ENCRYPTACIÓN

• Para obtener el mejor rendimiento, cifre los datos con claves simétricas en lugar de
certificados o claves asimétricas.
• Las claves maestras de la base de datos están protegidas por la clave maestra de
servicio. La clave maestra de servicio se crea mediante la instalación de SQL Server
y se cifra con la API de protección de datos de Windows (DPAPI).
• Son posibles otras jerarquías de cifrado que apilan capas adicionales.
• Un módulo de administración extensible de claves (EKM) contiene claves simétricas
o asimétricas fuera de SQL Server.
• El cifrado de datos transparente (TDE) debe usar una clave simétrica denominada
d
clave de cifrado de la base de datos que está protegida por un certificado protegido
por la clave maestra de la base de datos maestra o por una clave asimétrica
almacenada en un EKM.
• La clave maestra del servicio y todas las claves maestras de la base de datos son
claves simétricas.

www.senati.edu.pe
JERARQUIA DE
ENCRYPTACIÓN

Este diagrama ilustra los siguientes


conceptos adicionales:

•En esta ilustración, las flechas indican


jerarquías de cifrado comunes.

•Las claves simétricas y asimétricas en el EKM


pueden proteger el acceso a las claves
simétricas y asimétricas almacenadas en SQL
Server. La línea de puntos asociada con EKM
indica que las claves en EKM podrían
reemplazar las claves simétricas y asimétricas
almacenadas en SQL Server.

www.senati.edu.pe
MECANISMOS DE CIFRADO

SQL Server proporciona los siguientes mecanismos para el


cifrado:

• Funciones Transact SQL

• KEY asimétricas

• KEYS simétricas
d
• Certificados

• Cifrado de datos transparent

www.senati.edu.pe
FUNCIONES TRANSACT SQL

Los elementos individuales se pueden cifrar a medida que se insertan o actualizan mediante funciones
de Transact-SQL.

• Para obtener más información, vea ENCRYPTBYPASSPHRASE (Transact-SQL)


https://learn.microsoft.com/en-us/sql/t-sql/functions/encryptbypassphrase-transact-sql?view=sql-serv
er-ver16
• DECRYPTBYPASSPHRASE (Transact-SQL) .
https://learn.microsoft.com/en-us/sql/t-sql/functions/decryptbypassphrase-transact-sql?view=sql-serv
er-ver16

BASE DE DATOS EJEMPLO: ADVENTUREWORKS 2012

https://
learn.microsoft.com/en-us/sql/samples/adventureworks-install-configure?view=sql-server-ver16&tab
s=ssms
www.senati.edu.pe
ENCRYPTBYPASSPHRASE (Transact-SQL)

Cifre los datos con una frase de contraseña utilizando el algoritmo


TRIPLE DES con una longitud de bits de clave de 128.

Una frase de contraseña es una contraseña que incluye espacios. Sintaxis


La ventaja de usar una frase de contraseña es que es más fácil
EncryptByPassPhrase ( { 'passphrase' |
recordar una frase u oración significativa que recordar una cadena @passphrase }
de caracteres comparablemente larga. , { 'cleartext' | @cleartext }
[ , { add_authenticator |
Esta función no comprueba la complejidad de la contraseña. @add_authenticator }
, { authenticator | @authenticator } ] )

www.senati.edu.pe
ENCRYPTBYPASSPHRASE - EJEMPLO

USE AdventureWorks2012;
GO
-- Create a column in which to store the encrypted data.
El siguiente ejemplo actualiza un ALTER TABLE Sales.CreditCard
registro en la SalesCreditCardtabla y ADD CardNumber_EncryptedbyPassphrase
cifra el valor del número de tarjeta de VARBINARY(256);
GO
crédito almacenado en la columna -- First get the passphrase from the user.
CardNumber_EncryptedbyPassphrase, DECLARE @PassphraseEnteredByUser NVARCHAR(128);
utilizando la clave principal como SET @PassphraseEnteredByUser
autenticador. = 'A little learning is a dangerous thing!';

-- Update the record for the user's credit card.


-- In this case, the record is number 3681.
UPDATE Sales.CreditCard
SET CardNumber_EncryptedbyPassphrase =
EncryptByPassPhrase(@PassphraseEnteredByUser
, CardNumber, 1, CONVERT(varbinary, CreditCardID))
WHERE CreditCardID = '3681';
GO

www.senati.edu.pe
DECRYPTBYPASSPHRASE (Transact-SQL)

Esta función descifra los datos cifrados originalmente con


una frase de contraseña.
• DECRYPTBYPASSPHRASE No requiere permisos
para su ejecución. DECRYPTBYPASSPHRASE Sintaxis
devuelve NULL si recibe la frase de contraseña
incorrecta o la información del autenticador incorrecta. DecryptByPassPhrase ( { 'passphrase' |
• DECRYPTBYPASSPHRASE utiliza la frase de @passphrase }
contraseña para generar una clave de descifrado. Esta , { 'ciphertext' | @ciphertext }
clave de descifrado no persistirá. [ , { add_authenticator |
• Si se incluyó un autenticador en el momento del cifrado @add_authenticator }
del texto cifrado, DECRYPTBYPASSPHRASEdebe , { authenticator | @authenticator } ] )
recibir ese mismo autenticador para el proceso de
descifrado. Si el valor del autenticador proporcionado
para el proceso de descifrado no coincide con el valor
del autenticador utilizado originalmente para cifrar los
datos, la DECRYPTBYPASSPHRASEoperación fallará.

www.senati.edu.pe
DECRYPTBYPASSPHRASE - EJEMPLO

USE AdventureWorks2012;
-- Get the passphrase from the user.
Este ejemplo descifra el registro DECLARE @PassphraseEnteredByUser
NVARCHAR(128);
actualizado en EncryptByPassPhrase .
SET @PassphraseEnteredByUser
= 'A little learning is a dangerous thing!';

-- Decrypt the encrypted record.


SELECT CardNumber,
CardNumber_EncryptedbyPassphrase
AS 'Encrypted card number', CONVERT(varchar,
DecryptByPassphrase(@PassphraseEnteredByUser,
CardNumber_EncryptedbyPassphrase, 1
, CONVERT(varbinary, CreditCardID)))
AS 'Decrypted card number' FROM Sales.CreditCard

WHERE CreditCardID = '3681’;


GO
www.senati.edu.pe
Certificados

Un certificado de clave pública, generalmente llamado simplemente certificado, es una declaración firmada digitalmente
que vincula el valor de una clave pública a la identidad de la persona, dispositivo o servicio que posee la clave privada
correspondiente. Los certificados son emitidos y firmados por una autoridad de certificación (CA). La entidad que recibe
un certificado de una CA es el sujeto de ese certificado. Normalmente, los certificados contienen la siguiente información.
•La clave pública del sujeto.
•La información identificadora del sujeto, como el nombre y la dirección de correo electrónico.
•El período de validez. Este es el período de tiempo que el certificado se considera válido.
•Un certificado es válido solo por el período de tiempo especificado en él; cada certificado contiene fechas válidas
desde y válidas hasta . Estas fechas establecen los límites del período de validez. Cuando ha pasado el período de validez
de un certificado, el sujeto del certificado ahora vencido debe solicitar un nuevo certificado.
•Información del identificador del emisor.
•La firma digital del emisor.
•Esta firma da fe de la validez de la vinculación entre la clave pública y la información de identificación del sujeto. (El
proceso de firma digital de información implica transformar la información, así como cierta información secreta en poder
del remitente, en una etiqueta llamada firma).

www.senati.edu.pe
CLAVES ASIMETRICAS Y SIMETRICAS

Claves asimétricas
Una clave asimétrica se compone de una clave privada y la
correspondiente clave pública. Cada clave puede descifrar datos cifrados
por la otra. El cifrado y descifrado asimétrico consumen relativamente
muchos recursos, pero proporcionan un mayor nivel de seguridad que el
cifrado simétrico. Una clave asimétrica se puede utilizar para cifrar una
clave simétrica para el almacenamiento en una base de datos.

Claves simétricas
Una clave simétrica es una clave que se utiliza tanto para el cifrado como d
para el descifrado. El cifrado y descifrado mediante el uso de una clave
simétrica es rápido y adecuado para el uso rutinario con datos
confidenciales en la base de datos.

www.senati.edu.pe
Cifrado de datos transparente ( TDE )

El cifrado de datos transparente (TDE) es un caso especial de cifrado que


utiliza una clave simétrica. TDE cifra una base de datos completa utilizando
esa clave simétrica denominada clave de cifrado de la base de datos. La clave
de cifrado de la base de datos está protegida por otras claves o certificados
que están protegidos por la clave maestra de la base de datos o por una clave
asimétrica almacenada en un módulo EKM.

Para ayudar a proteger una base de datos de usuarios, puede tomar


precauciones como:
• Diseño de un sistema seguro. d
• Cifrado de activos confidenciales.
• Construcción de un cortafuegos alrededor de los servidores de bases de
datos.

www.senati.edu.pe
Cifrado de datos transparente ( TDE )

Sin embargo, una parte malintencionada que robe medios físicos como unidades o cintas de respaldo
puede restaurar o adjuntar la base de datos y explorar sus datos.

• Una solución es cifrar los datos confidenciales en una base de datos y utilizar un certificado para
proteger las claves que cifran los datos. Esta solución evita que cualquier persona sin las claves utilice los
datos. Pero debe planificar este tipo de protección con anticipación.
• TDE realiza el cifrado y descifrado de E/S en tiempo real de datos y archivos de registro. El cifrado utiliza
una clave de cifrado de base de datos (DEK). El registro de arranque de la base de datos almacena la
clave de disponibilidad durante la recuperación. La DEK es una clave simétrica. Está protegido por un
certificado que masteralmacena la base de datos del servidor o por una clave asimétrica que protege un
módulo EKM.
• TDE protege los datos en reposo, que son los datos y los archivos de registro. Le permite seguir muchas
leyes, regulaciones y pautas establecidas en varias industrias. Esta capacidad permite a los
desarrolladores de software cifrar datos mediante el uso de algoritmos de cifrado AES y 3DES sin
cambiar las aplicaciones existentes.
www.senati.edu.pe
Jerarquía de cifrado

La API de protección de datos de Windows (DPAPI) está en la raíz del árbol de


cifrado, asegura la jerarquía de claves a nivel de máquina y se usa para proteger
la clave maestra de servicio (SMK) para la instancia del servidor de la base de
datos. El SMK protege la clave maestra de la base de datos (DMK), que se
almacena en el nivel de la base de datos del usuario y protege los certificados y
las claves asimétricas. Estas claves, a su vez, protegen las claves simétricas, que
protegen los datos. TDE utiliza una jerarquía similar hasta el certificado. Cuando
usa TDE, el DMK y el certificado deben almacenarse en la base de masterdatos.
Se crea una nueva clave, utilizada solo para TDE y denominada clave de cifrado
de la base de datos (DEK), y se almacena en la base de datos del usuario.
d
La siguiente ilustración muestra la arquitectura del cifrado TDE. Solo los
elementos del nivel de la base de datos (la clave de cifrado de la base de datos
y las partes de ALTER DATABASE) son configurables por el usuario cuando usa
TDE en SQL Database.

www.senati.edu.pe
Jerarquía de cifrado

www.senati.edu.pe
HABILITAR TDE

Para usar TDE, siga estos pasos. USE master;


GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD =
•Se aplica a : SQL Server. '<UseStrongPasswordHere>';
•Crear una clave maestra. go
•Cree u obtenga un certificado protegido por la clave CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My
maestra. DEK Certificate';
go
•Cree una clave de cifrado de base de datos y USE AdventureWorks2012;
protéjala mediante el certificado. GO
•Configure la base de datos para que use cifrado. CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
El siguiente ejemplo muestra el cifrado y descifrado GO
de la base de AdventureWorks2012datos mediante ALTER DATABASE AdventureWorks2012
un certificado llamado MyServerCert que está SET ENCRYPTION ON;
instalado en el servidor. GO

www.senati.edu.pe
Comandos y funciones TDE

Para que las siguientes declaraciones


acepten certificados TDE, use una clave
maestra de base de datos para cifrarlas. Si
los encripta solo por contraseña, las
declaraciones los rechazan como
encriptadores.

La siguiente tabla proporciona enlaces y


explicaciones de los comandos y
funciones de TDE:

www.senati.edu.pe
Vistas de catálogo y vistas de gestión dinámica

La siguiente tabla muestra las vistas de


catálogo de TDE y las vistas de
administración dinámica.

www.senati.edu.pe
PERMISOS Y CONSIDERACIONES

permisos
Cada característica y comando de TDE tiene requisitos de permisos individuales, como se describe en las tablas que
se muestran anteriormente.
Ver los metadatos relacionados con TDE requiere el permiso VER DEFINICIÓN en un certificado.

Consideraciones
Mientras se realiza un escaneo de reencriptación para una operación de encriptación de la base de datos, las
operaciones de mantenimiento de la base de datos están deshabilitadas. Puede utilizar la configuración del modo de
usuario único para que la base de datos realice operaciones de mantenimiento. Para obtener más información,
consulte Establecer una base de datos en modo de usuario único .
Utilice la sys.dm_database_encryption_keysvista de administración dinámica para encontrar el estado del cifrado de la
base de datos. Para obtener más información, consulte la sección "Vistas de catálogo y vistas de administración
dinámica" anteriormente en este artículo.
En TDE, todos los archivos y grupos de archivos de una base de datos están cifrados. Si algún grupo de archivos en
una base de datos está marcado como SÓLO LECTURA, la operación de cifrado de la base de datos falla.
Si usa una base de datos en la creación de reflejo de la base de datos o el trasvase de registros, ambas bases de
datos se cifran. Las transacciones de registro se cifran cuando se envían entre ellas.

www.senati.edu.pe
RESTRICCIONES - TDE

Las siguientes operaciones no están permitidas durante el cifrado inicial de la base de datos, el cambio de clave
o el descifrado de la base de datos:

• Soltar un archivo de un grupo de archivos en una base de datos


• Descartar una base de datos
• Desconectar una base de datos
• Separar una base de datos
• Transición de una base de datos o grupo de archivos a un estado de SÓLO LECTURA

Las siguientes operaciones no están permitidas durante las declaraciones CREATE DATABASE ENCRYPTION
KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEYy ALTER DATABASE...SET
ENCRYPTION:

• Soltar un archivo de un grupo de archivos en una base de datos


• Descartar una base de datos
• Desconectar una base de datos

www.senati.edu.pe
ESCANEO - TDE

Para habilitar TDE en una base de datos, SQL ALTER DATABASE <db_name> SET ENCRYPTION
Server debe realizar un análisis de cifrado. El SUSPEND;
escaneo lee cada página de los archivos de datos
en el grupo de búfer y luego vuelve a escribir las
páginas cifradas en el disco. De manera similar, use la siguiente sintaxis para reanudar
el escaneo de cifrado TDE:
Para brindarle más control sobre el análisis de
cifrado, SQL Server 2019 (15.x) presenta el análisis ALTER DATABASE <db_name> SET ENCRYPTION
TDE, que tiene una sintaxis de suspensión y RESUME;
reanudación. Puede pausar el escaneo mientras la
carga de trabajo en el sistema es pesada o La columna encryption_scan_state se agregó a la
durante las horas críticas para el negocio y luego sys.dm_database_encryption_keysvista de administración
reanudar el escaneo más tarde. dinámica. Muestra el estado actual del escaneo de cifrado.
También hay una nueva columna llamada
Utilice la siguiente sintaxis para pausar el análisis encryption_scan_modify_date, que contiene la fecha y la
de cifrado TDE: hora del último cambio de estado del escaneo de
encriptación.
www.senati.edu.pe
TDE y copias de seguridad

Los certificados se usan comúnmente en el cifrado de datos


transparente para proteger la clave de cifrado de la base de datos
(DEK). El certificado debe ser creado en la base de masterdatos.

Los archivos de copia de seguridad de las bases de datos que tienen


TDE habilitado también se cifran mediante la clave de cifrado de la
base de datos. Como resultado, cuando restaure a partir de estas
copias de seguridad, el certificado que protege la clave de cifrado de
la base de datos debe estar disponible.

Esto significa que, además de realizar una copia de seguridad de la


d
base de datos, debe mantener copias de seguridad de los
certificados del servidor para evitar la pérdida de datos. Se perderán
los datos si el certificado ya no está disponible

www.senati.edu.pe
Quitar TDE

Elimine el cifrado de la base de datos mediante la ALTER


DATABASEdeclaración.

ALTER DATABASE <db_name> SET ENCRYPTION OFF;

Para ver el estado de la base de datos, use la vista de administración


dinámica sys.dm_database_encryption_keys .
Espere a que finalice el descifrado antes de eliminar la clave de
cifrado de la base de datos utilizando 
DROP DATABASE ENCRYPTION KEY .
d

www.senati.edu.pe
www.senati.edu.pe

También podría gustarte