Linux - Sección 17 - Conceptos básicos de red (capa de aplicación 3)

Tabla de contenido

1.Protocolo HTTPS

1.1 Introducción a HTTPS

1.2 Conocimientos complementarios

1.2.1 ¿Qué es el "cifrado"?

1.2.2 Por qué cifrar

1.2.3 Métodos de encriptación comunes

1.2.4 Resumen de datos y huella de datos

1.2.5 Firma digital

2. Explorando el proceso de trabajo de HTTPS

2.1 Opción 1 - Usar solo encriptación simétrica

2.2 Escenario 2: solo una de las partes utiliza el cifrado asimétrico

2.3 Escenario 3 - Ambos lados usan encriptación asimétrica

2.4 Esquema 4 - Cifrado asimétrico + Cifrado simétrico

2.5 Ataque de intermediario

2.6 Certificado de importación

2.6.1 Autenticación de CA

2.6.2 Comprender las firmas de datos

2.7 Esquema 5 - Cifrado asimétrico + Cifrado simétrico + Autenticación de certificado

2.8 Proceso completo

2.9 Cómo convertirse en intermediario


1.Protocolo HTTPS

1.1 Introducción a HTTPS

HTTPS también es un protocolo de capa de aplicación, que introduce una capa de cifrado basada en el protocolo HTTP.
El contenido del protocolo HTTP se transmite en texto sin formato en forma de texto, y la transmisión de texto sin formato no es segura, por lo que la solución principal actual es agregar una capa de software SSL/TLS entre la capa de aplicación donde se encuentra http y el transporte. capa donde se encuentra tcp (la capa de software SSL/TLS pertenece a la capa de aplicación), la capa de software SSL/TLS realiza la función de cifrado de los datos enviados desde la capa de aplicación a la capa de transporte y realiza la función de descifrado de los datos recibida de la capa de transporte a la capa de aplicación.
Incluiremos el protocolo http y la capa de software SSL/TLS como un todo en el protocolo https.
Nota:
1. Para el protocolo http en sí, envía información de texto sin formato y recibe información de texto sin formato, que no se ve afectada de ninguna manera.
2. El puerto de enlace predeterminado del protocolo http es el puerto 80 y el puerto de enlace predeterminado del protocolo https es el puerto 443.

1.2 Conocimientos complementarios

1.2.1 ¿Qué es el "cifrado"?

El cifrado consiste en realizar una serie de transformaciones en el texto plano (información a transmitir) para generar texto cifrado.
El descifrado consiste en realizar una serie de transformaciones en el texto cifrado y restaurarlo a texto sin formato.
En el proceso de cifrado y descifrado, a menudo se necesitan uno o más datos intermedios para ayudar en este proceso.Dichos datos se denominan clave.
Nota: Todo el cifrado es para evitar que alguien en el medio robe y manipule.

1.2.2 Por qué cifrar

Por ejemplo:
Descargue un software de Tiantiandongting. Si no ha sido secuestrado, haga clic en el botón de descarga y aparecerá el enlace de descarga de Tiantiandongting, como se muestra en la Figura 1 a continuación. Si ha sido secuestrado, haga clic en el botón de descarga y la descarga del navegador QQ aparecerá un enlace, como se muestra en la Figura 2 a continuación.
Como se muestra en la figura a continuación, dado que cualquier paquete de datos que transmitamos a través de la red pasará a través del equipo de red del operador (enrutadores, conmutadores, etc.), entonces el equipo de red del operador puede analizar el contenido de los datos que transmite y manipularlos. él.
Al hacer clic en el botón "Descargar", en realidad se envía una solicitud HTTP al servidor, y la respuesta HTTP obtenida en realidad contiene el enlace de descarga de la APLICACIÓN. Después de que el operador secuestrara, descubrió que la solicitud era para descargar Tiantiandongting, por lo que cambió automáticamente la respuesta al usuario a la dirección de descarga de "QQ Browser".

