Nell'handshake TLS 1.3, un errore interno del client può essere interpretato come errore di decrypt sul server?

2

Nel protocollo handshake TLS 1.3, il client invia il messaggio ClientHello al server. Il server quindi restituisce il messaggio ServerHello seguito da alcuni messaggi crittografati. Il client quindi calcola le chiavi e invia altri messaggi crittografati al server per completare l'handshake.

Ora, cosa succede se si verifica un errore mentre il client sta calcolando le chiavi? Diciamo che è un errore interno. Il client deve inviare un avviso di "Errore interno" fatale al server e quindi chiudere la connessione. Il messaggio di avviso non è certamente crittografato perché il client non calcola correttamente le chiavi. Tuttavia, il server ha già calcolato correttamente le chiavi e modificato le specifiche di cifratura, quindi il server si aspetta che tutti i messaggi in arrivo vengano crittografati. Pertanto, si verifica un errore di decrittografia quando tenta di decrittografare il messaggio di avviso non crittografato dal client. In effetti, un errore interno sul client diventa un errore di decifrazione quando raggiunge il server. È un comportamento accettabile?

    
posta Tu Le Hong 25.02.2018 - 04:47
fonte

1 risposta

2

Si presume che possa verificarsi un errore che rende impossibile per il client calcolare correttamente le chiavi. Supponendo che client e server abbiano completato l'handshake fino ad ora in modo corretto, in modo che i dati di input per il calcolo delle chiavi siano disponibili sul client e siano corretti. Inoltre, supponendo che non vi siano errori di implementazione. In questo caso è molto improbabile che possa verificarsi qualche errore durante il calcolo dei tasti, cioè probabilmente solo una condizione di memoria insufficiente o alcuni problemi relativi all'hardware. Potrebbe anche darsi che il client non sia in grado di inviare un messaggio al server in una situazione del genere. Penso che sia perfettamente ok se in questo raro caso il server non è in grado di distinguere tra un messaggio di "errore interno" dal client e un messaggio danneggiato dal client o una connessione chiusa senza alcun messaggio poiché la quantità di informazioni utilizzabili riguarda lo stesso: qualcosa di non specificato è andato storto.

Oltre a ciò, gli avvisi inviati al peer non contengono molte informazioni utili in primo luogo. Poiché non vi è alcun messaggio di errore reale ma solo un singolo numero di errore, esso può solo indicare la direzione della possibile causa di un errore ma non descriverlo in dettaglio. E quando osserviamo come questo protocollo di allerta è stato utilizzato in TLS 1.2 e ridotto dalle implementazioni effettive, è alta la probabilità che sia simile per lo più inutile in TLS 1.3: ci sono implementazioni importanti che chiudono la connessione su errore invece di inviare un avviso indietro. Altre implementazioni inviano solo un generico handshake_failure nella maggior parte dei casi, anche se sono disponibili tipi di avvisi più precisi per il particolare errore.

    
risposta data 25.02.2018 - 07:11
fonte

Leggi altre domande sui tag