| Artículos | 01 ENE 2007

Confidencialidad e integridad de datos: transporte

Tags: Histórico
Curso de seguridad (y V)
Gonzalo Alvarez.
En este curso de seguridad en bases de datos en cinco entregas se explicarán algunos de los conceptos más importantes para protegerse frente a los ataques más frecuentes y las amenazas más graves. La confidencialidad e integridad de los datos resulta más vulnerable durante su transporte, viajando a través de redes y medios de transmisión sobre los que a menudo no se posee ningún control. En esta última entrega se explican qué medidas deben adoptarse para protegerlos de forma robusta y eficiente.

Nivel de dificultad: Alto
Objetivo: Asegurar la confidencialidad e integridad de los datos durante el transporte mediante el cifrado
Herramientas: Las propias herramientas que acompañan a la base de datos más herramientas comerciales descritas en el artículo

En la entrega anterior se trató la salvaguarda de la confidencialidad e integridad en el almacenamiento de los datos. Por desgracia, los problemas también pueden surgir al otro lado del cortafuegos. Una amenaza muy frecuente contra la confidencialidad e integridad se presenta durante el transporte de la información, ya que todo el tráfico transmitido entre los clientes y servidores de bases de datos podría ser interceptado por un atacante. Si no se implementan las contramedidas adecuadas, quedarán al descubierto los datos confidenciales, así como las credenciales de acceso al propio servidor de datos. En esta última entrega se explica cómo utilizar SSL y las herramientas proporcionadas por los servidores de bases de datos para protegerlos frente a los ataques de intercepción.

Confidencialidad
Como se expuso en la entrega anterior, la confidencialidad busca garantizar que los datos, objetos y recursos solamente puedan ser accedidos por sus destinatarios legítimos. Los sniffers de red plantean una de las amenazas más serias a la confidencialidad durante el transporte. Estos programas capturan todo el tráfico que circula por una red, de manera que toda información que no se encuentre cifrada, será conocida por el atacante: contraseñas, texto de las consultas, o resultados de las consultas.
Algunas bases de datos, como SQL Server 2000, envían las contraseñas en claro desde el cliente al servidor, como se aprecia en la Figura 1, correspondiente a una captura realizada con WireShark (www.wireshark.org), uno de los mejores sniffers de la actualidad, y además gratuito. SQL Server 2000 utiliza un rudimentario sistema de protección de la contraseña, consistente en calcular el XOR de cada byte con el valor hexadecimal A5. Obviamente, no ofrece ninguna seguridad. Afortunadamente, SQL Server 2005 ya no envía las contraseñas en claro, sino que siempre las transmite cifradas, independientemente de que se configure SSL, IPSec o cualquier otro protocolo. Oracle utiliza un protocolo propietario de tipo desafío/respuesta que no revela la contraseña de los usuarios que se conectan remotamente, conocido como Oracle Password Protocol (O3LOGON). Cuando un usuario desea conectarse al servidor, le envía en un primer mensaje, mostrado a continuación, su nombre de usuario:
system.....AUTH_TERMINAL.....MI_EQUIPO.....AUTH_PROGRAM_NM.....sqlplus.exe.....AUTH_MACHINE.....MI_DOMINIO\MI_EQUIPO.....AUTH_PID.....2006:1237.....
El servidor responde con el reto, consistente en el cifrado con DES de un número aleatorio usando como clave el hash de la contraseña del usuario. Este número aleatorio cifrado constituye la clave de sesión, siendo diferente para cada conexión, con el fin de evitar ataques de reactuación (replay attacks):
AUTH_SESSKEY.....9A0BDF834C512E76
El cliente, que obviamente debe conocer su contraseña, descifra el reto, obteniendo el número aleatorio. Aunque un atacante haya interceptado la comunicación, desconociendo la contraseña será incapaz de calcular el número aleatorio. A continuación, el cliente crea la respuesta al reto cifrando su contraseña con DES utilizando el número aleatorio como clave.
system.....AUTH_PASSWORD.....45BA09F2E881A63C.....AUTH_TERMIANL.....MI_EQUIPO.....AUTH_PROGRAM_NM.....sqlplus.exe.....AUTH_MACHINE.....MI_DOMINIO\MI_EQUIPO.....AUTH_PID.....2006:1237.....AUTH_ACL.....4000
Por otro lado, en la Figura 2 se muestra la captura con el sniffer del resultado de una consulta sobre la tabla de usuarios, en la que se exponen los datos personales de los clientes.
Nuevamente el cifrado constituye el mejor aliado para salvaguardar la confidencialidad frente a los ataques de intercepción de tráfico. El administrador de la base de datos puede elegir entre varias tecnologías distintas para cifrarlo: desde utilizar un protocolo propietario de la propia base de datos, como en Oracle, hasta utilizar protocolos bien establecidos, como SSL o IPSec.

SSL
SSL (Capa de Sockets Seguros o Secure Sockets Layer) se ha convertido en el estándar de facto para el cifrado de las comunicaciones web. Aunque su aplicación más común tiene lugar en el ámbito de la protección del tráfico entre navegadores y servidores web, es decir, del protocolo HTTP, puede utilizarse para asegurar el transporte de cualquier tipo de tráfico entre dos equipos. De hecho, constituye la solución criptográfica más utilizada para cifrar el tráfico de base de datos. SSL ofrece los siguientes servicios de seguridad: 1) confidencialidad de los datos, ya que cifra todo el tráfico

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información