Por lo tanto, debido a que el contenido de http se transmite en texto sin formato, los datos de texto sin formato pasarán a través de múltiples nodos físicos como enrutadores, puntos de acceso wifi, operadores de servicios de comunicación, servidores proxy, etc. Si la información es secuestrada durante la transmisión, el contenido transmitido estará completamente expuesto. El secuestrador también puede alterar la información transmitida sin que ambas partes lo noten.Este es un ataque de intermediario, por lo que necesitamos cifrar la información.
No solo los operadores pueden secuestrar, sino que otros piratas informáticos también pueden usar medios similares para robar información de privacidad del usuario o alterar el contenido. Imagínese, si un pirata informático obtiene el saldo de la cuenta del usuario cuando el usuario inicia sesión en Alipay, e incluso obtiene la contraseña de pago del usuario...
¡En Internet, la transmisión de texto claro es algo más peligroso!
HTTPS está encriptado sobre la base de HTTP para garantizar aún más la seguridad de la información del usuario.

1.2.3 Métodos de encriptación comunes

Cifrado simétrico:
• Utilizando el método de encriptación del sistema criptográfico de clave única, la misma clave puede usarse tanto para encriptar como para desencriptar información.Este método de encriptación se denomina encriptación simétrica, también conocida como encriptación de clave única.Características: se utiliza para encriptar y desencriptar Las claves son lo mismo.
• Algoritmos de cifrado simétrico comunes (entender): DES, 3DES, AES, TDEA, Blowfish, RC2, etc.
• Características: algoritmo abierto, pequeña cantidad de cálculo, alta velocidad de encriptación y alta eficiencia de encriptación.
El cifrado simétrico consiste en realidad en cifrar texto sin formato en texto cifrado y descifrar texto cifrado en texto sin formato a través de la misma "clave".
Ejemplo: (un cifrado simétrico simple, bit a bit XOR)
Suponiendo que el texto sin formato a=1234 y la clave clave=8888, el texto cifrado b obtenido al cifrar una^clave es 9834. Luego calcule b^key nuevamente para el texto cifrado 9834, y se obtiene el texto sin formato original 1234. (Lo mismo es cierto para el cifrado simétrico de cadenas, cada carácter se puede representar como un número)
Por supuesto, XOR bit a bit es solo la forma más simple de cifrado simétrico. Bitwise XOR no se usa en HTTPS.
Cifrado asimétrico:
• Se necesitan dos claves para el cifrado y el descifrado, las dos claves son la clave pública (clave pública, denominada clave pública) y la clave privada (clave privada, denominada clave privada).
• Algoritmos de cifrado asimétrico comunes: RSA, DSA, ECDSA
• Características: la fuerza del algoritmo es compleja y la seguridad depende del algoritmo y la clave.Sin embargo, debido a la complejidad del algoritmo, la velocidad de cifrado y descifrado no es tan rápida como la del cifrado y descifrado simétrico.
El cifrado asimétrico utiliza dos claves, una se denomina "clave pública" y la otra se denomina "clave privada". La clave pública y la clave privada están emparejadas. La mayor desventaja es que la velocidad de operación es muy lenta, mucho más lenta que el cifrado simétrico.
• Cifre el texto sin formato con la clave pública y conviértalo en texto cifrado
• Descifrar el texto cifrado con la clave privada y convertirlo en texto sin formato
también se puede usar al revés
• Cifre el texto sin formato con la clave privada y conviértalo en texto cifrado
• Descifrar el texto cifrado con la clave pública y convertirlo en texto sin formato
Ejemplo: Los principios matemáticos del cifrado asimétrico son relativamente complejos e implican algunos conocimientos relacionados con la teoría de números. Aquí hay un ejemplo simple de la vida cotidiana.
A quiere darle a B algunos documentos importantes, pero es posible que B no esté allí, por lo que A y B llegan a un acuerdo por adelantado:
B dijo: tengo una caja en mi escritorio, y te daré un candado, colocas el archivo en la caja y lo cierras con el candado, y luego me doy la vuelta y tomo la llave para desbloquear y obtener el archivo.
En este escenario, el bloqueo es equivalente a la clave pública y la clave es la clave privada. La clave pública se puede dar a cualquiera (sin miedo a la fuga), pero la clave privada solo la tiene B. Solo aquellos que tienen la clave privada pueden descifrar.

