Fortificación dun sistema LAMP

De MediaWiki
Ir a la navegación Ir a la búsqueda

Seguridade nas comunicacións

Dende o punto de vista da seguridade das comunicacións entre o servidor e o cliente, o protocolo HTTP apenas contempla os tres requerimentos necesarios para ser considerado seguro:

Autenticación
O cliente non ten forma de comprobar que o servidor ó que se conecta é realmente ó que quería conectarse; e é polo tanto vulnerable a ataques de tipo DNS spoofing, IP spoofing e man-in-the-middle. Pola outra banda, o servidor só pode comprobar a identidade do cliente mediante usuario e clave, método débil (sobre todo se as comunicacións van en claro) e mediante IP/nome de máquina de orixe, tamén suxeito a posibles ataques de IP spoofing, DNS cache poisoning, etc.
Privacidade
O protocolo HTTP viaxa en claro pola rede polo que o contido e os datos de usuario e clave poden ser facilmente capturados por terceiras persoas que se atopen nalgún punto entre o servidor e o cliente.
Integridade
Aínda que o protocolo HTTP usa o protocolo de transporte TCP, que garante que toda a información chega íntegra entre cliente e servidor, ningún dos dous protocolos evita que un terceiro interpóñase entre cliente e servidor, substituíndo as mensaxes dun e doutro a vontade (man-in-the-middle), por exemplo cun simple proxy transparente.

Aquí é onde entran en xogo SSL (Secure Sockets Layer) e TLS (Transport Layer Security). SSL/TLS son protocolos criptográficos que permiten ter comunicacións seguras. Tanto SSL coma TLS, son protocolos de nivel de aplicación que a través do uso de certificados dixitais X.509v3, PKI e criptografía híbrida permiten establecer canles de comunicación seguras polas que poden circular paquetes de datos doutros protocolos de nivel de aplicación. Esta característica é moi interesante; xa que permite que sobre canles seguros SSL/TLS viaxen datos de protocolos non seguros, sen necesidade de modificalos. HTTP, SMTP, IMAP, POP e LDAP son algúns dos protocolos non seguros que poden aproveitarse de SSL/TLS para enviar as súas comunicacións cifradas.

SSL/TLS no modelo de capas

Fig. Capa SSL/TLS

O módulo mod_ssl pon a disposición do servidor web Apache, usando a biblioteca OpenSSL, os protocolos SSL v3 e TLS v1.x (considerado como SSLv3.1), que realizan o labor de autenticación (de clientes e servidores), cifrado das transmisións e integridade do seu contido:

  • Autenticación: mediante certificados dixitais, que están asinados por unha autoridade certificadora (CA) recoñecida por ambos extremos e que identifican inequivocamente ó seu posuidor.
  • Privacidade: mediante o uso de algoritmos de cifrado, toda comunicación entre cliente e servidor é só lexible para estes.
  • Integridade: mediante o uso de algoritmos de resumo ou hash impídese que esta sexa modificada de forma inadvertida.

Escenarios