Artículos de Linux [15]: capa de aplicación - protocolo https de red

Tabla de contenido

1. Introducción a HTTPS

1. Definición de HTTPS

2.HTTP a HTTPS

(1) Puertos diferentes, dos conjuntos de servicios

(2) HTTP es más eficiente y HTTPS es más seguro

3. Cifrado, descifrado, conceptos clave

4. ¿Por qué cifrar?

5. Métodos de encriptación comunes

(1) Cifrado simétrico

(2) Cifrado asimétrico

4. Resumen de datos y huella digital de datos

5. Firma digital

6. Cadena de entendimiento: un vínculo entre el pasado y el futuro

2. Investigación sobre el proceso de trabajo de HTTPS

1. Solución 1: use solo cifrado simétrico (no se recomienda la transmisión de texto sin formato)

2. Opción 2: solo use cifrado asimétrico (solo seguridad unidireccional, no recomendable)

3. Opción 3: ambas partes usan encriptación asimétrica (demasiado ineficiente para ser factible)

4. Solución 4: Cifrado asimétrico + Cifrado simétrico (todavía hay problemas de seguridad, consulte 5)

5. Ataque de hombre en el medio: para el escenario anterior

6. Certificado de importación

(1) Certificación CA

(2) Composición del certificado

(3) Comprender las firmas de datos

(4) El proceso de solicitud de un certificado:

(5) Ver la autoridad emisora ​​de certificados de confianza del navegador

editar

7. Solución 5: Cifrado asimétrico + Cifrado simétrico + Autenticación de certificado

(1) Cifrado asimétrico + cifrado simétrico + esquema de autenticación de certificado

(2) Cuando el servidor envía la clave pública al cliente, ¿es posible que el intermediario altere el certificado?

(3) ¿Puede el intermediario cambiar todo el certificado?

8. Preguntas frecuentes

(1) ¿Por qué se debe cifrar el resumen para formar una firma cuando se transmite por la red?

(2) ¿Por qué la firma no se cifra directamente, sino que primero se codifica para formar un resumen?

(3) Cómo convertirse en intermediario: comprender

(4) Proceso completo

9. Resumen: hay tres grupos de claves involucradas en el proceso de trabajo de HTTPS.


1. Introducción a HTTPS

Ejemplo de HTTPS: https://new.qq.com/rain/a/20230115A00C3H00

1. Definición de HTTPS

Se agrega una capa de capa de software SSL/TLS entre las capas de transporte del protocolo http y tcp.La combinación de http y esta capa de software se denomina HTTPS.
( HTTPS también es un protocolo de capa de aplicación. Introduce una capa de cifrado sobre la base del protocolo HTTP . El contenido del protocolo HTTP se transmite en texto sin formato , lo que puede provocar que otros lo manipulen )

2.HTTP a HTTPS

(1) Puertos diferentes, dos conjuntos de servicios

El puerto vinculado a http es 80; el puerto vinculado a https  es 443; son dos conjuntos de servicios, la diferencia es que https está encriptado.

(2) HTTP es más eficiente y HTTPS es más seguro

HTTP no necesita cifrado, que es más eficiente, pero no seguro; HTTP requiere cifrado, que es relativamente ineficiente, pero seguro; se recomienda utilizar el protocolo HTTP en condiciones absolutamente seguras, como intranets

3. Cifrado, descifrado, conceptos clave

Cifrado: el cifrado consiste en realizar una serie de transformaciones en texto sin formato (información que se transmitirá, como "hola mundo") para generar texto cifrado.
Descifrado: el descifrado es realizar una serie de transformaciones en el texto cifrado y restaurarlo a texto sin formato.
Clave: 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 (se pronuncia correctamente yue cuatro veces, pero todos suelen leer Make yao cuatro veces).
Edición 83 <<Quemando el Antiguo Palacio de Verano>> , alguien quiere conspirar contra y matar a la emperatriz viuda Cixi. El folleto entregado a Cixi por el príncipe Gong Yixin. Mira lo que realmente significa.
Texto de Ming: "Cuidado con Sushun, Duanhua y Dai Heng" (estas personas eran hombres poderosos en ese momento y luego fueron asumidos por la emperatriz viuda Cixi).
Texto cifrado: el texto completo del memorial
clave: papel perforado

4. ¿Por qué cifrar?