1.2.4 Resumen de datos y huella de datos

• Huella digital (resumen de datos), el principio básico es utilizar una función hash unidireccional (función Hash) para operar sobre la información para generar una serie de resúmenes digitales de longitud fija. La huella digital no es un mecanismo de encriptación, pero se puede utilizar para determinar si los datos han sido manipulados.
• Algoritmos comunes para resumen: MD5, SHA1, SHA256, SHA512, etc. El algoritmo mapea de infinito a finito, por lo que puede haber colisiones (dos datos diferentes, el resumen calculado es el mismo, pero la probabilidad es muy baja).
• Funciones de resumen: la diferencia con el algoritmo de encriptación es que el resumen no está estrictamente encriptado porque no hay descifrado, pero es difícil deducir la información original del resumen, que generalmente se usa para la comparación de datos.
Ejemplo de aplicación 1 de resumen de datos/huella digital de datos:
Al cargar una película en Baidu Netdisk, a veces se puede cargar en segundos. ¿Cómo se realiza la maravillosa función de transferencia? Cuando un usuario sube una película, el servidor de Baidu buscará la película cargada para ver si algún usuario ha subido la misma película antes. Si hay un usuario que ha subido la misma película en el servidor antes, esta carga se cancelará. , y se cargará en el directorio de usuarios Cree un enlace suave que apunte a la misma película cargada por el usuario anterior.
¿Cómo compara y verifica rápidamente el servidor de Baidu si la película cargada es la misma que la película en el servidor? La respuesta es usar una función hash unidireccional para hacer un resumen de datos de la película cargada y compararlo con el resumen de datos de todas las películas en el servidor. Si hay el mismo resumen de datos, significa que la película tiene la mismos recursos en el servidor.
Ejemplo de aplicación 2 de resumen de datos/huella digital de datos:
Si el servidor almacena internamente la contraseña del usuario en texto sin formato, la contraseña del usuario tiene un alto riesgo de filtración, por lo que la contraseña del usuario generalmente se almacena en el servidor después del cifrado. Una vez que la contraseña del usuario está cifrada, es mejor no descifrarla. La función hash es especialmente adecuada para el almacenamiento "cifrado" de contraseñas. Después de que el usuario ingresa la contraseña de la cuenta al registrarse, el servidor utiliza una función hash unidireccional para procesar la contraseña y obtener un resumen de datos de la contraseña registrada.La función hash procesa el resumen de datos de la contraseña de inicio de sesión y compara el resumen de datos de la contraseña de inicio de sesión con el resumen de datos de la contraseña de registro.Si los dos resúmenes de datos son iguales, significa que la contraseña es correcta.

1.2.5 Firma digital

Es mejor no transmitir el resumen de datos en texto claro en la red, después de encriptar el resumen, se obtendrá una firma digital (los detalles se introducirán más adelante en la firma digital).


2. Explorando el proceso de trabajo de HTTPS

Dado que se debe garantizar la seguridad de los datos, se requiere "cifrado".

En la transmisión de red, el texto sin formato ya no se transmite directamente, sino el "texto cifrado" después del cifrado.
Hay muchos métodos de encriptación, pero el conjunto se puede dividir en dos categorías: encriptación simétrica y encriptación asimétrica.

2.1 Opción 1 - Usar solo encriptación simétrica

Si ambas partes de la comunicación tienen la misma clave X y nadie más lo sabe , por supuesto, se puede garantizar la seguridad de la comunicación de las dos partes (a menos que se descifre la clave).

Como se muestra en la figura a continuación, después de la introducción del cifrado simétrico, incluso si los datos son interceptados, porque el hacker no sabe cuál es la clave, no puede descifrarla y no sabe cuál es el contenido real de la solicitud. .

Pero las cosas no son tan simples, como se muestra en la siguiente figura, el servidor en realidad proporciona servicios a muchos clientes al mismo tiempo. Con tantos clientes, la clave secreta utilizada por todos debe ser diferente (si la clave es la misma, la clave se difundirá con demasiada facilidad y los piratas informáticos pueden obtenerla), por lo que el servidor debe mantener cada cliente y cada clave secreta. La relación entre claves también es algo muy problemático.

