Protocolo de protocolo de enlace SSL / TLS

El protocolo de reconocimiento se refiere a una serie de mensajes intercambiados entre el cliente y el servidor.

Formato de mensaje

Tipos de longitud contenido
1 byte 3 bytes ≥0 bytes
Tipos de

Representa uno de los 10 tipos de mensajes. Todos los tipos son los siguientes:

hello_request aire
client_hello Establecer la conexión lógica inicial
server_hello Lo mismo que arriba
certificado Una serie de certificados
certificado_request Solicitar certificado
certificado_verificar Verificación de certificado
server_key_change Intercambio de claves de servidor
cambio_clave_cliente Intercambio de claves de cliente
server_done Fin del mensaje, esperando respuesta
terminado la contraseña ha sido cambiada
longitud

La longitud del mensaje (bytes).

contenido

Fase 1: Establecer funciones de seguridad

Iniciado por el cliente, se establece la conexión lógica inicial y se intercambian los parámetros requeridos para las etapas posteriores.
Inserte la descripción de la imagen aquí

Contenido del mensaje de saludo del cliente:

  1. Número de versión: la versión de TLS más alta admitida por el cliente.
  2. Número aleatorio: marca de tiempo de 32 bits + número aleatorio de 28 bytes generado por el cliente. Puede evitar ataques de reproducción para este protocolo de enlace, pero no se utiliza como parámetro de la clave posterior.
  3. Indicador de sesión: dividido en valor 0 y valor distinto de cero.
    Valor 0: el cliente desea establecer una nueva conexión en una nueva sesión .
    Valor distinto de cero: establezca una nueva conexión en la sesión original .
  4. Grupo de contraseñas: una lista de algoritmos de contraseñas organizados en orden descendente de prioridad. Cada fila de la tabla incluye 2 elementos: método de intercambio de claves y CipherSpec (especificación de cifrado).
  5. Método de compresión: una lista de todos los métodos de compresión admitidos por el cliente.

mensaje de saludo del servidor:

  1. Número de versión: decida qué número de versión utilizar.

  2. Número aleatorio: número aleatorio generado por el servidor (la marca de tiempo también se genera al mismo tiempo).

  3. ID de sesión:
    si el cliente envía un valor de 0: el servidor genera una nueva conexión y devuelve el nuevo ID.
    Si el cliente tiene un valor distinto de cero: el servidor envía el mismo valor.

  4. Grupo de cifrado: decida qué grupo de cifrado utilizar.

  5. Método de compresión: decida qué método de compresión utilizar.

Detalles del grupo de cifrado

  1. El método de intercambio de claves
    ① Cifrado asimétrico RSA
    ② DH fijo
    ③ DH instantáneo
    ④ DH anónimo
  2. especificación de cifrado descripción del cifrado
    ① Algoritmo de cifrado (cualquier algoritmo, como RC4, DES3, IDEA, etc.)
    ② Algoritmo MAC (MD5, SHA-1)
    ③ Tipo de cifrado (flujo / bloque)
    ④ ¿Puede exportar (sí / no)? ?
    ⑤ Longitud de hash (0/16 (MD5) / 20 (SHA-1))
    ⑥ ¿Material clave? ? ?
    ⑦ Tamaño IV (tamaño inicial del vector del grupo CBC)

.
.

Fase 2: autenticación del servidor e intercambio de claves

El servidor emprende la etapa 1, continúa enviando mensajes, puede enviar autenticación de su propia identidad, parámetros clave (¿qué clave?) Y solicitar al cliente que indique su identidad, etc.
Inserte la descripción de la imagen aquí
mensaje de certificado:

  • Contenido: uno o un grupo de certificados X.509 (para probar la identidad del servidor, consulte la sección X.509 para obtener más detalles).
  • No se requiere ningún mensaje de certificado: use DH anónimo.
  • Si es un DH fijo, los parámetros de la clave pública DH del servidor se agregarán a este mensaje (no es necesario enviar mensajes de cambio de clave del servidor más adelante)

mensaje server_key_change:

  • Situaciones en las que este mensaje no es necesario:
    ① Si el servidor envía un mensaje de certificado con parámetros DH fijos;
    ② Si se utiliza el intercambio de claves RSA (???).
    .
  • Situaciones en las que este mensaje es necesario:
    ① DH anónimo (dos valores DH globales y clave pública DH del servidor).
    ② DH instantáneo (tres parámetros DH)).
    ③ RSA, y el servidor solo usa la clave de firma RSA. ? ? ?

mensaje de solicitud de certificado:

  • Contenido: tipo de certificado + agencia de visas.
  • Tipo de certificado: ¿Indique el algoritmo de clave pública y su finalidad correspondiente? ? ?
    RSA: solo para firmar
    DSS: solo para firmar
    RSA con DH fijo: envío de certificado de firma RSA, cuya firma solo se usa para autenticación.
    DSS con DH fijo: solo para autenticación.
  • Agencias de visas: lista de agencias de visas aceptables

mensaje de servidor terminado:

  • Indica que el saludo del servidor ha terminado, esperando que el cliente responda.

  • Sin parámetros

.
.

Fase 3: autenticación del cliente e intercambio de claves

Después de recibir el servidor, el cliente verifica que el certificado del servidor sea válido y luego verifica si los parámetros del saludo del servidor son aceptables. Una vez que todo esté correcto, comience a enviar mensajes al servidor.

Etapa 3
mensaje de certificado:

  • Si el servidor envía una solicitud de certificado, el cliente responderá con un certificado.
    Si no se puede proporcionar el certificado apropiado, el cliente enviará una "Advertencia de no certificado".

mensaje de cambio de clave del cliente:

  • El contenido depende del tipo de intercambio de claves decidido conjuntamente por ambas partes:
    ① RSA: La clave secundaria de 48 bytes generada por el cliente y cifrada con la clave pública en el certificado del servidor / clave RSA temporal en el cambio de clave del servidor. Úselo más tarde para generar la clave maestra. ? ? ?
    ② DH instantáneo y DH anónimo: envía parámetros de clave pública DH del cliente.
    ③ DH fijo: dado que el mensaje de certificado contiene parámetros DH, este mensaje está vacío.

mensaje de verificación de certificado:

  • Proporcione una autenticación precisa de los certificados de los clientes. (Solo se envía cuando el certificado del cliente tiene la capacidad de firmar)? ? ?

.
.

Fase 4: Completa

4
cambiar el mensaje de cifrado spce (no forma parte del protocolo de protocolo de enlace):

  • El cliente indica que se cambie la especificación de cifrado y la copie de la especificación de cifrado para suspender la especificación de cifrado.
  • Entonces el cliente comienza a enviar mensajes con el nuevo algoritmo y clave

mensaje de cliente terminado :

  • El cliente envía un mensaje completo.

cambiar el mensaje de cifrado spce (no forma parte del protocolo de protocolo de enlace):

  • Después de recibir los dos mensajes anteriores, el servidor cambia la especificación de cifrado y también la copia de la especificación de cifrado para suspender la especificación de cifrado.
  • Entonces el servidor comienza a enviar mensajes con el nuevo algoritmo y clave

mensaje de servidor terminado :

  • El servidor envía un mensaje completo.

.

En este punto, se completa el protocolo de enlace y el cliente y el servidor comienzan a intercambiar datos de la capa de aplicación.

.
.
.

.
.

Supongo que te gusta

Origin blog.csdn.net/weixin_43289702/article/details/108766121
Recomendado
Clasificación