Todo el cifrado es para evitar que alguien en el medio robe y manipule

El infame "secuestro de portaaviones"
Descargar Tiantiandongting
El efecto de no ser secuestrado, haga clic en el botón de descarga y aparecerá el enlace de descarga de Tiantiandongting.

Efecto secuestrado, haga clic en el botón de descarga, aparecerá el enlace de descarga del navegador QQ
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 alterarlo.
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 lo secuestra, descubre que la solicitud es para descargar Tiantiandongting, por lo que automáticamente falsificó la respuesta dada al usuario en 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.
Piénsalo, ¿por qué los operadores secuestran?

5. Métodos de encriptación comunes

(1) Cifrado simétrico

Usando el método de encriptación del sistema criptográfico de clave única, se puede usar la misma clave para encriptar y desencriptar información al mismo tiempo. Este método de encriptación se denomina encriptación simétrica , también conocida como encriptación de clave única . Características: encriptación y desencriptación El las teclas usadas son las mismas
Algoritmos de cifrado simétrico comunes (entender): DES , 3DES , AES, TDEA, Blowfish , RC2, etc.
Características: algoritmo abierto, pequeña cantidad de cálculo, velocidad de encriptación rápida, 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".
Un cifrado simétrico simple, bit a bit XOR
Supongamos texto sin formato a = 1234, clave clave = 8888
Entonces, el texto cifrado b obtenido al cifrar una clave ^ es 9834.
Luego realice la operación b ^ tecla en el texto cifrado 9834 nuevamente, y se obtiene el texto sin formato original 1234. La clave aquí es la clave en el cifrado simétrico. (Lo mismo es cierto para el cifrado simétrico de cadenas, cada carácter se puede expresar como un número)
Por supuesto, XOR bit a bit es solo el cifrado simétrico más simple.XOR bit a bit no se usa en HTTPS.

(2) Cifrado asimétrico

• Se requieren 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 (entender): 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
El principio matemático del cifrado asimétrico es relativamente complicado e implica algunos conocimientos relacionados con la teoría de números. He aquí un ejemplo sencillo de la vida cotidiana.
A quiere darle a B algunos documentos importantes, pero es posible que B no esté allí. Entonces, A y B hacen 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, luego me doy la vuelta y tomo la llave para desbloquear el candado para obtener el archivo. En esta escena, este candado es equivalente a la clave pública, y la clave es la clave privada. La clave pública se le puede dar a cualquier persona (sin miedo a que se filtre), pero la clave privada solo la puede tener B. Solo el la persona que posee la clave privada puede descifrarla.

4. Resumen de datos y huella digital de datos

Huella digital (resumen de datos), el principio básico es usar una función hash unidireccional (función Hash) para operar en la información para generar una cadena de cadenas de longitud fija: resumen digital (esta cadena se denomina resumen de datos) /datos huella dactilar) . La huella digital no es un mecanismo de cifrado, porque no puede descifrar de forma inversa los datos originales a través de esta cadena, es decir, no se puede descifrar. Pero se puede usar para juzgar si los datos han sido manipulados.
Algoritmos de resumen comunes: 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)
Función de resumen: la diferencia con el algoritmo de cifrado es que el sentido estricto del resumen no es cifrado, porque no hay descifrado , pero es casi imposible deducir la información original del resumen, que generalmente se usa para la comparación de datos.

5. Firma digital

Después de cifrar el resumen, se obtiene una firma digital (se detalla más adelante)

6. Comprender la cadena: un vínculo entre el pasado y el próximo

• ¿ Puede el cifrado simétrico de http resolver el problema de la seguridad de la comunicación de datos? ¿cuál es el problema?
• ¿ Por qué utilizar el cifrado asimétrico? ¿Por qué no utilizar el cifrado asimétrico para todos?
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 "texto cifrado" después del cifrado.
Hay muchos métodos de cifrado, pero se pueden dividir en dos categorías: cifrado simétrico y cifrado asimétrico.

2. Investigación sobre 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 "texto cifrado" después del cifrado.
Hay muchos métodos de cifrado, pero se pueden dividir en dos categorías: cifrado simétrico y cifrado asimétrico.

1. Solución 1: use solo cifrado simétrico (no se recomienda la transmisión de texto sin formato)

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)