La forma ideal es poder negociar y determinar cuál es la clave cuando el cliente y el servidor establecen una conexión.
Sin embargo, si la clave se transmite directamente en texto sin formato, el pirata informático puede obtener la clave, como se muestra en la figura a continuación, y la operación de cifrado posterior es inútil en este momento. Por lo tanto, la transmisión de la clave también debe estar encriptada.

Pero si desea cifrar la clave simétricamente, aún debe negociar para determinar una "clave clave", que se convierte en un problema de "primero el huevo o la gallina". En este momento, la transmisión de la clave y luego el uso de cifrado simétrico no funcionarán. 

2.2 Escenario 2: solo una de las partes utiliza el cifrado asimétrico

En vista del mecanismo de cifrado asimétrico, si el servidor primero transmite la clave pública al navegador en texto sin formato, y luego el navegador usa esta clave pública para cifrar los datos antes de transmitirlos al servidor, el canal del cliente al El servidor parece ser seguro (Hay problemas de seguridad), porque solo el servidor tiene la clave privada correspondiente para descifrar los datos cifrados por la clave pública.
Pero, ¿cómo garantizar la seguridad en la ruta del servidor al navegador?
Si el servidor cifra los datos con su clave privada y los envía al navegador, el navegador puede descifrarlos con la clave pública, que originalmente se transmitió al navegador en texto sin formato. La clave pública se puede usar para descifrar la información enviada por el servidor. .

2.3 Escenario 3 - Ambos lados usan encriptación asimétrica

plan:

(1) El servidor tiene la clave pública S y la clave privada correspondiente S', y el cliente tiene la clave pública C y la clave privada correspondiente C'.
(2) El cliente y el servidor intercambian claves públicas.
(3) El cliente envía un mensaje al servidor: primero cifra los datos con S y luego los envía, que solo puede descifrar el servidor, porque solo el servidor tiene la clave privada S'.
(4) El servidor envía un mensaje al cliente: primero cifre los datos con C y luego envíelos, solo puede ser descifrado por el cliente, porque solo el cliente tiene la clave privada C'.
El esquema anterior en el que ambas partes utilizan el cifrado asimétrico parece seguro y factible, pero en realidad no lo es por las siguientes dos razones:
• Demasiado ineficiente. Ambas partes usan encriptación asimétrica, que es muy ineficiente.
• Todavía hay problemas de seguridad, no puede resistir los ataques de intermediarios (más sobre esto más adelante).

2.4 Esquema 4 - Cifrado asimétrico + Cifrado simétrico

plan:

(1) El servidor tiene una clave pública asimétrica S y una clave privada S'.
(2) El cliente inicia una solicitud https para obtener la clave pública S del servidor.
(3) El cliente genera una clave simétrica C localmente, la cifra con la clave pública S y la envía al servidor.
(4) Dado que el dispositivo de red intermedio no tiene una clave privada, incluso si se interceptan los datos, el texto original interno no se puede restaurar y la clave simétrica no se puede obtener.
(5) El servidor descifra a través de la clave privada S' y restaura la clave simétrica C enviada por el cliente. Y use esta clave simétrica para cifrar los datos de respuesta devueltos al cliente.
(6) La comunicación posterior entre el cliente y el servidor solo utiliza cifrado simétrico. Dado que la clave solo la conocen los dos hosts, el cliente y el servidor, no tiene sentido que otros hosts/dispositivos intercepten los datos incluso si no conocen la clave.
Dado que la eficiencia del cifrado simétrico es mucho mayor que la del cifrado asimétrico, el cifrado asimétrico solo se usa cuando la clave se negocia en la etapa inicial y el cifrado simétrico todavía se usa para las transmisiones posteriores, lo que resuelve el problema de la baja eficiencia .
Sin embargo, el esquema de cifrado asimétrico + cifrado simétrico anterior todavía tiene problemas de seguridad y no puede resistir los ataques de intermediarios (más sobre esto más adelante) .

2.5 Ataque de intermediario

