¿Cómo mejorar el rendimiento de la base de datos MySQL cifrada en el servidor backend de Linux?

2

¿Es tecnología de encriptación transparente de ezNcrypt la única forma de obtener un gran aumento en el rendimiento? ¿Hay otras buenas soluciones que podríamos estar buscando para cifrar toda la base de datos con un impacto marginal en el rendimiento? Por lo que sé. muchas bases de datos MySQL de Linux se dejan sin cifrar debido al problema de rendimiento. No queremos hacer eso.

Con el alojamiento externo, incluso con un servidor dedicado, no estoy seguro de que tengamos demasiadas opciones de hardware. A menos que alguien sepa de una empresa de hosting que se especializa en aplicaciones de alta seguridad. Pensamos en probar unidades de disco SSD (disponibles en algunas compañías de alojamiento) pero no estamos seguros de cuál será el impacto en el rendimiento del cifrado. Cualquier comentario sobre eso y sobre ezNcrypt u otras soluciones que no sean de hardware sería útil. Gracias.

    
pregunta Dan 14.02.2012 - 01:15
fuente

2 respuestas

4

Revelación completa: Soy el Arquitecto Jefe de Gazzang, así como uno de los autores y el actual desarrollador ascendente del sistema de archivos encriptado eCrypfs.

Hola @Dan,

ezNcrypt es un producto comercial vendido por mi empleador, Gazzang . Está construido sobre eCryptfs , un sistema de archivos encriptado de código abierto integrado en el kernel de Linux y con las utilidades de espacio de usuario disponibles en todas las principales distribuciones de Linux. Intentaré abordar su pregunta de manera imparcial :-)

eCryptfs es 100% GPLv2 de software libre. Es un sistema de archivos encriptado maduro ampliamente disponible en Linux. Se estima que unos 3 millones de usuarios de escritorio de Ubuntu utilizan eCryptfs a través de la función Ubuntu Home Directory cifrado de Ubuntu. Cada archivo se encripta individualmente (yuxtapuesto contra el cifrado de disco completo y de partición completa mapeado por dispositivo). eCryptfs minimiza la penalización de rendimiento en comparación con otras opciones de cifrado, como se indica en este informe de Phoronix , y este documento de diseño de ChromeOS de Google que utiliza eCryptfs. Si sabe lo que está haciendo (o con un poco de investigación independiente), es casi seguro que pueda realizar el cifrado de su base de datos MySQL utilizando eCryptfs y minimizar el impacto en el rendimiento. Tomará un esfuerzo considerable, y su configuración tendrá una garantía de calidad y reproducibilidad limitadas, ¡aunque conozco a muchas personas que usan eCryptfs para casos de uso mucho más locos!

ezNcrypt incluye una fuente abierta ( GPLv2 ) DKMS módulo del kernel, pero un espacio de usuario patentado se vende como un producto comercial con licencia de Gazzang . Con la licencia comercial, los clientes reciben un servicio de atención al cliente de primera clase y un conjunto de utilidades que hacen que el cifrado de cualquier base de datos (incluido MySQL) sea mucho más "fácil" como lo indica su nombre. En el nivel más bajo, ezNcrypt sigue utilizando eCryptfs, pero el conjunto de herramientas de base de datos, completamente probado y probado, es un producto de pago, con soporte comercial.

    
respondido por el Dustin Kirkland 21.02.2012 - 20:36
fuente
3

Lo que aceleraría las cosas sería tener los campos confidenciales encriptados utilizando el Estándar de cifrado avanzado (AES) en un sistema con una CPU con capacidad AES-Instruction-Set- (IS), preferiblemente con claves de 256 bits, preferiblemente en Modo de encadenamiento de bloques Ciper (CBC) o, al menos, modo de libro de códigos electrónico (ECB) con una sal: esto se puede hacer simplemente añadiendo al menos 1 carácter / byte a los datos a cifrar.

Lo que sería aún más seguro sería cifrar todo, excepto / bootear con AES en el horario extendido con el modo de robo de texto cifrado (XTS) además campos tan confidenciales en la base de datos. Puede utilizar TrueCrypt para cifrar un disco completo, una partición o simplemente un contenedor TrueCrypt de esta manera. Sin embargo, recomendaría el cifrado del sistema para que nadie puede ver el código PHP (?) que contiene la clave de cifrado si su (s) disco (s) son robados (s).

Un ataque de fuerza bruta de texto simple conocido en una clave AES para datos encriptados en modo ECB en un Cray XE6 con 1 millón de chips Opteron 6200 de la serie tomaría un máximo de 1.3418897890454524248034787874518e + 71 años solo por las instrucciones AES-NI. Hacerlo en un Cray XK6 lo colocaría en algún lugar alrededor de 1.34e + 69 años como máximo. Esto es, sin embargo, simplemente un ataque de fuerza bruta, sin romper AES. Romper parcialmente AES lo aceleraría exponencialmente.

Lo más importante es utilizar una frase de contraseña compleja. Esto significa que debe ser una cadena larga de un pequeño conjunto de caracteres (por ejemplo, las letras del alfabeto inglés) o una cadena corta de, básicamente, bits aleatorios cuyo valor de byte no es cero (terminador nulo). El uso de una frase de paso de hasta 8 caracteres que consiste en las letras del alfabeto inglés coloca un ataque de fuerza bruta en datos cifrados con AES en menos de 10 segundos en un Cray XE6 con 1 millón de chips Opteron 6200-series y por debajo de 100 milisegundos en un Cray XK6. Consulte Ataque de fuerza bruta de texto sin formato conocido sin diccionario en AES-256 .

Incluso más seguro sería usar algo que no sea AES con un acelerador de hardware, porque la aceleración de AES está ampliamente disponible. Aún más seguro sería usar ambos.

    
respondido por el nlovric 14.02.2012 - 17:38
fuente

Lea otras preguntas en las etiquetas