¿Se encripta el tráfico de red al escribir copias de seguridad remotas usando SQL Server TDE?

9

Ellos dicen que no existe una "pregunta estúpida", así que aquí va:

Entiendo que el cifrado de datos transparentes (TDE) de SQL Server cifra los datos en reposo, de modo que sus archivos de base de datos (.mdf) y sus archivos de copia de seguridad (.bak) se cifran si alguien entra en su almacenamiento y roba esos archivos. También entiendo que los datos se descifran cuando se leen del disco para que no se cifren en la memoria (en movimiento). Por lo tanto, los datos solicitados por un usuario que ejecuta una consulta remota (seleccione * de SensitiveData) no se cifrarán al viajar por la red y, por lo tanto, serán vulnerables a la intercepción.

Entonces, suponiendo que todo lo anterior sea correcto, aquí está mi pregunta estúpida: si mi instancia de SQL Server está en la computadora A y mis copias de seguridad de la base de datos TDE se escriben en el almacenamiento en la computadora remota B, ¿se cifran los datos de la operación de copia de seguridad a medida que viajan? la computadora A se escribirá en el disco en la computadora B? Supongo que debe ser (porque supongo que la operación de cifrado ocurre primero en la computadora A), pero no puedo encontrar confirmación de esto en ninguna de las documentaciones de Microsoft o en los blogs. Del mismo modo, durante una operación de restauración, ¿alguien interceptaría los datos que se transfieren desde el disco en la computadora B para restaurar la base de datos en la computadora A? ¿Encontrarán esos datos en movimiento cifrados?

SQLServerVillain
fuente
2
Realmente es una buena pregunta
Shanky

Respuestas:

7

Sí, las copias de seguridad se cifran mientras se mueven por la red porque los datos de TDE se cifran en el disco y la operación de copia de seguridad nunca los descifra .

Los mitos de respaldo de Paul Randal :

Mito 30-09) las copias de seguridad leen datos a través del grupo de búferes

No. El subsistema de respaldo abre sus propios canales a los archivos de la base de datos para evitar el impacto en el rendimiento de tener que leer todo en la memoria de SQL Server y volver al dispositivo de respaldo (y también vaciar el grupo de búferes en el proceso). Si solicita la verificación de suma de comprobación de página, utiliza su propia pequeña porción de memoria.

Si las páginas se cargaron en la agrupación de almacenamiento intermedio (el espacio de memoria "normal" que SQL usa para almacenar en caché la tabla de la base de datos y los datos de índice), tendrían que descifrarse. Pero las copias de seguridad no hacen eso, simplemente descargan "extensiones" encriptadas sin procesar (fragmentos contiguos de 8 páginas) a su destino de copia de seguridad.

Pude obtener la confirmación de Paul Randal de que su comentario anterior sigue siendo relevante para TDE :

Funciona exactamente de la misma manera. El grupo de búferes realiza el cifrado y luego agrega una suma de comprobación de página antes de escribir una página en el disco. Las copias de seguridad nunca leen a través del grupo de búferes. Entonces, sí, una copia de seguridad de la base de datos TDE todavía tiene el cifrado. Las sumas de verificación de página se validan, pero por código de respaldo, no por código de grupo de búfer.

En otras palabras, si ha habilitado CHECKSUM en una base de datos, estos se agregan (durante las operaciones normales de escritura de SQL) después de que se produce el cifrado. Esto significa que el proceso de copia de seguridad puede leer la extensión sin formato (cifrado), validar la suma de verificación y escribir la copia de seguridad, todo sin descifrar los datos.

Esta es casi seguramente la razón por la que (antes de SQL 2016), habilitar la compresión de respaldo en la base de datos con TDE no hizo nada, ya que los datos cifrados no son muy comprimibles :

Esto se debe a que cuando se realizan copias de seguridad de una base de datos cifrada TDE, las páginas de la base de datos no se descifran cuando se realiza una copia de seguridad. Se realiza una copia de seguridad en el mismo estado cifrado en el que se encuentran normalmente y luego se comprimen . Por su naturaleza, los datos cifrados son muy únicos, por lo que la compresión de datos no es muy útil contra los datos cifrados.

Para una operación de restauración, se aplica el mismo principio. La copia de seguridad cifrada permanece cifrada en toda la red y se escribe en el disco del servidor de restauración en su estado aún cifrado. Solo se descifran cuando la base de datos se carga en la memoria después de que se completa la restauración.

BradC
fuente
3

... ¿se cifran los datos de la operación de copia de seguridad mientras viaja desde la computadora A para escribirse en el disco en la computadora B?

Sí, se descifra cuando ingresa al grupo de búferes y se cifra cuando se va. En esta situación, ya que estamos escribiendo en el disco, primero se cifra y luego se escribe. Dado que las escrituras van a través de la red, los datos en sí están encriptados, pero las demás partes del tráfico de la red no lo están.

... durante una operación de restauración ... ¿encontrarían esos datos en movimiento cifrados?

Sí, ya que se aplica lo mismo anterior pero en orden inverso. Los datos se cifraron en el disco, se leen y transfieren en estado cifrado. Luego llega a la instancia y se carga en el grupo de búferes donde no está cifrado como un paso en el camino.

Sean Gallardy
fuente
1
Creo que esto es correcto, pero no estoy seguro de que sea correcto por las razones que usted dice. Pensé que una COPIA DE SEGURIDAD enviará EXTENSIONES de la base de datos sin formato (no páginas) al disco, evitando así el paso de descifrado cuando se cargan en la memoria. Podría estar equivocado, pero estoy buscando documentación ahora.
BradC
1
Encontrado, vea el mito de Paul Randal 30-09 : "El subsistema de respaldo abre sus propios canales a los archivos de la base de datos para evitar el impacto de tener que leer todo en la memoria de SQL Server y volver al dispositivo de respaldo". No menciona TDE específicamente, pero si el proceso de copia de seguridad es su propio canal, parecería un desperdicio descifrar solo para volver a cifrar de inmediato. Incluso podría validar CHECKSUMS y / o aplicar compresión sin descifrar, si están habilitados.
BradC
@BradC No estaba diciendo que la copia de seguridad en sí funcionaría de esta manera, sino cómo funcionaría el proceso de cifrado / descifrado con los datos en reposo. Si es ambiguo, lo cambiaré, sin embargo, no estoy diciendo que así es como funciona una copia de seguridad justo cuándo y dónde ocurre el cifrado / descifrado.
Sean Gallardy
Pero si el proceso de copia de seguridad no utiliza el grupo de búferes, entonces su razonamiento es incorrecto, incluso si la conclusión (los paquetes de copia de seguridad están encriptados) es correcta por una razón diferente.
BradC
@BradC No, el razonamiento es que ya está escrito en el disco, por lo que ya está cifrado ... No estoy seguro de cómo está obteniendo que estoy afirmando que una copia de seguridad se descifra y luego se vuelve a cifrar a través de la BP. Pensé que era bastante sencillo decir que ya estaba cifrado, por lo que copiarlo a otro disco o copiarlo desde otro disco no lo descifra ... No estoy seguro de cómo estás confundiendo esto.
Sean Gallardy