Ataque Man-in-the-middle: Man-in-the-MiddleAttack, conocido como "ataque MITM".
De hecho, en los esquemas 3 y 4 anteriores, después de que el cliente obtiene la clave pública S, la clave simétrica X formada por el cliente se cifra con la clave pública S proporcionada por el servidor al cliente. Incluso si el intermediario roba los datos, en este momento De hecho, el man-in-the-middle no puede descifrar la clave X formada por el cliente, porque solo el servidor tiene la clave privada S'. Sin embargo, si el ataque de hombre en el medio se lleva a cabo al comienzo de la negociación del apretón de manos, no es necesariamente el caso.
Ataque de intermediario:
(1) El servidor tiene una clave pública S y una clave privada S' de un algoritmo de cifrado asimétrico.
(2) El intermediario tiene la clave pública M y la clave privada M' del algoritmo de cifrado asimétrico.
(3) El cliente inicia una solicitud al servidor y el servidor envía la clave pública S al cliente en texto sin formato.
(4) El intermediario secuestra el mensaje de datos, extrae la clave pública S y la guarda, luego reemplaza la clave pública S en el mensaje secuestrado con su propia clave pública M y envía el mensaje falsificado al cliente.
(5) El cliente recibe el mensaje, extrae la clave pública M (por supuesto que no sabe que la clave pública ha sido cambiada), forma una clave simétrica X por sí mismo, encripta X con la clave pública M y envía un mensaje al servidor
(6) Después de ser secuestrado por el intermediario, lo descifra directamente con su propia clave privada M' para obtener la clave de comunicación X, y luego lo cifra con la clave pública del servidor guardada S y envía el mensaje al servidor.
(7) El servidor recibe el mensaje, lo descifra con su propia clave privada S' y obtiene la clave de comunicación X.
(8) Las dos partes comienzan a usar X para el cifrado simétrico para comunicarse. Pero todo está en manos del intermediario, secuestrar datos, espiar o incluso modificarlos es posible.
El esquema de ataque man-in-the-middle aquí también se aplica al esquema 3.
¿Dónde está la esencia del problema? ¡El cliente no puede estar seguro de que el servidor de destino envíe el mensaje de datos recibido que contiene la clave pública!

2.6 Certificado de importación

2.6.1 Autenticación de CA

Antes de usar HTTPS, el servidor debe solicitar un certificado digital de la organización de CA. El certificado digital contiene información del solicitante del certificado, información de la clave pública, etc. El servidor transmite el certificado al navegador, y el navegador solo necesita obtener la clave pública del certificado.El certificado es como una tarjeta de identificación, lo que demuestra la autoridad de la clave pública del servidor. 
Este certificado puede entenderse como una cadena estructurada, que contiene la siguiente información: autoridad emisora ​​del certificado, período de validez del certificado, clave pública, propietario del certificado, firma, etc.
hay que tener en cuenta es:
Al solicitar un certificado, es necesario generar un cheque en una plataforma específica.
El servidor genera un par de pares de claves al mismo tiempo, es decir, la clave pública y la clave privada. Este par de pares de claves se utiliza para el cifrado de texto sin formato y la firma digital en la comunicación de red (que se analizará más adelante). Entre ellos, la clave pública se enviará a la CA junto con el archivo CSR para la autenticación autorizada, y el servidor de claves privadas la conservará para la comunicación posterior (de hecho, se utiliza principalmente para intercambiar claves simétricas).
La CSR y la clave privada se pueden generar en línea: herramienta de generación de CSR en línea (myssl.com)

Después de que se forma el CSR, el seguimiento es solicitar la certificación de la CA. Sin embargo, el proceso de certificación general es muy engorroso. Varios proveedores de servicios en Internet que brindan solicitudes de certificados generalmente necesitan ir directamente a la plataforma para resolver el problema.

2.6.2 Comprender las firmas de datos

• Después de todo, un certificado es una cadena de caracteres, es decir, datos ¿Cómo asegurar la validez del certificado? ¿Cómo asegurarse de que el certificado y la clave pública del certificado no hayan sido manipulados? La respuesta es llevar los datos de la firma del certificado al momento de emitir el certificado, lo cual se explicará en detalle a continuación.
La formación de la firma se basa en un algoritmo de cifrado asimétrico.