Después de la introducción del cifrado simétrico, incluso si los datos son interceptados, dado que el pirata informático no sabe cuál es la clave, no puede descifrarla y, por lo tanto, no sabe cuál es el contenido real de la solicitud.
Pero las cosas no son tan simples, el servidor en realidad brinda servicios a muchos clientes al mismo tiempo, con tantos clientes, la clave secreta utilizada por cada persona debe ser diferente (si es la misma, la clave es demasiado fácil de difundir, los piratas informáticos también pueden obtenerlo). Por lo tanto, el servidor debe mantener la asociación entre cada cliente y cada clave, lo que también es algo muy problemático.

Idealmente, cuando el cliente y el servidor establecen una conexión, las dos partes negocian para determinar cuál es la clave para este momento ~

Pero si la clave se transmite directamente en texto sin formato, entonces el hacker podrá obtener la clave ~~ En este punto, las operaciones de cifrado posteriores serán inútiles.
¡ Por lo tanto, la transmisión de la clave también debe estar encriptada!
Pero si desea encriptar la clave simétricamente, aún necesita negociar y determinar una "clave clave". Esto se convierte en un problema de "el huevo o la gallina". En este momento, la transmisión de la clave Entonces, usar el cifrado simétrico no funcionará .

2. Opción 2: solo use cifrado asimétrico (solo seguridad unidireccional, no recomendable)

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 un problema de seguridad), porque solo el servidor tiene la clave privada correspondiente para descifrar los datos cifrados por la clave pública.
Aunque el navegador al servidor está encriptado y es seguro, la ruta del servidor al navegador no puede garantizar la seguridad :
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. Si la clave pública es secuestrada por un intermediario, también puede utilizar la clave pública para descifrar la información enviada por el servidor.

3. Opción 3: ambas partes usan encriptación asimétrica (demasiado ineficiente para ser factible)

1. El servidor tiene la clave pública S (servidor) y la correspondiente clave privada S', y el cliente tiene la clave pública C y la correspondiente clave privada C'
2. El cliente y el servidor intercambian claves públicas
3. El cliente envía información al servidor: primero cifra los datos con S y luego los envía, que solo pueden ser descifrados por el servidor, porque solo el servidor tiene la clave privada S'
4. El servidor envía información al cliente: primero use C para cifrar los datos y luego envíelos, solo puede ser descifrado por el cliente, porque solo el cliente tiene la clave privada C' Esto parece funcionar, pero
Demasiado ineficiente
Todavía hay preocupaciones de seguridad

4. Solución 4: Cifrado asimétrico + Cifrado simétrico (todavía hay problemas de seguridad, consulte 5)

Primero resuelve el problema de la eficiencia

El servidor tiene una clave pública asimétrica S y una clave privada S'

El cliente inicia una solicitud HTTPS para obtener la clave pública S del servidor
El cliente genera localmente una clave simétrica C, la cifra con la clave pública S y la envía al servidor.
Debido a 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 (¿en serio?)
El servidor descifra con 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 por el cliente. La comunicación posterior entre el cliente y el servidor solo usa cifrado simétrico Eso es Dado que la clave solo la conocen los dos hosts, el cliente y el servidor, otros hosts/dispositivos no conocen la clave, incluso si interceptan los datos, no tiene sentido.
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 se negocian claves en la etapa inicial y posteriormente.
Las transmisiones subsiguientes todavía usan encriptación simétrica.
Aunque lo anterior está relativamente cerca de la respuesta, todavía hay problemas de seguridad.
El plan 2, el plan 3 y el plan 4 tienen un problema. ¿Qué pasa si el hombre en el medio ya ha comenzado a atacar?

5. Ataque de hombre en el medio: para el escenario anterior

Man-in-the-MiddleAttack, conocido como " ataque MITM "
De hecho, en el Esquema 2/3/4, después de que el cliente obtiene la clave pública S, la clave secreta simétrica X formada por el cliente se cifra con la clave pública S proporcionada por el servidor al cliente. llegan los datos, en este momento el intermediario realmente no puede resolver 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 cierto.

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 secreta simétrica X, encripta X con la clave pública M y envía el mensaje al servidor
6. Después de ser secuestrado por el intermediario, descifrarlo directamente con su propia clave privada M' para obtener la clave de comunicación X, y luego cifrarlo con la clave pública del servidor guardada S, y enviar 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 anterior también es aplicable al esquema 2 y 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!

