Análisis de protocolo de capa de aplicación: análisis de protocolo SSH a través de openssh

Análisis de protocolo

Antes de la aparición del protocolo SSH, Telnet era ampliamente utilizado en la gestión de dispositivos de red.
La ventaja del protocolo Telnet es que puede usarse para iniciar sesión en el dispositivo de red de forma remota, configurar el dispositivo de red y proporcionar una gran comodidad para que los administradores de red administren el dispositivo de red de forma remota.
Sin embargo, hay tres debilidades fatales en el protocolo Telnet:
la transmisión de datos utiliza texto sin formato y los datos transmitidos no tienen ninguna confidencialidad.
El mecanismo de autenticación es frágil. La información de autenticación del usuario se transmite en texto claro en la red, y es fácil de espiar; Telnet solo admite el método tradicional de autenticación de contraseña y es fácil de atacar.
El cliente no puede identificar realmente la identidad del servidor, y es fácil para un atacante realizar una "suplantación de pseudo-servidor".
El protocolo SSH es un protocolo de seguridad de red que implementa servicios seguros de acceso remoto y transferencia de archivos a través de mecanismos de encriptación y autenticación en un entorno de red inseguro.
El protocolo SSH tiene las siguientes ventajas:
la transmisión de datos utiliza texto cifrado para garantizar la confidencialidad de la interacción de la información;
la información de autenticación del usuario se transmite en texto cifrado, lo que puede evitar que la información del usuario sea escuchada;
además de la autenticación de contraseña tradicional, el servidor SSH Los usuarios también pueden autenticarse de varias maneras (como la autenticación de clave pública de mayor seguridad), lo que mejora la solidez de la autenticación del usuario;
las claves de cifrado y descifrado utilizadas para la comunicación entre el cliente y el servidor son a través de la clave Generado dinámicamente durante el proceso de interacción puede evitar la adivinación por fuerza bruta de las claves de cifrado y descifrado, y el nivel de seguridad es más alto que el de configurar claves manualmente;
proporciona al cliente la función de un servidor de autenticación, lo que puede evitar la "falsificación del pseudo servidor".
Inserte la descripción de la imagen aquíEl protocolo SSH utiliza una arquitectura cliente / servidor y se divide en una capa de transporte, una capa de autenticación y una capa de conexión.
El protocolo de la capa de transporte se utiliza principalmente para establecer un canal cifrado seguro entre el cliente y el servidor para proporcionar suficiente protección de confidencialidad para la autenticación del usuario, la interacción de datos y otras etapas que requieren una alta seguridad de transmisión de datos.
La capa de transporte proporciona las siguientes funciones:
Verificación de autenticidad de datos La verificación
de integridad de datos
proporciona al cliente la función de autenticar el servidor. El
protocolo de la capa de transporte generalmente se ejecuta en la conexión TCP / IP (el número de puerto conocido utilizado por el servidor es 22), y también se puede ejecutar en cualquier otro Conexión de datos de confianza.
El protocolo de la capa de autenticación se ejecuta sobre el protocolo de la capa de transporte para completar la autenticación del usuario conectado por el servidor.
El protocolo de capa de conexión es responsable de dividir varios canales lógicos en el canal encriptado para ejecutar diferentes aplicaciones. Se ejecuta sobre el protocolo de capa de autenticación y proporciona servicios como sesiones interactivas y ejecución remota de comandos.
La interacción de paquetes SSH tiene principalmente las siguientes etapas:
establecimiento de conexión,
negociación de versión , negociación de
algoritmo,
intercambio de claves,
autenticación de usuario,
solicitud de servicio,
transmisión de datos y cierre de
conexión, establecimiento de conexión,
servidor SSH, escucha de solicitudes de conexión de cliente en el puerto 22 y recepción de conexiones de cliente Una vez establecida la solicitud, se establece un protocolo de enlace de tres vías con el cliente para establecer una conexión TCP, y todas las interacciones de mensajes posteriores se realizan en la conexión TCP.
Negociación de la versión Después de establecer la
conexión TCP, tanto el servidor como el cliente enviarán el número de versión que admiten al par. Después de recibir la versión enviada por el par, el servidor y el cliente se comparan con el número de versión del extremo local. El número de versión más alto admitido por ambas partes es el número de versión negociado.
Una vez que la negociación de la versión es exitosa, ingresa a la siguiente etapa, la etapa de negociación del algoritmo. De lo contrario, desconectar.
La
interacción de paquetes de protocolo SSH de negociación de algoritmos requiere el uso de múltiples algoritmos:
Algoritmos de intercambio de claves para generar claves de sesión, incluidos los algoritmos diffie-hellman-group-exchangegesha1, diffie-hellman-group1-sha1 y diffie-hellman-group14-sha1.
Los algoritmos de cifrado utilizados para el cifrado de información de datos incluyen los algoritmos de cifrado 3des-cbc, aes128-cbc y des-cbc.
Hospedar algoritmos de clave pública para firmas digitales y autenticación, incluidos los algoritmos de clave pública RSA y DSA.
Algoritmos MAC para la protección de integridad de datos, incluidos los algoritmos hmac-md5, hmac-md5-96, hmacsha1 y hmac-sha1-96.
Dado que varios clientes y servidores admiten estos algoritmos de manera diferente, es necesario pasar la etapa de negociación del algoritmo para permitir que el cliente y el servidor negocien los algoritmos admitidos por ambas partes.
El proceso de negociación de algoritmos del protocolo SSH es el siguiente:
(1) Tanto el cliente como el servidor envían la lista de algoritmos que se apoyan entre sí;
(2) Las dos partes negocian cada algoritmo (algoritmo de intercambio de claves, algoritmo de cifrado, etc.) a su vez. El proceso de negociación de cada algoritmo es: tomar el primer algoritmo de la lista de algoritmos del cliente, encontrar el algoritmo correspondiente en la lista del lado del servidor, si el mismo algoritmo coincide, la negociación del algoritmo es exitosa; de lo contrario, continuar desde el algoritmo del cliente Tome el siguiente algoritmo de la lista y haga coincidirlo en la lista de algoritmos del lado del servidor hasta que la coincidencia sea exitosa. Si todos los algoritmos admitidos por el cliente no coinciden, la negociación del algoritmo falla.
(3) Después de que un cierto algoritmo se negocie con éxito, continúe negociando otros algoritmos de acuerdo con el método anterior hasta que todos los algoritmos se negocien con éxito; si un cierto algoritmo no se negocia, la negociación del algoritmo entre el cliente y el servidor falla y el servidor se desconecta Conexión con el cliente.
Después de que el
algoritmo de cifrado de intercambio de claves se negoció con éxito, a fin de garantizar la seguridad de las claves de cifrado y descifrado, SSH utiliza el algoritmo de intercambio de claves para generar e intercambiar dinámicamente y dinámicamente claves de cifrado y descifrado de datos en ambos lados de la comunicación, y puede evitar efectivamente que terceros escuchen el cifrado y descifrado. Clave
Autenticación del usuario Después de completar el
intercambio de claves, se ingresa la fase de autenticación del usuario.
Inserte la descripción de la imagen aquíEl proceso de autenticación del usuario es:
(1) El cliente envía un mensaje de solicitud de autenticación al servidor, que lleva el método de autenticación "ninguno".
(2) El servidor recibe la solicitud de autenticación ninguno y responde al mensaje de desafío de autenticación, que contiene una lista de métodos de autenticación admitidos por el servidor y requeridos por el usuario.
(3) El cliente selecciona un método de autenticación de la lista de métodos de autenticación que envía el servidor a sí mismo e inicia una solicitud de autenticación al servidor. La solicitud de autenticación incluye el nombre de usuario, el método de autenticación y el contenido relacionado con el método de autenticación: en el
método de autenticación de contraseña, El contenido es la contraseña del usuario; en el
método de autenticación de clave pública, el contenido es la parte de clave pública del par de claves locales del usuario (fase de verificación de clave pública) o firma digital (fase de verificación de firma digital).
(4) El servidor recibe la solicitud de autenticación del cliente y verifica la información de autenticación del cliente:
método de autenticación de contraseña: el servidor compara el nombre de usuario y la información de contraseña enviada por el cliente con el nombre de usuario y la contraseña almacenados en el dispositivo o servidor de autenticación remoto para juzgar Autenticación exitosa o fallida.
Método de autenticación de clave pública: el servidor verifica la legalidad de la clave pública. Si no es legal, la autenticación falla; de lo contrario, el servidor utiliza firmas digitales para autenticar al cliente y determinar si la autenticación fue exitosa o fallida.
(5) De acuerdo con la configuración del usuario en el extremo local y la finalización de la autenticación del usuario, el
servidor decide si el cliente debe continuar autenticándose, que se divide en las siguientes situaciones:
Si el método de autenticación es exitoso y el usuario no necesita continuar completando Para otras autenticaciones, el servidor responde con un mensaje de autenticación exitosa y el proceso de autenticación se completa con éxito.
Si este método de autenticación tiene éxito en la autenticación, pero el usuario necesita continuar completando otras autenticaciones, se devuelve el mensaje de falla de autenticación y el desafío de autenticación continúa enviándose al cliente. El mensaje lleva una
lista de métodos de autenticación que el servidor requiere que el cliente continúe completando;
Si este tipo de autenticación falla, los tiempos de autenticación del usuario no han alcanzado el número máximo de tiempos de autenticación, el servidor continúa enviando desafíos de autenticación al cliente;
si este tipo de autenticación falla y los tiempos de autenticación del usuario alcanzan el número máximo de tiempos de autenticación, el usuario La autenticación falla y el servidor se desconecta del cliente.
El
protocolo SSH de solicitud de servicio admite múltiples servicios de aplicación. Después de que el usuario complete con éxito la autenticación, el cliente SSH inicia una solicitud de servicio al servidor, solicitando al servidor que proporcione una determinada aplicación.
El proceso de solicitud de servicio es el siguiente:
(1) El cliente envía un mensaje SSH_MSG_CHANNEL_OPEN para solicitar establecer un canal de sesión con el servidor, es decir, la sesión;
(2) Después de que el servidor recibe el mensaje SSH_MSG_CHANNEL_OPEN, si admite el tipo de canal, responderá al mensaje SSH_MSG_CHANNEL_OPEN_CONFIRM para establecer la sesión Canal;
(3) Después de establecer el canal de sesión, el cliente puede solicitar una sesión de tipo shell o subsistema en el canal, correspondiente a dos tipos de servicios SSH y SFTP, respectivamente.
Transmisión de datos y cierre de la conexión La
solicitud de servicio es exitosa. Una vez establecida la sesión, el servidor y el cliente pueden transmitir datos sobre la sesión. El cliente cifra el comando que se ejecutará y lo transmite al servidor. El servidor recibe el mensaje y ejecuta el comando después del descifrado. El resultado de la ejecución se cifra y se envía al cliente. El cliente descifra el resultado recibido y lo muestra en el terminal. Una vez que finaliza la comunicación o expira el tiempo de inactividad del usuario, la sesión se cierra y la conexión se desconecta.

Servicio de construccion

El centos7 viene con el servicio ssh, que generalmente se inicia; de lo contrario, puede iniciar manualmente systemctl start ssh
Inserte la descripción de la imagen aquí

directorio ssh

Inserte la descripción de la imagen aquí

Configurar IP estática

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Análisis de captura de paquetes

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquíInserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Publicado 70 artículos originales · elogiado 17 · visitas 6691

Supongo que te gusta

Origin blog.csdn.net/qq_38626043/article/details/104359221
Recomendado
Clasificación