Proceso de firma y verificación:

• Proceso de firma: primero, los datos originales se procesan para obtener un valor hash de longitud fija (resumen de datos/huella digital de datos), y luego el firmante cifra el valor hash con su propia clave privada para obtener una firma, y ​​los datos originales y las firmas obtenidas se combinan para obtener los datos que llevan la firma.

• Proceso de verificación: el verificador obtiene los datos con la firma, primero separa los datos de la firma, luego realiza el procesamiento hash de los datos para obtener el valor hash 1 y descifra la firma con la clave pública del firmante para obtener el valor hash 2 , compare el valor hash 1 con el valor hash 2. Si los dos valores hash son iguales, significa que los datos y la firma no han sido manipulados por el intermediario. Si los dos valores hash no son igual, significa que o bien se han manipulado los datos o se ha manipulado la firma Manipulado, o se han manipulado tanto los datos como la firma.

• Si el intermediario manipula la parte de los datos de los datos que llevan la firma, el intermediario no puede modificar la parte de la firma porque no tiene la clave privada del firmante, es decir, el intermediario no puede manipular los datos y la firma. al mismo tiempo.

• Por lo tanto, la importancia de llevar una firma de datos en los datos es evitar que se altere el contenido.

Nota: Actualmente, no tiene nada que ver con https, así que no lo confundas con la clave pública y la clave privada en https.

Cuando el servidor solicita un certificado de CA, la organización de CA revisará el servidor y formará una firma digital para el sitio web. El proceso es el siguiente:
(1) La organización de CA tiene una clave privada A cifrada asimétricamente y una clave pública A'.
(2) La institución CA realiza un procesamiento hash en los datos del certificado aplicado por el servidor para formar un resumen de datos.
(3) Luego, cifre el resumen de datos con la clave privada de CA A' para obtener la firma digital S.
El texto sin formato del certificado aplicado por el servidor y la firma digital S juntos forman un certificado digital, de modo que se puede emitir un certificado digital al servidor.
Nota: La clave privada de la organización CA solo es propiedad de uno mismo. Otros no tienen la clave privada de la organización CA, por lo que no pueden imitar a la organización CA para emitir certificados. Por lo tanto, siempre que la organización CA sea propietaria de la clave privada. exclusivamente, el certificado emitido por ella es fehaciente.

2.7 Esquema 5 - Cifrado asimétrico + Cifrado simétrico + Autenticación de certificado

Cuando el cliente y el servidor establecen una conexión, el cliente envía una solicitud de conexión al servidor y el servidor devuelve un certificado al cliente.El certificado contiene la clave pública del servidor y la información de identidad del sitio web.
El cliente autentica:
Después de que el cliente obtenga el certificado, lo verificará (para evitar que se falsifique).
• Determinar si el período de validez del certificado ha caducado (si el certificado caduca, el navegador le indicará que el certificado correspondiente del sitio web ha caducado, si desea continuar visitando).
• Determinar si la autoridad emisora ​​del certificado es de confianza (la autoridad emisora ​​del certificado de confianza integrada en el sistema operativo) (si la autoridad emisora ​​del certificado no es de confianza, el navegador le indicará que el emisor del certificado del sitio web no es de confianza, si desea continuar visitando el tipo de letra ).
• Verifique si el certificado ha sido alterado: obtenga la clave pública de la organización emisora ​​del certificado del sistema (la clave pública de cada CA que emite el certificado está integrada en el sistema), descifre la firma y obtenga un valor hash (llamado resumen de datos), configúrelo en hash1, luego calcule el valor hash de todo el certificado, configúrelo en hash2, compare si hash1 y hash2 son iguales, si son iguales, significa que el certificado no ha sido manipulado.
Una vez que el cliente obtiene la clave pública del servidor del certificado, puede ejecutar la lógica de comunicación de la Solución 4.
Compruebe las autoridades de certificación de confianza de su navegador:
Tome el navegador edge como ejemplo, otros navegadores son similares:
Haga clic en el botón de tres puntos en la esquina superior derecha y seleccione Configuración, como se muestra en la Figura 1 a continuación. Haga clic en Administración de certificados en Búsqueda y servicio de privacidad -> Seguridad, como se muestra en la Figura 2 a continuación. Seleccione la autoridad de certificación raíz de confianza y se mostrará la autoridad de certificación de confianza , como se muestra en la Figura 3 a continuación. Haga clic en una autoridad emisora ​​de certificados de confianza y haga clic en Ver y seleccione Detalles para ver la clave pública de la autoridad emisora ​​de certificados de confianza correspondiente, como se muestra en la Figura 4 a continuación.