6. Certificado de importación

(1) Certificación 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 en el lado del servidor.

(2) Composición del certificado

Instrucciones básicas: https://baike.baidu.com/item/CA%E8%AE%A4%E8%AF%81/6471579?fr=aladdin
Este certificado puede entenderse como una cadena estructurada, que se divide en dos partes: texto plano y firma. Contiene la siguiente información:
Autoridad emisora ​​de certificados
Período de validez del certificado
clave pública
propietario del certificado
firma
......
Cabe señalar que al solicitar un certificado, nuestro servidor necesita generar un par de pares de claves en una plataforma específica, es decir, una clave pública y una clave privada. Este par de claves se utiliza para el cifrado de texto sin formato y la firma digital en la comunicación de red.
Entre ellos, la clave pública se enviará a la CA para la autenticación autorizada junto con el archivo CSR, 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: https://myssl.com/csr_create.html
Después de formar un CSR, el seguimiento es solicitar la certificación de una CA. Sin embargo, el proceso de certificación general es muy engorroso. Varios proveedores de servicios que brindan solicitudes de certificados en Internet generalmente realmente lo necesitan, y puede encontrar directamente la plataforma para resolverlo

(3) Comprender las firmas de datos

La formación de la firma se basa en un algoritmo de cifrado asimétrico. Tenga en cuenta que no tiene nada que ver con https por el momento. No lo confunda con la clave pública y la clave privada en https.
La importancia de la firma de datos para documentos de datos: para evitar que se altere el contenido. Ver 7.(2) para más detalles

 

(4) El proceso de solicitud de un certificado:

Cuando el servidor solicita un certificado de CA, la institució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 organización de CA procesa los datos de texto sin formato del certificado aplicado por el servidor para formar un resumen de datos
3. Luego, la CA cifra el resumen de datos con la clave privada 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

(5) Ver la autoridad emisora ​​de certificados de confianza del navegador

Navegador Chrome, haga clic en la esquina superior derecha
Selecciona "Configuración", busca "Gestión de Certificados", y verás la siguiente interfaz (si no, búscala en Configuración de Privacidad y Seguridad->Seguridad)

7. Solución 5: Cifrado asimétrico + Cifrado simétrico + Autenticación de certificado

(1) Cifrado asimétrico + cifrado simétrico + esquema de autenticación de certificado

Según el Esquema 4, la clave pública S se convierte en un certificado.
Cuando el cliente y el servidor establecen una conexión, el servidor devuelve un certificado al cliente, que contiene la clave pública del servidor anterior y la información de identidad del sitio web.
Cliente para autenticar
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 expirado
Determinar si la autoridad emisora ​​del certificado es de confianza (la autoridad emisora ​​de certificados de confianza integrada en el sistema operativo).
Verifique si el certificado ha sido alterado: Obtenga la clave pública de la autoridad emisora ​​del certificado del sistema, descifre la firma, 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.

(2) Cuando el servidor envía la clave pública al cliente, ¿es posible que el intermediario altere el certificado?

El intermediario puede alterar el texto claro del certificado
Debido a que el intermediario no tiene la clave privada de la organización de la CA, no se puede cifrar con la clave privada para formar una firma después del hashing , por lo que no hay forma de formar una firma coincidente para el certificado manipulado.
Si se manipula a la fuerza, después de recibir el certificado, el cliente encontrará que el valor después del hash del texto sin formato es inconsistente con el valor después del descifrado de la firma , lo que indica que el certificado ha sido manipulado y no se puede confiar Transferir información para evitar fugas de información a intermediarios
Si el intermediario cambia el texto sin formato del certificado, ¿puede cifrarse con la clave privada del propio intermediario?
-No poder. Cuando el cliente descifra, utiliza la clave pública de la CA almacenada en el sistema, si no se puede descifrar significa que ha sido manipulada.
Resumen: El certificado puede ser manipulado, pero si el cliente descubre que la manipulación no coincide con la firma digital, lo que indica que el certificado ha sido manipulado, no se iniciará la solicitud.

(3) ¿Puede el intermediario cambiar todo el certificado?

