¿Qué significa HTTPS?
HTTPS (nombre completo: Hyper Text Transfer Protocol over SecureSocket Layer) es un canal HTTP destinado a la seguridad. Basado en HTTP, garantiza la seguridad del proceso de transmisión mediante el cifrado de transmisión y la autenticación de identidad. HTTPS agrega una capa SSL a la base de HTTP. La base de seguridad de HTTPS es SSL, por lo que los detalles del cifrado requieren SSL. HTTPS tiene un puerto predeterminado diferente al HTTP y una capa de cifrado/autenticación (entre HTTP y TCP).
La principal diferencia entre HTTPS y HTTP:
HTTPS se compone principalmente de dos partes: HTTP SSL/TLS, lo que significa que se agrega otra capa de módulos para procesar información cifrada a HTTP. La transmisión de información entre el servidor y el cliente se cifrará mediante TLS, por lo que los datos transmitidos están cifrados.
Principio HTTP:
① El navegador del cliente primero debe establecer una conexión con el servidor a través de la red. La conexión se completa a través de TCP. Generalmente, el número de puerto de la conexión TCP es. 80. Después de establecer la conexión, el cliente envía una solicitud al servidor. El formato de la solicitud es: Identificador uniforme de recursos (URL), número de versión del protocolo, seguido de información MIME que incluye modificadores de solicitud, información del cliente y contenido del permiso.
② Después de recibir la solicitud, el servidor proporciona la información de respuesta correspondiente. El formato es una línea de estado, que incluye el número de versión del protocolo de la información, un código de éxito o error, seguido de información MIME que incluye información del servidor y. entidades, información y posibles contenidos.
Principio HTTPS:
① ¿El cliente envía la lista de algoritmos que admite y un número aleatorio utilizado para generar la clave al servidor?;
② El el servidor selecciona un algoritmo de cifrado de la lista de algoritmos y lo envía al cliente junto con un certificado que contiene la clave pública del servidor para fines de autenticación, y el servidor también proporciona un número aleatorio para la clave;
③ El cliente verifica el certificado del servidor (para los certificados de verificación, consulte la firma digital) y extrae la clave pública del servidor, luego genera un pre_master_secret. La cadena de contraseña aleatoria se cifra utilizando la clave pública del servidor; clave (consulte cifrado / descifrado asimétrico) y la información cifrada se envía al servidor;
④ El cliente y el servidor usan pre_master_secret Y los valores aleatorios del cliente y el servidor se calculan de forma independiente el cifrado y las claves MAC (consulte el algoritmo de intercambio de claves DH
⑤ El cliente envía los valores MAC de todos los mensajes de protocolo de enlace al servidor
⑥ El servidor envía; ¿Los valores MAC de todos los mensajes de protocolo de enlace al cliente?