Pregunta 1: ¿Es posible que un intermediario altere el certificado?
Respuesta: El intermediario manipuló el texto sin formato del certificado. Dado que no tiene la clave privada de la organización de CA, no puede cifrarla con la clave privada para formar una firma después del hash, por lo que no hay forma de formar una firma coincidente por el certificado alterado. Si se manipula a la fuerza, el cliente encontrará que el texto sin formato y el valor descifrado de la firma son inconsistentes después de recibir el certificado, lo que indica que el certificado ha sido manipulado y no es confiable, por lo que la transmisión de información a el servidor se termina para evitar que la información se filtre al intermediario.
Pregunta 2: ¿Qué pasa si el intermediario deja caer todo el certificado?
Respuesta: Debido a que el intermediario no tiene la clave privada de la CA, no puede crear certificados falsos, por lo que el intermediario solo puede solicitar un certificado real de la CA y luego usar el certificado que solicitó para intercambiar el paquete. De hecho, este método puede lograr la pérdida general del paquete del certificado, pero no olvide que el texto sin formato del certificado contiene información de autenticación del servidor, como el nombre de dominio.Si el paquete está empaquetado como un todo, el cliente aún puede reconocerlo.
Recuerde siempre que el intermediario no tiene la clave privada de CA, por lo que no puede modificar legalmente ningún certificado, incluido el suyo.
Pregunta 3: ¿Por qué se debe cifrar el contenido del resumen para formar una firma cuando se transmite por la red?
Suplemento: Los algoritmos de resumen comunes son: series MD5 y SHA Tomando MD5 como ejemplo, no necesitamos estudiar el proceso específico de cálculo de firmas, solo necesitamos comprender las características de MD5:
• Longitud fija: no importa qué tan larga sea la cadena, el valor MD5 calculado es una longitud fija (versión de 16 bytes o versión de 32 bytes)
• Dispersión: Siempre que se cambie un poco la cadena de origen, el valor MD5 final será muy diferente.
• Irreversible: es fácil generar MD5 a partir de la cadena de origen, pero es teóricamente imposible restaurar la cadena original a través de MD5.
Solo porque MD5 tiene tales características, podemos pensar que si los valores MD5 de dos cadenas son iguales, entonces las dos cadenas se consideran iguales.
Respuesta: comprenda el proceso de juzgar la manipulación del certificado: (este proceso es como juzgar si esta tarjeta de identificación es una tarjeta de identificación falsa), asumiendo que nuestro certificado es solo una cadena simple hola, y calcule el valor hash (como md5) para esta cadena , el resultado es BC4B2A76B9719D91, si se manipula algún carácter en hello, por ejemplo, se convierte en hella, entonces el valor md5 calculado cambiará mucho. Entonces podemos devolver la cadena hello y el valor hash BC4B2A76B9719D91 del servidor al cliente.En este momento, ¿cómo verifica el cliente si hello ha sido manipulado? Luego, simplemente calcule el valor hash de hola para ver si es BC4B2A76B9719D91.
Pero todavía hay un problema: si el hacker manipula hello y vuelve a calcular el valor hash al mismo tiempo, el cliente no podrá notar la diferencia.
Por lo tanto, el valor hash transmitido no se puede transmitir en texto sin formato, y debe transmitirse en texto cifrado, para formar un resumen hash para el hash de texto sin formato del certificado (aquí está "hola"), y luego CA usa su propia clave privada para cifrar y formar una firma, y ​​combinar hello con la firma encriptada Formar un certificado de CA y emitirlo al servidor. Cuando el cliente lo solicita, se envía al cliente. El intermediario lo intercepta. Debido a que no hay una clave privada de CA, no se puede se cambia o se cae todo el paquete, y la legalidad del certificado se puede probar con seguridad. Finalmente, el cliente descifra con la clave pública de la autoridad emisora ​​del certificado ya almacenada en el sistema operativo, restaura el valor hash original y luego realiza la verificación.
Pregunta: ¿Por qué la firma no se cifra directamente, sino que primero se codifica para formar un resumen?
Respuesta: Reduzca la longitud del texto cifrado de la firma y acelere la velocidad de cálculo de la firma digital y la firma de verificación.

