La respuesta de
@ graham-hill es correcta en general, pero corta y pediátricamente incorrecta, por lo que me extenderé.
SSH se encuentra en el nivel de la aplicación; puede considerarlo como SSH / TCP / IP o SSH-over-TCP-over-IP. TCP es la capa de transporte en esta mezcla, IP es la capa de Internet. Otros protocolos de "Aplicación" incluyen SMTP, Telnet, FTP, HTTP / HTTPS ...
IPSec se implementa utilizando dos Transportes separados: ESP ( Encapsulating Security Payload para cifrado) y AH ( Authentication Header para autenticación e integridad). Entonces, digamos que se está realizando una conexión Telnet a través de IPSec. En general, puede visualizarlo como Telnet / TCP / ESP / AH / IP.
(Solo para hacer las cosas interesantes, IPSec tiene dos modos: Transporte (descrito arriba) y Túnel. En el modo túnel, la capa IP se encapsula dentro de IPSec y luego se transmite a través de otra capa IP (generalmente). con Telnet / TCP / IP / ESP / AH / IP!)
Entonces, preguntas "explica la diferencia entre los dos" -
SSH es una aplicación e IPSec es un transporte. Por lo tanto, SSH transporta "un" tipo de tráfico, y IPSec puede transportar "cualquier" tipo de tráfico TCP o UDP. * Esto tiene implicaciones que se describen a continuación:
Usted pregunta, "cómo se verían de manera diferente al usuario" -
Debido a que IPSec es la capa de transporte, debería ser invisible para el usuario, al igual que la capa TCP / IP es invisible para el usuario de un navegador web. De hecho, si se usa IPSec, entonces es invisible para el escritor del navegador web y el servidor web; no tienen que preocuparse por configurar o no configurar IPSec; Ese es el trabajo del administrador del sistema. Contraste esto con HTTPS, donde el servidor necesita una clave privada y un certificado debidamente habilitado, bibliotecas SSL compiladas y código escrito; el navegador del cliente tiene bibliotecas SSL compiladas y escritas con código y tiene la clave pública de CA apropiada o grita en voz alta (entrometiéndose en la aplicación) si no está allí.
Cuando se configura IPSec, ya que actúa en la capa de transporte, puede admitir múltiples aplicaciones sin ningún problema. Una vez que haya configurado IPSec entre dos sistemas, es una diferencia muy pequeña entre trabajar con 1 aplicación o 50 aplicaciones. Del mismo modo, IPSec hace un envoltorio fácil para protocolos que usan múltiples conexiones como FTP (control y datos pueden ser conexiones separadas) o H.323 (no solo conexiones múltiples, sino también múltiples Transportes (TCP y UDP)).
Sin embargo, desde el punto de vista del administrador, IPSec es más pesado que SSH o SSL. Requiere más configuración ya que trabaja su magia en el nivel del sistema en lugar del nivel de la aplicación. Cada relación (host-to-host, host-to-net o net-to-net) debe configurarse individualmente. Por otro lado, SSH y SSL son generalmente oportunistas ; al utilizar un modelo PKI (CA) o web de confianza, hacen que sea razonablemente fácil confiar en el otro extremo de la conexión sin mucha configuración antes de hora. IPSec puede ser oportunista, pero generalmente no se usa de esa manera, en parte porque la configuración de una conexión IPSec a menudo requiere prueba y error. La interoperabilidad entre diferentes proveedores (Linux, Checkpoint, Cisco, Juniper, etc.) no es perfecta; la configuración utilizada para hacer que Cisco < - > Checkpoint sea probablemente diferente a la configuración utilizada para hacer Cisco < - > Juniper. Contrasta esto con SSH: al servidor OpenSSH realmente no le importa si está ejecutando Putty, OpenSSH (* nix o Cygwin) SSH, o Tectia SSH.
En lo que respecta a la velocidad, no tengo buenos números para darte, y parte de la respuesta es "depende": si IPSec está involucrado, es probable que el procesamiento real de IPSec se descargue a un firewall. o concentrador VPN con hardware rápido dedicado, lo que lo hace más rápido que SSH, que casi siempre se encripta utilizando la misma CPU de propósito general que también ejecuta el sistema operativo y las aplicaciones del servidor. Así que no es realmente manzanas con manzanas; Apuesto a que podrías encontrar casos de uso donde cualquiera de las dos opciones es más rápida.
* Esto no es estrictamente verdadero. SSH admite una aplicación de terminal, una aplicación de copia de archivos / ftp y una aplicación de tunelización TCP. Pero efectivamente, es solo una aplicación realmente rica , no un transporte, su tunelización no es un reemplazo del transporte IP.