Debido a que el intermediario no tiene la clave privada de la CA, es imposible hacer un certificado falso (¿por qué? El certificado encriptado con la clave privada del propio intermediario no puede ser abierto por la clave pública de otras personas, lo cual no sirve para nada)
Entonces, el intermediario solo puede solicitar un certificado real de la CA y luego usar el certificado que solicitó para cambiar
De hecho, esto puede lograr el paquete general 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.
Incluso si el paquete se cae, el cliente aún puede reconocerlo.
Recuerda siempre: el intermediario no tiene la clave privada de la CA, por lo que no se puede modificar legalmente ningún certificado, incluido el tuyo.
preguntas frecuentes
¿Por qué se debe cifrar el contenido del resumen para formar una firma cuando se transmite a través de la red?
Los algoritmos de resumen comunes son: serie MD5 y SHA
Tomando MD5 como ejemplo, no necesitamos estudiar el proceso específico de cálculo de la firma, solo necesitamos entender 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.

8. Preguntas frecuentes

(1) ¿Por qué se debe cifrar el resumen para formar una firma cuando se transmite por la red?

Los algoritmos de resumen comunes son: serie MD5 y SHA

Comprenda el proceso de juzgar la manipulación de certificados: (Este proceso es como juzgar si esta tarjeta de identificación es una tarjeta de identificación falsa)
Suponiendo que nuestro certificado es solo una cadena simple hola, calcule el valor hash (como md5) para esta cadena, y 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.
BDBD6F9CF51F2FD8
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 alterado?
Luego, simplemente calcule el valor hash de hola para ver si es BC4B2A76B9719D91.
Si el valor hash transmitido es el texto sin formato transmitido. El pirata informático puede alterar el saludo y volver a calcular el valor hash al mismo tiempo, de modo que el cliente no pueda notar la diferencia.

 Por lo tanto, el valor hash transmitido no se puede transmitir en texto sin formato y debe transmitirse en texto cifrado.

Por lo tanto, se forma un resumen hash a partir del hash del texto sin formato del certificado (aquí está "hola"), y luego la CA usa su propia clave privada para cifrar y formar una firma, que será
Hello y la firma cifrada se combinan para formar un certificado de CA, que se emite al servidor. Cuando el cliente lo solicita, se envía al cliente. El intermediario lo intercepta. Como no hay una clave privada de CA, no se puede cambiar. o todo el paquete se cae Puede probar con seguridad la legitimidad del certificado.
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.

(2) ¿Por qué la firma no se cifra directamente, sino que primero se codifica para formar un resumen?

Reducir la longitud del texto cifrado de la firma y acelerar la velocidad de cálculo de la firma de verificación de la firma digital.

(3) Cómo convertirse en intermediario: comprender

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 hay un tipo de paquete de redirección en el protocolo ICMP, podemos falsificar un mensaje ICMP y enviarlo al cliente en la LAN, y fingir que somos 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 ARP
Wi-Fi falso y sitio web falso, etc.

(4) Proceso completo

El lado izquierdo es lo que hace el cliente, y el lado derecho es lo que hace el servidor

9. Resumen: hay tres grupos de claves involucradas en el proceso de trabajo de HTTPS.

El primer grupo (cifrado asimétrico): se utiliza para verificar si el certificado ha sido manipulado, el servidor tiene la clave privada (la clave privada se obtiene al formar el archivo CSR y solicitar el certificado), y el cliente tiene la clave pública (El sistema operativo contiene ¿Cuáles son las autoridades de certificación de CA de confianza y tiene la clave pública correspondiente? Cuando el servidor solicita del cliente, devuelve el certificado con la firma. Garantiza aún más la autoridad de la clave pública del servidor contenida en el certificado. .
El segundo grupo (cifrado asimétrico): se utiliza para negociar y generar una clave de cifrado simétrica. El cliente utiliza la clave pública en el certificado de CA recibido (en el que se puede confiar) para generar una clave de cifrado simétrica generada aleatoriamente, encriptada, transmitida al servidor, el servidor obtiene la clave de cifrado simétrico descifrando la clave privada.
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étrico. Otros mecanismos son para ayudar a que esta clave funcione.
El segundo conjunto de claves de cifrado asimétricas es para que el cliente pase esta clave simétrica al servidor.
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.

Supongo que te gusta

Origin blog.csdn.net/zhang_si_hang/article/details/128708952
Recomendado
Clasificación