2.8 Proceso completo

El lado izquierdo es lo que hace el cliente, y el lado derecho es lo que hace el servidor.
Cuando el cliente solicita un determinado sitio web, el servidor correspondiente confirmará el algoritmo de cifrado y hash en la solicitud del cliente y devolverá el certificado digital al servidor.Después de recibir el certificado digital del servidor, el cliente verificará la validez del certificado digital. Si el certificado es legal, genere una clave simétrica R, use la clave pública en el certificado para cifrar la clave simétrica R y luego envíela al servidor, y el servidor descifrará la información recibida con la clave privada para obtener la clave simétrica R, hasta ahora el cliente El servidor y el servidor pueden usar la clave simétrica R para la comunicación cifrada.

Resumir:
Hay tres grupos de claves involucradas en el proceso de trabajo de HTTPS:
El primer grupo (cifrado asimétrico) (claves pública y privada de la CA): se utiliza para verificar si el certificado ha sido manipulado. La institución de CA tiene la clave privada y el cliente tiene la clave pública (el sistema operativo incluye las instituciones de certificación de CA de confianza y tiene la clave pública correspondiente). El servidor responde a la solicitud del cliente y devuelve un certificado firmado, y el cliente verifica el certificado a través de la clave pública de la institución CA correspondiente para garantizar la validez del certificado y garantizar aún más la autoridad de la clave pública del servidor contenida en el certificado.
El segundo grupo (cifrado asimétrico) (claves públicas y privadas del servidor): se utiliza para negociar y generar claves de cifrado simétricas. El servidor tiene las claves pública y privada al mismo tiempo, y el cliente tiene la clave pública del servidor después de recibir el certificado del servidor. El cliente cifra la clave de cifrado simétrica generada aleatoriamente con la clave pública del certificado del servidor (en el que se puede confiar) y la transmite al servidor. El servidor descifra la clave privada para obtener la clave de cifrado simétrica.
El tercer grupo (cifrado simétrico): Los datos posteriores transmitidos por el cliente y el servidor son cifrados y descifrados por esta clave simétrica.
De hecho, la clave de todo está en torno a esta clave de cifrado simétrica, y hay otros mecanismos para ayudar a que esta clave funcione:
• El primer conjunto de claves de cifrado asimétrico es para que el cliente obtenga el segundo conjunto de claves públicas de cifrado asimétrico.
• El segundo conjunto de claves de cifrado asimétricas es para que el cliente pase esta clave simétrica al servidor.

2.9 Cómo convertirse en intermediario

• Suplantación de ARP: en una LAN, los piratas informáticos pueden espiar las direcciones (IP, MAC) de otros nodos después de recibir paquetes de difusión de solicitud ARP. Por ejemplo, el hacker recibe las direcciones de dos hosts A y B, y le dice a B (la víctima) que él es A, para que todos los paquetes de datos enviados por B a A sean interceptados por el hacker.
• Ataque ICMP: dado que existe un tipo de paquete de redirección en el protocolo ICMP, podemos falsificar un mensaje ICMP y enviarlo al cliente en la LAN, simulando ser una mejor ruta de enrutamiento. Como resultado, todo el tráfico de Internet del objetivo se enviará a la interfaz que especificamos, logrando el mismo efecto que la suplantación de identidad ARP.
• Wi-Fi falso y sitios web falsos, etc.

Supongo que te gusta

Origin blog.csdn.net/qq_45113223/article/details/130840799
Recomendado
Clasificación