TLS: perché combinare i messaggi di handshake?

1

Sto implementando un prototipo TLS -like (per proverbi accademici) e ho diversi problemi nell'handshake.

Dopo ClientHello , il server invia 3 frame in una riga ( ServerHello , ServerKeyExchange e ServerHelloDone ), e il client non può catturarli tutti.

Ho anche visto nella Wikipedia pagina di TLS i messaggi di handshake del server (questi 3 frame) può essere combinato in un singolo "record".

La prima domanda che mi viene in mente è: Perché combinarli? Per creare frame più grandi?

Diciamo che nel mio caso concateniamo automaticamente i 3 frame in 1, per facilitare la ricezione di tutti questi messaggi. Nel mio caso, ciò porterebbe a un frame di ~ 700 byte.

La mia seconda domanda è: Questa "combinazione" potrebbe portare a violazioni della sicurezza? Qualcuno potrebbe approfittare di avere tutte le informazioni in un frame? Siamo d'accordo che il sistema è sicuro quando i frame sono separati, la domanda è solo sulla concatenazione dei frame.

    
posta EisenHeim 09.10.2015 - 09:30
fonte

1 risposta

3

The first question that comes to my mind is : Why combinig them ? To make bigger frames ?

Se utilizzi un singolo frame contenente 3 messaggi anziché 3 frame ciascuno contenente un singolo messaggio, il sovraccarico è più piccolo.

After the ClientHello, the server sends 3 frames in a row (ServerHello, ServerKeyExchangeand ServerHelloDone), and the client can't catch every one of them.

Poiché questo è un flusso TCP i messaggi non possono essere persi. Sembra più che il tuo cliente stia facendo la ricezione dei messaggi in modo sbagliato. Spesso questo significa che il client è implementato per aspettarsi esattamente un singolo messaggio con una singola lettura, ma questi possono essere anche metà dei messaggi ecc. Perché TCP è un flusso e non un protocollo di messaggi.

My second question is : Could this "combining" bring security breaches ?

Le informazioni scambiate sono le stesse. Importa solo quanti fotogrammi hai bisogno per trasferire le informazioni se qualcuno non è in grado di ottenere tutti i dati. Ma di nuovo questo sarebbe di solito solo a causa di un buggy design del client / attacker e non di un problema del protocollo.

    
risposta data 09.10.2015 - 10:07
fonte

Leggi altre domande sui tag