Los principios, componentes, métodos de verificación y procesos del protocolo SSH
SSH es la abreviatura del protocolo Secure SHell, que proporciona inicio de sesión remoto seguro y otros servicios de red seguros a través de redes inseguras.
OpenSSH es una implementación gratuita y de código abierto del protocolo SSH (Secure SHell).
OpenSSH es una implementación gratuita y de código abierto del protocolo SSH (Secure SHell), una serie de protocolos que se pueden utilizar para controlar o transferir archivos de forma remota entre ordenadores. Los métodos tradicionales como telnet (Protocolo de emulación de terminal), rcp ftp, rlogin y rsh son muy inseguros y utilizan texto sin cifrar para transmitir contraseñas. openSSH proporciona herramientas de backend del lado del servidor y del lado del cliente para cifrar datos durante el control remoto y la transferencia de archivos, y reemplaza los servicios similares originales.
En el pasado, usábamos rsh y telnet, que tenían problemas de seguridad ya que los datos, incluidos los ID de inicio de sesión y las contraseñas, se transmitían a través de la red sin cifrar. ssh cifra todos los datos, incluidas las contraseñas, lo que hace que las operaciones remotas sean más seguras. Debido a los diferentes estándares de protocolo, SSH tiene dos versiones diferentes, SSH1 y SSH2. SSH2 se desarrolló para resolver problemas de licencia para los algoritmos de cifrado utilizados en SSH1 (que ya no existen). OpenSSH de código abierto se utiliza como aplicación para instalar el protocolo SSH en TLES 8. OpenSSH se puede utilizar con SSH1 y SSH2.
SSH tiene tres componentes principales:
El marco del protocolo SSH también proporciona soporte extendido para muchos protocolos avanzados de aplicaciones de seguridad de red. La relación jerárquica entre ellos se puede representar mediante la siguiente figura:
El objetivo del protocolo SSH es proporcionar una comunicación segura, para lo cual es esencial un mecanismo de claves completo. Dado que el protocolo SSH está orientado al acceso mutuo y al intercambio de información entre hosts en la red de Internet, la clave del host se convierte en el mecanismo de clave básico. Es decir, el protocolo SSH requiere que cada host que utilice el protocolo tenga al menos un par de claves de host propio, y el proveedor de servicios solo puede permitir la solicitud de conexión del cliente después de verificar su clave de host. El host puede utilizar varias claves, diferentes claves para diferentes algoritmos de claves, pero se requiere al menos una, la clave generada por el algoritmo DSS. Para obtener más información sobre el algoritmo DSS, consulte el documento FIPS-186. El protocolo SSH tiene dos esquemas para administrar la verificación de la clave del host, como se muestra en la siguiente figura:
Cada host debe tener su propia clave de host, que puede ser de varios pares de claves. Cada par de claves de host consta de. a Consta de una clave pública y una clave privada. ¿Cómo se utilizan estas claves en la práctica y cómo se confía en ellas para implementar funciones de seguridad? Como se muestra arriba, se proponen dos soluciones en el marco del protocolo SSH.
En la primera solución, el host distribuye su clave pública a los clientes relevantes. Cuando el cliente accede al host, utiliza la clave pública del host para cifrar los datos y el host usa su propia clave privada para cifrar los datos. cifrar los datos, logrando así la autenticación de la clave del host y determinando la identidad confiable del cliente. Como se puede ver en la Figura 2 (a), el usuario inicia una operación para acceder al host B y al host C desde el host A. En este momento, A se convierte en el cliente. Las claves públicas del host B y del host C deben configurarse de antemano. Al acceder, busque según el nombre del host. Para el host al que se accede (es decir, el lado del servidor), simplemente almacene su clave privada de forma segura.
En el segundo caso, hay un centro de certificación de claves. Todos los hosts que brindan servicios en el sistema enviarán sus propias claves públicas al centro de certificación, y cualquier host como cliente solo necesita guardar una copia. Será suficiente una copia de la clave pública de la autoridad certificadora. En este modo, el cliente también debe solicitar autenticación al centro de certificación de claves antes de acceder al host del servidor. Solo después de la autenticación el cliente puede conectarse correctamente al host de destino.
Obviamente, el primer método es más fácil de implementar, pero el mantenimiento de la clave por parte del cliente es muy problemático, porque cada cambio debe reflejarse en el cliente. El segundo método es una solución más perfecta. Sin embargo, este modelo exige mucho al centro de certificación. Para lograr dicha certificación centralizada en Internet, la identificación autorizada por sí sola es un gran problema. Problema, ¿quién tiene la última palabra? Pero a largo plazo, en aplicaciones empresariales y comerciales, es necesaria la adopción de soluciones de autenticación centralizadas.
Además, el marco del protocolo SSH permite comprometer las claves del host, es decir, un primer acceso no autenticado. El primer acceso no autenticado significa que cuando el cliente accede al host por primera vez, el host no verifica la clave del host, sino que emite una copia de la clave pública al cliente, por lo que el cliente debe usar la clave pública en accesos posteriores; de lo contrario, El acceso se considera ilegal y se deniega.
Durante todo el proceso de comunicación, para lograr una conexión SSH segura, el servidor y el cliente deben pasar por las siguientes cinco etapas:
* Etapa de negociación del número de versión, SSH actualmente incluye SSH1 y SSH2 Hay dos versiones, y ambas partes determinan la versión que se utilizará mediante la negociación de versiones.
* En la etapa de negociación de claves y algoritmos, SSH admite múltiples algoritmos de cifrado y las dos partes negocian el uso final. basado en los algoritmos admitidos por el cliente y la otra parte. algoritmo
* En la fase de autenticación, el cliente SSH inicia una solicitud de verificación al servidor y el servidor autentica al cliente
* En la fase de sesión interactiva, el cliente y el servidor se comunican a través de solicitudes de sesión Interacción
* Interacción con el cliente
* Fase de sesión interactiva, el servidor y el cliente interactúan con el cliente
* Interacción entre el cliente y el cliente SSH
P1: Qué versiones de SSH existen y cuáles son las diferencias.
SSH2 evita los problemas privativos de RSA y corrige los fallos de CRC. SSH2 reemplaza RSA con el algoritmo de firma digital (DSA) y el algoritmo Diffie-Hellman (DH) para el intercambio de claves simétrico, y CRC con HMAC, al tiempo que agrega algoritmos de cifrado simétrico como AES y Twofish.
R1: SSH (Secure SHell) actualmente tiene dos versiones mutuamente incompatibles: SSH1 y SSH2. SSH1 se divide en dos versiones: 1.3 y 1.5. SSH1 utiliza algoritmos de cifrado simétrico como DES, 3DES, Blowfish y RC4 para proteger la transmisión segura de datos, mientras que SSH2 agrega algoritmos de cifrado simétrico como AES y Twofish. SSH1 utilizó una suma de verificación de redundancia cíclica (CRC) para garantizar la integridad de los datos, pero luego se descubrió que este enfoque era defectuoso.
Para obtener más información, consulte Protocolo SSHv1 y Protocolo SSHv2.
Pregunta 2: ¿Qué es HMAC?
A2: HMAC (Código de verificación de mensaje hash) A2: HMAC (Código de verificación de mensaje hash), código de verificación de mensaje hash, protocolo de verificación de algoritmo hash basado en claves El principio del código de autenticación de mensajes para lograr la autenticación Un público. La función y la clave se utilizan para generar un valor de longitud fija como identificador de autenticación. Este identificador se utiliza para identificar la integridad del mensaje. La clave se utiliza para generar un pequeño bloque de datos de tamaño fijo, llamado MAC, y se agrega a. el mensaje. y luego transmitir. El receptor utiliza la clave compartida con el remitente para la autenticación, etc.
Pregunta 3: ¿Qué es el reenvío X11?
A3: sh El reenvío X11. La característica permite que los clientes X y los servidores X se comuniquen de forma segura. Con el reenvío X11, los datos del cliente X al servidor X se envían primero al servidor ssh, y el servidor ssh reenvía los datos a ssh usando un canal seguro con el cliente ssh. cliente y luego reenviado por el cliente ssh al servidor X, el flujo de datos desde el servidor X al cliente X es el mismo.
Aquí, el servidor ssh y el cliente ssh actúan como reenviadores de datos entre el cliente X y el servidor X. Dado que el servidor ssh y el cliente X y el cliente ssh y el servidor X generalmente están en la misma máquina, existe una comunicación segura entre procesos entre ellos, y la comunicación entre el servidor ssh y el cliente ssh también es segura, por lo que la comunicación con el servidor X es segura.
P4: ¿Qué es TTY?
R4: Un terminal es un dispositivo basado en caracteres que viene en muchos tipos. Tty se usa generalmente para referirse a varios tipos de terminales. Tty es la abreviatura de Teletipo, el primer tipo de terminal, similar a una máquina de teletipo, producido por Teletype Corporation. Corporación Teletipo. El nombre del dispositivo se coloca en el directorio de archivos especial /dev/.
Pregunta 5: ¿Describe brevemente el proceso de ejecución de SSH?