In particolare, puoi decrittare qualsiasi stream fino a un byte arbitrario?
I dati in TLS vengono inviati nei record TLS, che possono trasportare da 0 a 16 KB di payload.
Se interrompi l'elaborazione dei dati ricevuti a un limite del record TLS, non riesco a vedere alcun problema di sicurezza. I dati elaborati sono stati trasmessi in modo sicuro.
Se desideri interrompere l'elaborazione dei dati nel bel mezzo di un record TLS, hai un problema. È necessario verificare il MAC per l'intero record (e nelle suite di crittografia CBC anche il padding), quindi è necessario elaborare l'intero record. Ma se non si verifica il MAC, sì, è possibile decodificare un record TLS parziale. Ovviamente, poiché la crittografia è malleabile, questo è estremamente insicuro. I dati di quel record potrebbero essere stati facilmente modificati da un utente malintenzionato.
Dipende dal codice utilizzato, non dal protocollo. TLS potrebbe fornire il contesto che indica come condividere chiavi, crittografare, decrittografare o verificare, ma la crittografia e la decrittografia vengono eseguite in base a un algoritmo definito dal codice.
Codici a blocchi , come AES, crittografano e decodificano i dati nei blocchi, mentre codici a flusso generano un "keystream", un flusso di output pseudocasuale che viene combinato con il testo in chiaro. Solo i codici di flusso supportano la crittografia e la decrittografia bit-by-bit. I codici a blocchi devono essere crittografati e decrittografati blocco per blocco e le dimensioni ridotte dei blocchi vengono utilizzate raramente, perché hanno una piccola dimensione del codebook .
Ci sono 12 codici simmetrici definiti per l'uso in TLS 1.2 (13 se si conta NULL) ma solo 2 sono i cipri di flusso: RC4 e ChaCha20, quindi la risposta è sì, ma solo se il server e il client accettano di usarne uno di quei due codici.
Leggi altre domande sui tag tls decryption