¿Tiene OpenSSL stat para la especificación de cifrado de cambio de lectura (SSL3_ST_CR_CHANGE_A)

1

En el método de autenticación EAP-TLS si un servidor envía un mensaje de cambio de especificación de cifrado al cliente, no pude encontrar referencias a SSL3_ST_CR_CHANGE_A . La enumeración se define para SSL3_ST_CR_CHANGE_A en ssl3.h , pero miré el código fuente de OpenSSL: s3_clnt.c:ssl3_connect() , y no veo ningún caso que lo maneje.

La versión de openssl que estoy usando es openssl-1.0.1e, ¿alguna otra versión lo admite?

    
pregunta Anbazhakan Anbu 10.11.2014 - 13:55
fuente

1 respuesta

1

El mensaje change_cipher_spec no es un mensaje de intercambio; Tiene su propio tipo de registro especial. Se maneja en s3_pkt.c:ssl3_read_bytes() .

OpenSSL maneja el handshake como una máquina de estado; La variable state contiene el estado actual. Cada vez que se recibe un mensaje de negociación, el estado cambia. El mensaje change_cipher_spec , siendo siempre pequeño (su longitud es de 1 byte, exactamente), se maneja sobre la marcha como un mensaje de alerta. Cuando se recibe, no cambia la variable state , sino que establece el campo change_cipher_spec en 1. Cuando se espera un change_cipher_spec , el siguiente mensaje debe ser un Finished y el código que procesa el Finished el mensaje comprueba el campo change_cipher_spec .

    
respondido por el Tom Leek 10.11.2014 - 14:35
fuente

Lea otras preguntas en las etiquetas