OpenSSL ha stat per le specifiche di cifratura delle modifiche di lettura (SSL3_ST_CR_CHANGE_A)

1

Nel metodo di autenticazione EAP-TLS se un server invia il messaggio Specificare il cifrario delle specifiche al client, non sono riuscito a trovare riferimenti a SSL3_ST_CR_CHANGE_A . L'enum è definito per SSL3_ST_CR_CHANGE_A in ssl3.h , ma ho guardato il codice sorgente di OpenSSL: s3_clnt.c:ssl3_connect() , e non vedo alcun caso che lo gestisca.

La versione di openssl che sto usando è openssl-1.0.1e, qualsiasi altra versione supporta questo.

    
posta Anbazhakan Anbu 10.11.2014 - 13:55
fonte

1 risposta

1

Il messaggio change_cipher_spec non è un messaggio di handshake; ha il suo tipo di record speciale. È gestito in s3_pkt.c:ssl3_read_bytes() .

OpenSSL gestisce l'handshake come una macchina a stati; la variabile state contiene lo stato corrente. Ogni volta che viene ricevuto un messaggio di handshake, lo stato cambia. Il messaggio change_cipher_spec , essendo sempre piccolo (la sua lunghezza è di 1 byte, esattamente), viene gestito al volo proprio come un messaggio di avviso. Quando viene ricevuto, non modifica la variabile state , ma imposta il campo change_cipher_spec su 1. Quando è previsto un change_cipher_spec , il messaggio successivo dovrebbe essere un Finished e il codice che elabora Finished messaggio controlla il campo change_cipher_spec .

    
risposta data 10.11.2014 - 14:35
fonte

Leggi altre domande sui tag