En SQL Server 2016, ¿cuál es la diferencia entre cifrado de datos siempre cifrado y transparente?


40

Mientras escribo esto, todavía estoy esperando el lanzamiento oficial de SQL Server 2016 para poder explorar la utilidad de su función "Siempre cifrado".

Solo me gustaría saber cuáles serán las diferencias específicas entre Always Encrypted y el cifrado de datos transparente actualmente disponible en SQL Server 2016 para que podamos tomar la decisión correcta para futuros proyectos.


Con Always Encrypted, los controladores del cliente cifran / descifran los datos antes de que lleguen a SQL Server mientras TDE se ejecuta en el propio SQL Server. En mi humilde opinión, TDE es inútil principalmente en escenarios de centros de datos en la nube / seguros (desplazarse hasta "TDE no es muy útil en la nube"). Si está interesado en la seguridad de datos avanzada, también consulte Crypteron .
Divulgación

Respuestas:


48

Desventajas de cifrado de datos transparente en comparación con cifrado siempre:

  • Solo protege los datos en reposo: las copias de seguridad y los archivos de datos son "seguros", pero los datos en movimiento o en la memoria son vulnerables
  • Base de datos completa solamente
  • Todos los datos se cifran de la misma manera.
  • La compresión de respaldo puede tomar más tiempo y ser contraproducente

    • Bueno, en realidad, hay algunas mejoras aquí en SQL Server 2016 que desafían lo que típicamente hemos sabido sobre tratar de comprimir datos cifrados: es mucho mejor que las versiones anteriores, pero presumiblemente aún peor que solo cifrar un puñado de columnas (no probado)
  • tempdb también hereda el cifrado, permanece incluso después de deshabilitar TDE
  • Requiere Enterprise Edition
  • Datos siempre accesibles para sysadmin

Siempre cifrado aborda todos estos problemas en parte o en su totalidad:

  • Los datos están protegidos en reposo, en movimiento y en la memoria: mucho más control sobre los certificados, las claves y exactamente quién puede descifrar los datos
  • Puede ser solo una columna
  • El tipo de cifrado es una opción:
    • Puede usar cifrado determinista para admitir índices y búsquedas de puntos (por ejemplo, SSN)
    • Puede usar cifrado aleatorio para una mayor protección (por ejemplo, número de tarjeta de crédito)
  • Dado que no abarca toda la base de datos, la compresión de respaldo no se ve necesariamente afectada; por supuesto, cuantas más columnas cifre, peor suerte tendrá.
  • tempdb no está involucrado
  • A partir de SQL Server 2016 Service Pack 1, Always Encrypted ahora funciona en todas las ediciones
  • Los datos se pueden proteger de sysadmin (pero no de sysadmin Y de los administradores de seguridad / cert / key de Windows, en otras palabras, puede separar la responsabilidad siempre que esos dos grupos no entren en conflicto)

Sin embargo, hay una limitación, y es que no todos los controladores y aplicaciones pueden manejar los datos cifrados directamente, por lo que en algunos casos esto requerirá actualizar / cambiar los controladores y / o modificar el código.


¿Podría explicarme cómo cifrar siempre los datos en la memoria? Intenté encontrar esta información en el MSDN, pero solo dice sobre datos en reposo y cifrado de datos en movimiento. Gracias :)
Victoria Malaya

1
@Victoria, el proveedor cifra los datos antes de que SQL Server los vea. Por lo tanto, SQL Server recibe un valor cifrado, coloca ese valor cifrado en el disco y carga el valor cifrado en la memoria cuando esa página está en la memoria. El cifrado no ocurre en la memoria como usted piensa, y el descifrado solo ocurre cuando un cliente posee un certificado con la capacidad de descifrar ...
Aaron Bertrand

2
Hasta donde yo sé, una de las mayores diferencias es cuando se trata de consultar los datos. Con TDE puede ejecutar cualquier consulta como lo haría normalmente, con AE está muy restringido cuando se trata de consultar las columnas cifradas, es decir, solo puede hacer comparaciones de igualdad (y eso requiere optar por un cifrado determinista). No hay intervalos de fechas de verificación, no hay consultas ME GUSTA, etc.
musefan

3

En pocas palabras, TDE son datos cifrados en reposo (en el disco) y AE también son datos cifrados en el cable.


Creo que podrías tener eso al revés, ¿no?
zwerdlds

¿No debería ser así: TDE son datos cifrados en reposo mientras que AE son datos cifrados en el cable, en reposo y en la memoria?
RoastBeast

AFAIK: puede combinar TDE y Force Protocol Encryption en el servidor MS SQL para tenerlo también codificado en el cable.
TiloBunt
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.